{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/react/index.js","../node_modules/primereact/utils/utils.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/react-intl/lib/src/components/message.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/react-bootstrap/esm/Col.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/classnames/index.js","../node_modules/primereact/api/api.esm.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/primereact/column/column.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@fortawesome/react-fontawesome/index.es.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/react-bootstrap/esm/Row.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../../packages/react-router/index.tsx","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/prop-types/index.js","../node_modules/primereact/ripple/ripple.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@formatjs/intl/node_modules/tslib/tslib.es6.js","../node_modules/react-bootstrap/esm/Feedback.js","../node_modules/react-bootstrap/esm/FormCheckInput.js","../node_modules/react-bootstrap/esm/FormCheckLabel.js","../node_modules/react-bootstrap/esm/FormCheck.js","../node_modules/react-bootstrap/esm/FormControl.js","../node_modules/react-bootstrap/esm/FormFloating.js","../node_modules/react-bootstrap/esm/FormLabel.js","../node_modules/react-bootstrap/esm/FormRange.js","../node_modules/react-bootstrap/esm/FormSelect.js","../node_modules/react-bootstrap/esm/FormText.js","../node_modules/react-bootstrap/esm/Switch.js","../node_modules/react-bootstrap/esm/Form.js","../node_modules/@formatjs/intl/lib/src/error.js","../node_modules/chart.js/dist/chunks/helpers.segment.mjs","../node_modules/chart.js/dist/chart.mjs","../node_modules/primereact/button/button.esm.js","../node_modules/dom-helpers/esm/camelize.js","../node_modules/react-bootstrap/esm/createWithBsPrefix.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@formatjs/fast-memoize/lib/index.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/react-bootstrap/esm/ModalBody.js","../node_modules/react-bootstrap/esm/ModalDialog.js","../node_modules/react-bootstrap/esm/ModalFooter.js","../node_modules/react-bootstrap/esm/ModalHeader.js","../node_modules/react-bootstrap/esm/ModalTitle.js","../node_modules/react-bootstrap/esm/Modal.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@formatjs/intl/lib/src/utils.js","../node_modules/react-dom/index.js","../../../../packages/react-router-dom/index.tsx","../node_modules/react-intl/node_modules/tslib/tslib.es6.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@formatjs/icu-messageformat-parser/node_modules/tslib/tslib.es6.js","../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../node_modules/@formatjs/icu-skeleton-parser/node_modules/tslib/tslib.es6.js","../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../node_modules/react-bootstrap/esm/FormContext.js","../node_modules/primereact/tooltip/tooltip.esm.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/primereact/overlayservice/overlayservice.esm.js","../node_modules/react-bootstrap/esm/Button.js","../node_modules/@restart/ui/node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/intl-messageformat/node_modules/tslib/tslib.es6.js","../node_modules/primereact/inputnumber/inputnumber.esm.js","../node_modules/primereact/paginator/paginator.esm.js","../node_modules/primereact/datatable/datatable.esm.js","../node_modules/primereact/keyfilter/keyfilter.esm.js","../node_modules/primereact/inputtext/inputtext.esm.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/react-intl/lib/src/utils.js","../node_modules/react-bootstrap/esm/NavbarContext.js","../node_modules/primereact/portal/portal.esm.js","../node_modules/@fortawesome/free-solid-svg-icons/index.es.js","../node_modules/react-bootstrap/esm/PopoverHeader.js","../node_modules/react-bootstrap/esm/PopoverBody.js","../node_modules/react-bootstrap/esm/Popover.js","../node_modules/primereact/dropdown/dropdown.esm.js","../node_modules/@restart/ui/esm/SelectableContext.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/react-intl/lib/src/components/useIntl.js","../node_modules/@restart/ui/node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/primereact/csstransition/csstransition.esm.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/react-bootstrap/esm/CardImg.js","../node_modules/react-bootstrap/esm/CardHeader.js","../node_modules/react-bootstrap/esm/Card.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/primereact/tag/tag.esm.js","../node_modules/@restart/ui/esm/DataKey.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@fortawesome/fontawesome-svg-core/index.es.js","../node_modules/intl-messageformat/lib/src/error.js","../node_modules/dequal/dist/index.mjs","../node_modules/@restart/ui/node_modules/@restart/hooks/esm/useSafeState.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@restart/ui/esm/popper.js","../node_modules/@restart/ui/esm/usePopper.js","../node_modules/@restart/ui/esm/useRootClose.js","../node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../node_modules/@restart/ui/esm/Overlay.js","../node_modules/react-bootstrap/esm/Overlay.js","../node_modules/react-bootstrap/esm/useOverlayOffset.js","../node_modules/@restart/ui/node_modules/@restart/hooks/esm/useMounted.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/ModalContext.js","../node_modules/primereact/virtualscroller/virtualscroller.esm.js","../../src/utils.ts","../../src/chart.tsx","../../src/typedCharts.tsx","../node_modules/primereact/inputswitch/inputswitch.esm.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-bootstrap/esm/OffcanvasBody.js","../node_modules/react-bootstrap/esm/OffcanvasToggling.js","../node_modules/react-bootstrap/esm/OffcanvasHeader.js","../node_modules/react-bootstrap/esm/OffcanvasTitle.js","../node_modules/react-bootstrap/esm/Offcanvas.js","../node_modules/webpack/buildin/global.js","../node_modules/warning/warning.js","../node_modules/@restart/ui/node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/react-bootstrap/esm/BootstrapModalManager.js","../node_modules/@restart/ui/esm/useWaitForDOMRef.js","../node_modules/@restart/ui/esm/ModalManager.js","../node_modules/@restart/ui/esm/getScrollbarWidth.js","../node_modules/react-bootstrap/esm/FloatingLabel.js","../node_modules/@restart/ui/node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/react-intl/lib/src/components/injectIntl.js","../node_modules/react-bootstrap/esm/FormGroup.js","../node_modules/react-bootstrap/esm/CardHeaderContext.js","../node_modules/@restart/ui/node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/primereact/dialog/dialog.esm.js","../node_modules/react-bootstrap/esm/helpers.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/@restart/ui/node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/ui/node_modules/@restart/hooks/esm/useUpdatedRef.js","../node_modules/@restart/ui/esm/Modal.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/react-bootstrap/esm/AbstractModalHeader.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.js","../node_modules/react-bootstrap/esm/Tooltip.js","../node_modules/@restart/hooks/esm/useTimeout.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/react-bootstrap/esm/OverlayTrigger.js","../node_modules/object-assign/index.js","../node_modules/invariant/browser.js","../node_modules/intl-messageformat/lib/src/formatters.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/@fortawesome/free-brands-svg-icons/index.es.js","../node_modules/@restart/ui/node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/primereact/badge/badge.esm.js","../node_modules/primereact/chips/chips.esm.js","../node_modules/primereact/calendar/calendar.esm.js","../node_modules/primereact/multiselect/multiselect.esm.js","../node_modules/@fortawesome/free-regular-svg-icons/index.es.js","../node_modules/react-bootstrap/esm/usePlaceholder.js","../node_modules/react-bootstrap/esm/PlaceholderButton.js","../node_modules/react-bootstrap/esm/Placeholder.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/buffer/index.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/buffer/node_modules/isarray/index.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/timers-browserify/main.js","../node_modules/setimmediate/setImmediate.js","../node_modules/process/browser.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react-is/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types-extra/lib/all.js","../node_modules/prop-types-extra/lib/utils/createChainableTypeChecker.js","../node_modules/@formatjs/ecma402-abstract/lib/utils.js","../node_modules/intl-messageformat/lib/src/core.js","../node_modules/react-bootstrap/esm/Container.js","../node_modules/react-bootstrap/esm/Spinner.js","../node_modules/@formatjs/intl/lib/src/message.js","../node_modules/@formatjs/intl/lib/src/number.js","../node_modules/@formatjs/intl/lib/src/relativeTime.js","../node_modules/@formatjs/intl/lib/src/dateTime.js","../node_modules/@formatjs/intl/lib/src/plural.js","../node_modules/@formatjs/intl/lib/src/list.js","../node_modules/@formatjs/intl/lib/src/displayName.js","../node_modules/@formatjs/intl/lib/src/create-intl.js","../node_modules/react-intl/lib/src/components/provider.js","../node_modules/@restart/ui/esm/NavContext.js","../node_modules/@restart/ui/esm/TabContext.js","../node_modules/@restart/ui/esm/NavItem.js","../node_modules/@restart/ui/esm/Nav.js","../node_modules/@restart/ui/node_modules/@restart/hooks/esm/useForceUpdate.js","../node_modules/react-bootstrap/esm/NavItem.js","../node_modules/@restart/ui/node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/react-bootstrap/esm/NavLink.js","../node_modules/react-bootstrap/esm/Nav.js","../node_modules/react-bootstrap/esm/NavbarBrand.js","../node_modules/react-bootstrap/esm/createChainedFunction.js","../node_modules/react-bootstrap/esm/Collapse.js","../node_modules/react-bootstrap/esm/NavbarCollapse.js","../node_modules/react-bootstrap/esm/NavbarToggle.js","../node_modules/react-bootstrap/esm/NavbarOffcanvas.js","../node_modules/react-bootstrap/esm/Navbar.js"],"names":["module","exports","require","_arrayLikeToArray$1","arr","len","length","i","arr2","Array","_unsupportedIterableToArray$1","o","minLen","n","Object","prototype","toString","call","slice","constructor","name","from","test","_slicedToArray","isArray","_arrayWithHoles","_i","Symbol","iterator","_s","_e","_arr","_n","_d","next","done","push","value","err","_iterableToArrayLimit","TypeError","_nonIterableRest","_typeof","obj","classNames","_len","arguments","args","_key","classes","className","type","_classes","entries","map","_ref","_ref2","key","concat","filter","c","join","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","_createClass","protoProps","staticProps","_createForOfIteratorHelper","allowArrayLike","it","_arrayLikeToArray","_unsupportedIterableToArray","F","s","e","f","normalCompletion","didErr","step","_e2","return","DomHandler","this","el","width","offsetWidth","style","getComputedStyle","parseFloat","paddingLeft","paddingRight","doc","document","documentElement","window","pageYOffset","scrollTop","clientTop","pageXOffset","scrollLeft","clientLeft","margin","marginLeft","marginRight","height","offsetHeight","marginTop","marginBottom","clientHeight","clientWidth","win","d","g","getElementsByTagName","innerWidth","innerHeight","rect","getBoundingClientRect","top","body","left","element","children","parentNode","childNodes","num","nodeType","classList","styles","split","add","_styles","remove","_styles2","_i2","replace","RegExp","contains","selector","querySelectorAll","querySelector","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","borderLeftWidth","borderRightWidth","overlay","appendTo","calculateMinWidth","undefined","relativePosition","minWidth","getOuterWidth","absolutePosition","elementDimensions","offsetParent","getHiddenElementDimensions","elementOuterHeight","elementOuterWidth","targetOuterHeight","targetOuterWidth","targetOffset","windowScrollTop","getWindowScrollTop","windowScrollLeft","getWindowScrollLeft","viewport","getViewport","transformOrigin","Math","max","targetHeight","_this","my","at","callback","myArr","atArr","getPositionValue","isOffset","substring","search","position","x","y","offsetX","offsetY","myOffset","getOuterHeight","alignWithAt","count","right","bottom","center","axis","isFunction","myXPosition","parents","getParents","scrollableParents","_step","overflowRegex","overflowCheck","node","styleDeclaration","getPropertyValue","_iterator","parent","scrollSelectors","dataset","_step2","_iterator2","findSingle","visibility","display","elementHeight","elementWidth","dimensions","duration","opacity","last","Date","tick","getTime","requestAnimationFrame","setTimeout","gap","fading","setInterval","clearInterval","navigator","userAgent","maxTouchPoints","msMaxTouchPoints","apply","isElement","appendChild","nativeElement","Error","removeChild","HTMLElement","nodeName","container","item","borderTopValue","borderTop","paddingTopValue","containerRect","offset","scroll","itemHeight","getSelection","empty","removeAllRanges","rangeCount","getRangeAt","getClientRects","error","calculatedScrollbarWidth","scrollDiv","createElement","scrollbarWidth","browser","matched","resolveUserAgent","version","ua","toLowerCase","match","exec","indexOf","_step3","focusableElements","find","visibleFocusableElements","_iterator3","focusableElement","getFocusableElements","prevText","nextText","currentText","ghostDiv","pointerEvents","overflow","padding","border","overflowWrap","whiteSpace","lineHeight","innerHTML","ghostSpan","textContent","text","createTextNode","offsetLeft","offsetTop","abs","methodName","targetNode","parentElement","hasClass","cssText","prop","csv","filename","blob","Blob","msSaveOrOpenBlob","link","download","setAttribute","URL","createObjectURL","click","open","encodeURI","ConnectedOverlayScrollHandler","listener","getScrollableParents","addEventListener","removeEventListener","unbindScrollListener","EventBus","allHandlers","Map","on","handler","handlers","get","set","off","splice","emit","evt","forEach","_defineProperty","ownKeys$1","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread$1","source","getOwnPropertyDescriptors","defineProperties","mask","options","tests","partialPosition","firstNonMaskPos","defs","androidChrome","lastRequiredNonMaskPos","oldVal","focusText","caretTimeoutId","buffer","defaultBuffer","slotChar","autoClear","unmask","readOnly","onComplete","onChange","onFocus","onBlur","caret","first","range","begin","end","activeElement","setSelectionRange","selectionStart","selectionEnd","createRange","duplicate","moveStart","collapse","moveEnd","select","isCompleted","getPlaceholder","charAt","getValue","getUnmaskedValue","seekNext","pos","shiftL","j","writeBuffer","checkVal","updateModel","event","createEvent","initEvent","dispatchEvent","onKeyDown","k","which","keyCode","iPhone","getUserAgent","seekPrev","clearBuffer","preventDefault","onKeyPress","p","completed","ctrlKey","altKey","metaKey","String","fromCharCode","t","shiftR","originalEvent","start","allow","lastMatch","clearTimeout","onInput","curVal","handleAndroidInput","handleInputChange","unmaskedBuffer","val","bindEvents","init","maskTokens","_c","unbindEvents","ObjectUtils","obj1","obj2","field","resolveFieldData","deepEquals","a","b","arrA","arrB","dateA","dateB","regexpA","regexpB","hasOwnProperty","data","fields","reduce","result","current","to","list","dataKey","findIndex","equals","params","_len2","_key2","ref","str","isEmpty","_extends","assign","ownKeys","IconUtils","icon","iconProps","content","iconType","React","defaultContentOptions","_objectSpread","getJSXElement","lastId","UniqueComponentId","prefix","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","ZIndexUtils","zIndexes","getLastZIndex","autoZIndex","baseZIndex","reverse","parseInt","zIndex","lastZIndex","newZIndex","generateZIndex","clear","getCurrent","getCurrentZIndex","unsupportedIterableToArray","_objectSpread2","FormattedMessage","intl","useIntl","formatMessage","_a","textComponent","Text","id","description","defaultMessage","values","_b","tagName","Component","nodes","ignoreTag","toArray","displayName","MemoizedFormattedMessage","prevProps","nextProps","otherProps","__rest","nextValues","nextOtherProps","shallowEqual","DEVICE_SIZES","useCol","as","bsPrefix","useBootstrapPrefix","spans","brkPoint","span","order","propValue","infix","Col","colProps","_jsx","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","hasOwn","arg","argType","inner","default","FilterMatchMode","freeze","STARTS_WITH","CONTAINS","NOT_CONTAINS","ENDS_WITH","EQUALS","NOT_EQUALS","IN","LESS_THAN","LESS_THAN_OR_EQUAL_TO","GREATER_THAN","GREATER_THAN_OR_EQUAL_TO","BETWEEN","DATE_IS","DATE_IS_NOT","DATE_BEFORE","DATE_AFTER","CUSTOM","PrimeReact","modal","menu","tooltip","toast","numeric","date","locales","startsWith","notContains","endsWith","notEquals","noFilter","lt","lte","gt","gte","dateIs","dateIsNot","dateBefore","dateAfter","custom","matchAll","matchAny","addRule","removeRule","accept","reject","choose","upload","cancel","dayNames","dayNamesShort","dayNamesMin","monthNames","monthNamesShort","today","weekHeader","firstDayOfWeek","dateFormat","weak","medium","strong","passwordPrompt","emptyFilterMessage","emptyMessage","addLocale","locale","localeOption","_locale","localeOptions","ALIGN_CENTER","ALIGN_JUSTIFY","ALIGN_LEFT","ALIGN_RIGHT","AMAZON","ANDROID","ANGLE_DOUBLE_DOWN","ANGLE_DOUBLE_LEFT","ANGLE_DOUBLE_RIGHT","ANGLE_DOUBLE_UP","ANGLE_DOWN","ANGLE_LEFT","ANGLE_RIGHT","ANGLE_UP","APPLE","ARROW_CIRCLE_DOWN","ARROW_CIRCLE_LEFT","ARROW_CIRCLE_RIGHT","ARROW_CIRCLE_UP","ARROW_DOWN","ARROW_DOWN_LEFT","ARROW_DOWN_RIGHT","ARROW_LEFT","ARROW_RIGHT","ARROW_UP","ARROW_UP_LEFT","ARROW_UP_RIGHT","ARROW_H","ARROW_V","AT","BACKWARD","BAN","BARS","BELL","BOLT","BOOK","BOOKMARK","BOOKMARK_FILL","BOX","BRIEFCASE","BUILDING","CALENDAR","CALENDAR_MINUS","CALENDAR_PLUS","CALENDAR_TIMES","CAMERA","CAR","CARET_DOWN","CARET_LEFT","CARET_RIGHT","CARET_UP","CHART_BAR","CHART_LINE","CHART_PIE","CHECK","CHECK_CIRCLE","CHECK_SQUARE","CHEVRON_CIRCLE_DOWN","CHEVRON_CIRCLE_LEFT","CHEVRON_CIRCLE_RIGHT","CHEVRON_CIRCLE_UP","CHEVRON_DOWN","CHEVRON_LEFT","CHEVRON_RIGHT","CHEVRON_UP","CIRCLE","CIRCLE_FILL","CLOCK","CLONE","CLOUD","CLOUD_DOWNLOAD","CLOUD_UPLOAD","CODE","COG","COMMENT","COMMENTS","COMPASS","COPY","CREDIT_CARD","DATABASE","DESKTOP","DIRECTIONS","DIRECTIONS_ALT","DISCORD","DOLLAR","DOWNLOAD","EJECT","ELLIPSIS_H","ELLIPSIS_V","ENVELOPE","EURO","EXCLAMATION_CIRCLE","EXCLAMATION_TRIANGLE","EXTERNAL_LINK","EYE","EYE_SLASH","FACEBOOK","FAST_BACKWARD","FAST_FORWARD","FILE","FILE_EXCEL","FILE_PDF","FILTER","FILTER_FILL","FILTER_SLASH","FLAG","FLAG_FILL","FOLDER","FOLDER_OPEN","FORWARD","GITHUB","GLOBE","GOOGLE","HASHTAG","HEART","HEART_FILL","HISTORY","HOME","ID_CARD","IMAGE","IMAGES","INBOX","INFO","INFO_CIRCLE","INSTAGRAM","KEY","LINK","LINKEDIN","LIST","LOCK","LOCK_OPEN","MAP","MAP_MARKER","MICROSOFT","MINUS","MINUS_CIRCLE","MOBILE","MONEY_BILL","MOON","PALETTE","PAPERCLIP","PAUSE","PAYPAL","PENCIL","PERCENTAGE","PHONE","PLAY","PLUS","PLUS_CIRCLE","POUND","POWER_OFF","PRIME","PRINT","QRCODE","QUESTION","QUESTION_CIRCLE","REDDIT","REFRESH","REPLAY","REPLY","SAVE","SEARCH","SEARCH_MINUS","SEARCH_PLUS","SEND","SERVER","SHARE_ALT","SHIELD","SHOPPING_BAG","SHOPPING_CART","SIGN_IN","SIGN_OUT","SITEMAP","SLACK","SLIDERS_H","SLIDERS_V","SORT","SORT_ALPHA_DOWN","SORT_ALPHA_ALT_DOWN","SORT_ALPHA_UP","SORT_ALPHA_ALT_UP","SORT_ALT","SORT_ALT_SLASH","SORT_AMOUNT_DOWN","SORT_AMOUNT_DOWN_ALT","SORT_AMOUNT_UP","SORT_AMOUNT_UP_ALT","SORT_DOWN","SORT_NUMERIC_DOWN","SORT_NUMERIC_ALT_DOWN","SORT_NUMERIC_UP","SORT_NUMERIC_ALT_UP","SORT_UP","SPINNER","STAR","STAR_FILL","STEP_BACKWARD","STEP_BACKWARD_ALT","STEP_FORWARD","STEP_FORWARD_ALT","STOP","STOP_CIRCLE","SUN","SYNC","TABLE","TABLET","TAG","TAGS","TELEGRAM","TH_LARGE","THUMBS_DOWN","THUMBS_UP","TICKET","TIMES","TIMES_CIRCLE","TRASH","TWITTER","UNDO","UNLOCK","UPLOAD","USER","USER_EDIT","USER_MINUS","USER_PLUS","USERS","VIDEO","VIMEO","VOLUME_DOWN","VOLUME_OFF","VOLUME_UP","WALLET","WHATSAPP","WIFI","WINDOW_MAXIMIZE","WINDOW_MINIMIZE","YOUTUBE","SUCCESS","WARN","ERROR","FilterOperator","AND","OR","FilterService","filterValue","filterMatchMode","filterLocale","filteredItems","fieldValue","filters","trim","removeAccents","toLocaleLowerCase","stringValue","in","between","toDateString","register","rule","fn","ThemeContext","prefixes","Consumer","Provider","defaultPrefix","useContext","useIsRTL","dir","_setPrototypeOf","setPrototypeOf","__proto__","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","_getPrototypeOf","getPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","Super","NewTarget","Column","_Component","subClass","superClass","create","_inherits","_super","columnKey","sortField","filterField","header","footer","sortable","sortableDisabled","sortFunction","dataType","filterPlaceholder","filterType","filterMaxLength","filterElement","filterFunction","filterHeaderStyle","filterHeaderClassName","showFilterMenu","showFilterOperator","showClearButton","showApplyButton","showFilterMatchModes","showFilterMenuOptions","showAddButton","filterMatchModeOptions","maxConstraints","filterMenuClassName","filterMenuStyle","alignFrozen","hidden","onFilterClear","onFilterApplyClick","onFilterMatchModeChange","onFilterOperatorChange","onFilterConstraintAdd","onFilterConstraintRemove","filterClear","filterApply","filterHeader","filterFooter","headerStyle","headerClassName","bodyStyle","bodyClassName","footerStyle","footerClassName","expander","frozen","selectionMode","colSpan","rowSpan","editor","cellEditValidator","cellEditValidatorEvent","onBeforeCellEditHide","onBeforeCellEditShow","onCellEditInit","onCellEditComplete","onCellEditCancel","excludeGlobalFilter","rowReorder","rowReorderIcon","rowEditor","exportable","reorderable","asyncGeneratorStep","gen","resolve","_next","_throw","info","Promise","then","_asyncToGenerator","arrayLikeToArray","_objectWithoutPropertiesLoose","camelize","string","chr","toUpperCase","substr","styleToObject","acc","pair","PRODUCTION","process","normalizeIconArgs","iconName","parse","objectWithKey","FontAwesomeIcon","forwardedRef","iconArgs","maskArgs","symbol","title","titleId","iconLookup","spin","pulse","fixedWidth","inverse","listItem","flip","size","rotation","pull","swapOpacity","transform","renderedIcon","_console","console","log","abstract","extraProps","defaultProps","convertCurry","propTypes","PropTypes","bool","oneOfType","array","oneOf","convert","child","mixins","attributes","attrs","_extraProps$style","existingStyle","remaining","tag","bind","Row","decoratedBsPrefix","sizePrefix","cols","invariant","cond","NavigationContext","LocationContext","RouteContext","outlet","matches","Navigate","state","useInRouterContext","navigate","useNavigate","Outlet","_props","Route","Router","basename","basenameProp","location","navigationType","NavigationType","static","staticProp","normalizePathname","navigationContext","locationProp","parsePath","pathname","hash","trailingPathname","stripBasename","Routes","parentMatches","routeMatch","parentParams","parentPathnameBase","locationFromContext","useLocation","parsedLocationArg","locationArg","remainingPathname","branches","flattenRoutes","siblings","compareIndexes","meta","rankRouteBranches","matchRouteBranch","matchRoutes","routes","_renderMatches","joinPaths","pathnameBase","useRoutes","createRoutesFromChildren","useHref","useResolvedPath","joinedPathname","toPathname","getToPathname","endsWithSlash","locationPathname","routePathnamesJson","JSON","activeRef","path","resolveTo","useParams","route","caseSensitive","index","parentsMeta","parentPath","relativePath","childrenIndex","routesMeta","score","computeScore","paramRe","isSplat","segments","initialScore","segment","matchedParams","matchedPathname","matchPath","React.createElement","pattern","paramNames","regexpSource","compilePath","captureGroups","paramName","splatValue","memo","decodeURIComponent","safelyDecodeURIComponent","toArg","routePathnameIndex","routePathnames","toSegments","fromPathname","relativeSegments","resolvePathname","normalizeSearch","normalizeHash","resolvePath","nextChar","paths","Ripple","onMouseDown","ink","removeClass","getHeight","getWidth","getOffset","pageX","pageY","addClass","currentTarget","getTarget","_this2","ripple","onAnimationEnd","assertThisInitialized","extendStatics","__extends","__","__assign","__spreadArray","pack","ar","l","SuppressedError","elementType","Feedback","FormCheckInput","isValid","isInvalid","controlId","FormContext","FormCheckLabel","htmlFor","FormCheck","bsSwitchPrefix","inline","disabled","feedbackTooltip","feedback","feedbackType","label","innerFormContext","useMemo","hasLabel","input","_jsxs","_Fragment","Input","Label","FormControl","htmlSize","plaintext","createWithBsPrefix","FormLabel","column","visuallyHidden","columnClass","FormRange","FormSelect","FormText","muted","Switch","any","validated","Form","Group","FormGroup","Control","Floating","FormFloating","Check","Range","Select","FloatingLabel","IntlErrorCode","IntlError","code","message","exception","stack","captureStackTrace","UnsupportedFormatterError","UNSUPPORTED_FORMATTER","InvalidConfigError","INVALID_CONFIG","MissingDataError","MISSING_DATA","MessageFormatError","FORMAT_ERROR","MissingTranslationError","MISSING_TRANSLATION","noop","uid","isNullOrUndef","isObject","isNumberFinite","Number","isFinite","finiteOrDefault","defaultValue","valueOrDefault","toDimension","dimension","thisArg","each","loopable","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","clone$1","klen","isValidKey","_merger","tval","sval","merge","sources","merger","mergeIf","_mergerIf","keyResolvers","v","resolveObjectKey","resolver","parts","tmp","_splitKey","_getKeyResolver","_capitalize","defined","setsEqual","has","PI","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","niceNum","roundedRange","round","almostEquals","niceRange","pow","floor","fraction","isNumber","isNaN","epsilon","_setMinAndMaxByKey","property","min","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","sqrt","angle","atan2","distance","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_isBetween","_lookup","table","cmp","mid","hi","lo","_lookupByKey","_rlookupByKey","arrayEvents","unlistenArrayEvents","stub","_chartjs","listeners","_arrayUnique","items","Set","requestAnimFrame","throttled","updateFn","updateArgs","ticking","rest","_toLeftRightCenter","align","_alignStartEnd","_getStartAndCountOfVisiblePoints","points","animationsDisabled","pointCount","_sorted","iScale","_parsed","getUserBounds","minDefined","maxDefined","getPixelForValue","_scaleRangesChanged","xScale","yScale","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","atEdge","elasticIn","sin","elasticOut","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","m","easeInOutBounce","lim","h","p2b","n2b","b2n","n2p","map$1","A","B","C","D","E","hex","h1","h2","eq","hexString","r","isShort","alpha","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","w","rgb","rgb2hsl","hueValue","calln","hsl2rgb","hue","hueParse","p1","p2","hwb2rgb","hsv2rgb","names","Z","Y","X","W","V","U","T","S","R","Q","P","O","N","M","L","K","G","H","I","J","names$1","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","black","blanKedOmond","Xe","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Yd","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","tan","teO","tEstN","tomato","Qe","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","nameParse","ok","nk","unpacked","tkeys","unpack","transparent","RGB_RE","modHSL","ratio","clone","proto","fromObject","functionParse","rgbParse","Color","ret","hexParse","_rgb","_valid","hslString","color","weight","w2","c1","c2","w1","rgb1","rgb2","interpolate","deg","rotate","index_esm","isPatternOrGradient","getHoverColor","saturate","darken","overrides","descriptors","getScope$1","root","scope","defaults","_descriptors","animation","backgroundColor","borderColor","datasets","devicePixelRatio","context","chart","platform","getDevicePixelRatio","elements","events","font","family","hover","hoverBackgroundColor","ctx","hoverBorderColor","hoverColor","indexAxis","interaction","mode","intersect","includeInvisible","maintainAspectRatio","onHover","onClick","parsing","plugins","responsive","scale","scales","showLine","drawActiveElementsOnTop","describe","targetScope","targetName","scopeObject","targetScopeObject","privateName","local","_scriptable","_indexable","_fallback","_measureText","gc","longest","textWidth","measureText","_longestText","arrayOfThings","cache","garbageCollect","save","jlen","thing","nestedThing","restore","gcLen","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","getContext","resetTransform","clearRect","drawPoint","drawPointLegend","xOffset","yOffset","cornerRadius","pointStyle","radius","rad","translate","drawImage","beginPath","ellipse","arc","closePath","moveTo","lineTo","SQRT1_2","fill","borderWidth","stroke","_isPointInArea","point","area","clipArea","clip","unclipArea","_steppedLineTo","previous","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","line","opts","lines","strokeWidth","strokeColor","setRenderOpts","strokeStyle","lineWidth","strokeText","maxWidth","fillText","decorateText","translation","fillStyle","textAlign","textBaseline","strikethrough","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","FONT_STYLE","toLineHeight","_readValueToProps","objProps","read","toTRBL","toTRBLCorners","toPadding","toFont","fallback","warn","toFontString","inputs","cacheable","createContext","parentContext","_createResolver","scopes","rootScopes","_resolve","toStringTag","deleteProperty","_keys","_cached","_resolveWithPrefixes","_scopes","getKeysFromAllScopes","includes","storage","_storage","_attachContext","proxy","subProxy","descriptorDefaults","_cacheable","_proxy","_context","_subProxy","_stack","setContext","override","receiver","isScriptable","delete","needsSubResolver","createSubResolver","_resolveScriptable","isIndexable","_resolveArray","_resolveWithContext","allKeys","scriptable","indexable","_allKeys","readKey","resolveFallback","getScope","addScopes","parentScopes","parentFallback","_rootScopes","allScopes","addScopesFromKey","_getTarget","subGetTarget","resolveKeysFromAllScopes","_parseObjectDataRadialScale","_parsing","parsed","EPSILON","getPoint","skip","getValueAxis","splineCurve","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","monotoneAdjust","deltaK","mK","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointsLen","pointAfter","monotoneCompute","delta","pointBefore","valueAxis","iPixel","vPixel","capControlPoint","pt","_updateBezierControlPoints","loop","controlPoints","spanGaps","cubicInterpolationMode","slopeDelta","splineCurveMonotone","prev","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_isDomSupported","_getParentNode","domNode","host","parseMaxStyle","styleValue","parentProperty","valueInPixels","positions","getPositionedStyle","suffix","getRelativePosition","borderBox","boxSizing","paddings","borders","touches","box","shadowRoot","useOffsetPos","clientX","clientY","getCanvasPosition","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","maxHeight","containerSize","containerStyle","containerBorder","containerPadding","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","passive","readUsedSize","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","formatNumber","cacheKey","stringify","formatter","Intl","NumberFormat","getNumberFormat","format","getRtlAdapter","rtl","rectX","setWidth","xPlus","leftForLtr","itemWidth","getRightToLeftAdapter","_itemWidth","overrideTextDirection","direction","original","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","propertyFn","compare","normalize","normalizeSegment","_boundSegment","bounds","prevValue","startBound","endBound","getSegment","inside","subStart","shouldStart","shouldStop","_boundSegments","sub","splitByStyles","segmentOptions","chartContext","_chart","baseStyle","readStyle","_datasetIndex","prevStyle","addStyle","st","styleChanged","p0","p0DataIndex","p1DataIndex","doSplitByStyles","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","Animator","_request","_charts","_running","_lastDate","anims","callbacks","numSteps","initial","currentStep","_update","_refresh","now","running","draw","_active","_total","pop","_notify","charts","complete","progress","cb","_getAnims","cur","_duration","animator","interpolators","boolean","factor","c0","valid","mix","number","Animation","cfg","currentValue","_fn","_easing","easing","_start","delay","_loop","_target","_prop","_from","_to","_promises","elapsed","remain","promises","res","rej","resolved","method","animationOptions","colors","properties","numbers","active","resize","show","animations","visible","hide","Animations","config","_properties","configure","animatedProps","getOwnPropertyNames","option","newOptions","$shared","$animations","resolveTargetOptions","_createAnimations","anim","wait","all","awaitAll","update","_animateOptions","scaleClip","allowedOverflow","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","applyStack","dsIndex","otherValue","singleMode","isStacked","stacked","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","controller","_cachedMeta","_stacks","iAxis","vAxis","indexScale","valueScale","getStackKey","_top","_bottom","getFirstScaleId","shift","clearStacks","isDirectUpdateMode","cloneIfNotShared","cached","shared","DatasetController","_ctx","_cachedDataOpts","getMeta","_type","_data","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","supportsDecimation","$context","_syncList","initialize","linkScales","_stacked","addElements","getDataset","chooseId","xid","xAxisID","yid","yAxisID","rid","rAxisID","iid","iAxisID","vid","vAxisID","getScaleForId","rScale","getDatasetMeta","scaleID","adata","convertObjectDataToArray","isExtensible","base","_dataCheck","datasetElementType","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","sorted","parseArrayData","parseObjectData","parsePrimitiveData","labels","getLabels","singleScale","xAxisKey","yAxisKey","parsedValue","NaN","canStack","otherScale","_getOtherScale","createStack","NEGATIVE_INFINITY","otherMin","otherMax","_skip","updateRangeFromParsed","getParsed","getLabelForValue","_clip","toClip","defaultClip","getMaxOverflow","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","dataIndex","raw","createDataContext","createDatasetContext","_resolveElementOptions","dataElementType","sharing","datasetElementScopeKeys","resolveNamedOptions","transition","datasetAnimationScopeKeys","sharedOptions","_animationsDisabled","firstOpts","previouslySharedOptions","getSharedOptions","includeOptions","updateSharedOptions","_resolveAnimations","_setStyle","arg1","arg2","numMeta","numData","_insertElements","_removeElements","move","updateElements","removed","_dataChanges","_sync","newCount","computeMinSampleSize","curr","_cache","$bar","visibleMetas","getAllParsedValues","sort","getAllScaleValues","_length","updateMinAndPrev","ticks","getPixelForTick","parseValue","entry","startValue","endValue","barStart","barEnd","_custom","parseFloatBar","parseArrayOrPrimitive","isFloatBar","setBorderSkipped","edge","borderSkipped","horizontal","borderProps","enableBorderRadius","parseEdge","orig","v2","startEnd","setInflateAmount","inflateAmount","BarController","iAxisKey","vAxisKey","bars","reset","getBasePixel","isHorizontal","ruler","_getRuler","_getSharedOptions","vpixels","head","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","updateElement","grouped","skipNull","_getStacks","pixels","barThickness","_startPixel","_endPixel","stackCount","_getStackCount","categoryPercentage","barPercentage","baseValue","minBarLength","actualBase","floating","getDataVisibility","barSign","startPixel","getPixelForDecimal","endPixel","halfGrid","getLineWidthForValue","maxBarThickness","Infinity","percent","chunk","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","_getStackIndex","rects","_index_","grid","_value_","beginAtZero","BubbleController","DoughnutController","innerRadius","outerRadius","getter","circumference","isDatasetVisible","_getRotation","_getCircumference","arcs","spacing","getMaxBorderWidth","getMaxOffset","maxSize","cutout","chartWeight","_getRingWeight","_getRotationExtents","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","getRatioAndOffset","maxRadius","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animateRotate","calculateCircumference","animationOpts","centerX","centerY","animateScale","_circumference","metaData","borderAlign","hoverBorderWidth","hoverOffset","ringWeightOffset","legend","generateLabels","legendItem","toggleDataVisibility","tooltipItem","dataLabel","formattedValue","LineController","_dataset","_decimated","animated","maxGapLength","directUpdate","prevParsed","nullData","stop","lastPoint","updateControlPoints","PolarAreaController","_updateRadius","minSize","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","angleLines","circular","pointLabels","PieController","RadarController","_fullLoop","pointPosition","getPointPositionForValue","Element","useFinalPosition","getProps","final","defaultRoutes","formatters","tickValue","notation","maxTick","calculateDelta","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","logarithmic","Ticks","autoSkip","tickOpts","ticksLimit","maxTicksLimit","tickLength","_tickSize","maxScale","maxChart","_maxLength","determineMaxTicks","majorIndices","major","enabled","getMajorIndices","numMajorIndices","newTicks","ceil","skipMajors","evenMajorSpacing","diff","getEvenSpacing","factors","_factorize","calculateSpacing","avgMajorSpacing","majorStart","majorEnd","grace","drawBorder","drawOnChartArea","drawTicks","tickWidth","tickColor","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkipPadding","labelOffset","minor","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","offsetFromEdge","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","getTickMarkLength","getTitleHeight","titleAlign","reverseAlign","Scale","_margins","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_reversePixels","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","suggestedMin","suggestedMax","metas","getMinMax","xLabels","yLabels","beforeUpdate","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","minmax","change","keepZero","_addGrace","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","afterAutoSkip","beforeFit","fit","afterFit","afterUpdate","reversePixels","_alignToPixels","alignToPixels","notifyPlugins","_callHooks","beforeTickToLabelConversion","afterTickToLabelConversion","maxLabelDiagonal","numTicks","_isVisible","labelSizes","_getLabelSizes","maxLabelWidth","widest","maxLabelHeight","highest","asin","titleOpts","gridOpts","titleHeight","tickPadding","angleRadians","labelHeight","labelWidth","_calculatePadding","_handleMargins","isRotated","labelsBelowTicks","offsetRight","fullSize","generateTickLabels","_computeLabelSizes","tickFont","fontString","nestedLabel","caches","widths","heights","widestLabelSize","highestLabelSize","_resolveTickFontOptions","valueAt","idx","decimal","getBaseValue","createTickContext","optionTicks","rot","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","ticksLength","tl","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","positionAxisID","limit","optsAtIndex","lineColor","tickBorderDash","tickBorderDashOffset","lineCount","textOffset","tickAndPadding","hTickAndPadding","_getXAxisLabelAlignment","_getYAxisLabelAlignment","halfCount","tickTextAlign","backdrop","labelPadding","fillRect","_computeGridLineItems","drawLine","setLineDash","lineDashOffset","lastLineWidth","_computeLabelArea","_computeLabelItems","titleX","titleY","titleArgs","drawBackground","drawGrid","drawTitle","drawLabels","tz","z","gz","getSortedVisibleDatasetMetas","axisID","fontSize","TypedRegistry","isPrototypeOf","parentScope","isIChartComponent","itemDefaults","propertyParts","sourceName","sourceScope","routeDefaults","registerDefaults","Registry","controllers","_typedRegistries","_each","_get","typedRegistry","reg","_getRegistryForType","isForType","_exec","itemReg","registry","component","camelMethod","ScatterController","getElement","DateAdapter","chartOptions","timestamp","amount","unit","weekday","members","adapters","_date","binarySearch","metaset","lookupMethod","getRange","evaluateInteractionItems","getIntersectItems","isPointInArea","inRange","getNearestCartesianItems","distanceMetric","useX","useY","deltaX","deltaY","getDistanceMetricForAxis","minDistance","getCenterPoint","getNearestItems","getNearestRadialItems","getAxisItems","rangeMethod","intersectsItem","Interaction","modes","nearest","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","setLayoutDims","layouts","layout","wrap","stackWeight","placed","buildStacks","vBoxMaxWidth","hBoxMaxHeight","availableWidth","availableHeight","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","getPadding","newWidth","outerWidth","newHeight","outerHeight","widthChanged","heightChanged","same","other","getMargins","marginForPositions","fitBoxes","boxes","refit","refitBoxes","setBoxDims","placeBoxes","userPadding","autoPadding","_layers","layoutItem","minPadding","layoutBoxes","wrapBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","updatePos","handleMaxPadding","BasePlatform","BasicPlatform","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","eventListenerOptions","removeListener","nodeListContains","nodeList","createAttachObserver","observer","MutationObserver","trigger","addedNodes","removedNodes","observe","childList","subtree","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","createResizeObserver","ResizeObserver","contentRect","listenDevicePixelRatioChanges","releaseObserver","disconnect","unlistenDevicePixelRatioChanges","createProxyAndListen","native","fromNativeEvent","addListener","DomPlatform","renderHeight","getAttribute","renderWidth","displayWidth","displayHeight","initCanvas","removeAttribute","proxies","$proxies","attach","detach","isConnected","PluginService","_init","hook","_createDescriptors","plugin","cancelable","_oldCache","_notifyStateChanges","localIds","getPlugin","allPlugins","getOpts","pluginOpts","createDescriptors","previousDescriptors","some","pluginScopeKeys","getIndexAxis","datasetDefaults","determineAxis","scaleOptions","initOptions","chartDefaults","configScales","chartIndexAxis","firstIDs","scaleConf","defaultId","getDefaultScaleIDFromAxis","defaultScaleOptions","defaultID","getAxisFromDefaultScaleID","mergeScaleConfig","initData","keyCache","keysCached","cachedKeys","generate","addIfFound","Config","_config","initConfig","_scopeCache","_resolverCache","clearCache","datasetType","additionalOptionScopes","mainScope","resetCache","keyLists","_cachedScopes","getResolver","subPrefixes","needContext","subResolver","resolverCache","hasFunction","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","onAnimationProgress","onProgress","getCanvas","getElementById","instances","getChart","moveNumericKeys","intKey","Chart","userConfig","initialCanvas","existingChart","chartOptionScopes","OffscreenCanvas","_detectPlatform","updateConfig","acquireContext","_options","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","timeout","debounce","resizeDelay","listen","_initialize","_resizeBeforeDraw","_resize","newSize","newRatio","onResize","render","axisOptions","scaleOpts","updated","isRadial","dposition","dtype","scaleType","getScale","hasUpdated","_destroyDatasetMeta","newControllers","_removeUnreferencedMetasets","updateIndex","ControllerClass","getController","_updateMetasets","_resetElements","animsDisabled","_updateScales","_checkEventBindings","_updateHiddenIndices","invalidate","buildOrUpdateControllers","buildOrUpdateElements","_minPadding","_updateLayout","_updateDatasets","_eventHandler","_updateHoverStyles","ensureScalesHaveIDs","buildOrUpdateScales","existingEvents","newEvents","changes","_getUniformDataChanges","datasetCount","makeSet","changeSet","noArea","_idx","_updateDataset","layers","_drawDatasets","_drawDataset","useClip","setDatasetVisibility","_updateVisibility","_destroy","_stop","releaseContext","toDataURL","bindUserEvents","bindResponsiveEvents","_add","detached","_remove","isAttached","activeElements","lastActive","notify","replay","hoverOptions","deactivated","activated","updateHoverStyle","inChartArea","eventFilter","_handleEvent","_getActiveElements","isClick","_isClickEvent","lastEvent","determineLastEvent","getElementsAtEventForMode","invalidatePlugins","clipArc","pixelMargin","angleMargin","parseBorderRadius$1","angleDelta","borderRadius","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStart","outerEnd","innerStart","innerEnd","rThetaToXY","theta","pathArc","innerR","spacingOffset","avNogSpacingRadius","angleOffset","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","pCenter","p4","p8","outerStartX","outerStartY","outerEndX","outerEndY","lineJoin","fullCircles","drawFullCircleBorders","unregister","ArcElement","chartX","chartY","rAdjust","betweenAngles","withinRadius","halfAngle","halfRadius","radiusOffset","drawArc","setStyle","lineCap","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","stepped","getLineMethod","fastPathSegment","prevX","lastY","avgX","countX","pointIndex","drawX","truncX","_getSegmentMethod","usePath2D","Path2D","_path","strokePathWithCache","segmentMethod","strokePathDirect","LineElement","_points","_segments","_pointsUpdated","findStartAndEnd","solidSegments","_computeSegments","_interpolate","_getInterpolationMethod","interpolated","inRange$1","hitRadius","PointElement","mouseX","mouseY","hoverRadius","getBarBounds","bar","half","skipOrLimit","boundingRects","maxW","maxH","parseBorderWidth","maxR","enableBorder","parseBorderRadius","outer","skipX","skipY","addNormalRectPath","inflateRect","refRect","BarElement","addRectPath","getBoxSize","labelOpts","boxHeight","boxWidth","usePointStyle","pointStyleWidth","Legend","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","labelFont","_computeTitleHeight","_fitRows","_fitCols","hitboxes","totalHeight","row","heightLimit","totalWidth","currentColWidth","currentColHeight","col","rtlHelper","hitbox","_draw","cursor","defaultColor","fontColor","halfFontSize","textDirection","lineDash","drawOptions","SQRT2","yBoxTop","xBoxLeft","drawLegendBox","_textX","titleFont","titlePadding","topPaddingPlusHalfFontSize","hitBox","lh","onLeave","isListened","hoveredItem","_getLegendItemAt","sameItem","plugin_legend","_element","_args","adjustHitBoxes","afterEvent","handleEvent","ci","Title","_padding","textSize","fontOpts","_drawArgs","plugin_title","titleBlock","createTitle","positioners","WeakMap","average","hasValue","tooltipPosition","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getLabelAndValue","getTooltipSize","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","before","after","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","maxLineWidth","determineXAlign","yAlign","chartWidth","xAlign","caretSize","caretPadding","doesNotFitWithAlign","determineAlignment","determineYAlign","getBackgroundPoint","alignment","paddingAndSize","alignX","alignY","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","Tooltip","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","tooltipItems","beforeTitle","afterTitle","bodyItems","scoped","beforeLabel","afterLabel","beforeFooter","afterFooter","itemSort","labelColor","labelPointStyle","labelTextColor","_createItems","getTitle","getBeforeBody","getBody","getAfterBody","getFooter","positionAndSize","backgroundPoint","external","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","titleColor","colorX","rtlColorX","yOffSet","colorY","multiKeyBackground","outerX","innerX","strokeRect","textColor","bodyAlign","bodyLineHeight","xLinePadding","fillLineOfText","bodyAlignForCalculation","bodyColor","_drawColorBox","footerAlign","footerColor","tooltipSize","drawCaret","quadraticCurveTo","animX","animY","_updateAnimationTarget","hasTooltipContent","globalAlpha","drawBody","drawFooter","positionChanged","_positionChanged","_ignoreReplayEvents","plugin_tooltip","afterInit","afterDraw","_willRender","labelCount","findOrAddLabel","addedLabels","unshift","addIfString","lastIndexOf","CategoryScale","_startValue","_valueRange","_addedLabels","added","getDecimalForPixel","generateTicks$1","generationOptions","dataRange","niceMin","niceMax","numSpaces","precision","maxTicks","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","minSpacing","rounded","almostWhole","decimalPlaces","relativeLabelSize","LinearScaleBase","_endValue","setMin","setMax","minSign","maxSign","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","stepSize","computeTickLimit","getTickLimit","_maxDigits","LinearScale","handleTickRangeOptions","isMajor","tickVal","LogarithmicScale","_zero","exp","endExp","endSignificand","significand","lastTick","generateTicks","getTickBackdropHeight","determineLimits","fitWithPointLabels","limits","valueCount","_pointLabels","pointLabelOpts","additionalAngle","centerPointLabels","getPointLabelContext","getPointPosition","drawingArea","plFont","updateLimits","setCenterPoint","_pointLabelItems","extra","outerDistance","pointLabelPosition","yForAngle","getTextAlignForAngle","leftForTextAlign","buildPointLabelItems","hLimits","vLimits","pathRadiusLine","RadialLinearScale","leftMovement","rightMovement","topMovement","bottomMovement","scalingFactor","scaledDistance","pointLabel","createPointLabelContext","distanceFromCenter","backdropLeft","backdropTop","backdropWidth","backdropHeight","drawPointLabels","gridLineOpts","drawRadiusLine","animate","INTERVALS","millisecond","common","steps","second","minute","hour","day","week","month","quarter","year","UNITS","sorter","adapter","_adapter","_parseOpts","parser","isoWeekday","startOf","determineUnitForAutoTicks","minUnit","capacity","interval","addTick","time","timestamps","ticksFromTimestamps","majorUnit","setMajorTicks","TimeScale","_unit","_majorUnit","_offsets","_normalized","displayFormats","formats","normalized","_applyBounds","_getLabelBounds","endOf","getLabelTimestamps","timeOpts","_generate","_filterBetween","_getLabelCapacity","determineUnitForFormatting","determineMajorUnit","initOffsets","offsetAfterAutoskip","getDecimalForValue","hasWeekday","getDataTimestamps","tooltipFormat","datetime","minorFormat","majorFormat","_tickFormatFunction","offsets","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","_getLabelSize","prevSource","nextSource","prevTarget","nextTarget","TimeSeriesScale","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","ButtonComponent","elementRef","createRef","forwardRef","loading","updateForwardRef","renderTooltip","tooltipOptions","destroy","tip","_classNames","loadingIcon","iconPos","getJSXIcon","dangerouslySetInnerHTML","__html","badge","badgeClassName","isDisabled","renderIcon","renderLabel","renderBadge","buttonProps","findDiffKeys","Button","rHyphen","pascalCase","_","BsComponent","Tag","resolvedPrefix","memoize","cacheDefault","serializer","serializerDefault","strategy","strategyDefault","monadic","computedValue","variadic","assemble","serialize","ObjectWithoutPrototypeCache","strategies","scrollbarSize","recalc","canUseDOM","ModalDialog","contentClassName","centered","fullscreen","scrollable","dialogClass","fullScreenClass","ModalHeader","AbstractModalHeader","closeLabel","closeButton","DivStyledAsH4","divWithClassName","keyboard","autoFocus","enforceFocus","restoreFocus","dialogAs","DialogTransition","Fade","BackdropTransition","Modal","dialogClassName","Dialog","ariaLabelledby","onEscapeKeyDown","onShow","onHide","restoreFocusOptions","onEntered","onExit","onExiting","onEnter","onEntering","onExited","backdropClassName","propsManager","manager","useState","modalStyle","animateStaticModal","setAnimateStaticModal","waitingForMouseUpRef","useRef","ignoreBackdropClickRef","removeStaticModalAnimationRef","setModalRef","mergedRef","useMergedRefs","handleHide","useEventCallback","isRTL","modalContext","getModalManager","getSharedManager","updateDialogStyle","containerIsOverflowing","getScrollbarWidth","modalIsOverflowing","scrollHeight","ownerDocument","getScrollbarSize","handleWindowResize","dialog","useWillUnmount","handleDialogMouseDown","handleMouseUp","handleStaticModalAnimation","transitionEnd","handleClick","handleStaticBackdropClick","renderBackdrop","useCallback","backdropProps","baseModalStyle","ModalContext","BaseModal","isAppearing","backdropTransition","renderDialog","dialogProps","role","onMouseUp","Body","ModalBody","Header","ModalTitle","Footer","ModalFooter","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","desc","filterProps","whitelist","filtered","DEFAULT_INTL_CONFIG","messages","timeZone","defaultLocale","defaultFormats","onError","createIntlCache","dateTime","relativeTime","pluralRules","displayNames","createFastMemoizeCache","store","createFormatters","RelativeTimeFormat","ListFormat","DisplayNames","getDateTimeFormat","DateTimeFormat","getPluralRules","PluralRules","getMessageFormat","overrideFormats","IntlMessageFormat","getRelativeTimeFormat","getListFormat","getDisplayNames","getNamedFormat","formatType","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","BrowserRouter","historyRef","createBrowserHistory","history","action","useSearchParams","defaultInit","defaultSearchParamsRef","createSearchParams","searchParams","URLSearchParams","ErrorKind","TYPE","SKELETON_TYPE","isLiteralElement","literal","isArgumentElement","argument","isNumberElement","isDateElement","isTimeElement","isSelectElement","isPluralElement","plural","isPoundElement","pound","isTagElement","isNumberSkeleton","isDateTimeSkeleton","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","era","RangeError","hour12","hourCycle","timeZoneName","WHITE_SPACE_REGEX","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseConciseScientificAndEngineeringStem","stem","minimumIntegerDigits","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens","tokens_1","token","currency","useGrouping","compactDisplay","currencyDisplay","unitDisplay","g3","g4","g5","conciseScientificAndEngineeringOpts","SPACE_SEPARATOR_START_REGEX","SPACE_SEPARATOR_END_REGEX","createLocation","hasNativeStartsWith","hasNativeFromCodePoint","fromCodePoint","hasNativeFromEntries","fromEntries","hasNativeCodePointAt","codePointAt","hasTrimStart","trimStart","hasTrimEnd","trimEnd","isSafeInteger","REGEX_SUPPORTS_U_AND_Y","RE","matchIdentifierAtIndex","codePoints","entries_1","charCodeAt","flag","IDENTIFIER_PREFIX_RE_1","lastIndex","_isWhiteSpace","_isPatternSyntax","Parser","requiresOtherClause","shouldParseSkeletons","parseMessage","nestingLevel","parentArgType","expectingCloseTag","isEOF","char","parseArgument","peek","UNMATCHED_CLOSING_TAG","clonePosition","_isAlpha","parseTag","parseLiteral","bump","startPosition","parseTagName","bumpSpace","bumpIf","childrenResult","endTagStartPosition","INVALID_TAG","closingTagNameStartPosition","UNCLOSED_TAG","startOffset","parseQuoteResult","tryParseQuote","parseUnquotedResult","tryParseUnquoted","parseLeftAngleResult","tryParseLeftAngleBracket","codepoint","ch","openingBracePosition","EXPECT_ARGUMENT_CLOSING_BRACE","EMPTY_ARGUMENT","parseIdentifierIfPossible","MALFORMED_ARGUMENT","parseArgumentOptions","startingPosition","endOffset","bumpTo","typeStartPosition","typeEndPosition","EXPECT_ARGUMENT_TYPE","styleAndLocation","styleStartPosition","parseSimpleArgStyleIfPossible","EXPECT_ARGUMENT_STYLE","styleLocation","argCloseResult","tryParseArgumentClose","location_1","parseNumberSkeletonFromString","EXPECT_DATE_TIME_SKELETON","parsedOptions","typeEndPosition_1","EXPECT_SELECT_ARGUMENT_OPTIONS","identifierAndLocation","pluralOffset","EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE","tryParseDecimalInteger","INVALID_PLURAL_ARGUMENT_OFFSET_VALUE","optionsResult","tryParsePluralOrSelectOptions","location_2","pluralType","INVALID_ARGUMENT_TYPE","nestedBraces","apostrophePosition","bumpUntil","UNCLOSED_QUOTE_IN_ARGUMENT_STYLE","stringTokens_1","stemAndOptions","options_1","INVALID_NUMBER_SKELETON","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selectorLocation","EXPECT_PLURAL_ARGUMENT_SELECTOR","INVALID_PLURAL_ARGUMENT_SELECTOR","DUPLICATE_SELECT_ARGUMENT_SELECTOR","DUPLICATE_PLURAL_ARGUMENT_SELECTOR","EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT","EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT","fragmentResult","EXPECT_SELECT_ARGUMENT_SELECTOR","MISSING_OTHER_CLAUSE","expectNumberError","invalidNumberError","hasDigits","kind","currentOffset","nextCode","pruneLocation","els","SyntaxError","originalMessage","captureLocation","tooltipWrapper","createDocumentFragment","tooltipEl","ReactDOM","updateTooltip","newProps","cloneElement","unmountComponentAtNode","updateContent","newContent","onMouseEnter","onMouseLeave","getTargetOption","mouseTrack","hasTargetOption","autoHide","hasAttribute","showEvent","hideEvent","isMouseTrack","mouseTrackTop","mouseTrackLeft","tooltipTextEl","isContentEmpty","updateTooltipState","updateText","containerEl","applyDelay","sendCallback","onBeforeShow","setState","getPosition","bindDocumentResizeListener","bindScrollListener","_this3","clearTimeouts","onBeforeHide","isAutoHide","allowHide","unbindDocumentResizeListener","scrollHandler","coordinate","_this4","_this$getMouseTrackPo","getMouseTrackPosition","findCollisionPosition","flipfitCollision","currentPosition","_currentPosition$at","atX","atY","myX","updateContainerPosition","_this5","documentResizeListener","isAndroid","_this6","_this$getEvents","getEvents","_this$getEvents2","delayProp","showDelayTimeout","updateDelayTimeout","hideDelayTimeout","unloadTargetEvents","loadTargetEvents","setTargetEventOperations","operation","_this7","setEvent","prevState","_this8","_this9","tooltipClassName","isTargetContentEmpty","renderElement","Portal","showDelay","updateDelay","hideDelay","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","initialStatus","appear","isMounting","enter","appearStatus","unmountOnExit","mountOnEnter","status","nextCallback","_inheritsLoose","getDerivedStateFromProps","_proto","componentDidMount","updateStatus","componentDidUpdate","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","exit","mounting","performEnter","performExit","appearing","nodeRef","findDOMNode","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onTransitionEnd","nextState","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","_ref3","maybeNextCallback","_this$props","childProps","TransitionGroupContext","Children","only","contextType","OverlayService","variant","useButtonProps","href","useCommittedRef","InputNumber","focused","constructParser","onInputKeyDown","onInputKeyPress","onInputClick","onInputBlur","onInputFocus","onPaste","onUpButtonMouseLeave","onUpButtonMouseDown","onUpButtonMouseUp","onUpButtonKeyDown","onUpButtonKeyUp","onDownButtonMouseLeave","onDownButtonMouseDown","onDownButtonMouseUp","onDownButtonKeyDown","onDownButtonKeyUp","inputRef","localeMatcher","minFractionDigits","maxFractionDigits","numberFormat","getOptions","numerals","_numeral","_group","getGroupingExpression","_minusSign","getMinusSignExpression","_currency","getCurrencyExpression","_decimal","getDecimalExpression","_suffix","getSuffixExpression","_prefix","getPrefixExpression","_index","groupChar","prefixChar","escapeRegExp","suffixChar","filteredText","clearTimer","timer","repeat","newValue","validateValue","updateInput","handleOnChange","focus","isSpecialChar","lastValue","shiftKey","inputValue","newValueStr","isNumeralChar","formatValue","deleteChar","_this$getDecimalCharI","getDecimalCharIndexes","decimalCharIndex","decimalCharIndexWithoutPrefix","decimalLength","getDecimalLength","insertedText","isDecimalMode","updateValue","deleteRange","_deleteChar","_this$getDecimalCharI2","_decimalCharIndex","_decimalCharIndexWithoutPrefix","_decimalLength","$refs","$el","_insertedText","isDecimalSign","isMinusSign","insert","clipboardData","getData","filteredData","minusCharIndex","suffixCharIndex","currencyCharIndex","minusCharIndexOnText","allowMinusSign","_this$getCharIndexes","getCharIndexes","insertText","resolvedOptions","charIndex","valueLength","prefixLength","initCursor","resetRegex","valueStr","insertedValueStr","allowEmpty","isValueChanged","inputEl","currentLength","concatValues","_selectionEnd","newLength","startExpr","sRegex","tExpr","tRegex","prevChar","isGroupChar","_selectionEnd2","newVal","val1","val2","valueSplit","onValueChange","stopPropagation","persist","updateInputValue","showButtons","buttonLayout","inputMode","updateInputRef","isOptionChanged","inputClassName","valueToRender","InputText","inputId","inputStyle","tabIndex","getInputMode","maxLength","maxlength","required","placeholder","ariaLabelledBy","incrementButtonClassName","incrementButtonIcon","onKeyUp","decrementButtonClassName","decrementButtonIcon","upButton","renderUpButton","downButton","renderDownButton","Fragment","isVertical","inputElement","renderInputElement","buttonGroup","renderButtonGroup","_createSuper$8","_isNativeReflectConstruct$8","FirstPageLink","iconClassName","template","defaultOptions","_createSuper$7","_isNativeReflectConstruct$7","NextPageLink","_createSuper$6","_isNativeReflectConstruct$6","PrevPageLink","_createSuper$5","_isNativeReflectConstruct$5","LastPageLink","_createSuper$4","_isNativeReflectConstruct$4","PageLinks","pageLink","startPageInView","endPageInView","page","onPageLinkClick","view","startPage","endPage","currentPage","totalPages","pageCount","_createSuper$3","_isNativeReflectConstruct$3","rows","links","RowsPerPageDropdown","hasOptions","Dropdown","totalRecords","_createSuper$2","_isNativeReflectConstruct$2","CurrentPageReport","report","reportTemplate","_createSuper$1","_isNativeReflectConstruct$1","JumpToPageInput","Paginator","changePageToFirst","changePageToPrev","changePageToNext","changePageToLast","onRowsChange","changePage","getPage","getPageCount","numberOfPages","visiblePages","pageLinkSize","pageLinks","boundaries","calculatePageLinkBoundaries","pc","newPageState","onPageChange","isRowChanged","isFirstPage","isLastPage","updatePageLinks","rowsPerPageOptions","dropdownAppendTo","currentPageReportTemplate","_template","alwaysShow","leftContent","rightContent","renderElements","leftElement","rightElement","_createSuper$c","_isNativeReflectConstruct$c","RowRadioButton","checked","tableSelector","_createSuper$b","_isNativeReflectConstruct$b","RowCheckbox","ownKeys$7","_objectSpread$7","_createSuper$a","_isNativeReflectConstruct$a","BodyCell","editing","editingRowData","rowData","styleObject","onEditorFocus","onRowToggle","onRowEditSave","onRowEditCancel","onRowEditInit","editorCallback","getColumnProp","selection","compareSelectionBy","selectedCell","rowIndex","equalsData","cellIndex","isSameNode","virtualScrollerOptions","columnStyle","selected","isSelected","editingMeta","cellSelected","allowCellSelection","collection","getCellCallbackParams","unbindDocumentEditListener","overlayEventListener","submit","callbackParams","newRowData","closeCell","cell","nextCell","nextElementSibling","findNextSelectableRow","prevCell","previousElementSibling","findPrevSelectableRow","nextRow","prevRow","currentCell","tabindexTimeout","focusableEl","getFirstFocusableElement","keyHelper","editMode","isEditable","selectOnEdit","selfClick","bindDocumentEditListener","isOutsideClicked","switchCellToViewMode","findPrevSelectableCell","changeTabIndex","findNextSelectableCell","upCell","downCell","isClickable","newData","getEditingRowData","documentEditListener","updateStickyPosition","focusOnElement","onEditingMetaChange","getVirtualScrollerOption","cellFirst","cellLast","cellEven","cellOdd","editorKeyHelper","isRowEditor","getTabIndex","cellClassName","getPropValue","tableProps","responsiveLayout","frozenRow","showSelectionElement","onRadioChange","onCheckboxChange","showRowReorderElement","expanded","expandedRowIcon","collapsedRowIcon","ariaControls","expanderProps","rowEditorProps","onSaveClick","saveClassName","saveIconClassName","onCancelClick","cancelClassName","cancelIconClassName","onInitClick","initClassName","initIconClassName","renderLoading","ownKeys$6","_createSuper$9","_isNativeReflectConstruct$9","BodyRow","onRowEditChange","onDoubleClick","onRightClick","onTouchEnd","onDragStart","onDragEnd","onDragOver","onDragLeave","onDrop","onEditInit","onEditSave","onEditCancel","selectionModeInColumn","groupRowsBy","data1","data2","isFocusable","currentRow","rowGroupMode","isGrouped","prevRowData","currentRowFieldData","nextRowFieldData","groupRowSpan","nextRowData","onRowClick","onRowDoubleClick","onRowRightClick","onRowTouchEnd","onRowMouseDown","onRowMouseUp","onRowDragStart","onRowDragOver","onRowDragLeave","onRowDragEnd","onRowDrop","editingRows","dataKeyValue","_objectSpread$6","editingRowIndex","onEditChange","rowEditValidator","onRowEditComplete","columns","shouldRenderBodyCell","calculateRowGroupSize","getEditing","onCellClick","onCellMouseDown","onCellMouseUp","rowClassName","contextMenuSelected","allowRowSelection","renderContent","onContextMenu","RowTogglerButton","_excluded","ownKeys$5","_objectSpread$5","TableBody","rowGroupHeaderStyleObject","onDragSelectionMouseMove","onDragSelectionMouseUp","virtualScrollerContentRef","isCheckboxSelectionModeInColumn","isRadioSelectionMode","isRadioSelectionModeInColumn","isCheckboxSelectionMode","contextMenuSelection","expandedRows","isSubheaderGrouping","expandableRowGroups","isRowGroupExpanded","dragSelection","isMultipleSelection","allowDrag","rowTouched","metaKeySelection","anchorRowIndex","isRadioOnlySelection","isCheckboxOnlySelection","cellSelection","tableHeaderHeight","toggleable","onUnselect","onSelect","onSelectionChange","selectionIndex","clearSelection","rangeRowIndex","selectionInRange","selectRange","anchorCellIndex","rangeStart","rangeEnd","isLazyAndPaginator","lazy","paginator","anchorRowFirst","selectRangeOnCell","selectRangeOnRow","rowRangeStart","rowRangeEnd","rangeRowData","cellRangeStart","cellRangeEnd","onCellSelect","onRowSelect","onCellUnselect","onRowUnselect","dragSelectionHelper","initialDragPosition","bindDragSelectionEvents","isFocused","checkbox","radio","allowSelection","allowRangeSelection","onRangeSelection","allowMetaKeySelection","isSingleSelection","onSingleSelection","onMultipleSelection","onContextMenuSelectionChange","draggable","allowRowDrag","enableDragSelection","isSameRow","onRowCollapse","onRowExpand","expandedRowIndex","rowDragging","draggedRowIndex","dataTransfer","setData","rowElement","rowY","rowMidY","prevRowElement","droppedRowIndex","dropIndex","reorderArray","onRowReorder","dragIndex","_this$initialDragPosi","dx","dy","allowCellDrag","isSameCell","updateFrozenRowStickyPosition","updateFrozenRowGroupHeaderStickyPosition","isVirtualScrollerDisabled","updateVirtualScrollerPosition","unbindDragSelectionEvents","getColumnsLength","shouldRenderRowGroupHeader","rowGroupHeaderStyle","toggler","rowGroupHeaderTemplate","isSelectionEnabled","isContextMenuSelected","isRowEditing","rowExpansionTemplate","shouldRenderRowGroupFooter","rowGroupFooterTemplate","getRowKey","isRowExpanded","groupHeader","renderGroupHeader","renderRow","expansion","renderExpansion","groupFooter","renderGroupFooter","renderEmptyContent","ownKeys$4","FooterCell","_objectSpread$4","TableFooter","footerColumnGroup","renderFooterCells","isVisible","renderGroupFooterCells","hasFooter","HeaderCheckbox","boxClassName","ownKeys$3","_objectSpread$3","ColumnFilter","overlayVisible","overlayRef","filterCallback","filterApplyCallback","onOperatorChange","addConstraint","clearFilter","applyFilter","onInputChange","toggleMenu","onOverlayEnter","onOverlayExit","onOverlayExited","onContentKeyDown","onContentClick","onContentMouseDown","filtersStore","fieldFilter","operator","isFilterBlank","constraints","filterModel","matchMode","findDataType","matchModes","fieldConstraints","isTargetClicked","filterStoreModel","hasMatchMode","filterClearCallback","defaultConstraint","getDefaultConstraint","onFilterChange","onFilterApply","filterApplyClickCallback","focusable","filterMatchModeChangeCallback","nextItem","findNextItem","prevItem","findPrevItem","onRowMatchModeChange","filterOperationChangeCallback","filterConstraintAddCallback","newConstraint","constraing","filterConstraintRemoveCallback","removedConstraint","firstElementChild","lastElementChild","alignOverlay","bindOutsideClickListener","bindResizeListener","onOverlayHide","unbindOutsideClickListener","unbindResizeListener","outsideClickListener","resizeListener","model","renderFilterElement","fieldConstraint","showMenuButton","hasFilter","onToggleButtonKeyDown","hasRowFilter","isShowMatchModes","noFilterLabel","isRowMatchModeSelected","onRowMatchModeKeyDown","isShowOperator","operatorOptions","constraint","onMenuMatchModeChange","_this10","showRemoveIcon","removeRuleLabel","removeRuleButtonLabel","removeConstraint","_this11","matchModeDropdown","renderMatchModeDropdown","menuFilterElement","renderMenuFilterElement","removeButton","renderRemoveButton","isShowAddConstraint","addRuleLabel","addRuleButtonLabel","clearLabel","clearButtonLabel","applyLabel","applyButtonLabel","clearButton","renderFilterClearButton","applyButton","renderFilterApplyButton","renderOperator","renderConstraints","renderAddRule","buttonBar","renderButtonBar","renderRowItems","renderItems","CSSTransition","rowFilterElement","renderRowFilterElement","menuButton","renderMenuButton","renderClearButton","renderOverlay","ownKeys$2","HeaderCell","onResizerMouseDown","onResizerClick","onResizerDoubleClick","multiSortMeta","allSortableDisabled","sortOrder","metaIndex","sortMode","getMultiSortMetaIndex","sortIcon","_objectSpread$2","filterRow","prevColumn","onSortableChange","isSortableDisabled","onSortChange","sortableDisabledFields","onColumnMouseDown","onColumnDragStart","onColumnDragOver","onColumnDragLeave","onColumnDrop","onColumnResizeStart","onColumnResizerClick","onColumnResizerDoubleClick","updateSortableDisabled","resizableColumns","isBadgeVisible","groupRowSortField","filterDisplay","allRowsSelected","onColumnCheckboxChange","sortMeta","renderTitle","renderSortIcon","renderCheckbox","renderFilter","getSortMeta","reorderableColumns","ariaSort","getAriaSort","resizer","renderResizer","renderHeader","TableHeader","isSingleSort","isMultipleSort","isColumnSorted","renderHeaderCells","isAllSortableDisabled","_col$props","colStyle","colClassName","colKey","headerColumnGroup","renderGroupHeaderCells","headerRow","renderFilterCells","DataTable","d_rows","columnOrder","groupRowsSortMeta","onPage","onSort","d_filters","cloneFilters","onFilter","isStateful","restoreState","attributeSelector","onColumnHeaderMouseDown","onColumnHeaderDragStart","onColumnHeaderDragOver","onColumnHeaderDragLeave","onColumnHeaderDrop","onColumnHeaderCheckboxChange","stateStorage","stateKey","isCustomStateStorage","isNotEmpty","getFilters","globalFilter","ignoreReorderable","orderedColumns","findColumnByKey","localStorage","sessionStorage","getFirst","getRows","getSortField","getSortOrder","getMultiSortMeta","saveColumnWidths","customSaveState","getStorage","setItem","onStateSave","removeItem","restoredState","customRestoreState","stateString","getItem","_restoreState","getOnPageParams","getTotalRecords","processedData","columnWidthsState","columnWidths","tableWidthState","tableWidth","onStateRestore","columnResizeMode","createStyleElement","styleElement","frozenValue","selectableVal","containerLeft","resizeColumn","resizeColumnElement","columnResizing","lastResizeHelperX","bindColumnResizeEvents","resizeHelper","columnWidth","newColumnWidth","nextColumnWidth","resizeTableCells","onColumnResizeEnd","saveState","unbindColumnResizeEvents","colIndex","destroyStyleElement","colWidth","documentColumnResizeListener","onColumnResize","documentColumnResizeEndListener","onAllRowsUnselect","onAllRowsSelect","colReorderIconWidth","getHiddenElementOuterWidth","reorderIndicatorUp","colReorderIconHeight","getHiddenElementOuterHeight","draggedColumn","draggedColumnElement","findParentHeader","dropHeader","containerOffset","dropHeaderOffset","targetLeft","columnCenter","reorderIndicatorDown","dropPosition","allowDrop","getColumns","isSameColumn","col1","col2","dragColIndex","dropColIndex","orders","onColReorder","responsiveStyleElement","breakpoint","clearEditingMetaData","eventMeta","defaultSortOrder","columnSortable","columnSortFunction","columnField","getCalculatedSortOrder","newMetaData","addSortMeta","removableSort","removeSortMeta","currentOrder","sortMultiple","value1","value2","localeCompare","firstSortMeta","multisortField","filterTimeout","filterDelay","globalFilterFieldsArray","filteredValue","isGlobalFilter","globalFilterFields","localMatch","globalMatch","localFiltered","filterMeta","filterConstraint","executeLocalFilter","_j","globalFilterField","FilterMatchMode$1","dataFieldValue","_this12","cloned","_filters","resetColumnOrder","_this13","selectionOnly","_column$props","csvSeparator","record","_column$props2","cellData","exportFunction","exportCSV","exportFilename","localState","filterLocal","sortSingle","createResponsiveStyle","restoreColumnWidths","destroyResponsiveStyle","getGroupRowSortField","contentRef","frozenBody","dataToRender","_this14","VirtualScroller","loaderDisabled","showSpacer","contentTemplate","tableClassName","tableHeader","renderTableHeader","tableBody","renderTableBody","tableFooter","renderTableFooter","spacerRef","tableStyle","paginatorClassName","paginatorTemplate","paginatorLeft","paginatorRight","alwaysShowPaginator","paginatorDropdownAppendTo","paginatorPosition","renderPaginator","_this15","_this16","_this17","getSelectionModeInColumn","rowHover","autoLayout","scrollDirection","stripedRows","showGridlines","loader","renderLoader","paginatorTop","renderPaginatorTop","paginatorBottom","renderPaginatorBottom","renderFooter","renderResizeHelper","reorderIndicators","renderReorderIndicators","frozenWidth","KeyFilter","getBrowser","safari","SAFARI_KEYS","KEYS","RETURN","TAB","ESC","opera","charCode","keyfilter","validateOnly","regex","DEFAULT_MASKS","getKey","mozilla","isNavKeyPress","BACKSPACE","DELETE","getCharCode","cc","isSpecialKey","validatePattern","pint","int","pnum","money","email","alphanum","InputTextComponent","validate","isFilled","inputProps","psuedoElement","defaultView","ownerWindow","rUpper","msPattern","hyphenateStyleName","hyphenate","supportedTransforms","css","transforms","isTransform","removeProperty","invariantIntlContext","CORE_DEFAULT_INTL_CONFIG","assignUniqueKeysToParts","formatXMLElementFn","objA","objB","aKeys","bKeys","mounted","hasDOM","onMounted","onUnmounted","createPortal","faArrowDown","faBan","faCheck","faCheckCircle","faFileExcel","_iconsCache","faAd","faAddressBook","faAddressCard","faAdjust","faAirFreshener","faAlignCenter","faAlignJustify","faAlignLeft","faAlignRight","faAllergies","faAmbulance","faAmericanSignLanguageInterpreting","faAnchor","faAngleDoubleDown","faAngleDoubleLeft","faAngleDoubleRight","faAngleDoubleUp","faAngleDown","faAngleLeft","faAngleRight","faAngleUp","faAngry","faAnkh","faAppleAlt","faArchive","faArchway","faArrowAltCircleDown","faArrowAltCircleLeft","faArrowAltCircleRight","faArrowAltCircleUp","faArrowCircleDown","faArrowCircleLeft","faArrowCircleRight","faArrowCircleUp","faArrowLeft","faArrowRight","faArrowUp","faArrowsAlt","faArrowsAltH","faArrowsAltV","faAssistiveListeningSystems","faAsterisk","faAt","faAtlas","faAtom","faAudioDescription","faAward","faBaby","faBabyCarriage","faBackspace","faBackward","faBacon","faBacteria","faBacterium","faBahai","faBalanceScale","faBalanceScaleLeft","faBalanceScaleRight","faBandAid","faBarcode","faBars","faBaseballBall","faBasketballBall","faBath","faBatteryEmpty","faBatteryFull","faBatteryHalf","faBatteryQuarter","faBatteryThreeQuarters","faBed","faBeer","faBell","faBellSlash","faBezierCurve","faBible","faBicycle","faBiking","faBinoculars","faBiohazard","faBirthdayCake","faBlender","faBlenderPhone","faBlind","faBlog","faBold","faBolt","faBomb","faBone","faBong","faBook","faBookDead","faBookMedical","faBookOpen","faBookReader","faBookmark","faBorderAll","faBorderNone","faBorderStyle","faBowlingBall","faBox","faBoxOpen","faBoxTissue","faBoxes","faBraille","faBrain","faBreadSlice","faBriefcase","faBriefcaseMedical","faBroadcastTower","faBroom","faBrush","faBug","faBuilding","faBullhorn","faBullseye","faBurn","faBus","faBusAlt","faBusinessTime","faCalculator","faCalendar","faCalendarAlt","faCalendarCheck","faCalendarDay","faCalendarMinus","faCalendarPlus","faCalendarTimes","faCalendarWeek","faCamera","faCameraRetro","faCampground","faCandyCane","faCannabis","faCapsules","faCar","faCarAlt","faCarBattery","faCarCrash","faCarSide","faCaravan","faCaretDown","faCaretLeft","faCaretRight","faCaretSquareDown","faCaretSquareLeft","faCaretSquareRight","faCaretSquareUp","faCaretUp","faCarrot","faCartArrowDown","faCartPlus","faCashRegister","faCat","faCertificate","faChair","faChalkboard","faChalkboardTeacher","faChargingStation","faChartArea","faChartBar","faChartLine","faChartPie","faCheckDouble","faCheckSquare","faCheese","faChess","faChessBishop","faChessBoard","faChessKing","faChessKnight","faChessPawn","faChessQueen","faChessRook","faChevronCircleDown","faChevronCircleLeft","faChevronCircleRight","faChevronCircleUp","faChevronDown","faChevronLeft","faChevronRight","faChevronUp","faChild","faChurch","faCircle","faCircleNotch","faCity","faClinicMedical","faClipboard","faClipboardCheck","faClipboardList","faClock","faClone","faClosedCaptioning","faCloud","faCloudDownloadAlt","faCloudMeatball","faCloudMoon","faCloudMoonRain","faCloudRain","faCloudShowersHeavy","faCloudSun","faCloudSunRain","faCloudUploadAlt","faCocktail","faCode","faCodeBranch","faCoffee","faCog","faCogs","faCoins","faColumns","faComment","faCommentAlt","faCommentDollar","faCommentDots","faCommentMedical","faCommentSlash","faComments","faCommentsDollar","faCompactDisc","faCompass","faCompress","faCompressAlt","faCompressArrowsAlt","faConciergeBell","faCookie","faCookieBite","faCopy","faCopyright","faCouch","faCreditCard","faCrop","faCropAlt","faCross","faCrosshairs","faCrow","faCrown","faCrutch","faCube","faCubes","faCut","faDatabase","faDeaf","faDemocrat","faDesktop","faDharmachakra","faDiagnoses","faDice","faDiceD20","faDiceD6","faDiceFive","faDiceFour","faDiceOne","faDiceSix","faDiceThree","faDiceTwo","faDigitalTachograph","faDirections","faDisease","faDivide","faDizzy","faDna","faDog","faDollarSign","faDolly","faDollyFlatbed","faDonate","faDoorClosed","faDoorOpen","faDotCircle","faDove","faDownload","faDraftingCompass","faDragon","faDrawPolygon","faDrum","faDrumSteelpan","faDrumstickBite","faDumbbell","faDumpster","faDumpsterFire","faDungeon","faEdit","faEgg","faEject","faEllipsisH","faEllipsisV","faEnvelope","faEnvelopeOpen","faEnvelopeOpenText","faEnvelopeSquare","faEquals","faEraser","faEthernet","faEuroSign","faExchangeAlt","faExclamation","faExclamationCircle","faExclamationTriangle","faExpand","faExpandAlt","faExpandArrowsAlt","faExternalLinkAlt","faExternalLinkSquareAlt","faEye","faEyeDropper","faEyeSlash","faFan","faFastBackward","faFastForward","faFaucet","faFax","faFeather","faFeatherAlt","faFemale","faFighterJet","faFile","faFileAlt","faFileArchive","faFileAudio","faFileCode","faFileContract","faFileCsv","faFileDownload","faFileExport","faFileImage","faFileImport","faFileInvoice","faFileInvoiceDollar","faFileMedical","faFileMedicalAlt","faFilePdf","faFilePowerpoint","faFilePrescription","faFileSignature","faFileUpload","faFileVideo","faFileWord","faFill","faFillDrip","faFilm","faFilter","faFingerprint","faFire","faFireAlt","faFireExtinguisher","faFirstAid","faFish","faFistRaised","faFlag","faFlagCheckered","faFlagUsa","faFlask","faFlushed","faFolder","faFolderMinus","faFolderOpen","faFolderPlus","faFont","faFontAwesomeLogoFull","faFootballBall","faForward","faFrog","faFrown","faFrownOpen","faFunnelDollar","faFutbol","faGamepad","faGasPump","faGavel","faGem","faGenderless","faGhost","faGift","faGifts","faGlassCheers","faGlassMartini","faGlassMartiniAlt","faGlassWhiskey","faGlasses","faGlobe","faGlobeAfrica","faGlobeAmericas","faGlobeAsia","faGlobeEurope","faGolfBall","faGopuram","faGraduationCap","faGreaterThan","faGreaterThanEqual","faGrimace","faGrin","faGrinAlt","faGrinBeam","faGrinBeamSweat","faGrinHearts","faGrinSquint","faGrinSquintTears","faGrinStars","faGrinTears","faGrinTongue","faGrinTongueSquint","faGrinTongueWink","faGrinWink","faGripHorizontal","faGripLines","faGripLinesVertical","faGripVertical","faGuitar","faHSquare","faHamburger","faHammer","faHamsa","faHandHolding","faHandHoldingHeart","faHandHoldingMedical","faHandHoldingUsd","faHandHoldingWater","faHandLizard","faHandMiddleFinger","faHandPaper","faHandPeace","faHandPointDown","faHandPointLeft","faHandPointRight","faHandPointUp","faHandPointer","faHandRock","faHandScissors","faHandSparkles","faHandSpock","faHands","faHandsHelping","faHandsWash","faHandshake","faHandshakeAltSlash","faHandshakeSlash","faHanukiah","faHardHat","faHashtag","faHatCowboy","faHatCowboySide","faHatWizard","faHdd","faHeadSideCough","faHeadSideCoughSlash","faHeadSideMask","faHeadSideVirus","faHeading","faHeadphones","faHeadphonesAlt","faHeadset","faHeart","faHeartBroken","faHeartbeat","faHelicopter","faHighlighter","faHiking","faHippo","faHistory","faHockeyPuck","faHollyBerry","faHome","faHorse","faHorseHead","faHospital","faHospitalAlt","faHospitalSymbol","faHospitalUser","faHotTub","faHotdog","faHotel","faHourglass","faHourglassEnd","faHourglassHalf","faHourglassStart","faHouseDamage","faHouseUser","faHryvnia","faICursor","faIceCream","faIcicles","faIcons","faIdBadge","faIdCard","faIdCardAlt","faIgloo","faImage","faImages","faInbox","faIndent","faIndustry","faInfinity","faInfo","faInfoCircle","faItalic","faJedi","faJoint","faJournalWhills","faKaaba","faKey","faKeyboard","faKhanda","faKiss","faKissBeam","faKissWinkHeart","faKiwiBird","faLandmark","faLanguage","faLaptop","faLaptopCode","faLaptopHouse","faLaptopMedical","faLaugh","faLaughBeam","faLaughSquint","faLaughWink","faLayerGroup","faLeaf","faLemon","faLessThan","faLessThanEqual","faLevelDownAlt","faLevelUpAlt","faLifeRing","faLightbulb","faLink","faLiraSign","faList","faListAlt","faListOl","faListUl","faLocationArrow","faLock","faLockOpen","faLongArrowAltDown","faLongArrowAltLeft","faLongArrowAltRight","faLongArrowAltUp","faLowVision","faLuggageCart","faLungs","faLungsVirus","faMagic","faMagnet","faMailBulk","faMale","faMap","faMapMarked","faMapMarkedAlt","faMapMarker","faMapMarkerAlt","faMapPin","faMapSigns","faMarker","faMars","faMarsDouble","faMarsStroke","faMarsStrokeH","faMarsStrokeV","faMask","faMedal","faMedkit","faMeh","faMehBlank","faMehRollingEyes","faMemory","faMenorah","faMercury","faMeteor","faMicrochip","faMicrophone","faMicrophoneAlt","faMicrophoneAltSlash","faMicrophoneSlash","faMicroscope","faMinus","faMinusCircle","faMinusSquare","faMitten","faMobile","faMobileAlt","faMoneyBill","faMoneyBillAlt","faMoneyBillWave","faMoneyBillWaveAlt","faMoneyCheck","faMoneyCheckAlt","faMonument","faMoon","faMortarPestle","faMosque","faMotorcycle","faMountain","faMouse","faMousePointer","faMugHot","faMusic","faNetworkWired","faNeuter","faNewspaper","faNotEqual","faNotesMedical","faObjectGroup","faObjectUngroup","faOilCan","faOm","faOtter","faOutdent","faPager","faPaintBrush","faPaintRoller","faPalette","faPallet","faPaperPlane","faPaperclip","faParachuteBox","faParagraph","faParking","faPassport","faPastafarianism","faPaste","faPause","faPauseCircle","faPaw","faPeace","faPen","faPenAlt","faPenFancy","faPenNib","faPenSquare","faPencilAlt","faPencilRuler","faPeopleArrows","faPeopleCarry","faPepperHot","faPercent","faPercentage","faPersonBooth","faPhone","faPhoneAlt","faPhoneSlash","faPhoneSquare","faPhoneSquareAlt","faPhoneVolume","faPhotoVideo","faPiggyBank","faPills","faPizzaSlice","faPlaceOfWorship","faPlane","faPlaneArrival","faPlaneDeparture","faPlaneSlash","faPlay","faPlayCircle","faPlug","faPlus","faPlusCircle","faPlusSquare","faPodcast","faPoll","faPollH","faPoo","faPooStorm","faPoop","faPortrait","faPoundSign","faPowerOff","faPray","faPrayingHands","faPrescription","faPrescriptionBottle","faPrescriptionBottleAlt","faPrint","faProcedures","faProjectDiagram","faPumpMedical","faPumpSoap","faPuzzlePiece","faQrcode","faQuestion","faQuestionCircle","faQuidditch","faQuoteLeft","faQuoteRight","faQuran","faRadiation","faRadiationAlt","faRainbow","faRandom","faReceipt","faRecordVinyl","faRecycle","faRedo","faRedoAlt","faRegistered","faRemoveFormat","faReply","faReplyAll","faRepublican","faRestroom","faRetweet","faRibbon","faRing","faRoad","faRobot","faRocket","faRoute","faRss","faRssSquare","faRubleSign","faRuler","faRulerCombined","faRulerHorizontal","faRulerVertical","faRunning","faRupeeSign","faSadCry","faSadTear","faSatellite","faSatelliteDish","faSave","faSchool","faScrewdriver","faScroll","faSdCard","faSearch","faSearchDollar","faSearchLocation","faSearchMinus","faSearchPlus","faSeedling","faServer","faShapes","faShare","faShareAlt","faShareAltSquare","faShareSquare","faShekelSign","faShieldAlt","faShieldVirus","faShip","faShippingFast","faShoePrints","faShoppingBag","faShoppingBasket","faShoppingCart","faShower","faShuttleVan","faSign","faSignInAlt","faSignLanguage","faSignOutAlt","faSignal","faSignature","faSimCard","faSink","faSitemap","faSkating","faSkiing","faSkiingNordic","faSkull","faSkullCrossbones","faSlash","faSleigh","faSlidersH","faSmile","faSmileBeam","faSmileWink","faSmog","faSmoking","faSmokingBan","faSms","faSnowboarding","faSnowflake","faSnowman","faSnowplow","faSoap","faSocks","faSolarPanel","faSort","faSortAlphaDown","faSortAlphaDownAlt","faSortAlphaUp","faSortAlphaUpAlt","faSortAmountDown","faSortAmountDownAlt","faSortAmountUp","faSortAmountUpAlt","faSortDown","faSortNumericDown","faSortNumericDownAlt","faSortNumericUp","faSortNumericUpAlt","faSortUp","faSpa","faSpaceShuttle","faSpellCheck","faSpider","faSpinner","faSplotch","faSprayCan","faSquare","faSquareFull","faSquareRootAlt","faStamp","faStar","faStarAndCrescent","faStarHalf","faStarHalfAlt","faStarOfDavid","faStarOfLife","faStepBackward","faStepForward","faStethoscope","faStickyNote","faStop","faStopCircle","faStopwatch","faStopwatch20","faStore","faStoreAlt","faStoreAltSlash","faStoreSlash","faStream","faStreetView","faStrikethrough","faStroopwafel","faSubscript","faSubway","faSuitcase","faSuitcaseRolling","faSun","faSuperscript","faSurprise","faSwatchbook","faSwimmer","faSwimmingPool","faSynagogue","faSync","faSyncAlt","faSyringe","faTable","faTableTennis","faTablet","faTabletAlt","faTablets","faTachometerAlt","faTag","faTags","faTape","faTasks","faTaxi","faTeeth","faTeethOpen","faTemperatureHigh","faTemperatureLow","faTenge","faTerminal","faTextHeight","faTextWidth","faTh","faThLarge","faThList","faTheaterMasks","faThermometer","faThermometerEmpty","faThermometerFull","faThermometerHalf","faThermometerQuarter","faThermometerThreeQuarters","faThumbsDown","faThumbsUp","faThumbtack","faTicketAlt","faTimes","faTimesCircle","faTint","faTintSlash","faTired","faToggleOff","faToggleOn","faToilet","faToiletPaper","faToiletPaperSlash","faToolbox","faTools","faTooth","faTorah","faToriiGate","faTractor","faTrademark","faTrafficLight","faTrailer","faTrain","faTram","faTransgender","faTransgenderAlt","faTrash","faTrashAlt","faTrashRestore","faTrashRestoreAlt","faTree","faTrophy","faTruck","faTruckLoading","faTruckMonster","faTruckMoving","faTruckPickup","faTshirt","faTty","faTv","faUmbrella","faUmbrellaBeach","faUnderline","faUndo","faUndoAlt","faUniversalAccess","faUniversity","faUnlink","faUnlock","faUnlockAlt","faUpload","faUser","faUserAlt","faUserAltSlash","faUserAstronaut","faUserCheck","faUserCircle","faUserClock","faUserCog","faUserEdit","faUserFriends","faUserGraduate","faUserInjured","faUserLock","faUserMd","faUserMinus","faUserNinja","faUserNurse","faUserPlus","faUserSecret","faUserShield","faUserSlash","faUserTag","faUserTie","faUserTimes","faUsers","faUsersCog","faUsersSlash","faUtensilSpoon","faUtensils","faVectorSquare","faVenus","faVenusDouble","faVenusMars","faVest","faVestPatches","faVial","faVials","faVideo","faVideoSlash","faVihara","faVirus","faVirusSlash","faViruses","faVoicemail","faVolleyballBall","faVolumeDown","faVolumeMute","faVolumeOff","faVolumeUp","faVoteYea","faVrCardboard","faWalking","faWallet","faWarehouse","faWater","faWaveSquare","faWeight","faWeightHanging","faWheelchair","faWifi","faWind","faWindowClose","faWindowMaximize","faWindowMinimize","faWindowRestore","faWineBottle","faWineGlass","faWineGlassAlt","faWonSign","faWrench","faXRay","faYenSign","faYinYang","Popover","placement","arrowProps","popper","primaryPlacement","bsDirection","getOverlayDirection","PopoverBody","PopoverHeader","POPPER_OFFSET","DropdownItem","DropdownPanelComponent","onFilterInputChange","virtualScrollerRef","selectedIndex","getSelectedOptionIndex","scrollToIndex","filterInputAutoFocus","filterInput","visibleOptions","optionGroup","getOptionGroupChildren","optionLabel","getOptionLabel","optionKey","getOptionRenderKey","isOptionDisabled","itemTemplate","onOptionClick","isFilter","optionGroupLabel","groupContent","optionGroupTemplate","getOptionGroupLabel","groupChildrenContent","renderGroupChildren","getOptionGroupRenderKey","renderItem","renderEmptyMessage","showFilterClear","onFilterClearIconClick","clearIcon","renderFilterClearIcon","containerClassName","autoComplete","onFilterInputKeyDown","virtualScrollerProps","onLazyLoad","isEmptyFilter","panelClassName","transitionOptions","panelStyle","DropdownPanel","onEditableInputChange","onEditableInputFocus","onPanelClick","onOverlayEntered","resetFilter","focusInput","hideOverlay","showOverlay","showOnFocus","onDownKey","onUpKey","getVisibleOptions","prevOption","findPrevOption","selectItem","nextOption","findNextOption","groupIndex","group","optionIndex","findNextOptionInList","findPrevOptionInList","searchTimeout","previousSearchChar","currentSearchChar","searchValue","searchIndex","newOption","searchOptionInGroup","searchOption","selectedOptionUpdated","searchOptionInRange","matchesSearchValue","groupOptions","_groupOptions","updateEditableLabel","getSelectedOption","optionValue","getOptionValue","findOptionIndexInList","selectedOptionIndex","equalityKey","bindDocumentClickListener","unbindDocumentClickListener","resetFilterOnHide","highlightItem","scrollIntoView","block","documentClickListener","isTouchDevice","isClearClicked","optionDisabled","optionGroupChildren","checkValidity","isLazy","searchFields","filterBy","filteredGroups","optgroup","filteredSubOptions","editable","selectedOption","updateInputField","hideTimeout","scrollInView","placeHolderOption","ariaLabel","valueTemplate","showClear","dropdownIcon","hiddenSelect","renderHiddenSelect","keyboardHelper","renderKeyboardHelper","labelElement","renderDropdownIcon","renderClearIcon","SelectableContext","makeEventKey","eventKey","eventName","Context","useEffect","removeOneClass","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","_this$resolveArgument2","_this$resolveArgument3","getClassNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","addOneClass","_addClass","_this$appliedClasses$","immutableProps","CSSTransition$1","Function","qsa","CardImg","CardHeader","contextValue","cardHeaderBsPrefix","CardHeaderContext","DivStyledAsH5","DivStyledAsH6","CardBody","CardTitle","CardSubtitle","CardLink","CardText","CardFooter","CardImgOverlay","Card","bg","Img","Subtitle","Link","ImgOverlay","toFnRef","refA","refB","mergeRefs","tagClassName","severity","dataAttr","dataProp","fadeStyles","transitionClasses","handleEnter","triggerBrowserReflow","TransitionWrapper","transitionEndListener","childRef","innerProps","safeFindDOMNode","componentOrElement","compareDocumentPosition","_WINDOW","_DOCUMENT","_PERFORMANCE","mark","measure","performance","_ref$userAgent","WINDOW","DOCUMENT","PERFORMANCE","IS_DOM","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","oneToTen","oneToTwenty","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","FontAwesomeConfig","attr","coerce","getAttrConfig","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","hooks","shims","namespace","functions","doScroll","readyState","asyncTimer","PENDING","SETTLED","FULFILLED","REJECTED","NOOP","isNode","global","asyncSetTimer","setImmediate","asyncQueue","asyncFlush","asyncCall","invokeCallback","subscriber","owner","settled","_state","promise","handleThenable","fulfill","reason","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","rejectPromise","invokeResolver","onFulfillment","onRejection","fulfilled","rejected","catch","results","race","meaninglessTransform","flipX","flipY","insertCss","headChildren","beforeChild","insertBefore","nextUniqueId","random","htmlEscape","joinStyles","styleName","transformIsMeaningful","transformForSvg","containerWidth","iconWidth","innerTranslate","innerScale","innerRotate","ALL_SPACE","fillBlack","force","makeInlineSvgAbstract","_params$icons","icons","main","maskId","_params$watchable","watchable","found","isUploadedIcon","widthClass","attrClass","uploadedIconWidthStyle","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","makeIconMasking","styleString","makeIconStandard","asSymbol","asIcon","noop$1","subject","initialValue","thisContext","func","bindInternal4","defineIcons","_params$skipHooks","skipHooks","addPack","build","lookup","reducer","ligatures","ligature","hasRegular","shim","oldName","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","attributeName","joinAttributes","parseTransformString","transformString","MissingIcon","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","RING","OPACITY_ANIMATE","cx","cy","asFoundIcon","vectorData","class","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","Library","definitions","additions","_pullDefinitions","definition","_normalized$key","ensureCss","_cssInserted","apiObject","abstractCreator","html","findIconDefinition","_iconLookup$prefix","library","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","maybeIconDefinition","ErrorCode","FormatError","msg","InvalidValueError","variableId","INVALID_VALUE","InvalidValueTypeError","MissingValueError","MISSING_VALUE","tar","dequal","foo","ctor","ArrayBuffer","Uint8Array","DataView","byteLength","getInt8","isView","useSafeState","isMounted","useMounted","getBasePlacement","includeScale","getLayoutRect","clientRect","getWindow","isHTMLElement","isShadowRoot","ShadowRoot","rootNode","getRootNode","getNodeName","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","mathMax","mathMin","mergePaddingObject","paddingObject","expandToHashMap","hashMap","auto","basePlacements","variationPlacements","placements","modifierPhases","_state$modifiersData$","arrowElement","arrow","popperOffsets","modifiersData","basePlacement","toPaddingObject","arrowRect","minProp","maxProp","endDiff","reference","startDiff","arrowOffsetParent","clientSize","centerToReference","axisProp","centerOffset","effect","_options$element","requires","requiresIfExists","getVariation","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","gpuAcceleration","adaptive","roundOffsets","roundOffsetsByDPR","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","_options$scroll","_options$resize","scrollParents","scrollParent","getOppositePlacement","getOppositeVariationPlacement","getWindowScroll","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","overflowY","getScrollParent","listScrollParents","_element$ownerDocumen","isBody","visualViewport","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","every","check","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_offset","_min","_max","_preventedOffset","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","scaleX","scaleY","isElementScaled","getNodeScroll","modifiers","visited","modifier","dep","depModifier","pending","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","orderModifiers","merged","existing","mergeByName","_ref3$options","cleanupFn","noopFn","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","createPopper","computeStyles","eventListeners","disabledApplyStylesModifier","ariaDescribedByModifier","ids","_popper$getAttribute","EMPTY_MODIFIERS","usePopper","referenceElement","popperElement","prevModifiers","popperInstanceRef","_popperInstanceRef$cu","_popperInstanceRef$cu2","popperState","updateModifier","nextModifiers","isLeftClickEvent","button","isModifiedEvent","getRefTarget","useRootClose","onRootClose","clickTrigger","preventMouseRootCloseRef","onClose","handleMouseCapture","warning","handleMouse","handleKeyUp","currentEvent","removeMouseCaptureListener","removeMouseListener","removeKeyupListener","mobileSafariHackListeners","toModifierArray","mergeOptionsWithPopperConfig","_modifiers$preventOve","_modifiers$preventOve2","_modifiers$offset","_modifiers$arrow","enableEvents","fixed","popperConfig","toModifierMap","Overlay","outerRef","useCallbackRef","rootElement","attachRef","attachArrowRef","useWaitForDOMRef","exited","setExited","mountOverlay","rootClose","rootCloseDisabled","rootCloseEvent","outerProps","popperRef","popoverClass","useOverlayOffset","actualTransition","BaseOverlay","overlayProps","_popperObj$state","_popperObj$state$modi","popperObj","aRef","__wrapped","wrapRefs","scheduleUpdate","outOfBoundaries","rel","isTrivialHref","asProp","param","handleEntering","handleEntered","handleExit","handleExiting","handleExited","handleAddEndListener","parseDuration","mult","isBoth","numItemsInViewport","numToleratedItems","loaderArr","onScroll","lastScrollPos","scrollTo","behavior","itemSize","contentPos","getContentPosition","calculateFirst","_numT","calculateCoord","_first","_cpos","newFirst","_newFirst","_this$getRenderedRang","getRenderedRange","isToStart","isToEnd","_pos2","loadedItems","_this$state","calculateFirstInViewport","_pos","firstInViewport","lastInViewport","orientation","contentWidth","contentHeight","calculateNumItemsInViewport","_contentSize","_itemSize","calculateNumToleratedItems","_numItems","calculateLast","_num","_isCols","getLast","showLoader","isCols","setProp","_name","_value","spacer","calculateTranslateVal","_x","_y","sticky","translateVal","_this$state2","calculateScrollPos","calculateCurrentIndex","calculateTriggerIndex","_currentIndex","_last","_isScrollDownOrRight","_triggerIndex","newLast","isRangeChanged","isScrollDown","isScrollRight","currentIndex","triggerIndex","scrollPos","isScrollDownOrRight","_currentIndex2","_this$onScrollPositio","onScrollPositionChange","newState","setContentPosition","onScrollIndexChange","scrollTimeout","onScrollChange","renderedIndex","even","odd","extOptions","_this$state3","setSize","calculateOptions","setSpacerSize","loaderOptions","loadingTemplate","renderLoaderItem","numCols","stickyRef","getItemOptions","getLoaderOptions","ext","both","_content","renderSpacer","defaultDatasetIdKey","reforwardRef","setLabels","currentData","nextLabels","setDatasets","nextDatasets","datasetIdKey","addedDatasets","nextDataset","currentDataset","cloneData","nextData","ChartComponent","redraw","fallbackContent","updateMode","canvasRef","chartRef","renderChart","ChartJS","destroyChart","nextOptions","createTypedChart","registerables","Line","Bar","InputSwitch","toggle","isChecked","falseValue","trueValue","inputSwitchProps","defaultKey","_toPropertyKey","hint","prim","toPrimitive","_toPrimitive","useUncontrolledProp","wasPropRef","_useState","stateValue","isProp","wasProp","useUncontrolled","fieldName","_extends2","Utils","propsValue","handlerName","_useUncontrolledProp","componentWillMount","componentWillReceiveProps","componentWillUpdate","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","__suppressDeprecationWarning","transitionStyles","OffcanvasToggling","OffcanvasHeader","Offcanvas","modalManager","onToggle","NavbarContext","BootstrapModalManager","handleContainerOverflow","OffcanvasBody","OffcanvasTitle","capture","__once","sharedManager","Selector","adjust","actual","containerState","scrollBarWidth","paddingProp","marginProp","adjustAndStore","ModalManager","resolveContainerRef","onResolved","resolvedRef","setRef","earlyRef","nextRef","OPEN_DATA_ATTRIBUTE","modals","_modal","modalIdx","setModalAttributes","setContainerStyle","removeContainerStyle","removeModalAttributes","usePrevious","IntlContext","optionsSupported","onceSupported","once","wrappedHandler","onceHandler","baseVal","replaceClassName","origClass","classToRemove","maskVisible","onMaximize","maximized","toggleMaximize","onResizeStart","onMaskClick","dialogRef","closable","showHeader","closeElement","dismissableMask","changeScrollOnMaximizable","dragging","lastPageX","lastPageY","dialogEl","leftPos","topPos","keepInViewport","onDrag","resizable","resizing","convertToPx","minHeight","onResizeEnd","focusOnShow","enableDocumentSettings","disableDocumentSettings","bindGlobalListeners","blockScroll","maximizable","unbindGlobalListeners","primeDialogParams","hasBlockScroll","bindDocumentDragListener","bindDocumentResizeListeners","bindDocumentKeyDownListener","unbindDocumentDragListener","unbindDocumentResizeListeners","unbindDocumentKeyDownListener","documentDragListener","documentDragEndListener","documentResizeEndListener","documentKeyDownListener","paramLength","dialogId","closeOnEscape","stopImmediatePropagation","focusedIndex","newParam","breakpoints","createStyle","funcName","ariaCloseIconLabel","closeIcon","renderCloseIcon","maximizeIcon","renderMaximizeIcon","headerEl","contentEl","contentStyle","footerElement","maskClassName","getPositionClass","transitionTimeout","maskStyle","onUnmount","valueRef","useUpdatedRef","useModalManager","provided","isTopModal","setDialogRef","setBackdropRef","onBackdropClick","providedManager","containerRef","prevShow","lastFocusRef","useImperativeHandle","handleShow","removeKeydownListenerRef","handleDocumentKeyDown","removeFocusListenerRef","handleEnforceFocus","currentActiveElement","_lastFocusRef$current","handleBackdropClick","defaultPrevented","backdropElement","Manager","emulateTransitionEnd","called","handle","bubbles","triggerEvent","removeEmulate","CloseButton","closeVariant","MAX_DELAY_MS","setChainedTimeout","handleRef","timeoutAtMs","delayMs","useTimeout","handleMouseOverOut","relatedNative","related","relatedTarget","nativeEvent","OverlayTrigger","propsShow","defaultShow","propsDelay","triggerNodeRef","hoverStateRef","setShow","normalizeDelay","handleFocus","handleBlur","handleMouseOver","handleMouseOut","triggers","triggerProps","onMouseOver","onMouseOut","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","condition","argIndex","framesToPop","PART_TYPE","isFormatXMLElementFn","formatToParts","currentPluralValue","els_1","varName","value_1","formatFn","chunks","MISSING_INTL_API","part","lastPart","mergeLiteral","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDefaultProps","getDerivedStateFromError","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","faApple","faWindows","isReactNative","product","isDOM","useLayoutEffect","Badge","Chips","onWrapperClick","removedItem","isRemovable","onRemove","allowDuplicate","onAdd","addItem","isMaxedOut","separator","pastedData","pastedValues","removable","isValueSame","deactivate","activate","targetContainer","listElement","renderRemoveIcon","renderList","CalendarPanelComponent","CalendarPanel","Calendar","onViewDateChange","viewDate","getViewDate","validateDate","navigation","onUserInput","onButtonClick","onPrevButtonClick","onNextButtonClick","onMonthDropdownChange","onYearDropdownChange","onTodayButtonClick","onClearButtonClick","onPanelMouseUp","incrementHour","decrementHour","incrementMinute","decrementMinute","incrementSecond","decrementSecond","toggleAmPm","onTimePickerElementMouseDown","onTimePickerElementMouseUp","onTimePickerElementMouseLeave","reFocusInputField","initFocusableCell","readOnlyInput","updateValueOnInput","updateInputfield","viewStateChanged","prevPropValue","isValidDate","updateFocus","touchUIMask","disableModality","onVisibleChange","ignoreFocusFunctionality","keepInvalid","isKeydown","trapFocus","touchUI","rawValue","parseValueFromString","isValidSelection","updateViewDate","isSelectable","getDate","getMonth","getFullYear","isSelectableTime","isRangeSelection","backward","navBackward","navForward","cells","todayCell","newViewDate","setDate","setMonth","setFullYear","newYear","yearNavigator","minYear","yearRange","maxYear","currentViewDate","dateMeta","selectable","timeMeta","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","onDateSelect","clearTimePickerTimer","timePickerTimer","incrementMilliSecond","decrementMilliSecond","currentTime","getCurrentDateTime","newHour","stepHour","validateHour","maxDate","updateTime","minDate","newMinute","stepMinute","validateMinute","newSecond","stepSecond","validateSecond","newMillisecond","stepMillisec","validateMillisecond","currentHour","startDate","valueDateString","viewYear","minRangeYear","maxRangeYear","monthNavigator","viewMonth","viewMonthWithMinMax","isInMinYear","isInMaxYear","newDateTime","setHours","setMinutes","setSeconds","setMilliseconds","cellContent","focusCell","_cellIndex","_focusCell","_focusCell2","navigateToMonth","_focusCell3","numberOfMonths","prevMonthContainer","nextMonthContainer","_focusCell4","_nextCell","onMonthSelect","isDateEquals","maxDateCount","selectDate","showTime","hideOnDateTimeSelect","selectTime","selectedValues","endDate","isOverlayClicked","_hideCallback","isNavIconClicked","enableModality","addMultipleClasses","touchUIMaskClickListener","destroyMask","hasBlockerMasks","bodyChildren","bodyChild","dayIndex","getDay","getSundayIndex","daylightSavingAdjust","getPreviousMonthAndYear","getDaysCountInMonth","weekDays","_localeOptions","months","createMonth","dates","firstDay","getFirstDayOfMonthIndex","daysLength","prevMonthDaysLength","getDaysCountInPrevMonth","dayNo","weekNumbers","monthRows","otherMonth","isToday","remainingDaysLength","_j2","getNextMonthAndYear","showWeek","getWeekNumber","checkDate","validMin","validMax","validDate","validDay","validMonth","disabledDates","isDateDisabled","disabledDays","isDayDisabled","selectOtherMonths","isDateBetween","disabledDate","weekdayNumber","formatDateTime","selectedValue","timeOnly","formatTime","formatDate","getDateFormat","iFormat","lookAhead","formatName","shortNames","longNames","output","_localeOptions2","ticksTo1970","hourFormat","showSeconds","showMillisec","parseDateTime","_tokens","populateTime","parseDate","timeString","ampm","parseTime","validTokenLength","ms","dim","iValue","shortYearCutoff","doy","getNumber","isDoubled","digits","getName","checkLiteral","_localeOptions3","navigatorProps","onContainerButtonKeydown","_this18","displayedMonthOptions","displayedMonthNames","monthNavigatorTemplate","_this19","yearOptions","years","yearStart","yearEnd","displayedYearNames","yearNavigatorTemplate","monthMetaData","renderTitleMonthElement","renderTitleYearElement","weekDay","_this20","dateTemplate","onDateCellKeydown","weekDates","weekNumber","_this21","dateClassName","showOtherMonths","renderDateCellContent","_this22","renderWeek","renderDayNames","renderDates","createWeekDays","backwardNavigator","renderBackwardNavigator","forwardNavigator","renderForwardNavigator","dateViewGrid","renderDateViewGrid","headerTemplate","monthsMetaData","_this23","groups","renderMonth","createMonths","renderMonths","_this24","isMonthSelected","monthName","onMonthCellKeydown","renderMonthViewMonth","yearElement","renderMonthViewMonths","renderDateView","renderMonthView","_this25","hourDisplay","_this26","minuteDisplay","_this27","secondDisplay","_this28","millisecondDisplay","renderHourPicker","renderSeparator","renderMinutePicker","renderSecondPicker","renderMiliSecondPicker","renderAmPmPicker","showIcon","renderButton","_this29","showButtonBar","todayClassName","todayButtonClassName","clearClassName","clearButtonClassName","_localeOptions4","footerTemplate","_this30","datePicker","renderDatePicker","timePicker","renderTimePicker","Checkbox","containerClass","boxClass","defaultChecked","MultiSelectHeader","onSelectAll","query","selectAll","checkboxElement","showSelectAll","closeElementClassName","closeIconClassName","onCloseClick","MultiSelectItem","checkboxClassName","checkboxIcon","MultiSelectPanelComponent","isAllSelected","panelHeaderTemplate","panelFooterTemplate","onOptionSelect","onOptionKeyDown","renderEmptyFilter","allowOptionSelect","MultiSelectPanel","MultiSelect","selectionLimit","isOptionValueUsed","isPanelClicked","firstFocusableElement","selectedOptions","findOptionByValue","_step4","visibleOptionsGroupChildren","_iterator4","_step5","_iterator5","_option","_step6","_iterator6","selectedItemsLabel","fixedPlaceholder","maxSelectedLabels","getSelectedItemsLabel","getLabelByValue","selectedItemTemplate","getLabel","removeIcon","removeChip","getLabelContent","labelClassName","usePlaceholder","PlaceholderButton","placeholderProps","Placeholder","StrictMode","Profiler","q","Suspense","u","for","encodeURIComponent","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","isReactComponent","isPureReactComponent","__self","__source","$$typeof","_owner","escape","_status","_result","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","isValidElement","_payload","useDebugValue","useReducer","aa","ba","ca","da","ea","ha","ia","ja","ka","acceptsBooleans","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","setAttributeNS","xlinkHref","ra","sa","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Qa","_render","Ra","Sa","Ta","Va","_valueTracker","setValue","stopTracking","Ua","Wa","Xa","Ya","_wrapperState","initialChecked","Za","controlled","$a","ab","bb","eb","db","defaultSelected","gb","hb","ib","jb","kb","lb","mb","nb","ob","namespaceURI","firstChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","rb","sb","tb","ub","menuitem","br","embed","hr","img","keygen","track","wbr","vb","wb","is","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","flags","$b","memoizedState","dehydrated","ac","sibling","bc","dc","ec","fc","hc","ic","jc","kc","lc","mc","nc","oc","qc","blockedOn","domEventName","eventSystemFlags","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","returnValue","isPropagationStopped","cancelBubble","isPersistent","wd","xd","yd","sd","eventPhase","timeStamp","isTrusted","td","ud","detail","vd","Ad","screenX","screenY","getModifierState","zd","buttons","fromElement","toElement","movementX","movementY","Bd","Dd","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Meta","Shift","Pd","Qd","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","targetTouches","changedTouches","Xd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","password","tel","url","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Re","Se","Te","Ue","anchorNode","anchorOffset","focusNode","focusOffset","Ve","We","Ye","Ze","Yb","$e","af","bf","cf","df","Nb","ef","ff","parentWindow","gf","hf","je","ke","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","yg","zg","eventTime","lane","payload","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","Ng","UNSAFE_componentWillReceiveProps","Og","UNSAFE_componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","createElementNS","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","ck","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","focusedElem","selectionRange","ek","extend","setStart","addRange","setEnd","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","sk","uk","hk","unstable_observedBits","unmount","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","supportsFiber","inject","flushSync","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","base64","ieee754","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","encodingOrOffset","allocUnsafe","byteOffset","fromArrayLike","fromArrayBuffer","encoding","isEncoding","write","fromString","isBuffer","copy","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","subarray","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","toJSON","out","toHex","bytes","checkOffset","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","src","dst","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","awrap","async","skipTempReset","rootRecord","rval","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","Timeout","clearFn","_id","_clearFn","close","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","channel","installMessageChannelImplementation","script","onreadystatechange","installReadyStateChangeImplementation","task","run","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","env","argv","versions","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","arrayOf","instanceOf","objectOf","shape","exact","checkPropTypes","jsx","jsxs","typeOf","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","isValidElementType","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isPortal","isProfiler","isStrictMode","isSuspense","validators","allPropTypes","validator","_createChainableTypeChecker2","_createChainableTypeChecker","__esModule","checkType","componentNameSafe","propFullNameSafe","chainedCheckType","Err","mergeConfigs","defaultConfig","configs","formatterCache","ast","supportedLocalesOf","getAst","__parse","memoizedDefaultLocale","integer","short","long","full","Container","fluid","Spinner","bsSpinnerPrefix","setTimeZoneInOptions","deepMergeOptions","opts1","opts2","deepMergeFormatsAndSetTimeZone","f1","mfFormats","messageDescriptor","defaultRichTextElements","msgId","NUMBER_FORMAT_OPTIONS","getFormatter","formatNumberToParts","RELATIVE_TIME_FORMAT_OPTIONS","formatRelativeTime","DATE_TIME_FORMAT_OPTIONS","filteredOptions","timeStyle","dateStyle","formatDateTimeRange","formatRange","formatDateToParts","formatTimeToParts","PLURAL_FORMAT_OPTIONS","formatPlural","LIST_FORMAT_OPTIONS","formatList","formatListToParts","richValues_1","serializedValues","generateToken","DISPLAY_NAMES_OPTONS","formatDisplayName","verifyConfigMessages","processIntlConfig","wrapRichTextChunksInFragment","assignUniqueKeysToFormatXMLElementFnArgument","rawValues","coreFormatMessage","createIntl","rawDefaultRichTextElements","coreIntl","resolvedConfig","coreCreateIntl","IntlProvider","prevConfig","NavContext","TabContext","useNavItem","parentOnSelect","navContext","isActive","contextControllerId","getControllerId","contextControlledId","getControlledId","activeKey","NavItem","EVENT_KEY_ATTR","Nav","needsRefocusRef","tabContext","listNode","getNextActiveTab","currentListNode","activeChild","nextIndex","handleSelect","nextActiveChild","Anchor","handleKeyDown","NavLink","navItemProps","uncontrolledProps","navbarBsPrefix","initialBsPrefix","justify","navbar","navbarScroll","isNavbar","navbarContext","cardHeaderContext","BaseNav","NavbarBrand","createChainedFunction","funcs","MARGINS","getDefaultDimensionValue","elem","collapseStyles","getDimensionValue","Collapse","computedDimension","NavbarCollapse","NavbarToggle","NavbarOffcanvas","NavbarText","Navbar","expand","collapseOnSelect","controlledProps","handleCollapse","expandClass","Brand","Toggle"],"mappings":"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UA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,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","file":"static/js/3.e0f080be.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import React from 'react';\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayLikeToArray$1(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _unsupportedIterableToArray$1(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest();\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction classNames() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args) {\n var classes = [];\n\n for (var i = 0; i < args.length; i++) {\n var className = args[i];\n if (!className) continue;\n\n var type = _typeof(className);\n\n if (type === 'string' || type === 'number') {\n classes.push(className);\n } else if (type === 'object') {\n var _classes = Array.isArray(className) ? className : Object.entries(className).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n return !!value ? key : null;\n });\n\n classes = _classes.length ? classes.concat(_classes.filter(function (c) {\n return !!c;\n })) : classes;\n }\n }\n\n return classes.join(' ');\n }\n\n return undefined;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar DomHandler = /*#__PURE__*/function () {\n function DomHandler() {\n _classCallCheck(this, DomHandler);\n }\n\n _createClass(DomHandler, null, [{\n key: \"innerWidth\",\n value: function innerWidth(el) {\n if (el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width += parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"width\",\n value: function width(el) {\n if (el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"getWindowScrollTop\",\n value: function getWindowScrollTop() {\n var doc = document.documentElement;\n return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n }\n }, {\n key: \"getWindowScrollLeft\",\n value: function getWindowScrollLeft() {\n var doc = document.documentElement;\n return (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n }\n }, {\n key: \"getOuterWidth\",\n value: function getOuterWidth(el, margin) {\n if (el) {\n var width = el.offsetWidth;\n\n if (margin) {\n var style = getComputedStyle(el);\n width += parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n }\n\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"getOuterHeight\",\n value: function getOuterHeight(el, margin) {\n if (el) {\n var height = el.offsetHeight;\n\n if (margin) {\n var style = getComputedStyle(el);\n height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n\n return height;\n }\n\n return 0;\n }\n }, {\n key: \"getClientHeight\",\n value: function getClientHeight(el, margin) {\n if (el) {\n var height = el.clientHeight;\n\n if (margin) {\n var style = getComputedStyle(el);\n height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n\n return height;\n }\n\n return 0;\n }\n }, {\n key: \"getClientWidth\",\n value: function getClientWidth(el, margin) {\n if (el) {\n var width = el.clientWidth;\n\n if (margin) {\n var style = getComputedStyle(el);\n width += parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n }\n\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"getViewport\",\n value: function getViewport() {\n var win = window,\n d = document,\n e = d.documentElement,\n g = d.getElementsByTagName('body')[0],\n w = win.innerWidth || e.clientWidth || g.clientWidth,\n h = win.innerHeight || e.clientHeight || g.clientHeight;\n return {\n width: w,\n height: h\n };\n }\n }, {\n key: \"getOffset\",\n value: function getOffset(el) {\n if (el) {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0),\n left: rect.left + (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0)\n };\n }\n\n return {\n top: 'auto',\n left: 'auto'\n };\n }\n }, {\n key: \"index\",\n value: function index(element) {\n if (element) {\n var children = element.parentNode.childNodes;\n var num = 0;\n\n for (var i = 0; i < children.length; i++) {\n if (children[i] === element) return num;\n if (children[i].nodeType === 1) num++;\n }\n }\n\n return -1;\n }\n }, {\n key: \"addMultipleClasses\",\n value: function addMultipleClasses(element, className) {\n if (element && className) {\n if (element.classList) {\n var styles = className.split(' ');\n\n for (var i = 0; i < styles.length; i++) {\n element.classList.add(styles[i]);\n }\n } else {\n var _styles = className.split(' ');\n\n for (var _i = 0; _i < _styles.length; _i++) {\n element.className += ' ' + _styles[_i];\n }\n }\n }\n }\n }, {\n key: \"removeMultipleClasses\",\n value: function removeMultipleClasses(element, className) {\n if (element && className) {\n if (element.classList) {\n var styles = className.split(' ');\n\n for (var i = 0; i < styles.length; i++) {\n element.classList.remove(styles[i]);\n }\n } else {\n var _styles2 = className.split(' ');\n\n for (var _i2 = 0; _i2 < _styles2.length; _i2++) {\n element.className = element.className.replace(new RegExp('(^|\\\\b)' + _styles2[_i2].split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n }\n }\n }\n }, {\n key: \"addClass\",\n value: function addClass(element, className) {\n if (element && className) {\n if (element.classList) element.classList.add(className);else element.className += ' ' + className;\n }\n }\n }, {\n key: \"removeClass\",\n value: function removeClass(element, className) {\n if (element && className) {\n if (element.classList) element.classList.remove(className);else element.className = element.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n }\n }, {\n key: \"hasClass\",\n value: function hasClass(element, className) {\n if (element) {\n if (element.classList) return element.classList.contains(className);else return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);\n }\n }\n }, {\n key: \"find\",\n value: function find(element, selector) {\n return element ? Array.from(element.querySelectorAll(selector)) : [];\n }\n }, {\n key: \"findSingle\",\n value: function findSingle(element, selector) {\n if (element) {\n return element.querySelector(selector);\n }\n\n return null;\n }\n }, {\n key: \"getHeight\",\n value: function getHeight(el) {\n if (el) {\n var height = el.offsetHeight;\n var style = getComputedStyle(el);\n height -= parseFloat(style.paddingTop) + parseFloat(style.paddingBottom) + parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n return height;\n }\n\n return 0;\n }\n }, {\n key: \"getWidth\",\n value: function getWidth(el) {\n if (el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight) + parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth);\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"alignOverlay\",\n value: function alignOverlay(overlay, target, appendTo) {\n var calculateMinWidth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n\n if (overlay && target) {\n if (appendTo === 'self') {\n this.relativePosition(overlay, target);\n } else {\n calculateMinWidth && (overlay.style.minWidth = DomHandler.getOuterWidth(target) + 'px');\n this.absolutePosition(overlay, target);\n }\n }\n }\n }, {\n key: \"absolutePosition\",\n value: function absolutePosition(element, target) {\n if (element) {\n var elementDimensions = element.offsetParent ? {\n width: element.offsetWidth,\n height: element.offsetHeight\n } : this.getHiddenElementDimensions(element);\n var elementOuterHeight = elementDimensions.height;\n var elementOuterWidth = elementDimensions.width;\n var targetOuterHeight = target.offsetHeight;\n var targetOuterWidth = target.offsetWidth;\n var targetOffset = target.getBoundingClientRect();\n var windowScrollTop = this.getWindowScrollTop();\n var windowScrollLeft = this.getWindowScrollLeft();\n var viewport = this.getViewport();\n var top, left;\n\n if (targetOffset.top + targetOuterHeight + elementOuterHeight > viewport.height) {\n top = targetOffset.top + windowScrollTop - elementOuterHeight;\n\n if (top < 0) {\n top = windowScrollTop;\n }\n\n element.style.transformOrigin = 'bottom';\n } else {\n top = targetOuterHeight + targetOffset.top + windowScrollTop;\n element.style.transformOrigin = 'top';\n }\n\n if (targetOffset.left + targetOuterWidth + elementOuterWidth > viewport.width) left = Math.max(0, targetOffset.left + windowScrollLeft + targetOuterWidth - elementOuterWidth);else left = targetOffset.left + windowScrollLeft;\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n }\n }\n }, {\n key: \"relativePosition\",\n value: function relativePosition(element, target) {\n if (element) {\n var elementDimensions = element.offsetParent ? {\n width: element.offsetWidth,\n height: element.offsetHeight\n } : this.getHiddenElementDimensions(element);\n var targetHeight = target.offsetHeight;\n var targetOffset = target.getBoundingClientRect();\n var viewport = this.getViewport();\n var top, left;\n\n if (targetOffset.top + targetHeight + elementDimensions.height > viewport.height) {\n top = -1 * elementDimensions.height;\n\n if (targetOffset.top + top < 0) {\n top = -1 * targetOffset.top;\n }\n\n element.style.transformOrigin = 'bottom';\n } else {\n top = targetHeight;\n element.style.transformOrigin = 'top';\n }\n\n if (elementDimensions.width > viewport.width) {\n // element wider then viewport and cannot fit on screen (align at left side of viewport)\n left = targetOffset.left * -1;\n } else if (targetOffset.left + elementDimensions.width > viewport.width) {\n // element wider then viewport but can be fit on screen (align at right side of viewport)\n left = (targetOffset.left + elementDimensions.width - viewport.width) * -1;\n } else {\n // element fits on screen (align with target)\n left = 0;\n }\n\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n }\n }\n }, {\n key: \"flipfitCollision\",\n value: function flipfitCollision(element, target) {\n var _this = this;\n\n var my = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'left top';\n var at = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'left bottom';\n var callback = arguments.length > 4 ? arguments[4] : undefined;\n var targetOffset = target.getBoundingClientRect();\n var viewport = this.getViewport();\n var myArr = my.split(' ');\n var atArr = at.split(' ');\n\n var getPositionValue = function getPositionValue(arr, isOffset) {\n return isOffset ? +arr.substring(arr.search(/(\\+|-)/g)) || 0 : arr.substring(0, arr.search(/(\\+|-)/g)) || arr;\n };\n\n var position = {\n my: {\n x: getPositionValue(myArr[0]),\n y: getPositionValue(myArr[1] || myArr[0]),\n offsetX: getPositionValue(myArr[0], true),\n offsetY: getPositionValue(myArr[1] || myArr[0], true)\n },\n at: {\n x: getPositionValue(atArr[0]),\n y: getPositionValue(atArr[1] || atArr[0]),\n offsetX: getPositionValue(atArr[0], true),\n offsetY: getPositionValue(atArr[1] || atArr[0], true)\n }\n };\n var myOffset = {\n left: function left() {\n var totalOffset = position.my.offsetX + position.at.offsetX;\n return totalOffset + targetOffset.left + (position.my.x === 'left' ? 0 : -1 * (position.my.x === 'center' ? _this.getOuterWidth(element) / 2 : _this.getOuterWidth(element)));\n },\n top: function top() {\n var totalOffset = position.my.offsetY + position.at.offsetY;\n return totalOffset + targetOffset.top + (position.my.y === 'top' ? 0 : -1 * (position.my.y === 'center' ? _this.getOuterHeight(element) / 2 : _this.getOuterHeight(element)));\n }\n };\n var alignWithAt = {\n count: {\n x: 0,\n y: 0\n },\n left: function left() {\n var left = myOffset.left();\n var scrollLeft = DomHandler.getWindowScrollLeft();\n element.style.left = left + scrollLeft + 'px';\n\n if (this.count.x === 2) {\n element.style.left = scrollLeft + 'px';\n this.count.x = 0;\n } else if (left < 0) {\n this.count.x++;\n position.my.x = 'left';\n position.at.x = 'right';\n position.my.offsetX *= -1;\n position.at.offsetX *= -1;\n this.right();\n }\n },\n right: function right() {\n var left = myOffset.left() + DomHandler.getOuterWidth(target);\n var scrollLeft = DomHandler.getWindowScrollLeft();\n element.style.left = left + scrollLeft + 'px';\n\n if (this.count.x === 2) {\n element.style.left = viewport.width - DomHandler.getOuterWidth(element) + scrollLeft + 'px';\n this.count.x = 0;\n } else if (left + DomHandler.getOuterWidth(element) > viewport.width) {\n this.count.x++;\n position.my.x = 'right';\n position.at.x = 'left';\n position.my.offsetX *= -1;\n position.at.offsetX *= -1;\n this.left();\n }\n },\n top: function top() {\n var top = myOffset.top();\n var scrollTop = DomHandler.getWindowScrollTop();\n element.style.top = top + scrollTop + 'px';\n\n if (this.count.y === 2) {\n element.style.left = scrollTop + 'px';\n this.count.y = 0;\n } else if (top < 0) {\n this.count.y++;\n position.my.y = 'top';\n position.at.y = 'bottom';\n position.my.offsetY *= -1;\n position.at.offsetY *= -1;\n this.bottom();\n }\n },\n bottom: function bottom() {\n var top = myOffset.top() + DomHandler.getOuterHeight(target);\n var scrollTop = DomHandler.getWindowScrollTop();\n element.style.top = top + scrollTop + 'px';\n\n if (this.count.y === 2) {\n element.style.left = viewport.height - DomHandler.getOuterHeight(element) + scrollTop + 'px';\n this.count.y = 0;\n } else if (top + DomHandler.getOuterHeight(target) > viewport.height) {\n this.count.y++;\n position.my.y = 'bottom';\n position.at.y = 'top';\n position.my.offsetY *= -1;\n position.at.offsetY *= -1;\n this.top();\n }\n },\n center: function center(axis) {\n if (axis === 'y') {\n var top = myOffset.top() + DomHandler.getOuterHeight(target) / 2;\n element.style.top = top + DomHandler.getWindowScrollTop() + 'px';\n\n if (top < 0) {\n this.bottom();\n } else if (top + DomHandler.getOuterHeight(target) > viewport.height) {\n this.top();\n }\n } else {\n var left = myOffset.left() + DomHandler.getOuterWidth(target) / 2;\n element.style.left = left + DomHandler.getWindowScrollLeft() + 'px';\n\n if (left < 0) {\n this.left();\n } else if (left + DomHandler.getOuterWidth(element) > viewport.width) {\n this.right();\n }\n }\n }\n };\n alignWithAt[position.at.x]('x');\n alignWithAt[position.at.y]('y');\n\n if (this.isFunction(callback)) {\n callback(position);\n }\n }\n }, {\n key: \"findCollisionPosition\",\n value: function findCollisionPosition(position) {\n if (position) {\n var isAxisY = position === 'top' || position === 'bottom';\n var myXPosition = position === 'left' ? 'right' : 'left';\n var myYPosition = position === 'top' ? 'bottom' : 'top';\n\n if (isAxisY) {\n return {\n axis: 'y',\n my: \"center \".concat(myYPosition),\n at: \"center \".concat(position)\n };\n }\n\n return {\n axis: 'x',\n my: \"\".concat(myXPosition, \" center\"),\n at: \"\".concat(position, \" center\")\n };\n }\n }\n }, {\n key: \"getParents\",\n value: function getParents(element) {\n var parents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return element['parentNode'] === null ? parents : this.getParents(element.parentNode, parents.concat([element.parentNode]));\n }\n }, {\n key: \"getScrollableParents\",\n value: function getScrollableParents(element) {\n var scrollableParents = [];\n\n if (element) {\n var parents = this.getParents(element);\n var overflowRegex = /(auto|scroll)/;\n\n var overflowCheck = function overflowCheck(node) {\n var styleDeclaration = node ? getComputedStyle(node) : null;\n return styleDeclaration && (overflowRegex.test(styleDeclaration.getPropertyValue('overflow')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowX')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowY')));\n };\n\n var _iterator = _createForOfIteratorHelper(parents),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var parent = _step.value;\n var scrollSelectors = parent.nodeType === 1 && parent.dataset['scrollselectors'];\n\n if (scrollSelectors) {\n var selectors = scrollSelectors.split(',');\n\n var _iterator2 = _createForOfIteratorHelper(selectors),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var selector = _step2.value;\n var el = this.findSingle(parent, selector);\n\n if (el && overflowCheck(el)) {\n scrollableParents.push(el);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n\n if (parent.nodeType !== 9 && overflowCheck(parent)) {\n scrollableParents.push(parent);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n return scrollableParents;\n }\n }, {\n key: \"getHiddenElementOuterHeight\",\n value: function getHiddenElementOuterHeight(element) {\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n var elementHeight = element.offsetHeight;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n return elementHeight;\n }\n\n return 0;\n }\n }, {\n key: \"getHiddenElementOuterWidth\",\n value: function getHiddenElementOuterWidth(element) {\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n var elementWidth = element.offsetWidth;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n return elementWidth;\n }\n\n return 0;\n }\n }, {\n key: \"getHiddenElementDimensions\",\n value: function getHiddenElementDimensions(element) {\n var dimensions = {};\n\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n dimensions.width = element.offsetWidth;\n dimensions.height = element.offsetHeight;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n }\n\n return dimensions;\n }\n }, {\n key: \"fadeIn\",\n value: function fadeIn(element, duration) {\n if (element) {\n element.style.opacity = 0;\n var last = +new Date();\n var opacity = 0;\n\n var tick = function tick() {\n opacity = +element.style.opacity + (new Date().getTime() - last) / duration;\n element.style.opacity = opacity;\n last = +new Date();\n\n if (+opacity < 1) {\n window.requestAnimationFrame && requestAnimationFrame(tick) || setTimeout(tick, 16);\n }\n };\n\n tick();\n }\n }\n }, {\n key: \"fadeOut\",\n value: function fadeOut(element, duration) {\n if (element) {\n var opacity = 1,\n interval = 50,\n gap = interval / duration;\n var fading = setInterval(function () {\n opacity -= gap;\n\n if (opacity <= 0) {\n opacity = 0;\n clearInterval(fading);\n }\n\n element.style.opacity = opacity;\n }, interval);\n }\n }\n }, {\n key: \"getUserAgent\",\n value: function getUserAgent() {\n return navigator.userAgent;\n }\n }, {\n key: \"isIOS\",\n value: function isIOS() {\n return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window['MSStream'];\n }\n }, {\n key: \"isAndroid\",\n value: function isAndroid() {\n return /(android)/i.test(navigator.userAgent);\n }\n }, {\n key: \"isTouchDevice\",\n value: function isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\n }\n }, {\n key: \"isFunction\",\n value: function isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n }, {\n key: \"appendChild\",\n value: function appendChild(element, target) {\n if (this.isElement(target)) target.appendChild(element);else if (target.el && target.el.nativeElement) target.el.nativeElement.appendChild(element);else throw new Error('Cannot append ' + target + ' to ' + element);\n }\n }, {\n key: \"removeChild\",\n value: function removeChild(element, target) {\n if (this.isElement(target)) target.removeChild(element);else if (target.el && target.el.nativeElement) target.el.nativeElement.removeChild(element);else throw new Error('Cannot remove ' + element + ' from ' + target);\n }\n }, {\n key: \"isElement\",\n value: function isElement(obj) {\n return (typeof HTMLElement === \"undefined\" ? \"undefined\" : _typeof(HTMLElement)) === \"object\" ? obj instanceof HTMLElement : obj && _typeof(obj) === \"object\" && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === \"string\";\n }\n }, {\n key: \"scrollInView\",\n value: function scrollInView(container, item) {\n var borderTopValue = getComputedStyle(container).getPropertyValue('borderTopWidth');\n var borderTop = borderTopValue ? parseFloat(borderTopValue) : 0;\n var paddingTopValue = getComputedStyle(container).getPropertyValue('paddingTop');\n var paddingTop = paddingTopValue ? parseFloat(paddingTopValue) : 0;\n var containerRect = container.getBoundingClientRect();\n var itemRect = item.getBoundingClientRect();\n var offset = itemRect.top + document.body.scrollTop - (containerRect.top + document.body.scrollTop) - borderTop - paddingTop;\n var scroll = container.scrollTop;\n var elementHeight = container.clientHeight;\n var itemHeight = this.getOuterHeight(item);\n\n if (offset < 0) {\n container.scrollTop = scroll + offset;\n } else if (offset + itemHeight > elementHeight) {\n container.scrollTop = scroll + offset - elementHeight + itemHeight;\n }\n }\n }, {\n key: \"clearSelection\",\n value: function clearSelection() {\n if (window.getSelection) {\n if (window.getSelection().empty) {\n window.getSelection().empty();\n } else if (window.getSelection().removeAllRanges && window.getSelection().rangeCount > 0 && window.getSelection().getRangeAt(0).getClientRects().length > 0) {\n window.getSelection().removeAllRanges();\n }\n } else if (document['selection'] && document['selection'].empty) {\n try {\n document['selection'].empty();\n } catch (error) {//ignore IE bug\n }\n }\n }\n }, {\n key: \"calculateScrollbarWidth\",\n value: function calculateScrollbarWidth(el) {\n if (el) {\n var style = getComputedStyle(el);\n return el.offsetWidth - el.clientWidth - parseFloat(style.borderLeftWidth) - parseFloat(style.borderRightWidth);\n } else {\n if (this.calculatedScrollbarWidth != null) return this.calculatedScrollbarWidth;\n var scrollDiv = document.createElement(\"div\");\n scrollDiv.className = \"p-scrollbar-measure\";\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n this.calculatedScrollbarWidth = scrollbarWidth;\n return scrollbarWidth;\n }\n }\n }, {\n key: \"getBrowser\",\n value: function getBrowser() {\n if (!this.browser) {\n var matched = this.resolveUserAgent();\n this.browser = {};\n\n if (matched.browser) {\n this.browser[matched.browser] = true;\n this.browser['version'] = matched.version;\n }\n\n if (this.browser['chrome']) {\n this.browser['webkit'] = true;\n } else if (this.browser['webkit']) {\n this.browser['safari'] = true;\n }\n }\n\n return this.browser;\n }\n }, {\n key: \"resolveUserAgent\",\n value: function resolveUserAgent() {\n var ua = navigator.userAgent.toLowerCase();\n var match = /(chrome)[ ]([\\w.]+)/.exec(ua) || /(webkit)[ ]([\\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ ]([\\w.]+)/.exec(ua) || /(msie) ([\\w.]+)/.exec(ua) || ua.indexOf(\"compatible\") < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(ua) || [];\n return {\n browser: match[1] || \"\",\n version: match[2] || \"0\"\n };\n }\n }, {\n key: \"isVisible\",\n value: function isVisible(element) {\n return element && element.offsetParent != null;\n }\n }, {\n key: \"isExist\",\n value: function isExist(element) {\n return element !== null && typeof element !== 'undefined' && element.nodeName;\n }\n }, {\n key: \"getFocusableElements\",\n value: function getFocusableElements(element) {\n var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var focusableElements = DomHandler.find(element, \"button:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\".concat(selector, \",\\n [href][clientHeight][clientWidth]:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector, \",\\n input:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector, \",\\n select:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector, \",\\n textarea:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector, \",\\n [tabIndex]:not([tabIndex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector, \",\\n [contenteditable]:not([tabIndex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector));\n var visibleFocusableElements = [];\n\n var _iterator3 = _createForOfIteratorHelper(focusableElements),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var focusableElement = _step3.value;\n if (getComputedStyle(focusableElement).display !== \"none\" && getComputedStyle(focusableElement).visibility !== \"hidden\") visibleFocusableElements.push(focusableElement);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return visibleFocusableElements;\n }\n }, {\n key: \"getFirstFocusableElement\",\n value: function getFirstFocusableElement(element, selector) {\n var focusableElements = DomHandler.getFocusableElements(element, selector);\n return focusableElements.length > 0 ? focusableElements[0] : null;\n }\n }, {\n key: \"getLastFocusableElement\",\n value: function getLastFocusableElement(element, selector) {\n var focusableElements = DomHandler.getFocusableElements(element, selector);\n return focusableElements.length > 0 ? focusableElements[focusableElements.length - 1] : null;\n }\n }, {\n key: \"getCursorOffset\",\n value: function getCursorOffset(el, prevText, nextText, currentText) {\n if (el) {\n var style = getComputedStyle(el);\n var ghostDiv = document.createElement('div');\n ghostDiv.style.position = 'absolute';\n ghostDiv.style.top = '0px';\n ghostDiv.style.left = '0px';\n ghostDiv.style.visibility = 'hidden';\n ghostDiv.style.pointerEvents = 'none';\n ghostDiv.style.overflow = style.overflow;\n ghostDiv.style.width = style.width;\n ghostDiv.style.height = style.height;\n ghostDiv.style.padding = style.padding;\n ghostDiv.style.border = style.border;\n ghostDiv.style.overflowWrap = style.overflowWrap;\n ghostDiv.style.whiteSpace = style.whiteSpace;\n ghostDiv.style.lineHeight = style.lineHeight;\n ghostDiv.innerHTML = prevText.replace(/\\r\\n|\\r|\\n/g, '
');\n var ghostSpan = document.createElement('span');\n ghostSpan.textContent = currentText;\n ghostDiv.appendChild(ghostSpan);\n var text = document.createTextNode(nextText);\n ghostDiv.appendChild(text);\n document.body.appendChild(ghostDiv);\n var offsetLeft = ghostSpan.offsetLeft,\n offsetTop = ghostSpan.offsetTop,\n clientHeight = ghostSpan.clientHeight;\n document.body.removeChild(ghostDiv);\n return {\n left: Math.abs(offsetLeft - el.scrollLeft),\n top: Math.abs(offsetTop - el.scrollTop) + clientHeight\n };\n }\n\n return {\n top: 'auto',\n left: 'auto'\n };\n }\n }, {\n key: \"invokeElementMethod\",\n value: function invokeElementMethod(element, methodName, args) {\n element[methodName].apply(element, args);\n }\n }, {\n key: \"isClickable\",\n value: function isClickable(element) {\n var targetNode = element.nodeName;\n var parentNode = element.parentElement && element.parentElement.nodeName;\n return targetNode === 'INPUT' || targetNode === 'TEXTAREA' || targetNode === 'BUTTON' || targetNode === 'A' || parentNode === 'INPUT' || parentNode === 'TEXTAREA' || parentNode === 'BUTTON' || parentNode === 'A' || this.hasClass(element, 'p-button') || this.hasClass(element.parentElement, 'p-button') || this.hasClass(element.parentElement, 'p-checkbox') || this.hasClass(element.parentElement, 'p-radiobutton');\n }\n }, {\n key: \"applyStyle\",\n value: function applyStyle(element, style) {\n if (typeof style === 'string') {\n element.style.cssText = this.style;\n } else {\n for (var prop in this.style) {\n element.style[prop] = style[prop];\n }\n }\n }\n }, {\n key: \"exportCSV\",\n value: function exportCSV(csv, filename) {\n var blob = new Blob([csv], {\n type: 'application/csv;charset=utf-8;'\n });\n\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveOrOpenBlob(blob, filename + '.csv');\n } else {\n var link = document.createElement(\"a\");\n\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', filename + '.csv');\n link.style.display = 'none';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n } else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n }\n }\n }]);\n\n return DomHandler;\n}();\n\nvar ConnectedOverlayScrollHandler = /*#__PURE__*/function () {\n function ConnectedOverlayScrollHandler(element) {\n var listener = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};\n\n _classCallCheck(this, ConnectedOverlayScrollHandler);\n\n this.element = element;\n this.listener = listener;\n }\n\n _createClass(ConnectedOverlayScrollHandler, [{\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n this.scrollableParents = DomHandler.getScrollableParents(this.element);\n\n for (var i = 0; i < this.scrollableParents.length; i++) {\n this.scrollableParents[i].addEventListener('scroll', this.listener);\n }\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollableParents) {\n for (var i = 0; i < this.scrollableParents.length; i++) {\n this.scrollableParents[i].removeEventListener('scroll', this.listener);\n }\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.unbindScrollListener();\n this.element = null;\n this.listener = null;\n this.scrollableParents = null;\n }\n }]);\n\n return ConnectedOverlayScrollHandler;\n}();\n\nfunction EventBus () {\n var allHandlers = new Map();\n return {\n on: function on(type, handler) {\n var handlers = allHandlers.get(type);\n if (!handlers) handlers = [handler];else handlers.push(handler);\n allHandlers.set(type, handlers);\n },\n off: function off(type, handler) {\n var handlers = allHandlers.get(type);\n handlers && handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n },\n emit: function emit(type, evt) {\n var handlers = allHandlers.get(type);\n handlers && handlers.slice().forEach(function (handler) {\n return handler(evt);\n });\n }\n };\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nfunction mask(el, options) {\n var defaultOptions = {\n mask: null,\n slotChar: '_',\n autoClear: true,\n unmask: false,\n readOnly: false,\n onComplete: null,\n onChange: null,\n onFocus: null,\n onBlur: null\n };\n options = _objectSpread$1(_objectSpread$1({}, defaultOptions), options);\n var tests, partialPosition, len, firstNonMaskPos, defs, androidChrome, lastRequiredNonMaskPos, oldVal, focusText, caretTimeoutId, buffer, defaultBuffer;\n\n var caret = function caret(first, last) {\n var range, begin, end;\n\n if (!el.offsetParent || el !== document.activeElement) {\n return;\n }\n\n if (typeof first === 'number') {\n begin = first;\n end = typeof last === 'number' ? last : begin;\n\n if (el.setSelectionRange) {\n el.setSelectionRange(begin, end);\n } else if (el['createTextRange']) {\n range = el['createTextRange']();\n range.collapse(true);\n range.moveEnd('character', end);\n range.moveStart('character', begin);\n range.select();\n }\n } else {\n if (el.setSelectionRange) {\n begin = el.selectionStart;\n end = el.selectionEnd;\n } else if (document['selection'] && document['selection'].createRange) {\n range = document['selection'].createRange();\n begin = 0 - range.duplicate().moveStart('character', -100000);\n end = begin + range.text.length;\n }\n\n return {\n begin: begin,\n end: end\n };\n }\n };\n\n var isCompleted = function isCompleted() {\n for (var i = firstNonMaskPos; i <= lastRequiredNonMaskPos; i++) {\n if (tests[i] && buffer[i] === getPlaceholder(i)) {\n return false;\n }\n }\n\n return true;\n };\n\n var getPlaceholder = function getPlaceholder(i) {\n if (i < options.slotChar.length) {\n return options.slotChar.charAt(i);\n }\n\n return options.slotChar.charAt(0);\n };\n\n var getValue = function getValue() {\n return options.unmask ? getUnmaskedValue() : el && el.value;\n };\n\n var seekNext = function seekNext(pos) {\n while (++pos < len && !tests[pos]) {\n }\n\n return pos;\n };\n\n var seekPrev = function seekPrev(pos) {\n while (--pos >= 0 && !tests[pos]) {\n }\n\n return pos;\n };\n\n var shiftL = function shiftL(begin, end) {\n var i, j;\n\n if (begin < 0) {\n return;\n }\n\n for (i = begin, j = seekNext(end); i < len; i++) {\n if (tests[i]) {\n if (j < len && tests[i].test(buffer[j])) {\n buffer[i] = buffer[j];\n buffer[j] = getPlaceholder(j);\n } else {\n break;\n }\n\n j = seekNext(j);\n }\n }\n\n writeBuffer();\n caret(Math.max(firstNonMaskPos, begin));\n };\n\n var shiftR = function shiftR(pos) {\n var i, c, j, t;\n\n for (i = pos, c = getPlaceholder(pos); i < len; i++) {\n if (tests[i]) {\n j = seekNext(i);\n t = buffer[i];\n buffer[i] = c;\n\n if (j < len && tests[j].test(t)) {\n c = t;\n } else {\n break;\n }\n }\n }\n };\n\n var handleAndroidInput = function handleAndroidInput(e) {\n var curVal = el.value;\n var pos = caret();\n\n if (oldVal && oldVal.length && oldVal.length > curVal.length) {\n // a deletion or backspace happened\n checkVal(true);\n\n while (pos.begin > 0 && !tests[pos.begin - 1]) {\n pos.begin--;\n }\n\n if (pos.begin === 0) {\n while (pos.begin < firstNonMaskPos && !tests[pos.begin]) {\n pos.begin++;\n }\n }\n\n caret(pos.begin, pos.begin);\n } else {\n checkVal(true);\n\n while (pos.begin < len && !tests[pos.begin]) {\n pos.begin++;\n }\n\n caret(pos.begin, pos.begin);\n }\n\n if (options.onComplete && isCompleted()) {\n options.onComplete({\n originalEvent: e,\n value: getValue()\n });\n }\n };\n\n var onBlur = function onBlur(e) {\n checkVal();\n updateModel(e);\n\n if (options.onBlur) {\n options.onBlur(e);\n }\n\n if (el.value !== focusText) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent('change', true, false);\n el.dispatchEvent(event);\n }\n };\n\n var onKeyDown = function onKeyDown(e) {\n if (options.readOnly) {\n return;\n }\n\n var k = e.which || e.keyCode,\n pos,\n begin,\n end;\n var iPhone = /iphone/i.test(DomHandler.getUserAgent());\n oldVal = el.value; //backspace, delete, and escape get special treatment\n\n if (k === 8 || k === 46 || iPhone && k === 127) {\n pos = caret();\n begin = pos.begin;\n end = pos.end;\n\n if (end - begin === 0) {\n begin = k !== 46 ? seekPrev(begin) : end = seekNext(begin - 1);\n end = k === 46 ? seekNext(end) : end;\n }\n\n clearBuffer(begin, end);\n shiftL(begin, end - 1);\n updateModel(e);\n e.preventDefault();\n } else if (k === 13) {\n // enter\n onBlur(e);\n updateModel(e);\n } else if (k === 27) {\n // escape\n el.value = focusText;\n caret(0, checkVal());\n updateModel(e);\n e.preventDefault();\n }\n };\n\n var onKeyPress = function onKeyPress(e) {\n if (options.readOnly) {\n return;\n }\n\n var k = e.which || e.keyCode,\n pos = caret(),\n p,\n c,\n next,\n completed;\n\n if (e.ctrlKey || e.altKey || e.metaKey || k < 32) {\n //Ignore\n return;\n } else if (k && k !== 13) {\n if (pos.end - pos.begin !== 0) {\n clearBuffer(pos.begin, pos.end);\n shiftL(pos.begin, pos.end - 1);\n }\n\n p = seekNext(pos.begin - 1);\n\n if (p < len) {\n c = String.fromCharCode(k);\n\n if (tests[p].test(c)) {\n shiftR(p);\n buffer[p] = c;\n writeBuffer();\n next = seekNext(p);\n\n if (/android/i.test(DomHandler.getUserAgent())) {\n //Path for CSP Violation on FireFox OS 1.1\n var proxy = function proxy() {\n caret(next);\n };\n\n setTimeout(proxy, 0);\n } else {\n caret(next);\n }\n\n if (pos.begin <= lastRequiredNonMaskPos) {\n completed = isCompleted();\n }\n }\n }\n\n e.preventDefault();\n }\n\n updateModel(e);\n\n if (options.onComplete && completed) {\n options.onComplete({\n originalEvent: e,\n value: getValue()\n });\n }\n };\n\n var clearBuffer = function clearBuffer(start, end) {\n var i;\n\n for (i = start; i < end && i < len; i++) {\n if (tests[i]) {\n buffer[i] = getPlaceholder(i);\n }\n }\n };\n\n var writeBuffer = function writeBuffer() {\n el.value = buffer.join('');\n };\n\n var checkVal = function checkVal(allow) {\n //try to place characters where they belong\n var test = el.value,\n lastMatch = -1,\n i,\n c,\n pos;\n\n for (i = 0, pos = 0; i < len; i++) {\n if (tests[i]) {\n buffer[i] = getPlaceholder(i);\n\n while (pos++ < test.length) {\n c = test.charAt(pos - 1);\n\n if (tests[i].test(c)) {\n buffer[i] = c;\n lastMatch = i;\n break;\n }\n }\n\n if (pos > test.length) {\n clearBuffer(i + 1, len);\n break;\n }\n } else {\n if (buffer[i] === test.charAt(pos)) {\n pos++;\n }\n\n if (i < partialPosition) {\n lastMatch = i;\n }\n }\n }\n\n if (allow) {\n writeBuffer();\n } else if (lastMatch + 1 < partialPosition) {\n if (options.autoClear || buffer.join('') === defaultBuffer) {\n // Invalid value. Remove it and replace it with the\n // mask, which is the default behavior.\n if (el.value) el.value = '';\n clearBuffer(0, len);\n } else {\n // Invalid value, but we opt to show the value to the\n // user and allow them to correct their mistake.\n writeBuffer();\n }\n } else {\n writeBuffer();\n el.value = el.value.substring(0, lastMatch + 1);\n }\n\n return partialPosition ? i : firstNonMaskPos;\n };\n\n var onFocus = function onFocus(e) {\n if (options.readOnly) {\n return;\n }\n\n clearTimeout(caretTimeoutId);\n var pos;\n focusText = el.value;\n pos = checkVal();\n caretTimeoutId = setTimeout(function () {\n if (el !== document.activeElement) {\n return;\n }\n\n writeBuffer();\n\n if (pos === options.mask.replace(\"?\", \"\").length) {\n caret(0, pos);\n } else {\n caret(pos);\n }\n }, 10);\n\n if (options.onFocus) {\n options.onFocus(e);\n }\n };\n\n var onInput = function onInput(event) {\n if (androidChrome) handleAndroidInput(event);else handleInputChange(event);\n };\n\n var handleInputChange = function handleInputChange(e) {\n if (options.readOnly) {\n return;\n }\n\n var pos = checkVal(true);\n caret(pos);\n updateModel(e);\n\n if (options.onComplete && isCompleted()) {\n options.onComplete({\n originalEvent: e,\n value: getValue()\n });\n }\n };\n\n var getUnmaskedValue = function getUnmaskedValue() {\n var unmaskedBuffer = [];\n\n for (var i = 0; i < buffer.length; i++) {\n var c = buffer[i];\n\n if (tests[i] && c !== getPlaceholder(i)) {\n unmaskedBuffer.push(c);\n }\n }\n\n return unmaskedBuffer.join('');\n };\n\n var updateModel = function updateModel(e) {\n if (options.onChange) {\n var val = getValue().replace(options.slotChar, '');\n options.onChange({\n originalEvent: e,\n value: defaultBuffer !== val ? val : ''\n });\n }\n };\n\n var bindEvents = function bindEvents() {\n el.addEventListener('focus', onFocus);\n el.addEventListener('blur', onBlur);\n el.addEventListener('keydown', onKeyDown);\n el.addEventListener('keypress', onKeyPress);\n el.addEventListener('input', onInput);\n el.addEventListener('paste', handleInputChange);\n };\n\n var unbindEvents = function unbindEvents() {\n el.removeEventListener('focus', onFocus);\n el.removeEventListener('blur', onBlur);\n el.removeEventListener('keydown', onKeyDown);\n el.removeEventListener('keypress', onKeyPress);\n el.removeEventListener('input', onInput);\n el.removeEventListener('paste', handleInputChange);\n };\n\n var init = function init() {\n tests = [];\n partialPosition = options.mask.length;\n len = options.mask.length;\n firstNonMaskPos = null;\n defs = {\n '9': '[0-9]',\n 'a': '[A-Za-z]',\n '*': '[A-Za-z0-9]'\n };\n var ua = DomHandler.getUserAgent();\n androidChrome = /chrome/i.test(ua) && /android/i.test(ua);\n var maskTokens = options.mask.split('');\n\n for (var i = 0; i < maskTokens.length; i++) {\n var c = maskTokens[i];\n\n if (c === '?') {\n len--;\n partialPosition = i;\n } else if (defs[c]) {\n tests.push(new RegExp(defs[c]));\n\n if (firstNonMaskPos === null) {\n firstNonMaskPos = tests.length - 1;\n }\n\n if (i < partialPosition) {\n lastRequiredNonMaskPos = tests.length - 1;\n }\n } else {\n tests.push(null);\n }\n }\n\n buffer = [];\n\n for (var _i = 0; _i < maskTokens.length; _i++) {\n var _c = maskTokens[_i];\n\n if (_c !== '?') {\n if (defs[_c]) buffer.push(getPlaceholder(_i));else buffer.push(_c);\n }\n }\n\n defaultBuffer = buffer.join('');\n };\n\n if (el && options.mask) {\n init();\n bindEvents();\n }\n\n return {\n init: init,\n bindEvents: bindEvents,\n unbindEvents: unbindEvents,\n updateModel: updateModel,\n getValue: getValue\n };\n}\n\nvar ObjectUtils = /*#__PURE__*/function () {\n function ObjectUtils() {\n _classCallCheck(this, ObjectUtils);\n }\n\n _createClass(ObjectUtils, null, [{\n key: \"equals\",\n value: function equals(obj1, obj2, field) {\n if (field && obj1 && _typeof(obj1) === 'object' && obj2 && _typeof(obj2) === 'object') return this.resolveFieldData(obj1, field) === this.resolveFieldData(obj2, field);else return this.deepEquals(obj1, obj2);\n }\n }, {\n key: \"deepEquals\",\n value: function deepEquals(a, b) {\n if (a === b) return true;\n\n if (a && b && _typeof(a) == 'object' && _typeof(b) == 'object') {\n var arrA = Array.isArray(a),\n arrB = Array.isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length !== b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!this.deepEquals(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n if (arrA !== arrB) return false;\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA !== dateB) return false;\n if (dateA && dateB) return a.getTime() === b.getTime();\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA !== regexpB) return false;\n if (regexpA && regexpB) return a.toString() === b.toString();\n var keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n }\n\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (!this.deepEquals(a[key], b[key])) return false;\n }\n\n return true;\n }\n /*eslint no-self-compare: \"off\"*/\n\n\n return a !== a && b !== b;\n }\n }, {\n key: \"resolveFieldData\",\n value: function resolveFieldData(data, field) {\n if (data && Object.keys(data).length && field) {\n if (this.isFunction(field)) {\n return field(data);\n } else if (field.indexOf('.') === -1) {\n return data[field];\n } else {\n var fields = field.split('.');\n var value = data;\n\n for (var i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n\n value = value[fields[i]];\n }\n\n return value;\n }\n } else {\n return null;\n }\n }\n }, {\n key: \"isFunction\",\n value: function isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n }, {\n key: \"findDiffKeys\",\n value: function findDiffKeys(obj1, obj2) {\n if (!obj1 || !obj2) {\n return {};\n }\n\n return Object.keys(obj1).filter(function (key) {\n return !obj2.hasOwnProperty(key);\n }).reduce(function (result, current) {\n result[current] = obj1[current];\n return result;\n }, {});\n }\n }, {\n key: \"reorderArray\",\n value: function reorderArray(value, from, to) {\n var target;\n\n if (value && from !== to) {\n if (to >= value.length) {\n target = to - value.length;\n\n while (target-- + 1) {\n value.push(undefined);\n }\n }\n\n value.splice(to, 0, value.splice(from, 1)[0]);\n }\n }\n }, {\n key: \"findIndexInList\",\n value: function findIndexInList(value, list, dataKey) {\n var _this = this;\n\n if (list) {\n return dataKey ? list.findIndex(function (item) {\n return _this.equals(item, value, dataKey);\n }) : list.findIndex(function (item) {\n return item === value;\n });\n }\n\n return -1;\n }\n }, {\n key: \"getJSXElement\",\n value: function getJSXElement(obj) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n return this.isFunction(obj) ? obj.apply(void 0, params) : obj;\n }\n }, {\n key: \"getPropValue\",\n value: function getPropValue(obj) {\n for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n params[_key2 - 1] = arguments[_key2];\n }\n\n return this.isFunction(obj) ? obj.apply(void 0, params) : obj;\n }\n }, {\n key: \"getRefElement\",\n value: function getRefElement(ref) {\n if (ref) {\n return _typeof(ref) === 'object' && ref.hasOwnProperty('current') ? ref.current : ref;\n }\n\n return null;\n }\n }, {\n key: \"removeAccents\",\n value: function removeAccents(str) {\n if (str && str.search(/[\\xC0-\\xFF]/g) > -1) {\n str = str.replace(/[\\xC0-\\xC5]/g, \"A\").replace(/[\\xC6]/g, \"AE\").replace(/[\\xC7]/g, \"C\").replace(/[\\xC8-\\xCB]/g, \"E\").replace(/[\\xCC-\\xCF]/g, \"I\").replace(/[\\xD0]/g, \"D\").replace(/[\\xD1]/g, \"N\").replace(/[\\xD2-\\xD6\\xD8]/g, \"O\").replace(/[\\xD9-\\xDC]/g, \"U\").replace(/[\\xDD]/g, \"Y\").replace(/[\\xDE]/g, \"P\").replace(/[\\xE0-\\xE5]/g, \"a\").replace(/[\\xE6]/g, \"ae\").replace(/[\\xE7]/g, \"c\").replace(/[\\xE8-\\xEB]/g, \"e\").replace(/[\\xEC-\\xEF]/g, \"i\").replace(/[\\xF1]/g, \"n\").replace(/[\\xF2-\\xF6\\xF8]/g, \"o\").replace(/[\\xF9-\\xFC]/g, \"u\").replace(/[\\xFE]/g, \"p\").replace(/[\\xFD\\xFF]/g, \"y\");\n }\n\n return str;\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty(value) {\n return value === null || value === undefined || value === '' || Array.isArray(value) && value.length === 0 || !(value instanceof Date) && _typeof(value) === 'object' && Object.keys(value).length === 0;\n }\n }, {\n key: \"isNotEmpty\",\n value: function isNotEmpty(value) {\n return !this.isEmpty(value);\n }\n }]);\n\n return ObjectUtils;\n}();\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar IconUtils = /*#__PURE__*/function () {\n function IconUtils() {\n _classCallCheck(this, IconUtils);\n }\n\n _createClass(IconUtils, null, [{\n key: \"getJSXIcon\",\n value: function getJSXIcon(icon, iconProps, options) {\n var content = null;\n\n if (icon) {\n var iconType = _typeof(icon);\n\n var className = classNames(iconProps.className, iconType === 'string' && icon);\n content = /*#__PURE__*/React.createElement(\"span\", _extends({}, iconProps, {\n className: className\n }));\n\n if (iconType !== 'string') {\n var defaultContentOptions = _objectSpread({\n iconProps: iconProps,\n element: content\n }, options);\n\n return ObjectUtils.getJSXElement(icon, defaultContentOptions);\n }\n }\n\n return content;\n }\n }]);\n\n return IconUtils;\n}();\n\nvar lastId = 0;\nfunction UniqueComponentId () {\n var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'pr_id_';\n lastId++;\n return \"\".concat(prefix).concat(lastId);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();\n}\n\nfunction handler() {\n var zIndexes = [];\n\n var generateZIndex = function generateZIndex(key, autoZIndex) {\n var baseZIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 999;\n var lastZIndex = getLastZIndex(key, autoZIndex, baseZIndex);\n var newZIndex = lastZIndex.value + (lastZIndex.key === key ? 0 : baseZIndex) + 1;\n zIndexes.push({\n key: key,\n value: newZIndex\n });\n return newZIndex;\n };\n\n var revertZIndex = function revertZIndex(zIndex) {\n zIndexes = zIndexes.filter(function (obj) {\n return obj.value !== zIndex;\n });\n };\n\n var getCurrentZIndex = function getCurrentZIndex(key, autoZIndex) {\n return getLastZIndex(key, autoZIndex).value;\n };\n\n var getLastZIndex = function getLastZIndex(key, autoZIndex) {\n var baseZIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n return _toConsumableArray(zIndexes).reverse().find(function (obj) {\n return autoZIndex ? true : obj.key === key;\n }) || {\n key: key,\n value: baseZIndex\n };\n };\n\n var getZIndex = function getZIndex(el) {\n return el ? parseInt(el.style.zIndex, 10) || 0 : 0;\n };\n\n return {\n get: getZIndex,\n set: function set(key, el, autoZIndex, baseZIndex) {\n if (el) {\n el.style.zIndex = String(generateZIndex(key, autoZIndex, baseZIndex));\n }\n },\n clear: function clear(el) {\n if (el) {\n revertZIndex(ZIndexUtils.get(el));\n el.style.zIndex = '';\n }\n },\n getCurrent: function getCurrent(key, autoZIndex) {\n return getCurrentZIndex(key, autoZIndex);\n }\n };\n}\n\nvar ZIndexUtils = handler();\n\nexport { ConnectedOverlayScrollHandler, DomHandler, EventBus, IconUtils, ObjectUtils, UniqueComponentId, ZIndexUtils, classNames, mask };\n","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __rest } from \"tslib\";\nimport * as React from 'react';\nimport useIntl from './useIntl';\nimport { shallowEqual } from '../utils';\nfunction areEqual(prevProps, nextProps) {\n var values = prevProps.values, otherProps = __rest(prevProps, [\"values\"]);\n var nextValues = nextProps.values, nextOtherProps = __rest(nextProps, [\"values\"]);\n return (shallowEqual(nextValues, values) &&\n shallowEqual(otherProps, nextOtherProps));\n}\nfunction FormattedMessage(props) {\n var intl = useIntl();\n var formatMessage = intl.formatMessage, _a = intl.textComponent, Text = _a === void 0 ? React.Fragment : _a;\n var id = props.id, description = props.description, defaultMessage = props.defaultMessage, values = props.values, children = props.children, _b = props.tagName, Component = _b === void 0 ? Text : _b, ignoreTag = props.ignoreTag;\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var nodes = formatMessage(descriptor, values, {\n ignoreTag: ignoreTag,\n });\n if (typeof children === 'function') {\n return children(Array.isArray(nodes) ? nodes : [nodes]);\n }\n if (Component) {\n return React.createElement(Component, null, React.Children.toArray(nodes));\n }\n return React.createElement(React.Fragment, null, nodes);\n}\nFormattedMessage.displayName = 'FormattedMessage';\nvar MemoizedFormattedMessage = React.memo(FormattedMessage, areEqual);\nMemoizedFormattedMessage.displayName = 'MemoizedFormattedMessage';\nexport default MemoizedFormattedMessage;\n","module.exports = require(\"regenerator-runtime\");\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DEVICE_SIZES = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport function useCol({\n as,\n bsPrefix,\n className,\n ...props\n}) {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'col');\n const spans = [];\n const classes = [];\n DEVICE_SIZES.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let span;\n let offset;\n let order;\n\n if (typeof propValue === 'object' && propValue != null) {\n ({\n span,\n offset,\n order\n } = propValue);\n } else {\n span = propValue;\n }\n\n const infix = brkPoint !== 'xs' ? `-${brkPoint}` : '';\n if (span) spans.push(span === true ? `${bsPrefix}${infix}` : `${bsPrefix}${infix}-${span}`);\n if (order != null) classes.push(`order${infix}-${order}`);\n if (offset != null) classes.push(`offset${infix}-${offset}`);\n });\n return [{ ...props,\n className: classNames(className, ...spans, ...classes)\n }, {\n as,\n bsPrefix,\n spans\n }];\n}\nconst Col = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n(props, ref) => {\n const [{\n className,\n ...colProps\n }, {\n as: Component = 'div',\n bsPrefix,\n spans\n }] = useCol(props);\n return /*#__PURE__*/_jsx(Component, { ...colProps,\n ref: ref,\n className: classNames(className, !spans.length && bsPrefix)\n });\n});\nCol.displayName = 'Col';\nexport default Col;","import objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { ObjectUtils } from 'primereact/utils';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar FilterMatchMode = Object.freeze({\n STARTS_WITH: 'startsWith',\n CONTAINS: 'contains',\n NOT_CONTAINS: 'notContains',\n ENDS_WITH: 'endsWith',\n EQUALS: 'equals',\n NOT_EQUALS: 'notEquals',\n IN: 'in',\n LESS_THAN: 'lt',\n LESS_THAN_OR_EQUAL_TO: 'lte',\n GREATER_THAN: 'gt',\n GREATER_THAN_OR_EQUAL_TO: 'gte',\n BETWEEN: 'between',\n DATE_IS: 'dateIs',\n DATE_IS_NOT: 'dateIsNot',\n DATE_BEFORE: 'dateBefore',\n DATE_AFTER: 'dateAfter',\n CUSTOM: 'custom'\n});\n\nvar PrimeReact = function PrimeReact() {\n _classCallCheck(this, PrimeReact);\n};\n\n_defineProperty(PrimeReact, \"ripple\", false);\n\n_defineProperty(PrimeReact, \"inputStyle\", 'outlined');\n\n_defineProperty(PrimeReact, \"locale\", 'en');\n\n_defineProperty(PrimeReact, \"appendTo\", null);\n\n_defineProperty(PrimeReact, \"autoZIndex\", true);\n\n_defineProperty(PrimeReact, \"zIndex\", {\n modal: 1100,\n overlay: 1000,\n menu: 1000,\n tooltip: 1100,\n toast: 1200\n});\n\n_defineProperty(PrimeReact, \"filterMatchModeOptions\", {\n text: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS],\n numeric: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO],\n date: [FilterMatchMode.DATE_IS, FilterMatchMode.DATE_IS_NOT, FilterMatchMode.DATE_BEFORE, FilterMatchMode.DATE_AFTER]\n});\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar locales = {\n 'en': {\n startsWith: 'Starts with',\n contains: 'Contains',\n notContains: 'Not contains',\n endsWith: 'Ends with',\n equals: 'Equals',\n notEquals: 'Not equals',\n noFilter: 'No Filter',\n lt: 'Less than',\n lte: 'Less than or equal to',\n gt: 'Greater than',\n gte: 'Greater than or equal to',\n dateIs: 'Date is',\n dateIsNot: 'Date is not',\n dateBefore: 'Date is before',\n dateAfter: 'Date is after',\n custom: 'Custom',\n clear: 'Clear',\n apply: 'Apply',\n matchAll: 'Match All',\n matchAny: 'Match Any',\n addRule: 'Add Rule',\n removeRule: 'Remove Rule',\n accept: 'Yes',\n reject: 'No',\n choose: 'Choose',\n upload: 'Upload',\n cancel: 'Cancel',\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n today: 'Today',\n weekHeader: 'Wk',\n firstDayOfWeek: 0,\n dateFormat: 'mm/dd/yy',\n weak: 'Weak',\n medium: 'Medium',\n strong: 'Strong',\n passwordPrompt: 'Enter a password',\n emptyFilterMessage: 'No results found',\n emptyMessage: 'No available options'\n }\n};\n\nfunction locale(locale) {\n locale && (PrimeReact.locale = locale);\n return {\n locale: PrimeReact.locale,\n options: locales[PrimeReact.locale]\n };\n}\n\nfunction addLocale(locale, options) {\n locales[locale] = _objectSpread(_objectSpread({}, locales['en']), options);\n}\n\nfunction updateLocaleOption(key, value, locale) {\n localeOptions(locale)[key] = value;\n}\n\nfunction updateLocaleOptions(options, locale) {\n var _locale = locale || PrimeReact.locale;\n\n locales[_locale] = _objectSpread(_objectSpread({}, locales[_locale]), options);\n}\n\nfunction localeOption(key, locale) {\n var _locale = locale || PrimeReact.locale;\n\n try {\n return localeOptions(_locale)[key];\n } catch (error) {\n throw new Error(\"The \".concat(key, \" option is not found in the current locale('\").concat(_locale, \"').\"));\n }\n}\n\nfunction localeOptions(locale) {\n var _locale = locale || PrimeReact.locale;\n\n return locales[_locale];\n}\n\nvar PrimeIcons = Object.freeze({\n ALIGN_CENTER: 'pi pi-align-center',\n ALIGN_JUSTIFY: 'pi pi-align-justify',\n ALIGN_LEFT: 'pi pi-align-left',\n ALIGN_RIGHT: 'pi pi-align-right',\n AMAZON: 'pi pi-amazon',\n ANDROID: 'pi pi-android',\n ANGLE_DOUBLE_DOWN: 'pi pi-angle-double-down',\n ANGLE_DOUBLE_LEFT: 'pi pi-angle-double-left',\n ANGLE_DOUBLE_RIGHT: 'pi pi-angle-double-right',\n ANGLE_DOUBLE_UP: 'pi pi-angle-double-up',\n ANGLE_DOWN: 'pi pi-angle-down',\n ANGLE_LEFT: 'pi pi-angle-left',\n ANGLE_RIGHT: 'pi pi-angle-right',\n ANGLE_UP: 'pi pi-angle-up',\n APPLE: 'pi pi-apple',\n ARROW_CIRCLE_DOWN: 'pi pi-arrow-circle-down',\n ARROW_CIRCLE_LEFT: 'pi pi-arrow-circle-left',\n ARROW_CIRCLE_RIGHT: 'pi pi-arrow-circle-right',\n ARROW_CIRCLE_UP: 'pi pi-arrow-circle-up',\n ARROW_DOWN: 'pi pi-arrow-down',\n ARROW_DOWN_LEFT: 'pi pi-arrow-down-left',\n ARROW_DOWN_RIGHT: 'pi pi-arrow-down-right',\n ARROW_LEFT: 'pi pi-arrow-left',\n ARROW_RIGHT: 'pi pi-arrow-right',\n ARROW_UP: 'pi pi-arrow-up',\n ARROW_UP_LEFT: 'pi pi-arrow-up-left',\n ARROW_UP_RIGHT: 'pi pi-arrow-up-right',\n ARROW_H: 'pi pi-arrow-h',\n ARROW_V: 'pi pi-arrow-v',\n AT: 'pi pi-at',\n BACKWARD: 'pi pi-backward',\n BAN: 'pi pi-ban',\n BARS: 'pi pi-bars',\n BELL: 'pi pi-bell',\n BOLT: 'pi pi-bolt',\n BOOK: 'pi pi-book',\n BOOKMARK: 'pi pi-bookmark',\n BOOKMARK_FILL: 'pi pi-bookmark-fill',\n BOX: 'pi pi-box',\n BRIEFCASE: 'pi pi-briefcase',\n BUILDING: 'pi pi-building',\n CALENDAR: 'pi pi-calendar',\n CALENDAR_MINUS: 'pi pi-calendar-minus',\n CALENDAR_PLUS: 'pi pi-calendar-plus',\n CALENDAR_TIMES: 'pi pi-calendar-times',\n CAMERA: 'pi pi-camera',\n CAR: 'pi pi-car',\n CARET_DOWN: 'pi pi-caret-down',\n CARET_LEFT: 'pi pi-caret-left',\n CARET_RIGHT: 'pi pi-caret-right',\n CARET_UP: 'pi pi-caret-up',\n CHART_BAR: 'pi pi-chart-bar',\n CHART_LINE: 'pi pi-chart-line',\n CHART_PIE: 'pi pi-chart-pie',\n CHECK: 'pi pi-check',\n CHECK_CIRCLE: 'pi pi-check-circle',\n CHECK_SQUARE: 'pi pi-check-square',\n CHEVRON_CIRCLE_DOWN: 'pi pi-chevron-circle-down',\n CHEVRON_CIRCLE_LEFT: 'pi pi-chevron-circle-left',\n CHEVRON_CIRCLE_RIGHT: 'pi pi-chevron-circle-right',\n CHEVRON_CIRCLE_UP: 'pi pi-chevron-circle-up',\n CHEVRON_DOWN: 'pi pi-chevron-down',\n CHEVRON_LEFT: 'pi pi-chevron-left',\n CHEVRON_RIGHT: 'pi pi-chevron-right',\n CHEVRON_UP: 'pi pi-chevron-up',\n CIRCLE: 'pi pi-circle',\n CIRCLE_FILL: 'pi pi-circle-fill',\n CLOCK: 'pi pi-clock',\n CLONE: 'pi pi-clone',\n CLOUD: 'pi pi-cloud',\n CLOUD_DOWNLOAD: 'pi pi-cloud-download',\n CLOUD_UPLOAD: 'pi pi-cloud-upload',\n CODE: 'pi pi-code',\n COG: 'pi pi-cog',\n COMMENT: 'pi pi-comment',\n COMMENTS: 'pi pi-comments',\n COMPASS: 'pi pi-compass',\n COPY: 'pi pi-copy',\n CREDIT_CARD: 'pi pi-credit-card',\n DATABASE: 'pi pi-database',\n DESKTOP: 'pi pi-desktop',\n DIRECTIONS: 'pi pi-directions',\n DIRECTIONS_ALT: 'pi pi-directions-alt',\n DISCORD: 'pi pi-discord',\n DOLLAR: 'pi pi-dollar',\n DOWNLOAD: 'pi pi-download',\n EJECT: 'pi pi-eject',\n ELLIPSIS_H: 'pi pi-ellipsis-h',\n ELLIPSIS_V: 'pi pi-ellipsis-v',\n ENVELOPE: 'pi pi-envelope',\n EURO: 'pi pi-euro',\n EXCLAMATION_CIRCLE: 'pi pi-exclamation-circle',\n EXCLAMATION_TRIANGLE: 'pi pi-exclamation-triangle',\n EXTERNAL_LINK: 'pi pi-external-link',\n EYE: 'pi pi-eye',\n EYE_SLASH: 'pi pi-eye-slash',\n FACEBOOK: 'pi pi-facebook',\n FAST_BACKWARD: 'pi pi-fast-backward',\n FAST_FORWARD: 'pi pi-fast-forward',\n FILE: 'pi pi-file',\n FILE_EXCEL: 'pi pi-file-excel',\n FILE_PDF: 'pi pi-file-pdf',\n FILTER: 'pi pi-filter',\n FILTER_FILL: 'pi pi-filter-fill',\n FILTER_SLASH: 'pi pi-filter-slash',\n FLAG: 'pi pi-flag',\n FLAG_FILL: 'pi pi-flag-fill',\n FOLDER: 'pi pi-folder',\n FOLDER_OPEN: 'pi pi-folder-open',\n FORWARD: 'pi pi-forward',\n GITHUB: 'pi pi-github',\n GLOBE: 'pi pi-globe',\n GOOGLE: 'pi pi-google',\n HASHTAG: 'pi pi-hashtag',\n HEART: 'pi pi-heart',\n HEART_FILL: 'pi pi-heart-fill',\n HISTORY: 'pi pi-history',\n HOME: 'pi pi-home',\n ID_CARD: 'pi pi-id-card',\n IMAGE: 'pi pi-image',\n IMAGES: 'pi pi-images',\n INBOX: 'pi pi-inbox',\n INFO: 'pi pi-info',\n INFO_CIRCLE: 'pi pi-info-circle',\n INSTAGRAM: 'pi pi-instagram',\n KEY: 'pi pi-key',\n LINK: 'pi pi-link',\n LINKEDIN: 'pi pi-linkedin',\n LIST: 'pi pi-list',\n LOCK: 'pi pi-lock',\n LOCK_OPEN: 'pi pi-lock-open',\n MAP: 'pi pi-map',\n MAP_MARKER: 'pi pi-map-marker',\n MICROSOFT: 'pi pi-microsoft',\n MINUS: 'pi pi-minus',\n MINUS_CIRCLE: 'pi pi-minus-circle',\n MOBILE: 'pi pi-mobile',\n MONEY_BILL: 'pi pi-money-bill',\n MOON: 'pi pi-moon',\n PALETTE: 'pi pi-palette',\n PAPERCLIP: 'pi pi-paperclip',\n PAUSE: 'pi pi-pause',\n PAYPAL: 'pi pi-paypal',\n PENCIL: 'pi pi-pencil',\n PERCENTAGE: 'pi pi-percentage',\n PHONE: 'pi pi-phone',\n PLAY: 'pi pi-play',\n PLUS: 'pi pi-plus',\n PLUS_CIRCLE: 'pi pi-plus-circle',\n POUND: 'pi pi-pound',\n POWER_OFF: 'pi pi-power-off',\n PRIME: 'pi pi-prime',\n PRINT: 'pi pi-print',\n QRCODE: 'pi pi-qrcode',\n QUESTION: 'pi pi-question',\n QUESTION_CIRCLE: 'pi pi-question-circle',\n REDDIT: 'pi pi-reddit',\n REFRESH: 'pi pi-refresh',\n REPLAY: 'pi pi-replay',\n REPLY: 'pi pi-reply',\n SAVE: 'pi pi-save',\n SEARCH: 'pi pi-search',\n SEARCH_MINUS: 'pi pi-search-minus',\n SEARCH_PLUS: 'pi pi-search-plus',\n SEND: 'pi pi-send',\n SERVER: 'pi pi-server',\n SHARE_ALT: 'pi pi-share-alt',\n SHIELD: 'pi pi-shield',\n SHOPPING_BAG: 'pi pi-shopping-bag',\n SHOPPING_CART: 'pi pi-shopping-cart',\n SIGN_IN: 'pi pi-sign-in',\n SIGN_OUT: 'pi pi-sign-out',\n SITEMAP: 'pi pi-sitemap',\n SLACK: 'pi pi-slack',\n SLIDERS_H: 'pi pi-sliders-h',\n SLIDERS_V: 'pi pi-sliders-v',\n SORT: 'pi pi-sort',\n SORT_ALPHA_DOWN: 'pi pi-sort-alpha-down',\n SORT_ALPHA_ALT_DOWN: 'pi pi-sort-alpha-alt-down',\n SORT_ALPHA_UP: 'pi pi-sort-alpha-up',\n SORT_ALPHA_ALT_UP: 'pi pi-sort-alpha-alt-up',\n SORT_ALT: 'pi pi-sort-alt',\n SORT_ALT_SLASH: 'pi pi-sort-slash',\n SORT_AMOUNT_DOWN: 'pi pi-sort-amount-down',\n SORT_AMOUNT_DOWN_ALT: 'pi pi-sort-amount-down-alt',\n SORT_AMOUNT_UP: 'pi pi-sort-amount-up',\n SORT_AMOUNT_UP_ALT: 'pi pi-sort-amount-up-alt',\n SORT_DOWN: 'pi pi-sort-down',\n SORT_NUMERIC_DOWN: 'pi pi-sort-numeric-down',\n SORT_NUMERIC_ALT_DOWN: 'pi pi-sort-numeric-alt-down',\n SORT_NUMERIC_UP: 'pi pi-sort-numeric-up',\n SORT_NUMERIC_ALT_UP: 'pi pi-sort-numeric-alt-up',\n SORT_UP: 'pi pi-sort-up',\n SPINNER: 'pi pi-spinner',\n STAR: 'pi pi-star',\n STAR_FILL: 'pi pi-star-fill',\n STEP_BACKWARD: 'pi pi-step-backward',\n STEP_BACKWARD_ALT: 'pi pi-step-backward-alt',\n STEP_FORWARD: 'pi pi-step-forward',\n STEP_FORWARD_ALT: 'pi pi-step-forward-alt',\n STOP: 'pi pi-stop',\n STOP_CIRCLE: 'pi pi-stop-circle',\n SUN: 'pi pi-sun',\n SYNC: 'pi pi-sync',\n TABLE: 'pi pi-table',\n TABLET: 'pi pi-tablet',\n TAG: 'pi pi-tag',\n TAGS: 'pi pi-tags',\n TELEGRAM: 'pi pi-telegram',\n TH_LARGE: 'pi pi-th-large',\n THUMBS_DOWN: 'pi pi-thumbs-down',\n THUMBS_UP: 'pi pi-thumbs-up',\n TICKET: 'pi pi-ticket',\n TIMES: 'pi pi-times',\n TIMES_CIRCLE: 'pi pi-times-circle',\n TRASH: 'pi pi-trash',\n TWITTER: 'pi pi-twitter',\n UNDO: 'pi pi-undo',\n UNLOCK: 'pi pi-unlock',\n UPLOAD: 'pi pi-upload',\n USER: 'pi pi-user',\n USER_EDIT: 'pi pi-user-edit',\n USER_MINUS: 'pi pi-user-minus',\n USER_PLUS: 'pi pi-user-plus',\n USERS: 'pi pi-users',\n VIDEO: 'pi pi-video',\n VIMEO: 'pi pi-vimeo',\n VOLUME_DOWN: 'pi pi-volume-down',\n VOLUME_OFF: 'pi pi-volume-off',\n VOLUME_UP: 'pi pi-volume-up',\n WALLET: 'pi pi-wallet',\n WHATSAPP: 'pi pi-whatsapp',\n WIFI: 'pi pi-wifi',\n WINDOW_MAXIMIZE: 'pi pi-window-maximize',\n WINDOW_MINIMIZE: 'pi pi-window-minimize',\n YOUTUBE: 'pi pi-youtube'\n});\n\nvar MessageSeverity = Object.freeze({\n SUCCESS: 'success',\n INFO: 'info',\n WARN: 'warn',\n ERROR: 'error'\n});\n\nvar FilterOperator = Object.freeze({\n AND: 'and',\n OR: 'or'\n});\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar FilterService = {\n filter: function filter(value, fields, filterValue, filterMatchMode, filterLocale) {\n var filteredItems = [];\n\n if (value) {\n var _iterator = _createForOfIteratorHelper(value),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n\n var _iterator2 = _createForOfIteratorHelper(fields),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var field = _step2.value;\n var fieldValue = ObjectUtils.resolveFieldData(item, field);\n\n if (this.filters[filterMatchMode](fieldValue, filterValue, filterLocale)) {\n filteredItems.push(item);\n break;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n return filteredItems;\n },\n filters: {\n startsWith: function startsWith(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter.trim() === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n var filterValue = ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n var stringValue = ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n return stringValue.slice(0, filterValue.length) === filterValue;\n },\n contains: function contains(value, filter, filterLocale) {\n if (filter === undefined || filter === null || typeof filter === 'string' && filter.trim() === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n var filterValue = ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n var stringValue = ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n return stringValue.indexOf(filterValue) !== -1;\n },\n notContains: function notContains(value, filter, filterLocale) {\n if (filter === undefined || filter === null || typeof filter === 'string' && filter.trim() === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n var filterValue = ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n var stringValue = ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n return stringValue.indexOf(filterValue) === -1;\n },\n endsWith: function endsWith(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter.trim() === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n var filterValue = ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n var stringValue = ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n return stringValue.indexOf(filterValue, stringValue.length - filterValue.length) !== -1;\n },\n equals: function equals(value, filter, filterLocale) {\n if (filter === undefined || filter === null || typeof filter === 'string' && filter.trim() === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() === filter.getTime();else return ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale) === ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n },\n notEquals: function notEquals(value, filter, filterLocale) {\n if (filter === undefined || filter === null || typeof filter === 'string' && filter.trim() === '') {\n return false;\n }\n\n if (value === undefined || value === null) {\n return true;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() !== filter.getTime();else return ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale) !== ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n },\n in: function _in(value, filter) {\n if (filter === undefined || filter === null || filter.length === 0) {\n return true;\n }\n\n for (var i = 0; i < filter.length; i++) {\n if (ObjectUtils.equals(value, filter[i])) {\n return true;\n }\n }\n\n return false;\n },\n between: function between(value, filter) {\n if (filter == null || filter[0] == null || filter[1] == null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime) return filter[0].getTime() <= value.getTime() && value.getTime() <= filter[1].getTime();else return filter[0] <= value && value <= filter[1];\n },\n lt: function lt(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() < filter.getTime();else return value < filter;\n },\n lte: function lte(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() <= filter.getTime();else return value <= filter;\n },\n gt: function gt(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() > filter.getTime();else return value > filter;\n },\n gte: function gte(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() >= filter.getTime();else return value >= filter;\n },\n dateIs: function dateIs(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n return value.toDateString() === filter.toDateString();\n },\n dateIsNot: function dateIsNot(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n return value.toDateString() !== filter.toDateString();\n },\n dateBefore: function dateBefore(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n return value.getTime() < filter.getTime();\n },\n dateAfter: function dateAfter(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n return value.getTime() > filter.getTime();\n }\n },\n register: function register(rule, fn) {\n this.filters[rule] = fn;\n }\n};\n\nexport { FilterMatchMode, FilterOperator, FilterService, MessageSeverity, PrimeIcons, addLocale, PrimeReact as default, locale, localeOption, localeOptions, updateLocaleOption, updateLocaleOptions };\n","import * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {}\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\n\nfunction ThemeProvider({\n prefixes = {},\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: { ...prefixes\n },\n dir\n }), [prefixes, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\n\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\n\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent; // If it's a functional component make sure we don't break it with a ref\n\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({ ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, { ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\n\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","import { Component } from 'react';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Column = /*#__PURE__*/function (_Component) {\n _inherits(Column, _Component);\n\n var _super = _createSuper(Column);\n\n function Column() {\n _classCallCheck(this, Column);\n\n return _super.apply(this, arguments);\n }\n\n return Column;\n}(Component);\n\n_defineProperty(Column, \"defaultProps\", {\n columnKey: null,\n field: null,\n sortField: null,\n filterField: null,\n header: null,\n body: null,\n footer: null,\n sortable: false,\n sortableDisabled: false,\n sortFunction: null,\n dataType: 'text',\n filter: false,\n filterMatchMode: null,\n filterPlaceholder: null,\n filterType: 'text',\n filterMaxLength: null,\n filterElement: null,\n filterFunction: null,\n filterHeaderStyle: null,\n filterHeaderClassName: null,\n showFilterMenu: true,\n showFilterOperator: true,\n showClearButton: true,\n showApplyButton: true,\n showFilterMatchModes: true,\n showFilterMenuOptions: true,\n showAddButton: true,\n filterMatchModeOptions: null,\n maxConstraints: 2,\n filterMenuClassName: null,\n filterMenuStyle: null,\n alignFrozen: 'left',\n hidden: false,\n onFilterClear: null,\n onFilterApplyClick: null,\n onFilterMatchModeChange: null,\n onFilterOperatorChange: null,\n onFilterConstraintAdd: null,\n onFilterConstraintRemove: null,\n filterClear: null,\n filterApply: null,\n filterHeader: null,\n filterFooter: null,\n style: null,\n className: null,\n headerStyle: null,\n headerClassName: null,\n bodyStyle: null,\n bodyClassName: null,\n footerStyle: null,\n footerClassName: null,\n expander: false,\n frozen: false,\n selectionMode: null,\n colSpan: null,\n rowSpan: null,\n editor: null,\n cellEditValidator: null,\n cellEditValidatorEvent: 'click',\n onBeforeCellEditHide: null,\n onBeforeCellEditShow: null,\n onCellEditInit: null,\n onCellEditComplete: null,\n onCellEditCancel: null,\n excludeGlobalFilter: false,\n rowReorder: false,\n rowReorderIcon: 'pi pi-bars',\n rowEditor: false,\n exportable: true,\n reorderable: true\n});\n\nexport { Column };\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var spin = props.spin,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-spin': spin,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, [\"style\"]);\n\n mixins.attrs['style'] = _objectSpread2({}, mixins.attrs['style'], {}, existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2({}, mixins.attrs, {}, remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nfunction FontAwesomeIcon(_ref) {\n var forwardedRef = _ref.forwardedRef,\n props = _objectWithoutProperties(_ref, [\"forwardedRef\"]);\n\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2({}, classes, {}, transform, {}, mask, {\n symbol: symbol,\n title: title,\n titleId: titleId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: forwardedRef\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n}\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n border: PropTypes.bool,\n className: PropTypes.string,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf(['horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n size: PropTypes.oneOf(['lg', 'xs', 'sm', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n fixedWidth: false,\n inverse: false,\n flip: null,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n symbol: false,\n title: '',\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DEVICE_SIZES = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n DEVICE_SIZES.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n\n const infix = brkPoint !== 'xs' ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import * as React from \"react\";\nimport type {\n History,\n InitialEntry,\n Location,\n MemoryHistory,\n Path,\n To\n} from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath\n} from \"history\";\n\nexport type { Location, Path, To, NavigationType };\n\nfunction invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nfunction warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nconst alreadyWarned: Record = {};\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// CONTEXT\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport type Navigator = Omit<\n History,\n \"action\" | \"location\" | \"back\" | \"forward\" | \"listen\" | \"block\"\n>;\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nconst NavigationContext = React.createContext(null!);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nconst LocationContext = React.createContext(null!);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\ninterface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nconst RouteContext = React.createContext({\n outlet: null,\n matches: []\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n///////////////////////////////////////////////////////////////////////////////\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n ` may be used only in the context of a component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n ` must not be used on the initial render in a . ` +\n `This is a no-op, but you should modify your code so the is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(_props: OutletProps): React.ReactElement | null {\n return useOutlet();\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactElement | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactElement | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactElement | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactElement | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A is only ever to be used as the child of element, ` +\n `never rendered directly. Please wrap your in a .`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a inside another .` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\"\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n ` is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial | string;\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// HOOKS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch(\n pattern: PathPattern | string\n): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n return matchPath(pattern, useLocation().pathname);\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map(match => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: { replace?: boolean; state?: any } = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(): React.ReactElement | null {\n return React.useContext(RouteContext).outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams(): Readonly<\n Params\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map(match => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map(match =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase])\n })\n ),\n parentMatches\n );\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, element => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a component. All component children of must be a or `\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport interface RouteObject {\n caseSensitive?: boolean;\n children?: RouteObject[];\n element?: React.ReactNode;\n index?: boolean;\n path?: string;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nexport function generatePath(path: string, params: Params = {}): string {\n return path\n .replace(/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/*\\*$/, _ =>\n params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\")\n );\n}\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface RouteMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObject;\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nexport function matchRoutes(\n routes: RouteObject[],\n locationArg: Partial | string,\n basename = \"/\"\n): RouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], routes, pathname);\n }\n\n return matches;\n}\n\ninterface RouteMeta {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n}\n\ninterface RouteBranch {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes(\n routes: RouteObject[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map(meta => meta.childrenIndex),\n b.routesMeta.map(meta => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter(s => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(\n branch: RouteBranch,\n // TODO: attach original route object inside routesMeta so we don't need this arg\n routesArg: RouteObject[],\n pathname: string\n): RouteMatch[] | null {\n let routes = routesArg;\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: RouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = routes[meta.childrenIndex];\n\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: joinPaths([matchedPathname, match.pathnameBase]),\n route\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n\n routes = route.children!;\n }\n\n return matches;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n\nfunction _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n \n }\n value={{\n outlet,\n matches: parentMatches.concat(matches.slice(0, index + 1))\n }}\n />\n );\n }, null as React.ReactElement | null);\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: string;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nexport function matchPath(\n pattern: PathPattern | string,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end\n ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, at least match a word boundary. This restricts parent\n // routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n \"(?:\\\\b|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string\n): Path {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname;\n\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n let from: string;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original to value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nfunction getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\nfunction stripBasename(pathname: string, basename: string): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nconst joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nconst normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n NavigationContext as UNSAFE_NavigationContext,\n LocationContext as UNSAFE_LocationContext,\n RouteContext as UNSAFE_RouteContext\n};\n","import unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import React, { Component } from 'react';\nimport { DomHandler } from 'primereact/utils';\nimport PrimeReact from 'primereact/api';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Ripple = /*#__PURE__*/function (_Component) {\n _inherits(Ripple, _Component);\n\n var _super = _createSuper(Ripple);\n\n function Ripple(props) {\n var _this;\n\n _classCallCheck(this, Ripple);\n\n _this = _super.call(this, props);\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Ripple, [{\n key: \"getTarget\",\n value: function getTarget() {\n return this.ink && this.ink.parentElement;\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n if (this.target) {\n this.target.addEventListener('mousedown', this.onMouseDown);\n }\n }\n }, {\n key: \"unbindEvents\",\n value: function unbindEvents() {\n if (this.target) {\n this.target.removeEventListener('mousedown', this.onMouseDown);\n }\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n if (!this.ink || getComputedStyle(this.ink, null).display === 'none') {\n return;\n }\n\n DomHandler.removeClass(this.ink, 'p-ink-active');\n\n if (!DomHandler.getHeight(this.ink) && !DomHandler.getWidth(this.ink)) {\n var d = Math.max(DomHandler.getOuterWidth(this.target), DomHandler.getOuterHeight(this.target));\n this.ink.style.height = d + 'px';\n this.ink.style.width = d + 'px';\n }\n\n var offset = DomHandler.getOffset(this.target);\n var x = event.pageX - offset.left + document.body.scrollTop - DomHandler.getWidth(this.ink) / 2;\n var y = event.pageY - offset.top + document.body.scrollLeft - DomHandler.getHeight(this.ink) / 2;\n this.ink.style.top = y + 'px';\n this.ink.style.left = x + 'px';\n DomHandler.addClass(this.ink, 'p-ink-active');\n }\n }, {\n key: \"onAnimationEnd\",\n value: function onAnimationEnd(event) {\n DomHandler.removeClass(event.currentTarget, 'p-ink-active');\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.ink) {\n this.target = this.getTarget();\n this.bindEvents();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.ink && !this.target) {\n this.target = this.getTarget();\n this.bindEvents();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.ink) {\n this.target = null;\n this.unbindEvents();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return PrimeReact.ripple ? /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n return _this2.ink = el;\n },\n className: \"p-ink\",\n onAnimationEnd: this.onAnimationEnd\n }) : null;\n }\n }]);\n\n return Ripple;\n}(Component);\n\nexport { Ripple };\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n /**\n * Specify whether the feedback is for valid or invalid fields\n *\n * @type {('valid'|'invalid')}\n */\n type: PropTypes.string,\n\n /** Display feedback as a tooltip. */\n tooltip: PropTypes.bool,\n as: PropTypes.elementType\n};\nconst Feedback = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n as: Component = 'div',\n className,\n type = 'valid',\n tooltip = false,\n ...props\n}, ref) => /*#__PURE__*/_jsx(Component, { ...props,\n ref: ref,\n className: classNames(className, `${type}-${tooltip ? 'tooltip' : 'feedback'}`)\n}));\nFeedback.displayName = 'Feedback';\nFeedback.propTypes = propTypes;\nexport default Feedback;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormCheckInput = /*#__PURE__*/React.forwardRef(({\n id,\n bsPrefix,\n className,\n type = 'checkbox',\n isValid = false,\n isInvalid = false,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'input',\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-input');\n return /*#__PURE__*/_jsx(Component, { ...props,\n ref: ref,\n type: type,\n id: id || controlId,\n className: classNames(className, bsPrefix, isValid && 'is-valid', isInvalid && 'is-invalid')\n });\n});\nFormCheckInput.displayName = 'FormCheckInput';\nexport default FormCheckInput;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormCheckLabel = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n htmlFor,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-label');\n return /*#__PURE__*/_jsx(\"label\", { ...props,\n ref: ref,\n htmlFor: htmlFor || controlId,\n className: classNames(className, bsPrefix)\n });\n});\nFormCheckLabel.displayName = 'FormCheckLabel';\nexport default FormCheckLabel;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport Feedback from './Feedback';\nimport FormCheckInput from './FormCheckInput';\nimport FormCheckLabel from './FormCheckLabel';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst FormCheck = /*#__PURE__*/React.forwardRef(({\n id,\n bsPrefix,\n bsSwitchPrefix,\n inline = false,\n disabled = false,\n isValid = false,\n isInvalid = false,\n feedbackTooltip = false,\n feedback,\n feedbackType,\n className,\n style,\n title = '',\n type = 'checkbox',\n label,\n children,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as = 'input',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check');\n bsSwitchPrefix = useBootstrapPrefix(bsSwitchPrefix, 'form-switch');\n const {\n controlId\n } = useContext(FormContext);\n const innerFormContext = useMemo(() => ({\n controlId: id || controlId\n }), [controlId, id]);\n const hasLabel = label != null && label !== false && !children;\n\n const input = /*#__PURE__*/_jsx(FormCheckInput, { ...props,\n type: type === 'switch' ? 'checkbox' : type,\n ref: ref,\n isValid: isValid,\n isInvalid: isInvalid,\n disabled: disabled,\n as: as\n });\n\n return /*#__PURE__*/_jsx(FormContext.Provider, {\n value: innerFormContext,\n children: /*#__PURE__*/_jsx(\"div\", {\n style: style,\n className: classNames(className, label && bsPrefix, inline && `${bsPrefix}-inline`, type === 'switch' && bsSwitchPrefix),\n children: children || /*#__PURE__*/_jsxs(_Fragment, {\n children: [input, hasLabel && /*#__PURE__*/_jsx(FormCheckLabel, {\n title: title,\n children: label\n }), feedback && /*#__PURE__*/_jsx(Feedback, {\n type: feedbackType,\n tooltip: feedbackTooltip,\n children: feedback\n })]\n })\n })\n });\n});\nFormCheck.displayName = 'FormCheck';\nexport default Object.assign(FormCheck, {\n Input: FormCheckInput,\n Label: FormCheckLabel\n});","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport warning from 'warning';\nimport Feedback from './Feedback';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormControl = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n type,\n size,\n htmlSize,\n id,\n className,\n isValid = false,\n isInvalid = false,\n plaintext,\n readOnly,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'input',\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-control');\n let classes;\n\n if (plaintext) {\n classes = {\n [`${bsPrefix}-plaintext`]: true\n };\n } else {\n classes = {\n [bsPrefix]: true,\n [`${bsPrefix}-${size}`]: size\n };\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !id, '`controlId` is ignored on `` when `id` is specified.') : void 0;\n return /*#__PURE__*/_jsx(Component, { ...props,\n type: type,\n size: htmlSize,\n ref: ref,\n readOnly: readOnly,\n id: id || controlId,\n className: classNames(className, classes, isValid && `is-valid`, isInvalid && `is-invalid`, type === 'color' && `${bsPrefix}-color`)\n });\n});\nFormControl.displayName = 'FormControl';\nexport default Object.assign(FormControl, {\n Feedback\n});","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('form-floating');","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport warning from 'warning';\nimport Col from './Col';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n column: false,\n visuallyHidden: false\n};\nconst FormLabel = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'label',\n bsPrefix,\n column,\n visuallyHidden,\n className,\n htmlFor,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-label');\n let columnClass = 'col-form-label';\n if (typeof column === 'string') columnClass = `${columnClass} ${columnClass}-${column}`;\n const classes = classNames(className, bsPrefix, visuallyHidden && 'visually-hidden', column && columnClass);\n process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !htmlFor, '`controlId` is ignored on `` when `htmlFor` is specified.') : void 0;\n htmlFor = htmlFor || controlId;\n if (column) return /*#__PURE__*/_jsx(Col, {\n ref: ref,\n as: \"label\",\n className: classes,\n htmlFor: htmlFor,\n ...props\n });\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-for, jsx-a11y/label-has-associated-control\n _jsx(Component, {\n ref: ref,\n className: classes,\n htmlFor: htmlFor,\n ...props\n })\n );\n});\nFormLabel.displayName = 'FormLabel';\nFormLabel.defaultProps = defaultProps;\nexport default FormLabel;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormRange = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n id,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-range');\n return /*#__PURE__*/_jsx(\"input\", { ...props,\n type: \"range\",\n ref: ref,\n className: classNames(className, bsPrefix),\n id: id || controlId\n });\n});\nFormRange.displayName = 'FormRange';\nexport default FormRange;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormSelect = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n size,\n htmlSize,\n className,\n isValid = false,\n isInvalid = false,\n id,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-select');\n return /*#__PURE__*/_jsx(\"select\", { ...props,\n size: htmlSize,\n ref: ref,\n className: classNames(className, bsPrefix, size && `${bsPrefix}-${size}`, isValid && `is-valid`, isInvalid && `is-invalid`),\n id: id || controlId\n });\n});\nFormSelect.displayName = 'FormSelect';\nexport default FormSelect;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormText = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n bsPrefix,\n className,\n as: Component = 'small',\n muted,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-text');\n return /*#__PURE__*/_jsx(Component, { ...props,\n ref: ref,\n className: classNames(className, bsPrefix, muted && 'text-muted')\n });\n});\nFormText.displayName = 'FormText';\nexport default FormText;","import * as React from 'react';\nimport FormCheck from './FormCheck';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Switch = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(FormCheck, { ...props,\n ref: ref,\n type: \"switch\"\n}));\nSwitch.displayName = 'Switch';\nexport default Object.assign(Switch, {\n Input: FormCheck.Input,\n Label: FormCheck.Label\n});","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport FormCheck from './FormCheck';\nimport FormControl from './FormControl';\nimport FormFloating from './FormFloating';\nimport FormGroup from './FormGroup';\nimport FormLabel from './FormLabel';\nimport FormRange from './FormRange';\nimport FormSelect from './FormSelect';\nimport FormText from './FormText';\nimport Switch from './Switch';\nimport FloatingLabel from './FloatingLabel';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n /**\n * The Form `ref` will be forwarded to the underlying element,\n * which means, unless it's rendered `as` a composite component,\n * it will be a DOM node, when resolved.\n *\n * @type {ReactRef}\n * @alias ref\n */\n _ref: PropTypes.any,\n\n /**\n * Mark a form as having been validated. Setting it to `true` will\n * toggle any validation styles on the forms elements.\n */\n validated: PropTypes.bool,\n as: PropTypes.elementType\n};\nconst Form = /*#__PURE__*/React.forwardRef(({\n className,\n validated,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'form',\n ...props\n}, ref) => /*#__PURE__*/_jsx(Component, { ...props,\n ref: ref,\n className: classNames(className, validated && 'was-validated')\n}));\nForm.displayName = 'Form';\nForm.propTypes = propTypes;\nexport default Object.assign(Form, {\n Group: FormGroup,\n Control: FormControl,\n Floating: FormFloating,\n Check: FormCheck,\n Switch,\n Label: FormLabel,\n Text: FormText,\n Range: FormRange,\n Select: FormSelect,\n FloatingLabel\n});","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n __extends(IntlError, _super);\n function IntlError(code, message, exception) {\n var _this = _super.call(this, \"[@formatjs/intl Error \" + code + \"] \" + message + \" \\n\" + (exception ? \"\\n\" + exception.message + \"\\n\" + exception.stack : '')) || this;\n _this.code = code;\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (typeof Error.captureStackTrace === 'function') {\n // @ts-ignore just so we don't need to declare dep on @types/node\n Error.captureStackTrace(_this, IntlError);\n }\n return _this;\n }\n return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n }\n return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n }\n return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, IntlErrorCode.FORMAT_ERROR, message + \" \\nLocale: \" + locale + \"\\nMessageID: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.id) + \"\\nDefault Message: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage) + \"\\nDescription: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.description) + \" \\n\", exception) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MessageFormatError;\n}(IntlError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\" + descriptor.id + \"\\\" for locale \\\"\" + locale + \"\\\", using \" + (descriptor.defaultMessage ? 'default message' : 'id') + \" as fallback.\") || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\n","/*!\n * Chart.js v3.9.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nfunction noop() {}\nconst uid = (function() {\n let id = 0;\n return function() {\n return id++;\n };\n}());\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\nconst isNumberFinite = (value) => (typeof value === 'number' || value instanceof Number) && isFinite(+value);\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : value / dimension;\nconst toDimension = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\nfunction _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n for (let i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!isObject(source)) {\n continue;\n }\n const keys = Object.keys(source);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n return merge(target, source, {merger: _mergerIf});\n}\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\nconst keyResolvers = {\n '': v => v,\n x: o => o.x,\n y: o => o.y\n};\nfunction resolveObjectKey(obj, key) {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\nfunction _getKeyResolver(key) {\n const keys = _splitKey(key);\n return obj => {\n for (const k of keys) {\n if (k === '') {\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\nfunction _splitKey(key) {\n const parts = key.split('.');\n const keys = [];\n let tmp = '';\n for (const part of parts) {\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value) => typeof value !== 'undefined';\nconst isFunction = (value) => typeof value === 'function';\nconst setsEqual = (a, b) => {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\nfunction _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\nfunction _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b) => a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\nfunction _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < (-0.5 * PI)) {\n angle += TAU;\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\nfunction _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {lo, hi};\n}\nconst _lookupByKey = (table, key, value, last) =>\n _lookup(table, value, last\n ? index => table[index][key] <= value\n : index => table[index][key] < value);\nconst _rlookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] >= value);\nfunction _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n delete array._chartjs;\n}\nfunction _arrayUnique(items) {\n const set = new Set();\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n if (set.size === ilen) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\nconst requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\nfunction throttled(fn, thisArg, updateFn) {\n const updateArgs = updateFn || ((args) => Array.prototype.slice.call(args));\n let ticking = false;\n let args = [];\n return function(...rest) {\n args = updateArgs(rest);\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\nfunction debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\nconst _toLeftRightCenter = (align) => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\nconst _textX = (align, left, right, rtl) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\nfunction _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(\n _lookupByKey(_parsed, iScale.axis, min).lo,\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1,\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {start, count};\n}\nfunction _scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nconst atEdge = (t) => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\nconst effects = {\n linear: t => t,\n easeInQuad: t => t * t,\n easeOutQuad: t => -t * (t - 2),\n easeInOutQuad: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n easeInCubic: t => t * t * t,\n easeOutCubic: t => (t -= 1) * t * t + 1,\n easeInOutCubic: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: t => t * t * t * t,\n easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n easeInOutQuart: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: t => t * t * t * t * t,\n easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n easeInOutQuint: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n easeOutSine: t => Math.sin(t * HALF_PI),\n easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: t => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: t => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: t => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: t => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: t => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic(t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack(t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack(t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n easeOutBounce(t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n easeInOutBounce: t => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n};\n\n/*!\n * @kurkle/color v0.2.1\n * https://github.com/kurkle/color#readme\n * (c) 2022 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nconst names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\nfunction index_esm(input) {\n return new Color(input);\n}\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n constructor(_descriptors) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n}\nvar defaults = new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\nfunction _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\nfunction _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n drawPointLegend(ctx, options, x, y, null);\n}\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch (style) {\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\nfunction renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n ctx.restore();\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction addRoundedRectPath(ctx, rect) {\n const {x, y, w, h, radius} = rect;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nconst FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\nfunction toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\nfunction toTRBL(value) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\nfunction toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\nfunction resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\nfunction _addGrace(minmax, grace, beginAtZero) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _createResolver(scopes, prefixes = [''], rootScopes = scopes, fallback, getTarget = () => scopes[0]) {\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope) => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback),\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get(target, prop) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value;\n delete target._keys;\n return true;\n }\n });\n}\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get(target, prop, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\nfunction _descriptors(proxy, defaults = {scriptable: true, indexable: true}) {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters' &&\n (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n const value = resolve();\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop];\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, value, target, receiver) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n return value;\n }\n return target;\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const {iScale} = meta;\n const {key = 'r'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis) => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01;\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\nfunction monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\nfunction splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element) => window.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\nfunction getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const {offsetX, offsetY} = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\nfunction getRelativePosition(evt, chart) {\n if ('native' in evt) {\n return evt;\n }\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(evt, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect();\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = v => Math.round(v * 10) / 10;\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n height = round1(width / 2);\n }\n return {\n width,\n height\n };\n}\nfunction retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n const canvas = chart.canvas;\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\nconst supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n }\n return passiveSupported;\n}());\nfunction readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\nfunction _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x(x) {\n return x;\n },\n setWidth(w) {\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) {\n return x;\n },\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n let {start, end, loop} = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n return result;\n}\nfunction _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n while (start < count && points[start].skip) {\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while (end > start && points[end % count].skip) {\n end--;\n }\n end %= count;\n return {start, end};\n}\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { _isPointInArea as $, _factorize as A, finiteOrDefault as B, callback as C, _addGrace as D, _limitValue as E, toDegrees as F, _measureText as G, HALF_PI as H, _int16Range as I, _alignPixel as J, toPadding as K, clipArea as L, renderText as M, unclipArea as N, toFont as O, PI as P, each as Q, _toLeftRightCenter as R, _alignStartEnd as S, TAU as T, overrides as U, merge as V, _capitalize as W, getRelativePosition as X, _rlookupByKey as Y, _lookupByKey as Z, _arrayUnique as _, resolve as a, toLineHeight as a$, getAngleFromPoint as a0, getMaximumSize as a1, _getParentNode as a2, readUsedSize as a3, throttled as a4, supportsEventListenerOptions as a5, _isDomSupported as a6, descriptors as a7, isFunction as a8, _attachContext as a9, getRtlAdapter as aA, overrideTextDirection as aB, _textX as aC, restoreTextDirection as aD, drawPointLegend as aE, noop as aF, distanceBetweenPoints as aG, _setMinAndMaxByKey as aH, niceNum as aI, almostWhole as aJ, almostEquals as aK, _decimalPlaces as aL, _longestText as aM, _filterBetween as aN, _lookup as aO, isPatternOrGradient as aP, getHoverColor as aQ, clone$1 as aR, _merger as aS, _mergerIf as aT, _deprecated as aU, _splitKey as aV, toFontString as aW, splineCurve as aX, splineCurveMonotone as aY, getStyle as aZ, fontString as a_, _createResolver as aa, _descriptors as ab, mergeIf as ac, uid as ad, debounce as ae, retinaScale as af, clearCanvas as ag, setsEqual as ah, _elementsEqual as ai, _isClickEvent as aj, _isBetween as ak, _readValueToProps as al, _updateBezierControlPoints as am, _computeSegments as an, _boundSegments as ao, _steppedInterpolation as ap, _bezierInterpolation as aq, _pointInLine as ar, _steppedLineTo as as, _bezierCurveTo as at, drawPoint as au, addRoundedRectPath as av, toTRBL as aw, toTRBLCorners as ax, _boundSegment as ay, _normalizeAngle as az, isArray as b, PITAU as b0, INFINITY as b1, RAD_PER_DEG as b2, QUARTER_PI as b3, TWO_THIRDS_PI as b4, _angleDiff as b5, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, createContext as h, isObject as i, defined as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, log10 as z };\n","/*!\n * Chart.js v3.9.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, d as defaults, i as isObject, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as createContext, j as defined, s as sign, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as _getStartAndCountOfVisiblePoints, w as _scaleRangesChanged, x as isNumber, y as _parseObjectDataRadialScale, z as log10, A as _factorize, B as finiteOrDefault, C as callback, D as _addGrace, E as _limitValue, F as toDegrees, G as _measureText, I as _int16Range, J as _alignPixel, K as toPadding, L as clipArea, M as renderText, N as unclipArea, O as toFont, Q as each, R as _toLeftRightCenter, S as _alignStartEnd, U as overrides, V as merge, W as _capitalize, X as getRelativePosition, Y as _rlookupByKey, Z as _lookupByKey, $ as _isPointInArea, a0 as getAngleFromPoint, a1 as getMaximumSize, a2 as _getParentNode, a3 as readUsedSize, a4 as throttled, a5 as supportsEventListenerOptions, a6 as _isDomSupported, a7 as descriptors, a8 as isFunction, a9 as _attachContext, aa as _createResolver, ab as _descriptors, ac as mergeIf, ad as uid, ae as debounce, af as retinaScale, ag as clearCanvas, ah as setsEqual, ai as _elementsEqual, aj as _isClickEvent, ak as _isBetween, al as _readValueToProps, am as _updateBezierControlPoints, an as _computeSegments, ao as _boundSegments, ap as _steppedInterpolation, aq as _bezierInterpolation, ar as _pointInLine, as as _steppedLineTo, at as _bezierCurveTo, au as drawPoint, av as addRoundedRectPath, aw as toTRBL, ax as toTRBLCorners, ay as _boundSegment, az as _normalizeAngle, aA as getRtlAdapter, aB as overrideTextDirection, aC as _textX, aD as restoreTextDirection, aE as drawPointLegend, aF as noop, aG as distanceBetweenPoints, aH as _setMinAndMaxByKey, aI as niceNum, aJ as almostWhole, aK as almostEquals, aL as _decimalPlaces, aM as _longestText, aN as _filterBetween, aO as _lookup } from './chunks/helpers.segment.mjs';\nexport { d as defaults } from './chunks/helpers.segment.mjs';\n\nclass Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for (; i >= 0; --i) {\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color(from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || (elapsed < duration));\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n\nconst numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n});\nconst animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n});\ndefaults.describe('animations', {\n _fallback: 'animation',\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0\n },\n }\n }\n});\nclass Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n }\n}\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\nclass DatasetController {\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = () => this.getContext(index, active);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || (sharedOptions !== previouslySharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {sharedOptions, includeOptions};\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([this.index, ...args]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n if (edge === true) {\n properties.borderSkipped = {top: true, right: true, bottom: true, left: true};\n return;\n }\n const {start, end, reverse, top, bottom} = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\nclass BarController extends DatasetController {\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const {iScale} = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type)\n .filter(meta => meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const skipNull = (meta) => {\n const parsed = meta.controller.getParsed(dataIndex);\n const val = parsed && parsed[meta.vScale.axis];\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets) {\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1;\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n};\n\nclass BubbleController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\nclass DoughnutController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i) => +data[i];\n if (isObject(data[start])) {\n const {key = 'value'} = this._parsing;\n getter = (i) => +resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n update(mode) {\n const chart = this.chart;\n const {chartArea} = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const {circumference, rotation} = this._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r',\n};\nDoughnutController.descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing',\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(tooltipItem) {\n let dataLabel = tooltipItem.label;\n const value = ': ' + tooltipItem.formattedValue;\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n return dataLabel;\n }\n }\n }\n }\n};\n\nclass LineController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false,\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n};\n\nclass PolarAreaController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n meta.data.forEach((element, index) => {\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - (radiusLength * this.index);\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index) => {\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nclass PieController extends DoughnutController {\n}\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nclass RadarController extends DatasetController {\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n};\n\nclass Element {\n constructor() {\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n tooltipPosition(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n return this;\n }\n const ret = {};\n props.forEach(prop => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\nElement.defaults = {};\nElement.defaultRoutes = undefined;\n\nconst formatters = {\n values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = tickValue / (Math.pow(10, Math.floor(log10(tickValue))));\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\nvar Ticks = {formatters};\n\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash',\n});\ndefaults.describe('scales', {\n _fallback: 'scale',\n});\ndefaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n});\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return (lines * font.lineHeight) + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\nclass Scale extends Element {\n constructor(cfg) {\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {min, max};\n }\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = this.ticks.length;\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [this]);\n }\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const {min, max} = this;\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const optsAtIndex = grid.setContext(this.getContext(i));\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndex.borderDash || [];\n const borderDashOffset = optsAtIndex.borderDashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = y + textOffset - labelPadding.top;\n let left = x - labelPadding.left;\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor,\n };\n }\n items.push({\n rotation,\n label,\n font,\n color,\n strokeColor,\n strokeWidth,\n textOffset,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {textAlign, x};\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n drawBorder() {\n const {chart, ctx, options: {grid}} = this;\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n const tickFont = item.font;\n const label = item.label;\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n let y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n each(arg, item => {\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = new Registry();\n\nclass ScatterController extends DatasetController {\n update(mode) {\n const meta = this._cachedMeta;\n const {data: points = []} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n if (this.options.showLine) {\n const {dataset: line, _dataset} = meta;\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n }\n this.updateElements(points, start, count, mode);\n }\n addElements() {\n const {showLine} = this.options;\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = registry.getElement('line');\n }\n super.addElements();\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n if (!this.options.showLine) {\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPolarAreaController: PolarAreaController,\nPieController: PieController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\nclass DateAdapter {\n constructor(options) {\n this.options = options || {};\n }\n init(chartOptions) {}\n formats() {\n return abstract();\n }\n parse(value, format) {\n return abstract();\n }\n format(timestamp, format) {\n return abstract();\n }\n add(timestamp, amount, unit) {\n return abstract();\n }\n diff(a, b, unit) {\n return abstract();\n }\n startOf(timestamp, unit, weekday) {\n return abstract();\n }\n endOf(timestamp, unit) {\n return abstract();\n }\n}\nDateAdapter.override = function(members) {\n Object.assign(DateAdapter.prototype, members);\n};\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n return {lo: 0, hi: data.length - 1};\n}\nfunction evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\nfunction getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const {startAngle, endAngle} = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n const {angle} = getAngleFromPoint(element, {x: position.x, y: position.y});\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({element, datasetIndex, index});\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({element, datasetIndex, index});\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect\n ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\nfunction getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\nvar Interaction = {\n evaluateInteractionItems,\n modes: {\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible)\n : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n return elements;\n },\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) :\n getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n return items;\n },\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\ndefaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n chart.boxes.push(item);\n },\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {left: 0, top: 0, right: 0, bottom: 0});\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = value => value === null || value === '';\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList) {\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, (args) => {\n const event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\nclass DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass PluginService {\n constructor() {\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\nfunction allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {plugins, localIds};\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, {plugins, localIds}, options, all) {\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins) {\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {plugin, local: localIds[id]}, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, {plugin, local}, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [''], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const firstIDs = Object.create(null);\n const scales = Object.create(null);\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const {options, type} = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {type},\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).reduce((acc, key) => acc || isFunction(value[key]), false);\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"3.9.1\";\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys) {\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.'\n );\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {size: newSize});\n callback(options.onResize, [this, newSize], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {mode});\n this._layers.sort(compare2Level('z', '_idx'));\n const {_active, _lastEvent} = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const {_hiddenIndices} = this;\n const changes = this._getUniformDataChanges() || [];\n for (const {method, start, count} of changes) {\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx) => new Set(\n _dataChanges\n .filter(c => c[0] === idx)\n .map((c, i) => i + ',' + c.splice(1).join(','))\n );\n const changeSet = makeSet(0);\n for (let i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet)\n .map(c => c.split(','))\n .map(a => ({method: a[1], start: +a[2], count: +a[3]}));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n this._resize(width, height);\n this._resizeBeforeDraw = null;\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = this.chartArea;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const {canvas, ctx} = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n this.notifyPlugins('destroy');\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type) => _add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = () => {\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = () => {\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const {_active: lastActive = [], options} = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [e, active, this], this);\n if (isClick) {\n callback(options.onClick, [e, active, this], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nconst invalidatePlugins = () => each(Chart.instances, (chart) => chart._plugins.invalidate());\nconst enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable,\n value: defaults\n },\n instances: {\n enumerable,\n value: instances\n },\n overrides: {\n enumerable,\n value: overrides\n },\n registry: {\n enumerable,\n value: registry\n },\n version: {\n enumerable,\n value: version\n },\n getChart: {\n enumerable,\n value: getChart\n },\n register: {\n enumerable,\n value: (...items) => {\n registry.add(...items);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable,\n value: (...items) => {\n registry.remove(...items);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\nfunction pathArc(ctx, element, offset, spacing, end, circular) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n if (circular) {\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), startAngle + (innerStart / innerRadius), true);\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU, circular);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\nfunction drawFullCircleBorders(ctx, element, inner) {\n const {x, y, startAngle, pixelMargin, fullCircles} = element;\n const outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n const innerRadius = element.innerRadius + pixelMargin;\n let i;\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\nfunction drawBorder(ctx, element, offset, spacing, endAngle, circular) {\n const {options} = element;\n const {borderWidth, borderJoinStyle} = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n}\nclass ArcElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = this.options.spacing / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const betweenAngles = _circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return (betweenAngles && withinRadius);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference',\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const {options, circumference} = this;\n const offset = (options.offset || 0) / 2;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n let radiusOffset = 0;\n if (offset) {\n radiusOffset = offset / 2;\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n if (this.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n const endAngle = drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle, circular);\n ctx.restore();\n }\n}\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true,\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let {move = true, reverse} = params || {};\n let i, point, prev;\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n constructor(cfg) {\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || (this.points.length - start);\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\nclass PointElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n return options.radius + options.hitRadius;\n }\n}\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {left, top, right, bottom};\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds\n\t\t&& (skipX || _isBetween(x, bounds.left, bounds.right))\n\t\t&& (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nLineElement: LineElement,\nPointElement: PointElement,\nBarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for (i = 0; i < samples - 2; i++) {\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const {x: pointAx, y: pointAy} = data[a];\n maxArea = area = -1;\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs(\n (pointAx - avgX) * (data[j].y - pointAy) -\n (pointAx - data[j].x) * (avgY - pointAy)\n );\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX,\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {value: data});\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset) => {\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const {iScale} = meta;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {start, count};\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false,\n },\n beforeElementsUpdate: (chart, args, options) => {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex) => {\n const {_data, indexAxis} = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let {start, count} = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments) {\n let {start, end} = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments) {\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources) {\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {property, start, end};\n}\nfunction _pointsFromSegments(boundary, line) {\n const {x = null, y = null} = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({start, end}) => {\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({x: first.x, y});\n points.push({x: last.x, y});\n } else if (x !== null) {\n points.push({x, y: first.y});\n points.push({x, y: last.y});\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for (;end > start; end--) {\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {tension: 0},\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [index];\n let target;\n if (!propagate) {\n return fill;\n }\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\nfunction _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\nfunction _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\nfunction _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\nfunction parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const {scale, index, line} = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({x: null, y: scale.bottom}, line));\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n for (let j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({points, options: {}});\n}\nfunction getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for (let i = 0; i < metas.length; i++) {\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for (let j = 0; j < linesBelow.length; j++) {\n const line = linesBelow[j];\n const {first, last, point} = findPoint(line, sourcePoint, 'x');\n if (!point || (first && last)) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\nfunction findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {first, last, point};\n}\n\nclass simpleArc {\n constructor(opts) {\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const {x, y, radius} = this;\n bounds = bounds || {start: 0, end: TAU};\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const {x, y, radius} = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const {chart, fill, line} = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\nfunction getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const {scale = {}, fill} = source;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const {scale, fill} = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for (let i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const {line, scale, axis} = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const {above = color, below = color} = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {line, target, above, below, area, scale, axis});\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const {line, target, above, below, area, scale} = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n clipVertical(ctx, target, area.top);\n fill(ctx, {line, target, color: above, scale, property});\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n }\n fill(ctx, {line, target, color: below, scale, property});\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const {segments, points} = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments) {\n const {start, end} = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {move: lineLoop});\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const {line, target, property, color, scale} = cfg;\n const segments = _segments(line, target, property);\n for (const {source: src, target: tgt, start, end} of segments) {\n const {style: {backgroundColor = color} = {}} = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {move: lineLoop, reverse: true});\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, bounds) {\n const {top, bottom} = scale.chart.chartArea;\n const {property, start, end} = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config) {\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const {options, ctx} = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {color: fontColor, padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right)\n && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width)\n && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color}} = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n\nclass Title extends Element {\n constructor(config) {\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst positioners = {\n average(items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let x = 0;\n let y = 0;\n let count = 0;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {width, height};\n}\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\nfunction determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nclass Tooltip extends Element {\n constructor(config) {\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart || config._chart;\n this._chart = this.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const {callbacks} = options;\n const beforeTitle = callbacks.beforeTitle.apply(this, [context]);\n const title = callbacks.title.apply(this, [context]);\n const afterTitle = callbacks.afterTitle.apply(this, [context]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(this, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(this, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n const beforeFooter = callbacks.beforeFooter.apply(this, [tooltipItems]);\n const footer = callbacks.footer.apply(this, [tooltipItems]);\n const afterFooter = callbacks.afterFooter.apply(this, [tooltipItems]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(this, context));\n labelPointStyles.push(scoped.labelPointStyle.call(this, context));\n labelTextColors.push(scoped.labelTextColor.call(this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {chart: this.chart, tooltip: this, replay});\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColors = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = isObject(labelColors.borderWidth) ? Math.max(...Object.values(labelColors.borderWidth)) : (labelColors.borderWidth || 1);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n const borderRadius = toTRBLCorners(labelColors.borderRadius);\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({chart, options});\n }\n },\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent(chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels) => {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({index, label: raw});\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\nclass CategoryScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const {index, label} of added) {\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for (; j < numSpaces; ++j) {\n ticks.push({value: Math.round((niceMin + j * spacing) * factor) / factor});\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = 1;\n if (max >= Number.MAX_SAFE_INTEGER || min <= Number.MIN_SAFE_INTEGER) {\n offset = Math.abs(max * 0.05);\n }\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, Math.floor(log10(tickVal))));\n return remain === 1;\n}\nfunction generateTicks(generationOptions, dataRange) {\n const endExp = Math.floor(log10(dataRange.max));\n const endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n const ticks = [];\n let tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n let exp = Math.floor(log10(tickVal));\n let significand = Math.floor(tickVal / Math.pow(10, exp));\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n do {\n ticks.push({value: tickVal, major: isMajor(tickVal)});\n ++significand;\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || (exp === endExp && significand < endSignificand));\n const lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({value: lastTick, major: isMajor(tickVal)});\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n const exp = (v, m) => Math.pow(10, Math.floor(log10(v)) + m);\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n if (this._zero && this.min !== this._suggestedMin && min === exp(this.min, 0)) {\n setMin(exp(min, -1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined\n ? '0'\n : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\nfunction fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(\n orig.l - limits.l,\n limits.r - orig.r,\n orig.t - limits.t,\n limits.b - orig.b\n );\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const extra = getTickBackdropHeight(opts) / 2;\n const outerDistance = scale.drawingArea;\n const additionalAngle = opts.pointLabels.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i], additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const size = labelSizes[i];\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n for (let i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign, left, top, right, bottom} = scale._pointLabelItems[i];\n const {backdropColor} = optsAtIndex;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(optsAtIndex.borderRadius);\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const {color, lineWidth} = gridLineOpts;\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n constructor(cfg) {\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels()\n .map((value, index) => {\n const label = callback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n })\n .filter((v, i) => this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid} = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const optsAtIndex = grid.setContext(this.getContext(index - 1));\n drawRadiusLine(this, optsAtIndex, offset, labelCount);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for (i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index) => {\n if (index === 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback(label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\n\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\nconst UNITS = (Object.keys(INTERVALS));\nfunction sorter(a, b) {\n return a - b;\n}\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, parser)\n : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n return +value;\n}\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n constructor(props) {\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n adapter.init(opts);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map(tick => +tick.value));\n }\n }\n initOffsets(timestamps) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(timeOpts.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort((a, b) => a - b).map(x => +x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n const label = this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n const formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], this) : label;\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return (this._cache.data = this.normalize(timestamps));\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n constructor(props) {\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales,\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, elements, layouts, plugins, registerables, registry, scales };\n","import React, { createRef, Component } from 'react';\nimport { classNames, IconUtils, ObjectUtils } from 'primereact/utils';\nimport { tip } from 'primereact/tooltip';\nimport { Ripple } from 'primereact/ripple';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ButtonComponent = /*#__PURE__*/function (_Component) {\n _inherits(ButtonComponent, _Component);\n\n var _super = _createSuper(ButtonComponent);\n\n function ButtonComponent(props) {\n var _this;\n\n _classCallCheck(this, ButtonComponent);\n\n _this = _super.call(this, props);\n _this.elementRef = /*#__PURE__*/createRef(_this.props.forwardRef);\n return _this;\n }\n\n _createClass(ButtonComponent, [{\n key: \"updateForwardRef\",\n value: function updateForwardRef() {\n var ref = this.props.forwardRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.elementRef.current);\n } else {\n ref.current = this.elementRef.current;\n }\n }\n }\n }, {\n key: \"isDisabled\",\n value: function isDisabled() {\n return this.props.disabled || this.props.loading;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateForwardRef();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.elementRef.current,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderIcon\",\n value: function renderIcon() {\n var _classNames;\n\n var icon = this.props.loading ? this.props.loadingIcon : this.props.icon;\n\n var iconType = _typeof(icon);\n\n var className = classNames('p-button-icon p-c', (_classNames = {\n 'p-button-loading-icon': this.props.loading\n }, _defineProperty(_classNames, \"\".concat(icon), iconType === 'string'), _defineProperty(_classNames, 'p-button-icon-left', this.props.iconPos === 'left' && this.props.label), _defineProperty(_classNames, 'p-button-icon-right', this.props.iconPos === 'right' && this.props.label), _defineProperty(_classNames, 'p-button-icon-top', this.props.iconPos === 'top' && this.props.label), _defineProperty(_classNames, 'p-button-icon-bottom', this.props.iconPos === 'bottom' && this.props.label), _classNames));\n return IconUtils.getJSXIcon(icon, {\n className: className\n }, {\n props: this.props\n });\n }\n }, {\n key: \"renderLabel\",\n value: function renderLabel() {\n if (this.props.label) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-button-label p-c\"\n }, this.props.label);\n }\n\n return !this.props.children && !this.props.label && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-button-label p-c\",\n dangerouslySetInnerHTML: {\n __html: \" \"\n }\n });\n }\n }, {\n key: \"renderBadge\",\n value: function renderBadge() {\n if (this.props.badge) {\n var badgeClassName = classNames('p-badge', this.props.badgeClassName);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: badgeClassName\n }, this.props.badge);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var disabled = this.isDisabled();\n var className = classNames('p-button p-component', this.props.className, _defineProperty({\n 'p-button-icon-only': (this.props.icon || this.props.loading && this.props.loadingIcon) && !this.props.label,\n 'p-button-vertical': (this.props.iconPos === 'top' || this.props.iconPos === 'bottom') && this.props.label,\n 'p-disabled': disabled,\n 'p-button-loading': this.props.loading,\n 'p-button-loading-label-only': this.props.loading && !this.props.icon && this.props.label\n }, \"p-button-loading-\".concat(this.props.iconPos), this.props.loading && this.props.loadingIcon && this.props.label));\n var icon = this.renderIcon();\n var label = this.renderLabel();\n var badge = this.renderBadge();\n var buttonProps = ObjectUtils.findDiffKeys(this.props, ButtonComponent.defaultProps);\n return /*#__PURE__*/React.createElement(\"button\", _extends({\n ref: this.elementRef\n }, buttonProps, {\n className: className,\n disabled: disabled\n }), icon, label, this.props.children, badge, /*#__PURE__*/React.createElement(Ripple, null));\n }\n }]);\n\n return ButtonComponent;\n}(Component);\n\n_defineProperty(ButtonComponent, \"defaultProps\", {\n label: null,\n icon: null,\n iconPos: 'left',\n badge: null,\n badgeClassName: null,\n tooltip: null,\n tooltipOptions: null,\n forwardRef: null,\n disabled: false,\n loading: false,\n loadingIcon: 'pi pi-spinner pi-spin'\n});\n\nvar Button = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(ButtonComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nexport { Button, ButtonComponent };\n","var rHyphen = /-(.)/g;\nexport default function camelize(string) {\n return string.replace(rHyphen, function (_, chr) {\n return chr.toUpperCase();\n });\n}","import classNames from 'classnames';\nimport camelize from 'dom-helpers/camelize';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst pascalCase = str => str[0].toUpperCase() + camelize(str).slice(1);\n\n// TODO: emstricten & fix the typing here! `createWithBsPrefix...`\nexport default function createWithBsPrefix(prefix, {\n displayName = pascalCase(prefix),\n Component,\n defaultProps\n} = {}) {\n const BsComponent = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Tag = Component || 'div',\n ...props\n }, ref) => {\n const resolvedPrefix = useBootstrapPrefix(bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Tag, {\n ref: ref,\n className: classNames(className, resolvedPrefix),\n ...props\n });\n });\n BsComponent.defaultProps = defaultProps;\n BsComponent.displayName = displayName;\n return BsComponent;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import canUseDOM from './canUseDOM';\nvar size;\nexport default function scrollbarSize(recalc) {\n if (!size && size !== 0 || recalc) {\n if (canUseDOM) {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n }\n }\n\n return size;\n}","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('modal-body');","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalDialog = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n contentClassName,\n centered,\n size,\n fullscreen,\n children,\n scrollable,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal');\n const dialogClass = `${bsPrefix}-dialog`;\n const fullScreenClass = typeof fullscreen === 'string' ? `${bsPrefix}-fullscreen-${fullscreen}` : `${bsPrefix}-fullscreen`;\n return /*#__PURE__*/_jsx(\"div\", { ...props,\n ref: ref,\n className: classNames(dialogClass, className, size && `${bsPrefix}-${size}`, centered && `${dialogClass}-centered`, scrollable && `${dialogClass}-scrollable`, fullscreen && fullScreenClass),\n children: /*#__PURE__*/_jsx(\"div\", {\n className: classNames(`${bsPrefix}-content`, contentClassName),\n children: children\n })\n });\n});\nModalDialog.displayName = 'ModalDialog';\nexport default ModalDialog;","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('modal-footer');","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AbstractModalHeader from './AbstractModalHeader';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n closeLabel: 'Close',\n closeButton: false\n};\nconst ModalHeader = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-header');\n return /*#__PURE__*/_jsx(AbstractModalHeader, {\n ref: ref,\n ...props,\n className: classNames(className, bsPrefix)\n });\n});\nModalHeader.displayName = 'ModalHeader';\nModalHeader.defaultProps = defaultProps;\nexport default ModalHeader;","import createWithBsPrefix from './createWithBsPrefix';\nimport divWithClassName from './divWithClassName';\nconst DivStyledAsH4 = divWithClassName('h4');\nexport default createWithBsPrefix('modal-title', {\n Component: DivStyledAsH4\n});","import classNames from 'classnames';\nimport addEventListener from 'dom-helpers/addEventListener';\nimport canUseDOM from 'dom-helpers/canUseDOM';\nimport ownerDocument from 'dom-helpers/ownerDocument';\nimport removeEventListener from 'dom-helpers/removeEventListener';\nimport getScrollbarSize from 'dom-helpers/scrollbarSize';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport useWillUnmount from '@restart/hooks/useWillUnmount';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nimport * as React from 'react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\nimport BaseModal from '@restart/ui/Modal';\nimport { getSharedManager } from './BootstrapModalManager';\nimport Fade from './Fade';\nimport ModalBody from './ModalBody';\nimport ModalContext from './ModalContext';\nimport ModalDialog from './ModalDialog';\nimport ModalFooter from './ModalFooter';\nimport ModalHeader from './ModalHeader';\nimport ModalTitle from './ModalTitle';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n show: false,\n backdrop: true,\n keyboard: true,\n autoFocus: true,\n enforceFocus: true,\n restoreFocus: true,\n animation: true,\n dialogAs: ModalDialog\n};\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\nfunction DialogTransition(props) {\n return /*#__PURE__*/_jsx(Fade, { ...props,\n timeout: null\n });\n}\n\nfunction BackdropTransition(props) {\n return /*#__PURE__*/_jsx(Fade, { ...props,\n timeout: null\n });\n}\n/* eslint-enable no-use-before-define */\n\n\nconst Modal = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n style,\n dialogClassName,\n contentClassName,\n children,\n dialogAs: Dialog,\n 'aria-labelledby': ariaLabelledby,\n\n /* BaseModal props */\n show,\n animation,\n backdrop,\n keyboard,\n onEscapeKeyDown,\n onShow,\n onHide,\n container,\n autoFocus,\n enforceFocus,\n restoreFocus,\n restoreFocusOptions,\n onEntered,\n onExit,\n onExiting,\n onEnter,\n onEntering,\n onExited,\n backdropClassName,\n manager: propsManager,\n ...props\n}, ref) => {\n const [modalStyle, setStyle] = useState({});\n const [animateStaticModal, setAnimateStaticModal] = useState(false);\n const waitingForMouseUpRef = useRef(false);\n const ignoreBackdropClickRef = useRef(false);\n const removeStaticModalAnimationRef = useRef(null);\n const [modal, setModalRef] = useCallbackRef();\n const mergedRef = useMergedRefs(ref, setModalRef);\n const handleHide = useEventCallback(onHide);\n const isRTL = useIsRTL();\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal');\n const modalContext = useMemo(() => ({\n onHide: handleHide\n }), [handleHide]);\n\n function getModalManager() {\n if (propsManager) return propsManager;\n return getSharedManager({\n isRTL\n });\n }\n\n function updateDialogStyle(node) {\n if (!canUseDOM) return;\n const containerIsOverflowing = getModalManager().getScrollbarWidth() > 0;\n const modalIsOverflowing = node.scrollHeight > ownerDocument(node).documentElement.clientHeight;\n setStyle({\n paddingRight: containerIsOverflowing && !modalIsOverflowing ? getScrollbarSize() : undefined,\n paddingLeft: !containerIsOverflowing && modalIsOverflowing ? getScrollbarSize() : undefined\n });\n }\n\n const handleWindowResize = useEventCallback(() => {\n if (modal) {\n updateDialogStyle(modal.dialog);\n }\n });\n useWillUnmount(() => {\n removeEventListener(window, 'resize', handleWindowResize);\n removeStaticModalAnimationRef.current == null ? void 0 : removeStaticModalAnimationRef.current();\n }); // We prevent the modal from closing during a drag by detecting where the\n // the click originates from. If it starts in the modal and then ends outside\n // don't close.\n\n const handleDialogMouseDown = () => {\n waitingForMouseUpRef.current = true;\n };\n\n const handleMouseUp = e => {\n if (waitingForMouseUpRef.current && modal && e.target === modal.dialog) {\n ignoreBackdropClickRef.current = true;\n }\n\n waitingForMouseUpRef.current = false;\n };\n\n const handleStaticModalAnimation = () => {\n setAnimateStaticModal(true);\n removeStaticModalAnimationRef.current = transitionEnd(modal.dialog, () => {\n setAnimateStaticModal(false);\n });\n };\n\n const handleStaticBackdropClick = e => {\n if (e.target !== e.currentTarget) {\n return;\n }\n\n handleStaticModalAnimation();\n };\n\n const handleClick = e => {\n if (backdrop === 'static') {\n handleStaticBackdropClick(e);\n return;\n }\n\n if (ignoreBackdropClickRef.current || e.target !== e.currentTarget) {\n ignoreBackdropClickRef.current = false;\n return;\n }\n\n onHide == null ? void 0 : onHide();\n };\n\n const handleEscapeKeyDown = e => {\n if (!keyboard && backdrop === 'static') {\n // Call preventDefault to stop modal from closing in restart ui,\n // then play our animation.\n e.preventDefault();\n handleStaticModalAnimation();\n } else if (keyboard && onEscapeKeyDown) {\n onEscapeKeyDown(e);\n }\n };\n\n const handleEnter = (node, isAppearing) => {\n if (node) {\n node.style.display = 'block';\n updateDialogStyle(node);\n }\n\n onEnter == null ? void 0 : onEnter(node, isAppearing);\n };\n\n const handleExit = node => {\n removeStaticModalAnimationRef.current == null ? void 0 : removeStaticModalAnimationRef.current();\n onExit == null ? void 0 : onExit(node);\n };\n\n const handleEntering = (node, isAppearing) => {\n onEntering == null ? void 0 : onEntering(node, isAppearing); // FIXME: This should work even when animation is disabled.\n\n addEventListener(window, 'resize', handleWindowResize);\n };\n\n const handleExited = node => {\n if (node) node.style.display = ''; // RHL removes it sometimes\n\n onExited == null ? void 0 : onExited(node); // FIXME: This should work even when animation is disabled.\n\n removeEventListener(window, 'resize', handleWindowResize);\n };\n\n const renderBackdrop = useCallback(backdropProps => /*#__PURE__*/_jsx(\"div\", { ...backdropProps,\n className: classNames(`${bsPrefix}-backdrop`, backdropClassName, !animation && 'show')\n }), [animation, backdropClassName, bsPrefix]);\n const baseModalStyle = { ...style,\n ...modalStyle\n }; // Sets `display` always block when `animation` is false\n\n if (!animation) {\n baseModalStyle.display = 'block';\n }\n\n const renderDialog = dialogProps => /*#__PURE__*/_jsx(\"div\", {\n role: \"dialog\",\n ...dialogProps,\n style: baseModalStyle,\n className: classNames(className, bsPrefix, animateStaticModal && `${bsPrefix}-static`),\n onClick: backdrop ? handleClick : undefined,\n onMouseUp: handleMouseUp,\n \"aria-labelledby\": ariaLabelledby,\n children: /*#__PURE__*/_jsx(Dialog, { ...props,\n onMouseDown: handleDialogMouseDown,\n className: dialogClassName,\n contentClassName: contentClassName,\n children: children\n })\n });\n\n return /*#__PURE__*/_jsx(ModalContext.Provider, {\n value: modalContext,\n children: /*#__PURE__*/_jsx(BaseModal, {\n show: show,\n ref: mergedRef,\n backdrop: backdrop,\n container: container,\n keyboard: true // Always set true - see handleEscapeKeyDown\n ,\n autoFocus: autoFocus,\n enforceFocus: enforceFocus,\n restoreFocus: restoreFocus,\n restoreFocusOptions: restoreFocusOptions,\n onEscapeKeyDown: handleEscapeKeyDown,\n onShow: onShow,\n onHide: onHide,\n onEnter: handleEnter,\n onEntering: handleEntering,\n onEntered: onEntered,\n onExit: handleExit,\n onExiting: onExiting,\n onExited: handleExited,\n manager: getModalManager(),\n transition: animation ? DialogTransition : undefined,\n backdropTransition: animation ? BackdropTransition : undefined,\n renderBackdrop: renderBackdrop,\n renderDialog: renderDialog\n })\n });\n});\nModal.displayName = 'Modal';\nModal.defaultProps = defaultProps;\nexport default Object.assign(Modal, {\n Body: ModalBody,\n Header: ModalHeader,\n Title: ModalTitle,\n Footer: ModalFooter,\n Dialog: ModalDialog,\n TRANSITION_DURATION: 300,\n BACKDROP_TRANSITION_DURATION: 150\n});","import { useState } from 'react';\n/**\n * A convenience hook around `useState` designed to be paired with\n * the component [callback ref](https://reactjs.org/docs/refs-and-the-dom.html#callback-refs) api.\n * Callback refs are useful over `useRef()` when you need to respond to the ref being set\n * instead of lazily accessing it in an effect.\n *\n * ```ts\n * const [element, attachRef] = useCallbackRef()\n *\n * useEffect(() => {\n * if (!element) return\n *\n * const calendar = new FullCalendar.Calendar(element)\n *\n * return () => {\n * calendar.destroy()\n * }\n * }, [element])\n *\n * return
\n * ```\n *\n * @category refs\n */\n\nexport default function useCallbackRef() {\n return useState(null);\n}","import superPropBase from \"@babel/runtime/helpers/esm/superPropBase\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import { __assign, __spreadArray } from \"tslib\";\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, whitelist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return whitelist.reduce(function (filtered, name) {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nvar defaultErrorHandler = function (error) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nexport var DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n defaultLocale: 'en',\n defaultFormats: {},\n onError: defaultErrorHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var DisplayNames = Intl.DisplayNames;\n var getDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n });\n var getNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n });\n var getPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n });\n return {\n getDateTimeFormat: getDateTimeFormat,\n getNumberFormat: getNumberFormat,\n getMessageFormat: memoize(function (message, locales, overrideFormats, opts) {\n return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {\n getNumberFormat: getNumberFormat,\n getDateTimeFormat: getDateTimeFormat,\n getPluralRules: getPluralRules,\n } }, (opts || {})));\n }, {\n cache: createFastMemoizeCache(cache.message),\n strategy: strategies.variadic,\n }),\n getRelativeTimeFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.relativeTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: getPluralRules,\n getListFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.list),\n strategy: strategies.variadic,\n }),\n getDisplayNames: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.displayNames),\n strategy: strategies.variadic,\n }),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \" + type + \" format named: \" + name));\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","import * as React from \"react\";\nimport type { BrowserHistory, HashHistory } from \"history\";\nimport { createBrowserHistory, createHashHistory, createPath } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes\n};\n\nexport type {\n Location,\n Path,\n To,\n NavigationType,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n RoutesProps\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window\n}: BrowserRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nexport const Link = React.forwardRef(\n function LinkWithRef(\n { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n \n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps extends Omit {\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n ...rest\n },\n ref\n ) {\n let location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\nexport function useLinkClickHandler(\n to: To,\n {\n target,\n replace: replaceProp,\n state\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach(value => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map(v => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `foo) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n if (token.options.length) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0]));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\" + SPACE_SEPARATOR_REGEX.source + \"*\");\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(SPACE_SEPARATOR_REGEX.source + \"*$\");\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\" + tagName + \"/>\",\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: skeleton,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(skeleton)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \" + offset + \" is at invalid UTF-16 code unit boundary\");\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \" + targetOffset + \" must be greater than or equal to the current offset \" + this.offset());\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \" + targetOffset + \" is at invalid UTF-16 code unit boundary\");\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n","import * as React from 'react'; // TODO\n\nconst FormContext = /*#__PURE__*/React.createContext({});\nexport default FormContext;","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport { DomHandler, ZIndexUtils, ConnectedOverlayScrollHandler, classNames } from 'primereact/utils';\nimport { Portal } from 'primereact/portal';\nimport PrimeReact from 'primereact/api';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nfunction tip(props) {\n var appendTo = props.appendTo || document.body;\n var tooltipWrapper = document.createDocumentFragment();\n DomHandler.appendChild(tooltipWrapper, appendTo);\n props = _objectSpread(_objectSpread({}, props), props.options);\n var tooltipEl = /*#__PURE__*/React.createElement(Tooltip, props);\n ReactDOM.render(tooltipEl, tooltipWrapper);\n\n var updateTooltip = function updateTooltip(newProps) {\n props = _objectSpread(_objectSpread({}, props), newProps);\n ReactDOM.render( /*#__PURE__*/React.cloneElement(tooltipEl, props), tooltipWrapper);\n };\n\n return {\n destroy: function destroy() {\n ReactDOM.unmountComponentAtNode(tooltipWrapper);\n },\n updateContent: function updateContent(newContent) {\n console.warn(\"The 'updateContent' method has been deprecated on Tooltip. Use update(newProps) method.\");\n updateTooltip({\n content: newContent\n });\n },\n update: function update(newProps) {\n updateTooltip(newProps);\n }\n };\n}\nvar Tooltip = /*#__PURE__*/function (_Component) {\n _inherits(Tooltip, _Component);\n\n var _super = _createSuper(Tooltip);\n\n function Tooltip(props) {\n var _this;\n\n _classCallCheck(this, Tooltip);\n\n _this = _super.call(this, props);\n _this.state = {\n visible: false,\n position: _this.props.position\n };\n _this.show = _this.show.bind(_assertThisInitialized(_this));\n _this.hide = _this.hide.bind(_assertThisInitialized(_this));\n _this.onMouseEnter = _this.onMouseEnter.bind(_assertThisInitialized(_this));\n _this.onMouseLeave = _this.onMouseLeave.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: \"isTargetContentEmpty\",\n value: function isTargetContentEmpty(target) {\n return !(this.props.content || this.getTargetOption(target, 'tooltip'));\n }\n }, {\n key: \"isContentEmpty\",\n value: function isContentEmpty(target) {\n return !(this.props.content || this.getTargetOption(target, 'tooltip') || this.props.children);\n }\n }, {\n key: \"isMouseTrack\",\n value: function isMouseTrack(target) {\n return this.getTargetOption(target, 'mousetrack') || this.props.mouseTrack;\n }\n }, {\n key: \"isDisabled\",\n value: function isDisabled(target) {\n return this.getTargetOption(target, 'disabled') === 'true' || this.hasTargetOption(target, 'disabled') || this.props.disabled;\n }\n }, {\n key: \"isAutoHide\",\n value: function isAutoHide() {\n return this.getTargetOption(this.currentTarget, 'autohide') || this.props.autoHide;\n }\n }, {\n key: \"getTargetOption\",\n value: function getTargetOption(target, option) {\n if (this.hasTargetOption(target, \"data-pr-\".concat(option))) {\n return target.getAttribute(\"data-pr-\".concat(option));\n }\n\n return null;\n }\n }, {\n key: \"hasTargetOption\",\n value: function hasTargetOption(target, option) {\n return target && target.hasAttribute(option);\n }\n }, {\n key: \"getEvents\",\n value: function getEvents(target) {\n var showEvent = this.getTargetOption(target, 'showevent') || this.props.showEvent;\n var hideEvent = this.getTargetOption(target, 'hideevent') || this.props.hideEvent;\n\n if (this.isMouseTrack(target)) {\n showEvent = 'mousemove';\n hideEvent = 'mouseleave';\n } else {\n var event = this.getTargetOption(target, 'event') || this.props.event;\n\n if (event === 'focus') {\n showEvent = 'focus';\n hideEvent = 'blur';\n }\n }\n\n return {\n showEvent: showEvent,\n hideEvent: hideEvent\n };\n }\n }, {\n key: \"getPosition\",\n value: function getPosition(target) {\n return this.getTargetOption(target, 'position') || this.state.position;\n }\n }, {\n key: \"getMouseTrackPosition\",\n value: function getMouseTrackPosition(target) {\n var top = this.getTargetOption(target, 'mousetracktop') || this.props.mouseTrackTop;\n var left = this.getTargetOption(target, 'mousetrackleft') || this.props.mouseTrackLeft;\n return {\n top: top,\n left: left\n };\n }\n }, {\n key: \"updateText\",\n value: function updateText(target, callback) {\n if (this.tooltipTextEl) {\n var content = this.getTargetOption(target, 'tooltip') || this.props.content;\n\n if (content) {\n this.tooltipTextEl.innerHTML = ''; // remove children\n\n this.tooltipTextEl.appendChild(document.createTextNode(content));\n callback();\n } else if (this.props.children) {\n callback();\n }\n }\n }\n }, {\n key: \"show\",\n value: function show(e) {\n var _this2 = this;\n\n this.currentTarget = e.currentTarget;\n\n if (this.isContentEmpty(this.currentTarget) || this.isDisabled(this.currentTarget)) {\n return;\n }\n\n var updateTooltipState = function updateTooltipState() {\n _this2.updateText(_this2.currentTarget, function () {\n if (_this2.props.autoZIndex && !ZIndexUtils.get(_this2.containerEl)) {\n ZIndexUtils.set('tooltip', _this2.containerEl, PrimeReact.autoZIndex, _this2.props.baseZIndex || PrimeReact.zIndex['tooltip']);\n }\n\n _this2.containerEl.style.left = '';\n _this2.containerEl.style.top = '';\n\n if (_this2.isMouseTrack(_this2.currentTarget) && !_this2.containerSize) {\n _this2.containerSize = {\n width: DomHandler.getOuterWidth(_this2.containerEl),\n height: DomHandler.getOuterHeight(_this2.containerEl)\n };\n }\n\n _this2.align(_this2.currentTarget, {\n x: e.pageX,\n y: e.pageY\n });\n });\n };\n\n if (this.state.visible) {\n this.applyDelay('updateDelay', updateTooltipState);\n } else {\n this.sendCallback(this.props.onBeforeShow, {\n originalEvent: e,\n target: this.currentTarget\n });\n this.applyDelay('showDelay', function () {\n _this2.setState({\n visible: true,\n position: _this2.getPosition(_this2.currentTarget)\n }, function () {\n updateTooltipState();\n\n _this2.sendCallback(_this2.props.onShow, {\n originalEvent: e,\n target: _this2.currentTarget\n });\n });\n\n _this2.bindDocumentResizeListener();\n\n _this2.bindScrollListener();\n\n DomHandler.addClass(_this2.currentTarget, _this2.getTargetOption(_this2.currentTarget, 'classname'));\n });\n }\n }\n }, {\n key: \"hide\",\n value: function hide(e) {\n var _this3 = this;\n\n this.clearTimeouts();\n\n if (this.state.visible) {\n DomHandler.removeClass(this.currentTarget, this.getTargetOption(this.currentTarget, 'classname'));\n this.sendCallback(this.props.onBeforeHide, {\n originalEvent: e,\n target: this.currentTarget\n });\n this.applyDelay('hideDelay', function () {\n ZIndexUtils.clear(_this3.containerEl);\n DomHandler.removeClass(_this3.containerEl, 'p-tooltip-active');\n\n if (!_this3.isAutoHide() && _this3.allowHide === false) {\n return;\n }\n\n _this3.setState({\n visible: false,\n position: _this3.props.position\n }, function () {\n if (_this3.tooltipTextEl) {\n ReactDOM.unmountComponentAtNode(_this3.tooltipTextEl);\n }\n\n _this3.unbindDocumentResizeListener();\n\n _this3.unbindScrollListener();\n\n _this3.currentTarget = null;\n _this3.scrollHandler = null;\n _this3.containerSize = null;\n _this3.allowHide = true;\n\n _this3.sendCallback(_this3.props.onHide, {\n originalEvent: e,\n target: _this3.currentTarget\n });\n });\n });\n }\n }\n }, {\n key: \"align\",\n value: function align(target, coordinate) {\n var _this4 = this;\n\n var left = 0,\n top = 0;\n\n if (this.isMouseTrack(target) && coordinate) {\n var containerSize = {\n width: DomHandler.getOuterWidth(this.containerEl),\n height: DomHandler.getOuterHeight(this.containerEl)\n };\n left = coordinate.x;\n top = coordinate.y;\n\n var _this$getMouseTrackPo = this.getMouseTrackPosition(target),\n mouseTrackTop = _this$getMouseTrackPo.top,\n mouseTrackLeft = _this$getMouseTrackPo.left;\n\n switch (this.state.position) {\n case 'left':\n left -= containerSize.width + mouseTrackLeft;\n top -= containerSize.height / 2 - mouseTrackTop;\n break;\n\n case 'right':\n left += mouseTrackLeft;\n top -= containerSize.height / 2 - mouseTrackTop;\n break;\n\n case 'top':\n left -= containerSize.width / 2 - mouseTrackLeft;\n top -= containerSize.height + mouseTrackTop;\n break;\n\n case 'bottom':\n left -= containerSize.width / 2 - mouseTrackLeft;\n top += mouseTrackTop;\n break;\n }\n\n if (left <= 0 || this.containerSize.width > containerSize.width) {\n this.containerEl.style.left = '0px';\n this.containerEl.style.right = window.innerWidth - containerSize.width - left + 'px';\n } else {\n this.containerEl.style.right = '';\n this.containerEl.style.left = left + 'px';\n }\n\n this.containerEl.style.top = top + 'px';\n DomHandler.addClass(this.containerEl, 'p-tooltip-active');\n } else {\n var pos = DomHandler.findCollisionPosition(this.state.position);\n var my = this.getTargetOption(target, 'my') || this.props.my || pos.my;\n var at = this.getTargetOption(target, 'at') || this.props.at || pos.at;\n this.containerEl.style.padding = '0px';\n DomHandler.flipfitCollision(this.containerEl, target, my, at, function (currentPosition) {\n var _currentPosition$at = currentPosition.at,\n atX = _currentPosition$at.x,\n atY = _currentPosition$at.y;\n var myX = currentPosition.my.x;\n var position = _this4.props.at ? atX !== 'center' && atX !== myX ? atX : atY : currentPosition.at[\"\".concat(pos.axis)];\n _this4.containerEl.style.padding = '';\n\n _this4.setState({\n position: position\n }, function () {\n _this4.updateContainerPosition();\n\n DomHandler.addClass(_this4.containerEl, 'p-tooltip-active');\n });\n });\n }\n }\n }, {\n key: \"updateContainerPosition\",\n value: function updateContainerPosition() {\n if (this.containerEl) {\n var style = getComputedStyle(this.containerEl);\n if (this.state.position === 'left') this.containerEl.style.left = parseFloat(style.left) - parseFloat(style.paddingLeft) * 2 + 'px';else if (this.state.position === 'top') this.containerEl.style.top = parseFloat(style.top) - parseFloat(style.paddingTop) * 2 + 'px';\n }\n }\n }, {\n key: \"onMouseEnter\",\n value: function onMouseEnter() {\n if (!this.isAutoHide()) {\n this.allowHide = false;\n }\n }\n }, {\n key: \"onMouseLeave\",\n value: function onMouseLeave(e) {\n if (!this.isAutoHide()) {\n this.allowHide = true;\n this.hide(e);\n }\n }\n }, {\n key: \"bindDocumentResizeListener\",\n value: function bindDocumentResizeListener() {\n var _this5 = this;\n\n this.documentResizeListener = function (e) {\n if (!DomHandler.isAndroid()) {\n _this5.hide(e);\n }\n };\n\n window.addEventListener('resize', this.documentResizeListener);\n }\n }, {\n key: \"unbindDocumentResizeListener\",\n value: function unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this6 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.currentTarget, function (e) {\n if (_this6.state.visible) {\n _this6.hide(e);\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"bindTargetEvent\",\n value: function bindTargetEvent(target) {\n if (target) {\n var _this$getEvents = this.getEvents(target),\n showEvent = _this$getEvents.showEvent,\n hideEvent = _this$getEvents.hideEvent;\n\n target.addEventListener(showEvent, this.show);\n target.addEventListener(hideEvent, this.hide);\n }\n }\n }, {\n key: \"unbindTargetEvent\",\n value: function unbindTargetEvent(target) {\n if (target) {\n var _this$getEvents2 = this.getEvents(target),\n showEvent = _this$getEvents2.showEvent,\n hideEvent = _this$getEvents2.hideEvent;\n\n target.removeEventListener(showEvent, this.show);\n target.removeEventListener(hideEvent, this.hide);\n }\n }\n }, {\n key: \"applyDelay\",\n value: function applyDelay(delayProp, callback) {\n this.clearTimeouts();\n var delay = this.getTargetOption(this.currentTarget, delayProp.toLowerCase()) || this.props[delayProp];\n\n if (!!delay) {\n this[\"\".concat(delayProp, \"Timeout\")] = setTimeout(function () {\n return callback();\n }, delay);\n } else {\n callback();\n }\n }\n }, {\n key: \"sendCallback\",\n value: function sendCallback(callback) {\n if (callback) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n callback.apply(void 0, params);\n }\n }\n }, {\n key: \"clearTimeouts\",\n value: function clearTimeouts() {\n clearTimeout(this.showDelayTimeout);\n clearTimeout(this.updateDelayTimeout);\n clearTimeout(this.hideDelayTimeout);\n }\n }, {\n key: \"updateTargetEvents\",\n value: function updateTargetEvents(target) {\n this.unloadTargetEvents(target);\n this.loadTargetEvents(target);\n }\n }, {\n key: \"loadTargetEvents\",\n value: function loadTargetEvents(target) {\n this.setTargetEventOperations(target || this.props.target, 'bindTargetEvent');\n }\n }, {\n key: \"unloadTargetEvents\",\n value: function unloadTargetEvents(target) {\n this.setTargetEventOperations(target || this.props.target, 'unbindTargetEvent');\n }\n }, {\n key: \"setTargetEventOperations\",\n value: function setTargetEventOperations(target, operation) {\n var _this7 = this;\n\n if (target) {\n if (DomHandler.isElement(target)) {\n this[operation](target);\n } else {\n var setEvent = function setEvent(target) {\n var element = DomHandler.find(document, target);\n element.forEach(function (el) {\n _this7[operation](el);\n });\n };\n\n if (target instanceof Array) {\n target.forEach(function (t) {\n setEvent(t);\n });\n } else {\n setEvent(target);\n }\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.target) {\n this.loadTargetEvents();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this8 = this;\n\n if (prevProps.target !== this.props.target) {\n this.unloadTargetEvents(prevProps.target);\n this.loadTargetEvents();\n }\n\n if (this.state.visible) {\n if (prevProps.content !== this.props.content) {\n this.applyDelay('updateDelay', function () {\n _this8.updateText(_this8.currentTarget, function () {\n _this8.align(_this8.currentTarget);\n });\n });\n }\n\n if (this.currentTarget && this.isDisabled(this.currentTarget)) {\n this.hide();\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearTimeouts();\n this.unbindDocumentResizeListener();\n this.unloadTargetEvents();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n ZIndexUtils.clear(this.containerEl);\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var _this9 = this;\n\n var tooltipClassName = classNames('p-tooltip p-component', _defineProperty({}, \"p-tooltip-\".concat(this.state.position), true), this.props.className);\n var isTargetContentEmpty = this.isTargetContentEmpty(this.currentTarget);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n ref: function ref(el) {\n return _this9.containerEl = el;\n },\n className: tooltipClassName,\n style: this.props.style,\n role: \"tooltip\",\n \"aria-hidden\": this.state.visible,\n onMouseEnter: this.onMouseEnter,\n onMouseLeave: this.onMouseLeave\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-tooltip-arrow\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this9.tooltipTextEl = el;\n },\n className: \"p-tooltip-text\"\n }, isTargetContentEmpty && this.props.children));\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.state.visible) {\n var element = this.renderElement();\n return /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo,\n visible: true\n });\n }\n\n return null;\n }\n }]);\n\n return Tooltip;\n}(Component);\n\n_defineProperty(Tooltip, \"defaultProps\", {\n id: null,\n target: null,\n content: null,\n disabled: false,\n className: null,\n style: null,\n appendTo: null,\n position: 'right',\n my: null,\n at: null,\n event: null,\n showEvent: 'mouseenter',\n hideEvent: 'mouseleave',\n autoZIndex: true,\n baseZIndex: 0,\n mouseTrack: false,\n mouseTrackTop: 5,\n mouseTrackLeft: 5,\n showDelay: 0,\n updateDelay: 0,\n hideDelay: 0,\n autoHide: true,\n onBeforeShow: null,\n onBeforeHide: null,\n onShow: null,\n onHide: null\n});\n\nexport { Tooltip, tip };\n","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import { EventBus } from 'primereact/utils';\n\nvar OverlayService = EventBus();\n\nexport { OverlayService };\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useButtonProps } from '@restart/ui/Button';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n variant: 'primary',\n active: false,\n disabled: false\n};\nconst Button = /*#__PURE__*/React.forwardRef(({\n as,\n bsPrefix,\n variant,\n size,\n active,\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'btn');\n const [buttonProps, {\n tagName\n }] = useButtonProps({\n tagName: as,\n ...props\n });\n const Component = tagName;\n return /*#__PURE__*/_jsx(Component, { ...props,\n ...buttonProps,\n ref: ref,\n className: classNames(className, prefix, active && 'active', variant && `${prefix}-${variant}`, size && `${prefix}-${size}`, props.href && props.disabled && 'disabled')\n });\n});\nButton.displayName = 'Button';\nButton.defaultProps = defaultProps;\nexport default Button;","import { useCallback } from 'react';\nimport useCommittedRef from './useCommittedRef';\nexport default function useEventCallback(fn) {\n var ref = useCommittedRef(fn);\n return useCallback(function () {\n return ref.current && ref.current.apply(ref, arguments);\n }, [ref]);\n}","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","import React, { createRef, Component } from 'react';\nimport { InputText } from 'primereact/inputtext';\nimport { classNames } from 'primereact/utils';\nimport { tip } from 'primereact/tooltip';\nimport { Ripple } from 'primereact/ripple';\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar InputNumber = /*#__PURE__*/function (_Component) {\n _inherits(InputNumber, _Component);\n\n var _super = _createSuper(InputNumber);\n\n function InputNumber(props) {\n var _this;\n\n _classCallCheck(this, InputNumber);\n\n _this = _super.call(this, props);\n _this.state = {\n focused: false\n };\n\n _this.constructParser();\n\n _this.onInput = _this.onInput.bind(_assertThisInitialized(_this));\n _this.onInputKeyDown = _this.onInputKeyDown.bind(_assertThisInitialized(_this));\n _this.onInputKeyPress = _this.onInputKeyPress.bind(_assertThisInitialized(_this));\n _this.onInputClick = _this.onInputClick.bind(_assertThisInitialized(_this));\n _this.onInputBlur = _this.onInputBlur.bind(_assertThisInitialized(_this));\n _this.onInputFocus = _this.onInputFocus.bind(_assertThisInitialized(_this));\n _this.onPaste = _this.onPaste.bind(_assertThisInitialized(_this));\n _this.onUpButtonMouseLeave = _this.onUpButtonMouseLeave.bind(_assertThisInitialized(_this));\n _this.onUpButtonMouseDown = _this.onUpButtonMouseDown.bind(_assertThisInitialized(_this));\n _this.onUpButtonMouseUp = _this.onUpButtonMouseUp.bind(_assertThisInitialized(_this));\n _this.onUpButtonKeyDown = _this.onUpButtonKeyDown.bind(_assertThisInitialized(_this));\n _this.onUpButtonKeyUp = _this.onUpButtonKeyUp.bind(_assertThisInitialized(_this));\n _this.onDownButtonMouseLeave = _this.onDownButtonMouseLeave.bind(_assertThisInitialized(_this));\n _this.onDownButtonMouseDown = _this.onDownButtonMouseDown.bind(_assertThisInitialized(_this));\n _this.onDownButtonMouseUp = _this.onDownButtonMouseUp.bind(_assertThisInitialized(_this));\n _this.onDownButtonKeyDown = _this.onDownButtonKeyDown.bind(_assertThisInitialized(_this));\n _this.onDownButtonKeyUp = _this.onDownButtonKeyUp.bind(_assertThisInitialized(_this));\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n return _this;\n }\n\n _createClass(InputNumber, [{\n key: \"getOptions\",\n value: function getOptions() {\n return {\n localeMatcher: this.props.localeMatcher,\n style: this.props.mode,\n currency: this.props.currency,\n currencyDisplay: this.props.currencyDisplay,\n useGrouping: this.props.useGrouping,\n minimumFractionDigits: this.props.minFractionDigits,\n maximumFractionDigits: this.props.maxFractionDigits\n };\n }\n }, {\n key: \"constructParser\",\n value: function constructParser() {\n this.numberFormat = new Intl.NumberFormat(this.props.locale, this.getOptions());\n\n var numerals = _toConsumableArray(new Intl.NumberFormat(this.props.locale, {\n useGrouping: false\n }).format(9876543210)).reverse();\n\n var index = new Map(numerals.map(function (d, i) {\n return [d, i];\n }));\n this._numeral = new RegExp(\"[\".concat(numerals.join(''), \"]\"), 'g');\n this._group = this.getGroupingExpression();\n this._minusSign = this.getMinusSignExpression();\n this._currency = this.getCurrencyExpression();\n this._decimal = this.getDecimalExpression();\n this._suffix = this.getSuffixExpression();\n this._prefix = this.getPrefixExpression();\n\n this._index = function (d) {\n return index.get(d);\n };\n }\n }, {\n key: \"escapeRegExp\",\n value: function escapeRegExp(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n }\n }, {\n key: \"getDecimalExpression\",\n value: function getDecimalExpression() {\n var formatter = new Intl.NumberFormat(this.props.locale, _objectSpread(_objectSpread({}, this.getOptions()), {}, {\n useGrouping: false\n }));\n return new RegExp(\"[\".concat(formatter.format(1.1).replace(this._currency, '').trim().replace(this._numeral, ''), \"]\"), 'g');\n }\n }, {\n key: \"getGroupingExpression\",\n value: function getGroupingExpression() {\n var formatter = new Intl.NumberFormat(this.props.locale, {\n useGrouping: true\n });\n this.groupChar = formatter.format(1000000).trim().replace(this._numeral, '').charAt(0);\n return new RegExp(\"[\".concat(this.groupChar, \"]\"), 'g');\n }\n }, {\n key: \"getMinusSignExpression\",\n value: function getMinusSignExpression() {\n var formatter = new Intl.NumberFormat(this.props.locale, {\n useGrouping: false\n });\n return new RegExp(\"[\".concat(formatter.format(-1).trim().replace(this._numeral, ''), \"]\"), 'g');\n }\n }, {\n key: \"getCurrencyExpression\",\n value: function getCurrencyExpression() {\n if (this.props.currency) {\n var formatter = new Intl.NumberFormat(this.props.locale, {\n style: 'currency',\n currency: this.props.currency,\n currencyDisplay: this.props.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n });\n return new RegExp(\"[\".concat(formatter.format(1).replace(/\\s/g, '').replace(this._numeral, '').replace(this._group, ''), \"]\"), 'g');\n }\n\n return new RegExp(\"[]\", 'g');\n }\n }, {\n key: \"getPrefixExpression\",\n value: function getPrefixExpression() {\n if (this.props.prefix) {\n this.prefixChar = this.props.prefix;\n } else {\n var formatter = new Intl.NumberFormat(this.props.locale, {\n style: this.props.mode,\n currency: this.props.currency,\n currencyDisplay: this.props.currencyDisplay\n });\n this.prefixChar = formatter.format(1).split('1')[0];\n }\n\n return new RegExp(\"\".concat(this.escapeRegExp(this.prefixChar || '')), 'g');\n }\n }, {\n key: \"getSuffixExpression\",\n value: function getSuffixExpression() {\n if (this.props.suffix) {\n this.suffixChar = this.props.suffix;\n } else {\n var formatter = new Intl.NumberFormat(this.props.locale, {\n style: this.props.mode,\n currency: this.props.currency,\n currencyDisplay: this.props.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n });\n this.suffixChar = formatter.format(1).split('1')[1];\n }\n\n return new RegExp(\"\".concat(this.escapeRegExp(this.suffixChar || '')), 'g');\n }\n }, {\n key: \"formatValue\",\n value: function formatValue(value) {\n if (value != null) {\n if (value === '-') {\n // Minus sign\n return value;\n }\n\n if (this.props.format) {\n var formatter = new Intl.NumberFormat(this.props.locale, this.getOptions());\n var formattedValue = formatter.format(value);\n\n if (this.props.prefix) {\n formattedValue = this.props.prefix + formattedValue;\n }\n\n if (this.props.suffix) {\n formattedValue = formattedValue + this.props.suffix;\n }\n\n return formattedValue;\n }\n\n return value.toString();\n }\n\n return '';\n }\n }, {\n key: \"parseValue\",\n value: function parseValue(text) {\n var filteredText = text.replace(this._suffix, '').replace(this._prefix, '').trim().replace(/\\s/g, '').replace(this._currency, '').replace(this._group, '').replace(this._minusSign, '-').replace(this._decimal, '.').replace(this._numeral, this._index);\n\n if (filteredText) {\n if (filteredText === '-') // Minus sign\n return filteredText;\n var parsedValue = +filteredText;\n return isNaN(parsedValue) ? null : parsedValue;\n }\n\n return null;\n }\n }, {\n key: \"repeat\",\n value: function repeat(event, interval, dir) {\n var _this2 = this;\n\n var i = interval || 500;\n this.clearTimer();\n this.timer = setTimeout(function () {\n _this2.repeat(event, 40, dir);\n }, i);\n this.spin(event, dir);\n }\n }, {\n key: \"spin\",\n value: function spin(event, dir) {\n if (this.inputRef && this.inputRef.current) {\n var step = this.props.step * dir;\n var currentValue = this.parseValue(this.inputRef.current.value) || 0;\n var newValue = this.validateValue(currentValue + step);\n this.updateInput(newValue, null, 'spin');\n this.updateModel(event, newValue);\n this.handleOnChange(event, currentValue, newValue);\n }\n }\n }, {\n key: \"onUpButtonMouseDown\",\n value: function onUpButtonMouseDown(event) {\n if (!this.props.disabled && !this.props.readOnly) {\n this.inputRef.current.focus();\n this.repeat(event, null, 1);\n event.preventDefault();\n }\n }\n }, {\n key: \"onUpButtonMouseUp\",\n value: function onUpButtonMouseUp() {\n if (!this.props.disabled && !this.props.readOnly) {\n this.clearTimer();\n }\n }\n }, {\n key: \"onUpButtonMouseLeave\",\n value: function onUpButtonMouseLeave() {\n if (!this.props.disabled && !this.props.readOnly) {\n this.clearTimer();\n }\n }\n }, {\n key: \"onUpButtonKeyUp\",\n value: function onUpButtonKeyUp() {\n if (!this.props.disabled && !this.props.readOnly) {\n this.clearTimer();\n }\n }\n }, {\n key: \"onUpButtonKeyDown\",\n value: function onUpButtonKeyDown(event) {\n if (!this.props.disabled && !this.props.readOnly && (event.keyCode === 32 || event.keyCode === 13)) {\n this.repeat(event, null, 1);\n }\n }\n }, {\n key: \"onDownButtonMouseDown\",\n value: function onDownButtonMouseDown(event) {\n if (!this.props.disabled && !this.props.readOnly) {\n this.inputRef.current.focus();\n this.repeat(event, null, -1);\n event.preventDefault();\n }\n }\n }, {\n key: \"onDownButtonMouseUp\",\n value: function onDownButtonMouseUp() {\n if (!this.props.disabled && !this.props.readOnly) {\n this.clearTimer();\n }\n }\n }, {\n key: \"onDownButtonMouseLeave\",\n value: function onDownButtonMouseLeave() {\n if (!this.props.disabled && !this.props.readOnly) {\n this.clearTimer();\n }\n }\n }, {\n key: \"onDownButtonKeyUp\",\n value: function onDownButtonKeyUp() {\n if (!this.props.disabled && !this.props.readOnly) {\n this.clearTimer();\n }\n }\n }, {\n key: \"onDownButtonKeyDown\",\n value: function onDownButtonKeyDown(event) {\n if (!this.props.disabled && !this.props.readOnly && (event.keyCode === 32 || event.keyCode === 13)) {\n this.repeat(event, null, -1);\n }\n }\n }, {\n key: \"onInput\",\n value: function onInput(event) {\n if (this.props.disabled || this.props.readOnly) {\n return;\n }\n\n if (this.isSpecialChar) {\n event.target.value = this.lastValue;\n }\n\n this.isSpecialChar = false;\n }\n }, {\n key: \"onInputKeyDown\",\n value: function onInputKeyDown(event) {\n if (this.props.disabled || this.props.readOnly) {\n return;\n }\n\n this.lastValue = event.target.value;\n\n if (event.shiftKey || event.altKey) {\n this.isSpecialChar = true;\n return;\n }\n\n var selectionStart = event.target.selectionStart;\n var selectionEnd = event.target.selectionEnd;\n var inputValue = event.target.value;\n var newValueStr = null;\n\n if (event.altKey) {\n event.preventDefault();\n }\n\n switch (event.which) {\n //up\n case 38:\n this.spin(event, 1);\n event.preventDefault();\n break;\n //down\n\n case 40:\n this.spin(event, -1);\n event.preventDefault();\n break;\n //left\n\n case 37:\n if (!this.isNumeralChar(inputValue.charAt(selectionStart - 1))) {\n event.preventDefault();\n }\n\n break;\n //right\n\n case 39:\n if (!this.isNumeralChar(inputValue.charAt(selectionStart))) {\n event.preventDefault();\n }\n\n break;\n //enter\n\n case 13:\n newValueStr = this.validateValue(this.parseValue(inputValue));\n this.inputRef.current.value = this.formatValue(newValueStr);\n this.inputRef.current.setAttribute('aria-valuenow', newValueStr);\n this.updateModel(event, newValueStr);\n break;\n //backspace\n\n case 8:\n event.preventDefault();\n\n if (selectionStart === selectionEnd) {\n var deleteChar = inputValue.charAt(selectionStart - 1);\n\n var _this$getDecimalCharI = this.getDecimalCharIndexes(inputValue),\n decimalCharIndex = _this$getDecimalCharI.decimalCharIndex,\n decimalCharIndexWithoutPrefix = _this$getDecimalCharI.decimalCharIndexWithoutPrefix;\n\n if (this.isNumeralChar(deleteChar)) {\n var decimalLength = this.getDecimalLength(inputValue);\n\n if (this._group.test(deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart - 2) + inputValue.slice(selectionStart - 1);\n } else if (this._decimal.test(deleteChar)) {\n this._decimal.lastIndex = 0;\n\n if (decimalLength) {\n this.inputRef.current.setSelectionRange(selectionStart - 1, selectionStart - 1);\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n } else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n var insertedText = this.isDecimalMode() && (this.props.minFractionDigits || 0) < decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart - 1) + insertedText + inputValue.slice(selectionStart);\n } else if (decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart - 1) + '0' + inputValue.slice(selectionStart);\n newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n }\n\n this.updateValue(event, newValueStr, null, 'delete-single');\n } else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n\n break;\n // del\n\n case 46:\n event.preventDefault();\n\n if (selectionStart === selectionEnd) {\n var _deleteChar = inputValue.charAt(selectionStart);\n\n var _this$getDecimalCharI2 = this.getDecimalCharIndexes(inputValue),\n _decimalCharIndex = _this$getDecimalCharI2.decimalCharIndex,\n _decimalCharIndexWithoutPrefix = _this$getDecimalCharI2.decimalCharIndexWithoutPrefix;\n\n if (this.isNumeralChar(_deleteChar)) {\n var _decimalLength = this.getDecimalLength(inputValue);\n\n if (this._group.test(_deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 2);\n } else if (this._decimal.test(_deleteChar)) {\n this._decimal.lastIndex = 0;\n\n if (_decimalLength) {\n this.$refs.input.$el.setSelectionRange(selectionStart + 1, selectionStart + 1);\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n } else if (_decimalCharIndex > 0 && selectionStart > _decimalCharIndex) {\n var _insertedText = this.isDecimalMode() && (this.props.minFractionDigits || 0) < _decimalLength ? '' : '0';\n\n newValueStr = inputValue.slice(0, selectionStart) + _insertedText + inputValue.slice(selectionStart + 1);\n } else if (_decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart) + '0' + inputValue.slice(selectionStart + 1);\n newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n }\n\n this.updateValue(event, newValueStr, null, 'delete-back-single');\n } else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n\n break;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(event);\n }\n }\n }, {\n key: \"onInputKeyPress\",\n value: function onInputKeyPress(event) {\n if (this.props.disabled || this.props.readOnly) {\n return;\n }\n\n var code = event.which || event.keyCode;\n var char = String.fromCharCode(code);\n var isDecimalSign = this.isDecimalSign(char);\n var isMinusSign = this.isMinusSign(char);\n\n if (48 <= code && code <= 57 || isMinusSign || isDecimalSign) {\n this.insert(event, char, {\n isDecimalSign: isDecimalSign,\n isMinusSign: isMinusSign\n });\n event.preventDefault();\n }\n }\n }, {\n key: \"onPaste\",\n value: function onPaste(event) {\n event.preventDefault();\n\n if (this.props.disabled || this.props.readOnly) {\n return;\n }\n\n var data = (event.clipboardData || window['clipboardData']).getData('Text');\n\n if (data) {\n var filteredData = this.parseValue(data);\n\n if (filteredData != null) {\n this.insert(event, filteredData.toString());\n }\n }\n }\n }, {\n key: \"allowMinusSign\",\n value: function allowMinusSign() {\n return this.props.min === null || this.props.min < 0;\n }\n }, {\n key: \"isMinusSign\",\n value: function isMinusSign(char) {\n if (this._minusSign.test(char) || char === '-') {\n this._minusSign.lastIndex = 0;\n return true;\n }\n\n return false;\n }\n }, {\n key: \"isDecimalSign\",\n value: function isDecimalSign(char) {\n if (this._decimal.test(char)) {\n this._decimal.lastIndex = 0;\n return true;\n }\n\n return false;\n }\n }, {\n key: \"isDecimalMode\",\n value: function isDecimalMode() {\n return this.props.mode === 'decimal';\n }\n }, {\n key: \"getDecimalCharIndexes\",\n value: function getDecimalCharIndexes(val) {\n var decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n var filteredVal = val.replace(this._prefix, '').trim().replace(/\\s/g, '').replace(this._currency, '');\n var decimalCharIndexWithoutPrefix = filteredVal.search(this._decimal);\n this._decimal.lastIndex = 0;\n return {\n decimalCharIndex: decimalCharIndex,\n decimalCharIndexWithoutPrefix: decimalCharIndexWithoutPrefix\n };\n }\n }, {\n key: \"getCharIndexes\",\n value: function getCharIndexes(val) {\n var decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n var minusCharIndex = val.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n var suffixCharIndex = val.search(this._suffix);\n this._suffix.lastIndex = 0;\n var currencyCharIndex = val.search(this._currency);\n this._currency.lastIndex = 0;\n return {\n decimalCharIndex: decimalCharIndex,\n minusCharIndex: minusCharIndex,\n suffixCharIndex: suffixCharIndex,\n currencyCharIndex: currencyCharIndex\n };\n }\n }, {\n key: \"insert\",\n value: function insert(event, text) {\n var sign = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n isDecimalSign: false,\n isMinusSign: false\n };\n var minusCharIndexOnText = text.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n\n if (!this.allowMinusSign() && minusCharIndexOnText !== -1) {\n return;\n }\n\n var selectionStart = this.inputRef.current.selectionStart;\n var selectionEnd = this.inputRef.current.selectionEnd;\n var inputValue = this.inputRef.current.value.trim();\n\n var _this$getCharIndexes = this.getCharIndexes(inputValue),\n decimalCharIndex = _this$getCharIndexes.decimalCharIndex,\n minusCharIndex = _this$getCharIndexes.minusCharIndex,\n suffixCharIndex = _this$getCharIndexes.suffixCharIndex,\n currencyCharIndex = _this$getCharIndexes.currencyCharIndex;\n\n var newValueStr;\n\n if (sign.isMinusSign) {\n if (selectionStart === 0) {\n newValueStr = inputValue;\n\n if (minusCharIndex === -1 || selectionEnd !== 0) {\n newValueStr = this.insertText(inputValue, text, 0, selectionEnd);\n }\n\n this.updateValue(event, newValueStr, text, 'insert');\n }\n } else if (sign.isDecimalSign) {\n if (decimalCharIndex > 0 && selectionStart === decimalCharIndex) {\n this.updateValue(event, inputValue, text, 'insert');\n } else if (decimalCharIndex > selectionStart && decimalCharIndex < selectionEnd) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n } else if (decimalCharIndex === -1 && this.props.maxFractionDigits) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n }\n } else {\n var maxFractionDigits = this.numberFormat.resolvedOptions().maximumFractionDigits;\n var operation = selectionStart !== selectionEnd ? 'range-insert' : 'insert';\n\n if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n if (selectionStart + text.length - (decimalCharIndex + 1) <= maxFractionDigits) {\n var charIndex = currencyCharIndex >= selectionStart ? currencyCharIndex - 1 : suffixCharIndex >= selectionStart ? suffixCharIndex : inputValue.length;\n newValueStr = inputValue.slice(0, selectionStart) + text + inputValue.slice(selectionStart + text.length, charIndex) + inputValue.slice(charIndex);\n this.updateValue(event, newValueStr, text, operation);\n }\n } else {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, operation);\n }\n }\n }\n }, {\n key: \"insertText\",\n value: function insertText(value, text, start, end) {\n var textSplit = text === '.' ? text : text.split('.');\n\n if (textSplit.length === 2) {\n var decimalCharIndex = value.slice(start, end).search(this._decimal);\n this._decimal.lastIndex = 0;\n return decimalCharIndex > 0 ? value.slice(0, start) + this.formatValue(text) + value.slice(end) : value || this.formatValue(text);\n } else if (end - start === value.length) {\n return this.formatValue(text);\n } else if (start === 0) {\n return text + value.slice(end);\n } else if (end === value.length) {\n return value.slice(0, start) + text;\n } else {\n return value.slice(0, start) + text + value.slice(end);\n }\n }\n }, {\n key: \"deleteRange\",\n value: function deleteRange(value, start, end) {\n var newValueStr;\n if (end - start === value.length) newValueStr = '';else if (start === 0) newValueStr = value.slice(end);else if (end === value.length) newValueStr = value.slice(0, start);else newValueStr = value.slice(0, start) + value.slice(end);\n return newValueStr;\n }\n }, {\n key: \"initCursor\",\n value: function initCursor() {\n var selectionStart = this.inputRef.current.selectionStart;\n var inputValue = this.inputRef.current.value;\n var valueLength = inputValue.length;\n var index = null; // remove prefix\n\n var prefixLength = (this.prefixChar || '').length;\n inputValue = inputValue.replace(this._prefix, '');\n selectionStart = selectionStart - prefixLength;\n var char = inputValue.charAt(selectionStart);\n\n if (this.isNumeralChar(char)) {\n return selectionStart + prefixLength;\n } //left\n\n\n var i = selectionStart - 1;\n\n while (i >= 0) {\n char = inputValue.charAt(i);\n\n if (this.isNumeralChar(char)) {\n index = i + prefixLength;\n break;\n } else {\n i--;\n }\n }\n\n if (index !== null) {\n this.inputRef.current.setSelectionRange(index + 1, index + 1);\n } else {\n i = selectionStart;\n\n while (i < valueLength) {\n char = inputValue.charAt(i);\n\n if (this.isNumeralChar(char)) {\n index = i + prefixLength;\n break;\n } else {\n i++;\n }\n }\n\n if (index !== null) {\n this.inputRef.current.setSelectionRange(index, index);\n }\n }\n\n return index || 0;\n }\n }, {\n key: \"onInputClick\",\n value: function onInputClick() {\n this.initCursor();\n }\n }, {\n key: \"isNumeralChar\",\n value: function isNumeralChar(char) {\n if (char.length === 1 && (this._numeral.test(char) || this._decimal.test(char) || this._group.test(char) || this._minusSign.test(char))) {\n this.resetRegex();\n return true;\n } else {\n return false;\n }\n }\n }, {\n key: \"resetRegex\",\n value: function resetRegex() {\n this._numeral.lastIndex = 0;\n this._decimal.lastIndex = 0;\n this._group.lastIndex = 0;\n this._minusSign.lastIndex = 0;\n }\n }, {\n key: \"updateValue\",\n value: function updateValue(event, valueStr, insertedValueStr, operation) {\n var currentValue = this.inputRef.current.value;\n var newValue = null;\n\n if (valueStr != null) {\n newValue = this.parseValue(valueStr);\n newValue = !newValue && !this.props.allowEmpty ? 0 : newValue;\n this.updateInput(newValue, insertedValueStr, operation, valueStr);\n this.handleOnChange(event, currentValue, newValue);\n }\n }\n }, {\n key: \"handleOnChange\",\n value: function handleOnChange(event, currentValue, newValue) {\n if (this.props.onChange && this.isValueChanged(currentValue, newValue)) {\n this.props.onChange({\n originalEvent: event,\n value: newValue\n });\n }\n }\n }, {\n key: \"isValueChanged\",\n value: function isValueChanged(currentValue, newValue) {\n if (newValue === null && currentValue !== null) {\n return true;\n }\n\n if (newValue != null) {\n var parsedCurrentValue = typeof currentValue === 'string' ? this.parseValue(currentValue) : currentValue;\n return newValue !== parsedCurrentValue;\n }\n\n return false;\n }\n }, {\n key: \"validateValue\",\n value: function validateValue(value) {\n if (value === '-' || value == null) {\n return null;\n }\n\n if (this.props.min !== null && value < this.props.min) {\n return this.props.min;\n }\n\n if (this.props.max !== null && value > this.props.max) {\n return this.props.max;\n }\n\n return value;\n }\n }, {\n key: \"updateInput\",\n value: function updateInput(value, insertedValueStr, operation, valueStr) {\n insertedValueStr = insertedValueStr || '';\n var inputEl = this.inputRef.current;\n var inputValue = inputEl.value;\n var newValue = this.formatValue(value);\n var currentLength = inputValue.length;\n\n if (newValue !== valueStr) {\n newValue = this.concatValues(newValue, valueStr);\n }\n\n if (currentLength === 0) {\n inputEl.value = newValue;\n inputEl.setSelectionRange(0, 0);\n var index = this.initCursor();\n var selectionEnd = index + insertedValueStr.length;\n inputEl.setSelectionRange(selectionEnd, selectionEnd);\n } else {\n var selectionStart = inputEl.selectionStart;\n var _selectionEnd = inputEl.selectionEnd;\n inputEl.value = newValue;\n var newLength = newValue.length;\n\n if (operation === 'range-insert') {\n var startValue = this.parseValue((inputValue || '').slice(0, selectionStart));\n var startValueStr = startValue !== null ? startValue.toString() : '';\n var startExpr = startValueStr.split('').join(\"(\".concat(this.groupChar, \")?\"));\n var sRegex = new RegExp(startExpr, 'g');\n sRegex.test(newValue);\n var tExpr = insertedValueStr.split('').join(\"(\".concat(this.groupChar, \")?\"));\n var tRegex = new RegExp(tExpr, 'g');\n tRegex.test(newValue.slice(sRegex.lastIndex));\n _selectionEnd = sRegex.lastIndex + tRegex.lastIndex;\n inputEl.setSelectionRange(_selectionEnd, _selectionEnd);\n } else if (newLength === currentLength) {\n if (operation === 'insert' || operation === 'delete-back-single') inputEl.setSelectionRange(_selectionEnd + 1, _selectionEnd + 1);else if (operation === 'delete-single') inputEl.setSelectionRange(_selectionEnd - 1, _selectionEnd - 1);else if (operation === 'delete-range' || operation === 'spin') inputEl.setSelectionRange(_selectionEnd, _selectionEnd);\n } else if (operation === 'delete-back-single') {\n var prevChar = inputValue.charAt(_selectionEnd - 1);\n var nextChar = inputValue.charAt(_selectionEnd);\n var diff = currentLength - newLength;\n\n var isGroupChar = this._group.test(nextChar);\n\n if (isGroupChar && diff === 1) {\n _selectionEnd += 1;\n } else if (!isGroupChar && this.isNumeralChar(prevChar)) {\n _selectionEnd += -1 * diff + 1;\n }\n\n this._group.lastIndex = 0;\n inputEl.setSelectionRange(_selectionEnd, _selectionEnd);\n } else if (inputValue === '-' && operation === 'insert') {\n inputEl.setSelectionRange(0, 0);\n\n var _index = this.initCursor();\n\n var _selectionEnd2 = _index + insertedValueStr.length + 1;\n\n inputEl.setSelectionRange(_selectionEnd2, _selectionEnd2);\n } else {\n _selectionEnd = _selectionEnd + (newLength - currentLength);\n inputEl.setSelectionRange(_selectionEnd, _selectionEnd);\n }\n }\n\n inputEl.setAttribute('aria-valuenow', value);\n }\n }, {\n key: \"updateInputValue\",\n value: function updateInputValue(newValue) {\n newValue = !newValue && !this.props.allowEmpty ? 0 : newValue;\n var inputEl = this.inputRef.current;\n var value = inputEl.value;\n var formattedValue = this.formattedValue(newValue);\n\n if (value !== formattedValue) {\n inputEl.value = formattedValue;\n inputEl.setAttribute('aria-valuenow', newValue);\n }\n }\n }, {\n key: \"formattedValue\",\n value: function formattedValue(val) {\n var newVal = !val && !this.props.allowEmpty ? 0 : val;\n return this.formatValue(newVal);\n }\n }, {\n key: \"concatValues\",\n value: function concatValues(val1, val2) {\n if (val1 && val2) {\n var decimalCharIndex = val2.search(this._decimal);\n this._decimal.lastIndex = 0;\n return decimalCharIndex !== -1 ? val1.split(this._decimal)[0] + val2.slice(decimalCharIndex) : val1;\n }\n\n return val1;\n }\n }, {\n key: \"getDecimalLength\",\n value: function getDecimalLength(value) {\n if (value) {\n var valueSplit = value.split(this._decimal);\n\n if (valueSplit.length === 2) {\n return valueSplit[1].replace(this._suffix, '').trim().replace(/\\s/g, '').replace(this._currency, '').length;\n }\n }\n\n return 0;\n }\n }, {\n key: \"updateModel\",\n value: function updateModel(event, value) {\n if (this.props.onValueChange) {\n this.props.onValueChange({\n originalEvent: event,\n value: value,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: value\n }\n });\n }\n }\n }, {\n key: \"onInputFocus\",\n value: function onInputFocus(event) {\n var _this3 = this;\n\n event.persist();\n this.setState({\n focused: true\n }, function () {\n if (_this3.props.onFocus) {\n _this3.props.onFocus(event);\n }\n });\n }\n }, {\n key: \"onInputBlur\",\n value: function onInputBlur(event) {\n var _this4 = this;\n\n event.persist();\n this.setState({\n focused: false\n }, function () {\n var currentValue = _this4.inputRef.current.value;\n\n if (_this4.isValueChanged(currentValue, _this4.props.value)) {\n var newValue = _this4.validateValue(_this4.parseValue(currentValue));\n\n _this4.updateInputValue(newValue);\n\n _this4.updateModel(event, newValue);\n }\n\n if (_this4.props.onBlur) {\n _this4.props.onBlur(event);\n }\n });\n }\n }, {\n key: \"clearTimer\",\n value: function clearTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n }\n }, {\n key: \"isStacked\",\n value: function isStacked() {\n return this.props.showButtons && this.props.buttonLayout === 'stacked';\n }\n }, {\n key: \"isHorizontal\",\n value: function isHorizontal() {\n return this.props.showButtons && this.props.buttonLayout === 'horizontal';\n }\n }, {\n key: \"isVertical\",\n value: function isVertical() {\n return this.props.showButtons && this.props.buttonLayout === 'vertical';\n }\n }, {\n key: \"getInputMode\",\n value: function getInputMode() {\n return this.props.inputMode || (this.props.mode === 'decimal' && !this.props.minFractionDigits ? 'numeric' : 'decimal');\n }\n }, {\n key: \"getFormatter\",\n value: function getFormatter() {\n return this.numberFormat;\n }\n }, {\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInputRef();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n\n var newValue = this.validateValue(this.props.value);\n\n if (this.props.value !== null && this.props.value !== newValue) {\n this.updateModel(null, newValue);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n\n var isOptionChanged = this.isOptionChanged(prevProps);\n\n if (isOptionChanged) {\n this.constructParser();\n }\n\n if (prevProps.value !== this.props.value || isOptionChanged) {\n var newValue = this.validateValue(this.props.value);\n this.updateInputValue(newValue);\n\n if (this.props.value !== null && this.props.value !== newValue) {\n this.updateModel(null, newValue);\n }\n }\n }\n }, {\n key: \"isOptionChanged\",\n value: function isOptionChanged(prevProps) {\n var _this5 = this;\n\n var optionProps = ['locale', 'localeMatcher', 'mode', 'currency', 'currencyDisplay', 'useGrouping', 'minFractionDigits', 'maxFractionDigits', 'suffix', 'prefix'];\n return optionProps.some(function (option) {\n return prevProps[option] !== _this5.props[option];\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.element,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderInputElement\",\n value: function renderInputElement() {\n var className = classNames('p-inputnumber-input', this.props.inputClassName);\n var valueToRender = this.formattedValue(this.props.value);\n return /*#__PURE__*/React.createElement(InputText, {\n ref: this.inputRef,\n id: this.props.inputId,\n style: this.props.inputStyle,\n role: \"spinbutton\",\n className: className,\n defaultValue: valueToRender,\n type: this.props.type,\n size: this.props.size,\n tabIndex: this.props.tabIndex,\n inputMode: this.getInputMode(),\n maxLength: this.props.maxlength,\n disabled: this.props.disabled,\n required: this.props.required,\n pattern: this.props.pattern,\n placeholder: this.props.placeholder,\n readOnly: this.props.readOnly,\n name: this.props.name,\n autoFocus: this.props.autoFocus,\n onKeyDown: this.onInputKeyDown,\n onKeyPress: this.onInputKeyPress,\n onInput: this.onInput,\n onClick: this.onInputClick,\n onBlur: this.onInputBlur,\n onFocus: this.onInputFocus,\n onPaste: this.onPaste,\n min: this.props.min,\n max: this.props.max,\n \"aria-valuemin\": this.props.min,\n \"aria-valuemax\": this.props.max,\n \"aria-valuenow\": this.props.value,\n \"aria-labelledby\": this.props.ariaLabelledBy\n });\n }\n }, {\n key: \"renderUpButton\",\n value: function renderUpButton() {\n var className = classNames('p-inputnumber-button p-inputnumber-button-up p-button p-button-icon-only p-component', {\n 'p-disabled': this.props.disabled\n }, this.props.incrementButtonClassName);\n var icon = classNames('p-button-icon', this.props.incrementButtonIcon);\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: className,\n onMouseLeave: this.onUpButtonMouseLeave,\n onMouseDown: this.onUpButtonMouseDown,\n onMouseUp: this.onUpButtonMouseUp,\n onKeyDown: this.onUpButtonKeyDown,\n onKeyUp: this.onUpButtonKeyUp,\n disabled: this.props.disabled,\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: icon\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n }, {\n key: \"renderDownButton\",\n value: function renderDownButton() {\n var className = classNames('p-inputnumber-button p-inputnumber-button-down p-button p-button-icon-only p-component', {\n 'p-disabled': this.props.disabled\n }, this.props.decrementButtonClassName);\n var icon = classNames('p-button-icon', this.props.decrementButtonIcon);\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: className,\n onMouseLeave: this.onDownButtonMouseLeave,\n onMouseDown: this.onDownButtonMouseDown,\n onMouseUp: this.onDownButtonMouseUp,\n onKeyDown: this.onDownButtonKeyDown,\n onKeyUp: this.onDownButtonKeyUp,\n disabled: this.props.disabled,\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: icon\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n }, {\n key: \"renderButtonGroup\",\n value: function renderButtonGroup() {\n var upButton = this.props.showButtons && this.renderUpButton();\n var downButton = this.props.showButtons && this.renderDownButton();\n\n if (this.isStacked()) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-inputnumber-button-group\"\n }, upButton, downButton);\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, upButton, downButton);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this6 = this;\n\n var className = classNames('p-inputnumber p-component p-inputwrapper', this.props.className, {\n 'p-inputwrapper-filled': this.props.value != null && this.props.value.toString().length > 0,\n 'p-inputwrapper-focus': this.state.focused,\n 'p-inputnumber-buttons-stacked': this.isStacked(),\n 'p-inputnumber-buttons-horizontal': this.isHorizontal(),\n 'p-inputnumber-buttons-vertical': this.isVertical()\n });\n var inputElement = this.renderInputElement();\n var buttonGroup = this.renderButtonGroup();\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n return _this6.element = el;\n },\n id: this.props.id,\n className: className,\n style: this.props.style\n }, inputElement, buttonGroup);\n }\n }]);\n\n return InputNumber;\n}(Component);\n\n_defineProperty(InputNumber, \"defaultProps\", {\n value: null,\n inputRef: null,\n format: true,\n showButtons: false,\n buttonLayout: 'stacked',\n incrementButtonClassName: null,\n decrementButtonClassName: null,\n incrementButtonIcon: 'pi pi-angle-up',\n decrementButtonIcon: 'pi pi-angle-down',\n locale: undefined,\n localeMatcher: undefined,\n mode: 'decimal',\n suffix: null,\n prefix: null,\n currency: undefined,\n currencyDisplay: undefined,\n useGrouping: true,\n minFractionDigits: undefined,\n maxFractionDigits: undefined,\n id: null,\n name: null,\n type: 'text',\n allowEmpty: true,\n step: 1,\n min: null,\n max: null,\n disabled: false,\n required: false,\n tabIndex: null,\n pattern: null,\n inputMode: null,\n placeholder: null,\n readOnly: false,\n size: null,\n style: null,\n className: null,\n inputId: null,\n autoFocus: false,\n inputStyle: null,\n inputClassName: null,\n tooltip: null,\n tooltipOptions: null,\n ariaLabelledBy: null,\n onValueChange: null,\n onChange: null,\n onBlur: null,\n onFocus: null,\n onKeyDown: null\n});\n\nexport { InputNumber };\n","import React, { Component } from 'react';\nimport { classNames, ObjectUtils } from 'primereact/utils';\nimport { Ripple } from 'primereact/ripple';\nimport { Dropdown } from 'primereact/dropdown';\nimport { InputNumber } from 'primereact/inputnumber';\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper$8(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$8(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$8() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar FirstPageLink = /*#__PURE__*/function (_Component) {\n _inherits(FirstPageLink, _Component);\n\n var _super = _createSuper$8(FirstPageLink);\n\n function FirstPageLink() {\n _classCallCheck(this, FirstPageLink);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FirstPageLink, [{\n key: \"render\",\n value: function render() {\n var className = classNames('p-paginator-first p-paginator-element p-link', {\n 'p-disabled': this.props.disabled\n });\n var iconClassName = 'p-paginator-icon pi pi-angle-double-left';\n var element = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: className,\n onClick: this.props.onClick,\n disabled: this.props.disabled\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n\n if (this.props.template) {\n var defaultOptions = {\n onClick: this.props.onClick,\n className: className,\n iconClassName: iconClassName,\n disabled: this.props.disabled,\n element: element,\n props: this.props\n };\n return ObjectUtils.getJSXElement(this.props.template, defaultOptions);\n }\n\n return element;\n }\n }]);\n\n return FirstPageLink;\n}(Component);\n\n_defineProperty(FirstPageLink, \"defaultProps\", {\n disabled: false,\n onClick: null,\n template: null\n});\n\nfunction _createSuper$7(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$7(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$7() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar NextPageLink = /*#__PURE__*/function (_Component) {\n _inherits(NextPageLink, _Component);\n\n var _super = _createSuper$7(NextPageLink);\n\n function NextPageLink() {\n _classCallCheck(this, NextPageLink);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(NextPageLink, [{\n key: \"render\",\n value: function render() {\n var className = classNames('p-paginator-next p-paginator-element p-link', {\n 'p-disabled': this.props.disabled\n });\n var iconClassName = 'p-paginator-icon pi pi-angle-right';\n var element = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: className,\n onClick: this.props.onClick,\n disabled: this.props.disabled\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n\n if (this.props.template) {\n var defaultOptions = {\n onClick: this.props.onClick,\n className: className,\n iconClassName: iconClassName,\n disabled: this.props.disabled,\n element: element,\n props: this.props\n };\n return ObjectUtils.getJSXElement(this.props.template, defaultOptions);\n }\n\n return element;\n }\n }]);\n\n return NextPageLink;\n}(Component);\n\n_defineProperty(NextPageLink, \"defaultProps\", {\n disabled: false,\n onClick: null,\n template: null\n});\n\nfunction _createSuper$6(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$6(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$6() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar PrevPageLink = /*#__PURE__*/function (_Component) {\n _inherits(PrevPageLink, _Component);\n\n var _super = _createSuper$6(PrevPageLink);\n\n function PrevPageLink() {\n _classCallCheck(this, PrevPageLink);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PrevPageLink, [{\n key: \"render\",\n value: function render() {\n var className = classNames('p-paginator-prev p-paginator-element p-link', {\n 'p-disabled': this.props.disabled\n });\n var iconClassName = 'p-paginator-icon pi pi-angle-left';\n var element = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: className,\n onClick: this.props.onClick,\n disabled: this.props.disabled\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n\n if (this.props.template) {\n var defaultOptions = {\n onClick: this.props.onClick,\n className: className,\n iconClassName: iconClassName,\n disabled: this.props.disabled,\n element: element,\n props: this.props\n };\n return ObjectUtils.getJSXElement(this.props.template, defaultOptions);\n }\n\n return element;\n }\n }]);\n\n return PrevPageLink;\n}(Component);\n\n_defineProperty(PrevPageLink, \"defaultProps\", {\n disabled: false,\n onClick: null,\n template: null\n});\n\nfunction _createSuper$5(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$5(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$5() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar LastPageLink = /*#__PURE__*/function (_Component) {\n _inherits(LastPageLink, _Component);\n\n var _super = _createSuper$5(LastPageLink);\n\n function LastPageLink() {\n _classCallCheck(this, LastPageLink);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(LastPageLink, [{\n key: \"render\",\n value: function render() {\n var className = classNames('p-paginator-last p-paginator-element p-link', {\n 'p-disabled': this.props.disabled\n });\n var iconClassName = 'p-paginator-icon pi pi-angle-double-right';\n var element = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: className,\n onClick: this.props.onClick,\n disabled: this.props.disabled\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n\n if (this.props.template) {\n var defaultOptions = {\n onClick: this.props.onClick,\n className: className,\n iconClassName: iconClassName,\n disabled: this.props.disabled,\n element: element,\n props: this.props\n };\n return ObjectUtils.getJSXElement(this.props.template, defaultOptions);\n }\n\n return element;\n }\n }]);\n\n return LastPageLink;\n}(Component);\n\n_defineProperty(LastPageLink, \"defaultProps\", {\n disabled: false,\n onClick: null,\n template: null\n});\n\nfunction _createSuper$4(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$4(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$4() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar PageLinks = /*#__PURE__*/function (_Component) {\n _inherits(PageLinks, _Component);\n\n var _super = _createSuper$4(PageLinks);\n\n function PageLinks() {\n _classCallCheck(this, PageLinks);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PageLinks, [{\n key: \"onPageLinkClick\",\n value: function onPageLinkClick(event, pageLink) {\n if (this.props.onClick) {\n this.props.onClick({\n originalEvent: event,\n value: pageLink\n });\n }\n\n event.preventDefault();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n\n var elements;\n\n if (this.props.value) {\n var startPageInView = this.props.value[0];\n var endPageInView = this.props.value[this.props.value.length - 1];\n elements = this.props.value.map(function (pageLink, i) {\n var className = classNames('p-paginator-page p-paginator-element p-link', {\n 'p-paginator-page-start': pageLink === startPageInView,\n 'p-paginator-page-end': pageLink === endPageInView,\n 'p-highlight': pageLink - 1 === _this.props.page\n });\n var element = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: className,\n onClick: function onClick(e) {\n return _this.onPageLinkClick(e, pageLink);\n }\n }, pageLink, /*#__PURE__*/React.createElement(Ripple, null));\n\n if (_this.props.template) {\n var defaultOptions = {\n onClick: function onClick(e) {\n return _this.onPageLinkClick(e, pageLink);\n },\n className: className,\n view: {\n startPage: startPageInView - 1,\n endPage: endPageInView - 1\n },\n page: pageLink - 1,\n currentPage: _this.props.page,\n totalPages: _this.props.pageCount,\n element: element,\n props: _this.props\n };\n element = ObjectUtils.getJSXElement(_this.props.template, defaultOptions);\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: pageLink\n }, element);\n });\n }\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-paginator-pages\"\n }, elements);\n }\n }]);\n\n return PageLinks;\n}(Component);\n\n_defineProperty(PageLinks, \"defaultProps\", {\n value: null,\n page: null,\n rows: null,\n pageCount: null,\n links: null,\n template: null\n});\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar RowsPerPageDropdown = /*#__PURE__*/function (_Component) {\n _inherits(RowsPerPageDropdown, _Component);\n\n var _super = _createSuper$3(RowsPerPageDropdown);\n\n function RowsPerPageDropdown() {\n _classCallCheck(this, RowsPerPageDropdown);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(RowsPerPageDropdown, [{\n key: \"hasOptions\",\n value: function hasOptions() {\n return this.props.options && this.props.options.length > 0;\n }\n }, {\n key: \"render\",\n value: function render() {\n var hasOptions = this.hasOptions();\n var options = hasOptions ? this.props.options.map(function (opt) {\n return {\n label: String(opt),\n value: opt\n };\n }) : [];\n var element = hasOptions ? /*#__PURE__*/React.createElement(Dropdown, {\n value: this.props.value,\n options: options,\n onChange: this.props.onChange,\n appendTo: this.props.appendTo,\n disabled: this.props.disabled\n }) : null;\n\n if (this.props.template) {\n var defaultOptions = {\n value: this.props.value,\n options: options,\n onChange: this.props.onChange,\n appendTo: this.props.appendTo,\n currentPage: this.props.page,\n totalPages: this.props.pageCount,\n totalRecords: this.props.totalRecords,\n disabled: this.props.disabled,\n element: element,\n props: this.props\n };\n return ObjectUtils.getJSXElement(this.props.template, defaultOptions);\n }\n\n return element;\n }\n }]);\n\n return RowsPerPageDropdown;\n}(Component);\n\n_defineProperty(RowsPerPageDropdown, \"defaultProps\", {\n options: null,\n value: null,\n page: null,\n pageCount: null,\n totalRecords: 0,\n appendTo: null,\n onChange: null,\n template: null,\n disabled: false\n});\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar CurrentPageReport = /*#__PURE__*/function (_Component) {\n _inherits(CurrentPageReport, _Component);\n\n var _super = _createSuper$2(CurrentPageReport);\n\n function CurrentPageReport() {\n _classCallCheck(this, CurrentPageReport);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CurrentPageReport, [{\n key: \"render\",\n value: function render() {\n var report = {\n currentPage: this.props.page + 1,\n totalPages: this.props.pageCount,\n first: Math.min(this.props.first + 1, this.props.totalRecords),\n last: Math.min(this.props.first + this.props.rows, this.props.totalRecords),\n rows: this.props.rows,\n totalRecords: this.props.totalRecords\n };\n var text = this.props.reportTemplate.replace(\"{currentPage}\", report.currentPage).replace(\"{totalPages}\", report.totalPages).replace(\"{first}\", report.first).replace(\"{last}\", report.last).replace(\"{rows}\", report.rows).replace(\"{totalRecords}\", report.totalRecords);\n var element = /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-paginator-current\"\n }, text);\n\n if (this.props.template) {\n var defaultOptions = _objectSpread(_objectSpread({}, report), {\n className: 'p-paginator-current',\n element: element,\n props: this.props\n });\n\n return ObjectUtils.getJSXElement(this.props.template, defaultOptions);\n }\n\n return element;\n }\n }]);\n\n return CurrentPageReport;\n}(Component);\n\n_defineProperty(CurrentPageReport, \"defaultProps\", {\n pageCount: null,\n page: null,\n first: null,\n rows: null,\n totalRecords: null,\n reportTemplate: '({currentPage} of {totalPages})',\n template: null\n});\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar JumpToPageInput = /*#__PURE__*/function (_Component) {\n _inherits(JumpToPageInput, _Component);\n\n var _super = _createSuper$1(JumpToPageInput);\n\n function JumpToPageInput(props) {\n var _this;\n\n _classCallCheck(this, JumpToPageInput);\n\n _this = _super.call(this, props);\n _this.onChange = _this.onChange.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(JumpToPageInput, [{\n key: \"onChange\",\n value: function onChange(event) {\n if (this.props.onChange) {\n this.props.onChange(this.props.rows * (event.value - 1), this.props.rows);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var value = this.props.pageCount > 0 ? this.props.page + 1 : 0;\n var element = /*#__PURE__*/React.createElement(InputNumber, {\n value: value,\n onChange: this.onChange,\n className: \"p-paginator-page-input\",\n disabled: this.props.disabled\n });\n\n if (this.props.template) {\n var defaultOptions = {\n value: value,\n onChange: this.onChange,\n disabled: this.props.disabled,\n className: 'p-paginator-page-input',\n element: element,\n props: this.props\n };\n return ObjectUtils.getJSXElement(this.props.template, defaultOptions);\n }\n\n return element;\n }\n }]);\n\n return JumpToPageInput;\n}(Component);\n\n_defineProperty(JumpToPageInput, \"defaultProps\", {\n page: null,\n rows: null,\n pageCount: null,\n disabled: false,\n template: null,\n onChange: null\n});\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Paginator = /*#__PURE__*/function (_Component) {\n _inherits(Paginator, _Component);\n\n var _super = _createSuper(Paginator);\n\n function Paginator(props) {\n var _this;\n\n _classCallCheck(this, Paginator);\n\n _this = _super.call(this, props);\n _this.changePageToFirst = _this.changePageToFirst.bind(_assertThisInitialized(_this));\n _this.changePageToPrev = _this.changePageToPrev.bind(_assertThisInitialized(_this));\n _this.changePageToNext = _this.changePageToNext.bind(_assertThisInitialized(_this));\n _this.changePageToLast = _this.changePageToLast.bind(_assertThisInitialized(_this));\n _this.onRowsChange = _this.onRowsChange.bind(_assertThisInitialized(_this));\n _this.changePage = _this.changePage.bind(_assertThisInitialized(_this));\n _this.onPageLinkClick = _this.onPageLinkClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Paginator, [{\n key: \"isFirstPage\",\n value: function isFirstPage() {\n return this.getPage() === 0;\n }\n }, {\n key: \"isLastPage\",\n value: function isLastPage() {\n return this.getPage() === this.getPageCount() - 1;\n }\n }, {\n key: \"getPageCount\",\n value: function getPageCount() {\n return Math.ceil(this.props.totalRecords / this.props.rows);\n }\n }, {\n key: \"calculatePageLinkBoundaries\",\n value: function calculatePageLinkBoundaries() {\n var numberOfPages = this.getPageCount();\n var visiblePages = Math.min(this.props.pageLinkSize, numberOfPages); //calculate range, keep current in middle if necessary\n\n var start = Math.max(0, Math.ceil(this.getPage() - visiblePages / 2));\n var end = Math.min(numberOfPages - 1, start + visiblePages - 1); //check when approaching to last page\n\n var delta = this.props.pageLinkSize - (end - start + 1);\n start = Math.max(0, start - delta);\n return [start, end];\n }\n }, {\n key: \"updatePageLinks\",\n value: function updatePageLinks() {\n var pageLinks = [];\n var boundaries = this.calculatePageLinkBoundaries();\n var start = boundaries[0];\n var end = boundaries[1];\n\n for (var i = start; i <= end; i++) {\n pageLinks.push(i + 1);\n }\n\n return pageLinks;\n }\n }, {\n key: \"changePage\",\n value: function changePage(first, rows) {\n var pc = this.getPageCount();\n var p = Math.floor(first / rows);\n\n if (p >= 0 && p < pc) {\n var newPageState = {\n first: first,\n rows: rows,\n page: p,\n pageCount: pc\n };\n\n if (this.props.onPageChange) {\n this.props.onPageChange(newPageState);\n }\n }\n }\n }, {\n key: \"getPage\",\n value: function getPage() {\n return Math.floor(this.props.first / this.props.rows);\n }\n }, {\n key: \"empty\",\n value: function empty() {\n var pageCount = this.getPageCount();\n return pageCount === 0;\n }\n }, {\n key: \"changePageToFirst\",\n value: function changePageToFirst(event) {\n this.changePage(0, this.props.rows);\n event.preventDefault();\n }\n }, {\n key: \"changePageToPrev\",\n value: function changePageToPrev(event) {\n this.changePage(this.props.first - this.props.rows, this.props.rows);\n event.preventDefault();\n }\n }, {\n key: \"onPageLinkClick\",\n value: function onPageLinkClick(event) {\n this.changePage((event.value - 1) * this.props.rows, this.props.rows);\n }\n }, {\n key: \"changePageToNext\",\n value: function changePageToNext(event) {\n this.changePage(this.props.first + this.props.rows, this.props.rows);\n event.preventDefault();\n }\n }, {\n key: \"changePageToLast\",\n value: function changePageToLast(event) {\n this.changePage((this.getPageCount() - 1) * this.props.rows, this.props.rows);\n event.preventDefault();\n }\n }, {\n key: \"onRowsChange\",\n value: function onRowsChange(event) {\n var rows = event.value;\n this.isRowChanged = rows !== this.props.rows;\n this.changePage(0, rows);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.rows !== prevProps.rows && !this.isRowChanged) {\n this.changePage(0, this.props.rows);\n } else if (this.getPage() > 0 && prevProps.totalRecords !== this.props.totalRecords && this.props.first >= this.props.totalRecords) {\n this.changePage((this.getPageCount() - 1) * this.props.rows, this.props.rows);\n }\n\n this.isRowChanged = false;\n }\n }, {\n key: \"renderElement\",\n value: function renderElement(key, template) {\n var element;\n\n switch (key) {\n case 'FirstPageLink':\n element = /*#__PURE__*/React.createElement(FirstPageLink, {\n key: key,\n onClick: this.changePageToFirst,\n disabled: this.isFirstPage() || this.empty(),\n template: template\n });\n break;\n\n case 'PrevPageLink':\n element = /*#__PURE__*/React.createElement(PrevPageLink, {\n key: key,\n onClick: this.changePageToPrev,\n disabled: this.isFirstPage() || this.empty(),\n template: template\n });\n break;\n\n case 'NextPageLink':\n element = /*#__PURE__*/React.createElement(NextPageLink, {\n key: key,\n onClick: this.changePageToNext,\n disabled: this.isLastPage() || this.empty(),\n template: template\n });\n break;\n\n case 'LastPageLink':\n element = /*#__PURE__*/React.createElement(LastPageLink, {\n key: key,\n onClick: this.changePageToLast,\n disabled: this.isLastPage() || this.empty(),\n template: template\n });\n break;\n\n case 'PageLinks':\n element = /*#__PURE__*/React.createElement(PageLinks, {\n key: key,\n value: this.updatePageLinks(),\n page: this.getPage(),\n rows: this.props.rows,\n pageCount: this.getPageCount(),\n onClick: this.onPageLinkClick,\n template: template\n });\n break;\n\n case 'RowsPerPageDropdown':\n element = /*#__PURE__*/React.createElement(RowsPerPageDropdown, {\n key: key,\n value: this.props.rows,\n page: this.getPage(),\n pageCount: this.getPageCount(),\n totalRecords: this.props.totalRecords,\n options: this.props.rowsPerPageOptions,\n onChange: this.onRowsChange,\n appendTo: this.props.dropdownAppendTo,\n template: template,\n disabled: this.empty()\n });\n break;\n\n case 'CurrentPageReport':\n element = /*#__PURE__*/React.createElement(CurrentPageReport, {\n reportTemplate: this.props.currentPageReportTemplate,\n key: key,\n page: this.getPage(),\n pageCount: this.getPageCount(),\n first: this.props.first,\n rows: this.props.rows,\n totalRecords: this.props.totalRecords,\n template: template\n });\n break;\n\n case 'JumpToPageInput':\n element = /*#__PURE__*/React.createElement(JumpToPageInput, {\n key: key,\n rows: this.props.rows,\n page: this.getPage(),\n pageCount: this.getPageCount(),\n onChange: this.changePage,\n disabled: this.empty(),\n template: template\n });\n break;\n\n default:\n element = null;\n break;\n }\n\n return element;\n }\n }, {\n key: \"renderElements\",\n value: function renderElements() {\n var _this2 = this;\n\n var template = this.props.template;\n\n if (template) {\n if (_typeof(template) === 'object') {\n return template.layout ? template.layout.split(' ').map(function (value) {\n var key = value.trim();\n return _this2.renderElement(key, template[key]);\n }) : Object.entries(template).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n _template = _ref2[1];\n\n return _this2.renderElement(key, _template);\n });\n }\n\n return template.split(' ').map(function (value) {\n return _this2.renderElement(value.trim());\n });\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!this.props.alwaysShow && this.getPageCount() === 1) {\n return null;\n } else {\n var className = classNames('p-paginator p-component', this.props.className);\n var leftContent = ObjectUtils.getJSXElement(this.props.leftContent, this.props);\n var rightContent = ObjectUtils.getJSXElement(this.props.rightContent, this.props);\n var elements = this.renderElements();\n var leftElement = leftContent && /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-paginator-left-content\"\n }, leftContent);\n var rightElement = rightContent && /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-paginator-right-content\"\n }, rightContent);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: this.props.style\n }, leftElement, elements, rightElement);\n }\n }\n }]);\n\n return Paginator;\n}(Component);\n\n_defineProperty(Paginator, \"defaultProps\", {\n totalRecords: 0,\n rows: 0,\n first: 0,\n pageLinkSize: 5,\n rowsPerPageOptions: null,\n alwaysShow: true,\n style: null,\n className: null,\n template: 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown',\n onPageChange: null,\n leftContent: null,\n rightContent: null,\n dropdownAppendTo: null,\n currentPageReportTemplate: '({currentPage} of {totalPages})'\n});\n\nexport { Paginator };\n","import React, { Component } from 'react';\nimport { Paginator } from 'primereact/paginator';\nimport { classNames, ObjectUtils, DomHandler, ZIndexUtils, ConnectedOverlayScrollHandler, UniqueComponentId } from 'primereact/utils';\nimport PrimeReact, { localeOption, FilterOperator, FilterMatchMode as FilterMatchMode$1, FilterService } from 'primereact/api';\nimport { OverlayService } from 'primereact/overlayservice';\nimport { Ripple } from 'primereact/ripple';\nimport { CSSTransition } from 'primereact/csstransition';\nimport { Portal } from 'primereact/portal';\nimport { InputText } from 'primereact/inputtext';\nimport { Dropdown } from 'primereact/dropdown';\nimport { Button } from 'primereact/button';\nimport { VirtualScroller } from 'primereact/virtualscroller';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _createSuper$c(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$c(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$c() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar RowRadioButton = /*#__PURE__*/function (_Component) {\n _inherits(RowRadioButton, _Component);\n\n var _super = _createSuper$c(RowRadioButton);\n\n function RowRadioButton(props) {\n var _this;\n\n _classCallCheck(this, RowRadioButton);\n\n _this = _super.call(this, props);\n _this.state = {\n focused: false\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onChange = _this.onChange.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(RowRadioButton, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (!this.props.disabled) {\n this.props.onChange({\n originalEvent: event,\n data: this.props.value\n });\n this.input.focus();\n }\n }\n }, {\n key: \"onFocus\",\n value: function onFocus() {\n this.setState({\n focused: true\n });\n }\n }, {\n key: \"onBlur\",\n value: function onBlur() {\n this.setState({\n focused: false\n });\n }\n }, {\n key: \"onChange\",\n value: function onChange(event) {\n this.onClick(event);\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.code === 'Space') {\n this.onClick(event);\n event.preventDefault();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var className = classNames('p-radiobutton-box p-component', {\n 'p-highlight': this.props.checked,\n 'p-focus': this.state.focused,\n 'p-disabled': this.props.disabled\n });\n var name = \"\".concat(this.props.tableSelector, \"_dt_radio\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-radiobutton p-component\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hidden-accessible\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n ref: function ref(el) {\n return _this2.input = el;\n },\n type: \"radio\",\n checked: this.props.checked,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onChange: this.onChange,\n onKeyDown: this.onKeyDown\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n onClick: this.onClick,\n role: \"radio\",\n \"aria-checked\": this.props.checked\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-radiobutton-icon\"\n })));\n }\n }]);\n\n return RowRadioButton;\n}(Component);\n\nfunction _createSuper$b(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$b(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$b() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar RowCheckbox = /*#__PURE__*/function (_Component) {\n _inherits(RowCheckbox, _Component);\n\n var _super = _createSuper$b(RowCheckbox);\n\n function RowCheckbox(props) {\n var _this;\n\n _classCallCheck(this, RowCheckbox);\n\n _this = _super.call(this, props);\n _this.state = {\n focused: false\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(RowCheckbox, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (!this.props.disabled) {\n this.setState({\n focused: true\n });\n this.props.onChange({\n originalEvent: event,\n data: this.props.value\n });\n }\n }\n }, {\n key: \"onFocus\",\n value: function onFocus() {\n this.setState({\n focused: true\n });\n }\n }, {\n key: \"onBlur\",\n value: function onBlur() {\n this.setState({\n focused: false\n });\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.code === 'Space') {\n this.onClick(event);\n event.preventDefault();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-checkbox-box p-component', {\n 'p-highlight': this.props.checked,\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused\n });\n var iconClassName = classNames('p-checkbox-icon', {\n 'pi pi-check': this.props.checked\n });\n var tabIndex = this.props.disabled ? null : '0';\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-checkbox p-component\",\n onClick: this.onClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n role: \"checkbox\",\n \"aria-checked\": this.props.checked,\n tabIndex: tabIndex,\n onKeyDown: this.onKeyDown,\n onFocus: this.onFocus,\n onBlur: this.onBlur\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n })));\n }\n }]);\n\n return RowCheckbox;\n}(Component);\n\nfunction ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$7(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$a(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$a(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$a() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar BodyCell = /*#__PURE__*/function (_Component) {\n _inherits(BodyCell, _Component);\n\n var _super = _createSuper$a(BodyCell);\n\n function BodyCell(props) {\n var _this;\n\n _classCallCheck(this, BodyCell);\n\n _this = _super.call(this, props);\n _this.state = {\n editing: props.editing,\n editingRowData: props.rowData,\n styleObject: {}\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n _this.onMouseUp = _this.onMouseUp.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onEditorFocus = _this.onEditorFocus.bind(_assertThisInitialized(_this));\n _this.onRowToggle = _this.onRowToggle.bind(_assertThisInitialized(_this));\n _this.onRowEditSave = _this.onRowEditSave.bind(_assertThisInitialized(_this));\n _this.onRowEditCancel = _this.onRowEditCancel.bind(_assertThisInitialized(_this));\n _this.onRowEditInit = _this.onRowEditInit.bind(_assertThisInitialized(_this));\n _this.editorCallback = _this.editorCallback.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(BodyCell, [{\n key: \"field\",\n get: function get() {\n return this.getColumnProp('field') || \"field_\".concat(this.props.index);\n }\n }, {\n key: \"isEditable\",\n value: function isEditable() {\n return this.getColumnProp('editor');\n }\n }, {\n key: \"isSelected\",\n value: function isSelected() {\n return this.props.selection ? this.props.selection instanceof Array ? this.findIndex(this.props.selection) > -1 : this.equals(this.props.selection) : false;\n }\n }, {\n key: \"equalsData\",\n value: function equalsData(data) {\n return this.props.compareSelectionBy === 'equals' ? data === this.props.rowData : ObjectUtils.equals(data, this.props.rowData, this.props.dataKey);\n }\n }, {\n key: \"equals\",\n value: function equals(selectedCell) {\n return (selectedCell.rowIndex === this.props.rowIndex || this.equalsData(selectedCell.rowData)) && (selectedCell.field === this.field || selectedCell.cellIndex === this.props.index);\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(target) {\n return this.el && !(this.el.isSameNode(target) || this.el.contains(target));\n }\n }, {\n key: \"getColumnProp\",\n value: function getColumnProp(prop) {\n return this.props.column ? this.props.column.props[prop] : null;\n }\n }, {\n key: \"getVirtualScrollerOption\",\n value: function getVirtualScrollerOption(option) {\n return this.props.virtualScrollerOptions ? this.props.virtualScrollerOptions[option] : null;\n }\n }, {\n key: \"getStyle\",\n value: function getStyle() {\n var bodyStyle = this.getColumnProp('bodyStyle');\n var columnStyle = this.getColumnProp('style');\n return this.getColumnProp('frozen') ? Object.assign({}, columnStyle, bodyStyle, this.state.styleObject) : Object.assign({}, columnStyle, bodyStyle);\n }\n }, {\n key: \"getCellCallbackParams\",\n value: function getCellCallbackParams(event) {\n return {\n originalEvent: event,\n value: this.resolveFieldData(),\n field: this.field,\n rowData: this.props.rowData,\n rowIndex: this.props.rowIndex,\n cellIndex: this.props.index,\n selected: this.isSelected(),\n column: this.props.column,\n props: this.props\n };\n }\n }, {\n key: \"resolveFieldData\",\n value: function resolveFieldData(data) {\n return ObjectUtils.resolveFieldData(data || this.props.rowData, this.field);\n }\n }, {\n key: \"getEditingRowData\",\n value: function getEditingRowData() {\n return this.props.editingMeta && this.props.editingMeta[this.props.rowIndex] ? this.props.editingMeta[this.props.rowIndex].data : this.props.rowData;\n }\n }, {\n key: \"getTabIndex\",\n value: function getTabIndex(cellSelected) {\n return this.props.allowCellSelection ? cellSelected ? 0 : this.props.rowIndex === 0 && this.props.index === 0 ? this.props.tabIndex : -1 : null;\n }\n }, {\n key: \"findIndex\",\n value: function findIndex(collection) {\n var _this2 = this;\n\n return (collection || []).findIndex(function (data) {\n return _this2.equals(data);\n });\n }\n }, {\n key: \"closeCell\",\n value: function closeCell(event) {\n var _this3 = this;\n\n var params = this.getCellCallbackParams(event);\n var onBeforeCellEditHide = this.getColumnProp('onBeforeCellEditHide');\n\n if (onBeforeCellEditHide) {\n onBeforeCellEditHide(params);\n }\n /* When using the 'tab' key, the focus event of the next cell is not called in IE. */\n\n\n setTimeout(function () {\n _this3.setState({\n editing: false\n }, function () {\n _this3.unbindDocumentEditListener();\n\n OverlayService.off('overlay-click', _this3.overlayEventListener);\n _this3.overlayEventListener = null;\n });\n }, 1);\n }\n }, {\n key: \"switchCellToViewMode\",\n value: function switchCellToViewMode(event, submit) {\n var callbackParams = this.getCellCallbackParams(event);\n var newRowData = this.state.editingRowData;\n var newValue = this.resolveFieldData(newRowData);\n\n var params = _objectSpread$7(_objectSpread$7({}, callbackParams), {}, {\n newRowData: newRowData,\n newValue: newValue\n });\n\n var onCellEditCancel = this.getColumnProp('onCellEditCancel');\n var cellEditValidator = this.getColumnProp('cellEditValidator');\n var onCellEditComplete = this.getColumnProp('onCellEditComplete');\n\n if (!submit && onCellEditCancel) {\n onCellEditCancel(params);\n }\n\n var valid = true;\n\n if (cellEditValidator) {\n valid = cellEditValidator(params);\n }\n\n if (valid) {\n if (submit && onCellEditComplete) {\n onCellEditComplete(params);\n }\n\n this.closeCell(event);\n } else {\n event.preventDefault();\n }\n }\n }, {\n key: \"findNextSelectableCell\",\n value: function findNextSelectableCell(cell) {\n var nextCell = cell.nextElementSibling;\n return nextCell ? DomHandler.hasClass(nextCell, 'p-selectable-cell') ? nextCell : this.findNextSelectableRow(nextCell) : null;\n }\n }, {\n key: \"findPrevSelectableCell\",\n value: function findPrevSelectableCell(cell) {\n var prevCell = cell.previousElementSibling;\n return prevCell ? DomHandler.hasClass(prevCell, 'p-selectable-cell') ? prevCell : this.findPrevSelectableRow(prevCell) : null;\n }\n }, {\n key: \"findNextSelectableRow\",\n value: function findNextSelectableRow(row) {\n var nextRow = row.nextElementSibling;\n return nextRow ? DomHandler.hasClass(nextRow, 'p-selectable-row') ? nextRow : this.findNextSelectableRow(nextRow) : null;\n }\n }, {\n key: \"findPrevSelectableRow\",\n value: function findPrevSelectableRow(row) {\n var prevRow = row.previousElementSibling;\n\n if (prevRow) {\n return DomHandler.hasClass(prevRow, 'p-selectable-row') ? prevRow : this.findPrevSelectableRow(prevRow);\n }\n\n return null;\n }\n }, {\n key: \"changeTabIndex\",\n value: function changeTabIndex(currentCell, nextCell) {\n if (currentCell && nextCell) {\n currentCell.tabIndex = -1;\n nextCell.tabIndex = this.props.tabIndex;\n }\n }\n }, {\n key: \"focusOnElement\",\n value: function focusOnElement() {\n var _this4 = this;\n\n clearTimeout(this.tabindexTimeout);\n this.tabindexTimeout = setTimeout(function () {\n if (_this4.state.editing) {\n var focusableEl = DomHandler.getFirstFocusableElement(_this4.el, ':not(.p-cell-editor-key-helper)');\n focusableEl && focusableEl.focus();\n }\n\n _this4.keyHelper && (_this4.keyHelper.tabIndex = _this4.state.editing ? -1 : 0);\n }, 1);\n }\n }, {\n key: \"updateStickyPosition\",\n value: function updateStickyPosition() {\n if (this.getColumnProp('frozen')) {\n var styleObject = _objectSpread$7({}, this.state.styleObject);\n\n var align = this.getColumnProp('alignFrozen');\n\n if (align === 'right') {\n var right = 0;\n var next = this.el.nextElementSibling;\n\n if (next) {\n right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n styleObject['right'] = right + 'px';\n } else {\n var left = 0;\n var prev = this.el.previousElementSibling;\n\n if (prev) {\n left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n styleObject['left'] = left + 'px';\n }\n\n var isSameStyle = this.state.styleObject['left'] === styleObject['left'] && this.state.styleObject['right'] === styleObject['right'];\n !isSameStyle && this.setState({\n styleObject: styleObject\n });\n }\n }\n }, {\n key: \"editorCallback\",\n value: function editorCallback(val) {\n var editingRowData = _objectSpread$7({}, this.state.editingRowData);\n\n editingRowData[this.field] = val;\n this.setState({\n editingRowData: editingRowData\n }); // update editing meta for complete methods on row mode\n\n this.props.editingMeta[this.props.rowIndex].data[this.field] = val;\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n var _this5 = this;\n\n var params = this.getCellCallbackParams(event);\n\n if (this.props.editMode !== 'row' && this.isEditable() && !this.state.editing && (this.props.selectOnEdit || !this.props.selectOnEdit && this.props.selected)) {\n this.selfClick = true;\n var onBeforeCellEditShow = this.getColumnProp('onBeforeCellEditShow');\n var onCellEditInit = this.getColumnProp('onCellEditInit');\n var cellEditValidatorEvent = this.getColumnProp('cellEditValidatorEvent');\n\n if (onBeforeCellEditShow) {\n onBeforeCellEditShow(params);\n } // If the data is sorted using sort icon, it has been added to wait for the sort operation when any cell is wanted to be opened.\n\n\n setTimeout(function () {\n _this5.setState({\n editing: true\n }, function () {\n if (onCellEditInit) {\n onCellEditInit(params);\n }\n\n if (cellEditValidatorEvent === 'click') {\n _this5.bindDocumentEditListener();\n\n _this5.overlayEventListener = function (e) {\n if (!_this5.isOutsideClicked(e.target)) {\n _this5.selfClick = true;\n }\n };\n\n OverlayService.on('overlay-click', _this5.overlayEventListener);\n }\n });\n }, 1);\n }\n\n if (this.props.allowCellSelection && this.props.onClick) {\n this.props.onClick(params);\n }\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n var params = this.getCellCallbackParams(event);\n\n if (this.props.onMouseDown) {\n this.props.onMouseDown(params);\n }\n }\n }, {\n key: \"onMouseUp\",\n value: function onMouseUp(event) {\n var params = this.getCellCallbackParams(event);\n\n if (this.props.onMouseUp) {\n this.props.onMouseUp(params);\n }\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (this.props.editMode !== 'row') {\n if (event.which === 13 || event.which === 9) {\n // tab || enter\n this.switchCellToViewMode(event, true);\n }\n\n if (event.which === 27) {\n // escape\n this.switchCellToViewMode(event, false);\n }\n }\n\n if (this.props.allowCellSelection) {\n var target = event.target,\n cell = event.currentTarget;\n\n switch (event.which) {\n //left arrow\n case 37:\n var prevCell = this.findPrevSelectableCell(cell);\n\n if (prevCell) {\n this.changeTabIndex(cell, prevCell);\n prevCell.focus();\n }\n\n event.preventDefault();\n break;\n //right arrow\n\n case 39:\n var nextCell = this.findNextSelectableCell(cell);\n\n if (nextCell) {\n this.changeTabIndex(cell, nextCell);\n nextCell.focus();\n }\n\n event.preventDefault();\n break;\n //up arrow\n\n case 38:\n var prevRow = this.findPrevSelectableRow(cell.parentElement);\n\n if (prevRow) {\n var upCell = prevRow.children[this.props.index];\n this.changeTabIndex(cell, upCell);\n upCell.focus();\n }\n\n event.preventDefault();\n break;\n //down arrow\n\n case 40:\n var nextRow = this.findNextSelectableRow(cell.parentElement);\n\n if (nextRow) {\n var downCell = nextRow.children[this.props.index];\n this.changeTabIndex(cell, downCell);\n downCell.focus();\n }\n\n event.preventDefault();\n break;\n //enter\n\n case 13:\n // @deprecated\n if (!DomHandler.isClickable(target)) {\n this.onClick(event);\n event.preventDefault();\n }\n\n break;\n //space\n\n case 32:\n if (!DomHandler.isClickable(target) && !target.readOnly) {\n this.onClick(event);\n event.preventDefault();\n }\n\n break;\n }\n }\n }\n }, {\n key: \"onBlur\",\n value: function onBlur(event) {\n this.selfClick = false;\n\n if (this.props.editMode !== 'row' && this.state.editing && this.getColumnProp('cellEditValidatorEvent') === 'blur') {\n this.switchCellToViewMode(event, true);\n }\n }\n }, {\n key: \"onEditorFocus\",\n value: function onEditorFocus(event) {\n this.onClick(event);\n }\n }, {\n key: \"onRowToggle\",\n value: function onRowToggle(event) {\n this.props.onRowToggle({\n originalEvent: event,\n data: this.props.rowData\n });\n event.preventDefault();\n }\n }, {\n key: \"onRowEditInit\",\n value: function onRowEditInit(event) {\n this.props.onRowEditInit({\n originalEvent: event,\n data: this.props.rowData,\n newData: this.getEditingRowData(),\n field: this.field,\n index: this.props.rowIndex\n });\n }\n }, {\n key: \"onRowEditSave\",\n value: function onRowEditSave(event) {\n this.props.onRowEditSave({\n originalEvent: event,\n data: this.props.rowData,\n newData: this.getEditingRowData(),\n field: this.field,\n index: this.props.rowIndex\n });\n }\n }, {\n key: \"onRowEditCancel\",\n value: function onRowEditCancel(event) {\n this.props.onRowEditCancel({\n originalEvent: event,\n data: this.props.rowData,\n newData: this.getEditingRowData(),\n field: this.field,\n index: this.props.rowIndex\n });\n }\n }, {\n key: \"bindDocumentEditListener\",\n value: function bindDocumentEditListener() {\n var _this6 = this;\n\n if (!this.documentEditListener) {\n this.documentEditListener = function (e) {\n if (!_this6.selfClick && _this6.isOutsideClicked(e.target)) {\n _this6.switchCellToViewMode(e, true);\n }\n\n _this6.selfClick = false;\n };\n\n document.addEventListener('click', this.documentEditListener, true);\n }\n }\n }, {\n key: \"unbindDocumentEditListener\",\n value: function unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('click', this.documentEditListener, true);\n this.documentEditListener = null;\n this.selfClick = false;\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.getColumnProp('frozen')) {\n this.updateStickyPosition();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.getColumnProp('frozen')) {\n this.updateStickyPosition();\n }\n\n if (this.props.editMode === 'cell' || this.props.editMode === 'row') {\n this.focusOnElement();\n\n if (prevProps.editingMeta !== this.props.editingMeta) {\n this.setState({\n editingRowData: this.getEditingRowData()\n });\n }\n\n if (prevState.editing !== this.state.editing) {\n var callbackParams = this.getCellCallbackParams();\n\n var params = _objectSpread$7(_objectSpread$7({}, callbackParams), {}, {\n editing: this.state.editing\n });\n\n this.props.onEditingMetaChange(params);\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDocumentEditListener();\n\n if (this.overlayEventListener) {\n OverlayService.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n }\n }, {\n key: \"renderLoading\",\n value: function renderLoading() {\n var options = this.getVirtualScrollerOption('getLoaderOptions')(this.props.rowIndex, {\n cellIndex: this.props.index,\n cellFirst: this.props.index === 0,\n cellLast: this.props.index === this.getVirtualScrollerOption('columns').length - 1,\n cellEven: this.props.index % 2 === 0,\n cellOdd: this.props.index % 2 !== 0,\n column: this.props.column,\n field: this.field\n });\n var content = ObjectUtils.getJSXElement(this.getVirtualScrollerOption('loadingTemplate'), options);\n return /*#__PURE__*/React.createElement(\"td\", null, content);\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var _this7 = this;\n\n var content, editorKeyHelper;\n var cellSelected = this.props.allowCellSelection && this.isSelected();\n var isRowEditor = this.props.editMode === 'row';\n var tabIndex = this.getTabIndex(cellSelected);\n var selectionMode = this.getColumnProp('selectionMode');\n var rowReorder = this.getColumnProp('rowReorder');\n var expander = this.getColumnProp('expander');\n var rowEditor = this.getColumnProp('rowEditor');\n var header = this.getColumnProp('header');\n var body = this.getColumnProp('body');\n var editor = this.getColumnProp('editor');\n var frozen = this.getColumnProp('frozen');\n var value = this.resolveFieldData();\n var cellClassName = ObjectUtils.getPropValue(this.props.cellClassName, value, {\n props: this.props.tableProps,\n rowData: this.props.rowData\n });\n var className = classNames(this.getColumnProp('bodyClassName'), this.getColumnProp('class'), cellClassName, {\n 'p-selection-column': selectionMode !== null,\n 'p-editable-column': editor,\n 'p-cell-editing': editor && this.state.editing,\n 'p-frozen-column': frozen,\n 'p-selectable-cell': this.props.allowCellSelection,\n 'p-highlight': cellSelected\n });\n var style = this.getStyle();\n var title = this.props.responsiveLayout === 'stack' && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-column-title\"\n }, ObjectUtils.getJSXElement(header, {\n props: this.props.tableProps\n }));\n\n if (body && !this.state.editing) {\n content = body ? ObjectUtils.getJSXElement(body, this.props.rowData, {\n column: this.props.column,\n field: this.field,\n rowIndex: this.props.rowIndex,\n frozenRow: this.props.frozenRow,\n props: this.props.tableProps\n }) : value;\n } else if (editor && this.state.editing) {\n content = ObjectUtils.getJSXElement(editor, {\n rowData: this.state.editingRowData,\n value: this.resolveFieldData(this.state.editingRowData),\n column: this.props.column,\n field: this.field,\n rowIndex: this.props.rowIndex,\n frozenRow: this.props.frozenRow,\n props: this.props.tableProps,\n editorCallback: this.editorCallback\n });\n } else if (selectionMode) {\n var showSelection = this.props.showSelectionElement ? this.props.showSelectionElement(this.props.rowData, {\n rowIndex: this.props.rowIndex,\n props: this.props.tableProps\n }) : true;\n content = showSelection && /*#__PURE__*/React.createElement(React.Fragment, null, selectionMode === 'single' && /*#__PURE__*/React.createElement(RowRadioButton, {\n value: this.props.rowData,\n checked: this.props.selected,\n onChange: this.props.onRadioChange,\n tabIndex: this.props.tabIndex,\n tableSelector: this.props.tableSelector\n }), selectionMode === 'multiple' && /*#__PURE__*/React.createElement(RowCheckbox, {\n value: this.props.rowData,\n checked: this.props.selected,\n onChange: this.props.onCheckboxChange,\n tabIndex: this.props.tabIndex\n }));\n } else if (rowReorder) {\n var showReorder = this.props.showRowReorderElement ? this.props.showRowReorderElement(this.props.rowData, {\n rowIndex: this.props.rowIndex,\n props: this.props.tableProps\n }) : true;\n content = showReorder && /*#__PURE__*/React.createElement(\"i\", {\n className: classNames('p-datatable-reorderablerow-handle', this.getColumnProp('rowReorderIcon'))\n });\n } else if (expander) {\n var iconClassName = classNames('p-row-toggler-icon', this.props.expanded ? this.props.expandedRowIcon : this.props.collapsedRowIcon);\n var ariaControls = \"\".concat(this.props.tableSelector, \"_content_\").concat(this.props.rowIndex, \"_expanded\");\n var expanderProps = {\n onClick: this.onRowToggle,\n className: 'p-row-toggler p-link',\n iconClassName: iconClassName\n };\n content = /*#__PURE__*/React.createElement(\"button\", {\n className: expanderProps.className,\n onClick: expanderProps.onClick,\n type: \"button\",\n \"aria-expanded\": this.props.expanded,\n \"aria-controls\": ariaControls,\n tabIndex: this.props.tabIndex\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: expanderProps.iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n\n if (body) {\n expanderProps['element'] = content;\n content = ObjectUtils.getJSXElement(body, this.props.rowData, {\n column: this.props.column,\n field: this.field,\n rowIndex: this.props.rowIndex,\n frozenRow: this.props.frozenRow,\n props: this.props.tableProps,\n expander: expanderProps\n });\n }\n } else if (isRowEditor && rowEditor) {\n var rowEditorProps = {};\n\n if (this.state.editing) {\n rowEditorProps = {\n editing: true,\n onSaveClick: this.onRowEditSave,\n saveClassName: 'p-row-editor-save p-link',\n saveIconClassName: 'p-row-editor-save-icon pi pi-fw pi-check',\n onCancelClick: this.onRowEditCancel,\n cancelClassName: 'p-row-editor-cancel p-link',\n cancelIconClassName: 'p-row-editor-cancel-icon pi pi-fw pi-times'\n };\n content = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: rowEditorProps.onSaveClick,\n className: rowEditorProps.saveClassName,\n tabIndex: this.props.tabIndex\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: rowEditorProps.saveIconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null)), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: rowEditorProps.onCancelClick,\n className: rowEditorProps.cancelClassName,\n tabIndex: this.props.tabIndex\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: rowEditorProps.cancelIconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null)));\n } else {\n rowEditorProps = {\n editing: false,\n onInitClick: this.onRowEditInit,\n initClassName: 'p-row-editor-init p-link',\n initIconClassName: 'p-row-editor-init-icon pi pi-fw pi-pencil'\n };\n content = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: rowEditorProps.onInitClick,\n className: rowEditorProps.initClassName,\n tabIndex: this.props.tabIndex\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: rowEditorProps.initIconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n\n if (body) {\n rowEditorProps['element'] = content;\n content = ObjectUtils.getJSXElement(body, this.props.rowData, {\n column: this.props.column,\n field: this.field,\n rowIndex: this.props.rowIndex,\n frozenRow: this.props.frozenRow,\n props: this.props.tableProps,\n rowEditor: rowEditorProps\n });\n }\n } else {\n content = value;\n }\n\n if (!isRowEditor && editor) {\n /* eslint-disable */\n editorKeyHelper = /*#__PURE__*/React.createElement(\"a\", {\n tabIndex: \"0\",\n ref: function ref(el) {\n return _this7.keyHelper = el;\n },\n className: \"p-cell-editor-key-helper p-hidden-accessible\",\n onFocus: this.onEditorFocus\n }, /*#__PURE__*/React.createElement(\"span\", null));\n /* eslint-enable */\n }\n\n return /*#__PURE__*/React.createElement(\"td\", {\n ref: function ref(el) {\n return _this7.el = el;\n },\n style: style,\n className: className,\n rowSpan: this.props.rowSpan,\n tabIndex: tabIndex,\n role: \"cell\",\n onClick: this.onClick,\n onKeyDown: this.onKeyDown,\n onBlur: this.onBlur,\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp\n }, editorKeyHelper, title, content);\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.getVirtualScrollerOption('loading') ? this.renderLoading() : this.renderElement();\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.editMode === 'row' && nextProps.editing !== prevState.editing) {\n return {\n editing: nextProps.editing\n };\n }\n\n return null;\n }\n }]);\n\n return BodyCell;\n}(Component);\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$9(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$9(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$9() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar BodyRow = /*#__PURE__*/function (_Component) {\n _inherits(BodyRow, _Component);\n\n var _super = _createSuper$9(BodyRow);\n\n function BodyRow(props) {\n var _this;\n\n _classCallCheck(this, BodyRow);\n\n _this = _super.call(this, props);\n\n if (!_this.props.onRowEditChange) {\n _this.state = {\n editing: false\n };\n }\n\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onDoubleClick = _this.onDoubleClick.bind(_assertThisInitialized(_this));\n _this.onRightClick = _this.onRightClick.bind(_assertThisInitialized(_this));\n _this.onTouchEnd = _this.onTouchEnd.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n _this.onMouseUp = _this.onMouseUp.bind(_assertThisInitialized(_this));\n _this.onDragStart = _this.onDragStart.bind(_assertThisInitialized(_this));\n _this.onDragEnd = _this.onDragEnd.bind(_assertThisInitialized(_this));\n _this.onDragOver = _this.onDragOver.bind(_assertThisInitialized(_this));\n _this.onDragLeave = _this.onDragLeave.bind(_assertThisInitialized(_this));\n _this.onDrop = _this.onDrop.bind(_assertThisInitialized(_this));\n _this.onEditInit = _this.onEditInit.bind(_assertThisInitialized(_this));\n _this.onEditSave = _this.onEditSave.bind(_assertThisInitialized(_this));\n _this.onEditCancel = _this.onEditCancel.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(BodyRow, [{\n key: \"isFocusable\",\n value: function isFocusable() {\n return this.props.selectionMode && this.props.selectionModeInColumn !== 'single' && this.props.selectionModeInColumn !== 'multiple';\n }\n }, {\n key: \"isGrouped\",\n value: function isGrouped(column) {\n if (this.props.groupRowsBy && this.getColumnProp(column, 'field')) {\n if (Array.isArray(this.props.groupRowsBy)) return this.props.groupRowsBy.indexOf(column.props.field) > -1;else return this.props.groupRowsBy === column.props.field;\n }\n\n return false;\n }\n }, {\n key: \"equals\",\n value: function equals(data1, data2) {\n return this.props.compareSelectionBy === 'equals' ? data1 === data2 : ObjectUtils.equals(data1, data2, this.props.dataKey);\n }\n }, {\n key: \"getColumnProp\",\n value: function getColumnProp(col, prop) {\n return col ? col.props[prop] : null;\n }\n }, {\n key: \"getEditing\",\n value: function getEditing() {\n return this.props.onRowEditChange ? this.props.editing : this.state.editing;\n }\n }, {\n key: \"getTabIndex\",\n value: function getTabIndex() {\n return this.isFocusable() && !this.props.allowCellSelection ? this.props.index === 0 ? this.props.tabIndex : -1 : null;\n }\n }, {\n key: \"findIndex\",\n value: function findIndex(collection, rowData) {\n var _this2 = this;\n\n return (collection || []).findIndex(function (data) {\n return _this2.equals(rowData, data);\n });\n }\n }, {\n key: \"changeTabIndex\",\n value: function changeTabIndex(currentRow, nextRow) {\n if (currentRow && nextRow) {\n currentRow.tabIndex = -1;\n nextRow.tabIndex = this.props.tabIndex;\n }\n }\n }, {\n key: \"findNextSelectableRow\",\n value: function findNextSelectableRow(row) {\n var nextRow = row.nextElementSibling;\n return nextRow ? DomHandler.hasClass(nextRow, 'p-selectable-row') ? nextRow : this.findNextSelectableRow(nextRow) : null;\n }\n }, {\n key: \"findPrevSelectableRow\",\n value: function findPrevSelectableRow(row) {\n var prevRow = row.previousElementSibling;\n return prevRow ? DomHandler.hasClass(prevRow, 'p-selectable-row') ? prevRow : this.findPrevSelectableRow(prevRow) : null;\n }\n }, {\n key: \"shouldRenderBodyCell\",\n value: function shouldRenderBodyCell(value, column, i) {\n if (this.getColumnProp(column, 'hidden')) {\n return false;\n } else if (this.props.rowGroupMode && this.props.rowGroupMode === 'rowspan' && this.isGrouped(column)) {\n var prevRowData = value[i - 1];\n\n if (prevRowData) {\n var currentRowFieldData = ObjectUtils.resolveFieldData(value[i], this.getColumnProp(column, 'field'));\n var previousRowFieldData = ObjectUtils.resolveFieldData(prevRowData, this.getColumnProp(column, 'field'));\n return currentRowFieldData !== previousRowFieldData;\n }\n }\n\n return true;\n }\n }, {\n key: \"calculateRowGroupSize\",\n value: function calculateRowGroupSize(value, column, index) {\n if (this.isGrouped(column)) {\n var currentRowFieldData = ObjectUtils.resolveFieldData(value[index], this.getColumnProp(column, 'field'));\n var nextRowFieldData = currentRowFieldData;\n var groupRowSpan = 0;\n\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n var nextRowData = value[++index];\n\n if (nextRowData) {\n nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.getColumnProp(column, 'field'));\n } else {\n break;\n }\n }\n\n return groupRowSpan === 1 ? null : groupRowSpan;\n } else {\n return null;\n }\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n this.props.onRowClick({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.index\n });\n }\n }, {\n key: \"onDoubleClick\",\n value: function onDoubleClick(event) {\n this.props.onRowDoubleClick({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.index\n });\n }\n }, {\n key: \"onRightClick\",\n value: function onRightClick(event) {\n this.props.onRowRightClick({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.index\n });\n }\n }, {\n key: \"onTouchEnd\",\n value: function onTouchEnd(event) {\n this.props.onRowTouchEnd(event);\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (this.isFocusable() && !this.props.allowCellSelection) {\n var target = event.target,\n row = event.currentTarget;\n\n switch (event.which) {\n //down arrow\n case 40:\n var nextRow = this.findNextSelectableRow(row);\n\n if (nextRow) {\n this.changeTabIndex(row, nextRow);\n nextRow.focus();\n }\n\n event.preventDefault();\n break;\n //up arrow\n\n case 38:\n var prevRow = this.findPrevSelectableRow(row);\n\n if (prevRow) {\n this.changeTabIndex(row, prevRow);\n prevRow.focus();\n }\n\n event.preventDefault();\n break;\n //enter\n\n case 13:\n // @deprecated\n if (!DomHandler.isClickable(target)) {\n this.onClick(event);\n event.preventDefault();\n }\n\n break;\n //space\n\n case 32:\n if (!DomHandler.isClickable(target) && !target.readOnly) {\n this.onClick(event);\n event.preventDefault();\n }\n\n break;\n }\n }\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n this.props.onRowMouseDown({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.index\n });\n }\n }, {\n key: \"onMouseUp\",\n value: function onMouseUp(event) {\n this.props.onRowMouseUp({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.index\n });\n }\n }, {\n key: \"onDragStart\",\n value: function onDragStart(event) {\n this.props.onRowDragStart({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.index\n });\n }\n }, {\n key: \"onDragOver\",\n value: function onDragOver(event) {\n this.props.onRowDragOver({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.index\n });\n }\n }, {\n key: \"onDragLeave\",\n value: function onDragLeave(event) {\n this.props.onRowDragLeave({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.index\n });\n }\n }, {\n key: \"onDragEnd\",\n value: function onDragEnd(event) {\n this.props.onRowDragEnd({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.index\n });\n }\n }, {\n key: \"onDrop\",\n value: function onDrop(event) {\n this.props.onRowDrop({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.index\n });\n }\n }, {\n key: \"onEditChange\",\n value: function onEditChange(e, editing) {\n if (this.props.onRowEditChange) {\n var editingRows;\n var dataKey = this.props.dataKey;\n var originalEvent = e.originalEvent,\n data = e.data,\n index = e.index;\n\n if (dataKey) {\n var dataKeyValue = String(ObjectUtils.resolveFieldData(data, dataKey));\n editingRows = this.props.editingRows ? _objectSpread$6({}, this.props.editingRows) : {};\n if (editingRows[dataKeyValue] != null) delete editingRows[dataKeyValue];else editingRows[dataKeyValue] = true;\n } else {\n var editingRowIndex = this.findIndex(this.props.editingRows, data);\n editingRows = this.props.editingRows ? _toConsumableArray(this.props.editingRows) : [];\n if (editingRowIndex !== -1) editingRows = editingRows.filter(function (val, i) {\n return i !== editingRowIndex;\n });else editingRows.push(data);\n }\n\n this.props.onRowEditChange({\n originalEvent: originalEvent,\n data: editingRows,\n index: index\n });\n } else {\n this.setState({\n editing: editing\n });\n }\n }\n }, {\n key: \"onEditInit\",\n value: function onEditInit(e) {\n var event = e.originalEvent;\n\n if (this.props.onRowEditInit) {\n this.props.onRowEditInit({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.index\n });\n }\n\n this.onEditChange(e, true);\n event.preventDefault();\n }\n }, {\n key: \"onEditSave\",\n value: function onEditSave(e) {\n var event = e.originalEvent;\n var valid = this.props.rowEditValidator ? this.props.rowEditValidator(this.props.rowData, {\n props: this.props.tableProps\n }) : true;\n\n if (this.props.onRowEditSave) {\n this.props.onRowEditSave({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.index,\n valid: valid\n });\n }\n\n if (valid) {\n if (this.props.onRowEditComplete) {\n this.props.onRowEditComplete(e);\n }\n\n this.onEditChange(e, false);\n }\n\n event.preventDefault();\n }\n }, {\n key: \"onEditCancel\",\n value: function onEditCancel(e) {\n var event = e.originalEvent;\n\n if (this.props.onRowEditCancel) {\n this.props.onRowEditCancel({\n originalEvent: event,\n data: this.props.rowData,\n index: this.props.index\n });\n }\n\n this.onEditChange(e, false);\n event.preventDefault();\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this3 = this;\n\n return this.props.columns.map(function (col, i) {\n if (_this3.shouldRenderBodyCell(_this3.props.value, col, _this3.props.index)) {\n var key = \"\".concat(_this3.getColumnProp(col, 'columnKey') || _this3.getColumnProp(col, 'field'), \"_\").concat(i);\n var rowSpan = _this3.props.rowGroupMode === 'rowspan' ? _this3.calculateRowGroupSize(_this3.props.value, col, _this3.props.index) : null;\n\n var editing = _this3.getEditing();\n\n return /*#__PURE__*/React.createElement(BodyCell, {\n key: key,\n value: _this3.props.value,\n tableProps: _this3.props.tableProps,\n tableSelector: _this3.props.tableSelector,\n column: col,\n rowData: _this3.props.rowData,\n rowIndex: _this3.props.index,\n index: i,\n rowSpan: rowSpan,\n dataKey: _this3.props.dataKey,\n editing: editing,\n editingMeta: _this3.props.editingMeta,\n editMode: _this3.props.editMode,\n onRowEditInit: _this3.onEditInit,\n onRowEditSave: _this3.onEditSave,\n onRowEditCancel: _this3.onEditCancel,\n onEditingMetaChange: _this3.props.onEditingMetaChange,\n onRowToggle: _this3.props.onRowToggle,\n selection: _this3.props.selection,\n allowCellSelection: _this3.props.allowCellSelection,\n compareSelectionBy: _this3.props.compareSelectionBy,\n selectOnEdit: _this3.props.selectOnEdit,\n selected: _this3.props.selected,\n onClick: _this3.props.onCellClick,\n onMouseDown: _this3.props.onCellMouseDown,\n onMouseUp: _this3.props.onCellMouseUp,\n tabIndex: _this3.props.tabIndex,\n cellClassName: _this3.props.cellClassName,\n responsiveLayout: _this3.props.responsiveLayout,\n frozenRow: _this3.props.frozenRow,\n showSelectionElement: _this3.props.showSelectionElement,\n showRowReorderElement: _this3.props.showRowReorderElement,\n onRadioChange: _this3.props.onRadioChange,\n onCheckboxChange: _this3.props.onCheckboxChange,\n expanded: _this3.props.expanded,\n expandedRowIcon: _this3.props.expandedRowIcon,\n collapsedRowIcon: _this3.props.collapsedRowIcon,\n virtualScrollerOptions: _this3.props.virtualScrollerOptions\n });\n }\n\n return null;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var rowClassName = ObjectUtils.getPropValue(this.props.rowClassName, this.props.rowData, {\n props: this.props.tableProps\n });\n var className = classNames(rowClassName, {\n 'p-highlight': !this.props.allowCellSelection && this.props.selected,\n 'p-highlight-contextmenu': this.props.contextMenuSelected,\n 'p-selectable-row': this.props.allowRowSelection,\n 'p-row-odd': this.props.index % 2 !== 0\n });\n var content = this.renderContent();\n var tabIndex = this.getTabIndex();\n return /*#__PURE__*/React.createElement(\"tr\", {\n ref: function ref(el) {\n return _this4.el = el;\n },\n role: \"row\",\n tabIndex: tabIndex,\n className: className,\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n onClick: this.onClick,\n onDoubleClick: this.onDoubleClick,\n onContextMenu: this.onRightClick,\n onTouchEnd: this.onTouchEnd,\n onKeyDown: this.onKeyDown,\n onDragStart: this.onDragStart,\n onDragOver: this.onDragOver,\n onDragLeave: this.onDragLeave,\n onDragEnd: this.onDragEnd,\n onDrop: this.onDrop\n }, content);\n }\n }]);\n\n return BodyRow;\n}(Component);\n\nfunction _createSuper$8(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$8(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$8() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar RowTogglerButton = /*#__PURE__*/function (_Component) {\n _inherits(RowTogglerButton, _Component);\n\n var _super = _createSuper$8(RowTogglerButton);\n\n function RowTogglerButton(props) {\n var _this;\n\n _classCallCheck(this, RowTogglerButton);\n\n _this = _super.call(this, props);\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(RowTogglerButton, [{\n key: \"onClick\",\n value: function onClick(event) {\n this.props.onClick({\n originalEvent: event,\n data: this.props.rowData\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var iconClassName = classNames('p-row-toggler-icon', this.props.expanded ? this.props.expandedRowIcon : this.props.collapsedRowIcon);\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.onClick,\n className: \"p-row-toggler p-link\",\n tabIndex: this.props.tabIndex\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }), /*#__PURE__*/React.createElement(Ripple, null));\n }\n }]);\n\n return RowTogglerButton;\n}(Component);\n\nvar _excluded = [\"originalEvent\"];\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$7(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$7(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$7() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TableBody = /*#__PURE__*/function (_Component) {\n _inherits(TableBody, _Component);\n\n var _super = _createSuper$7(TableBody);\n\n function TableBody(props) {\n var _this;\n\n _classCallCheck(this, TableBody);\n\n _this = _super.call(this, props);\n _this.state = {\n rowGroupHeaderStyleObject: {}\n }; // row\n\n _this.onRowClick = _this.onRowClick.bind(_assertThisInitialized(_this));\n _this.onRowDoubleClick = _this.onRowDoubleClick.bind(_assertThisInitialized(_this));\n _this.onRowRightClick = _this.onRowRightClick.bind(_assertThisInitialized(_this));\n _this.onRowTouchEnd = _this.onRowTouchEnd.bind(_assertThisInitialized(_this));\n _this.onRowMouseDown = _this.onRowMouseDown.bind(_assertThisInitialized(_this));\n _this.onRowMouseUp = _this.onRowMouseUp.bind(_assertThisInitialized(_this));\n _this.onRowToggle = _this.onRowToggle.bind(_assertThisInitialized(_this)); // drag\n\n _this.onRowDragStart = _this.onRowDragStart.bind(_assertThisInitialized(_this));\n _this.onRowDragOver = _this.onRowDragOver.bind(_assertThisInitialized(_this));\n _this.onRowDragLeave = _this.onRowDragLeave.bind(_assertThisInitialized(_this));\n _this.onRowDragEnd = _this.onRowDragEnd.bind(_assertThisInitialized(_this));\n _this.onRowDrop = _this.onRowDrop.bind(_assertThisInitialized(_this)); // selection\n\n _this.onRadioChange = _this.onRadioChange.bind(_assertThisInitialized(_this));\n _this.onCheckboxChange = _this.onCheckboxChange.bind(_assertThisInitialized(_this));\n _this.onDragSelectionMouseMove = _this.onDragSelectionMouseMove.bind(_assertThisInitialized(_this));\n _this.onDragSelectionMouseUp = _this.onDragSelectionMouseUp.bind(_assertThisInitialized(_this)); // cell\n\n _this.onCellClick = _this.onCellClick.bind(_assertThisInitialized(_this));\n _this.onCellMouseDown = _this.onCellMouseDown.bind(_assertThisInitialized(_this));\n _this.onCellMouseUp = _this.onCellMouseUp.bind(_assertThisInitialized(_this));\n _this.ref = _this.ref.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(TableBody, [{\n key: \"ref\",\n value: function ref(el) {\n this.el = el;\n this.props.virtualScrollerContentRef && this.props.virtualScrollerContentRef(el);\n }\n }, {\n key: \"equals\",\n value: function equals(data1, data2) {\n if (this.allowCellSelection()) return (data1.rowIndex === data2.rowIndex || data1.rowData === data2.rowData) && (data1.field === data2.field || data1.cellIndex === data2.cellIndex);else return this.compareSelectionBy === 'equals' ? data1 === data2 : ObjectUtils.equals(data1, data2, this.props.dataKey);\n }\n }, {\n key: \"isSubheaderGrouping\",\n value: function isSubheaderGrouping() {\n return this.props.rowGroupMode && this.props.rowGroupMode === 'subheader';\n }\n }, {\n key: \"isSelectionEnabled\",\n value: function isSelectionEnabled() {\n return this.props.selectionMode || this.props.selectionModeInColumn !== null || this.props.columns && this.props.columns.some(function (col) {\n return col && !!col.props.selectionMode;\n });\n }\n }, {\n key: \"isRadioSelectionMode\",\n value: function isRadioSelectionMode() {\n return this.props.selectionMode === 'radiobutton';\n }\n }, {\n key: \"isCheckboxSelectionMode\",\n value: function isCheckboxSelectionMode() {\n return this.props.selectionMode === 'checkbox';\n }\n }, {\n key: \"isRadioSelectionModeInColumn\",\n value: function isRadioSelectionModeInColumn() {\n return this.props.selectionModeInColumn === 'single';\n }\n }, {\n key: \"isCheckboxSelectionModeInColumn\",\n value: function isCheckboxSelectionModeInColumn() {\n return this.props.selectionModeInColumn === 'multiple';\n }\n }, {\n key: \"isSingleSelection\",\n value: function isSingleSelection() {\n return this.props.selectionMode === 'single' && !this.isCheckboxSelectionModeInColumn() || !this.isRadioSelectionMode() && this.isRadioSelectionModeInColumn();\n }\n }, {\n key: \"isMultipleSelection\",\n value: function isMultipleSelection() {\n return this.props.selectionMode === 'multiple' && !this.isRadioSelectionModeInColumn() || this.isCheckboxSelectionModeInColumn();\n }\n }, {\n key: \"isRadioOnlySelection\",\n value: function isRadioOnlySelection() {\n return this.isRadioSelectionMode() && this.isRadioSelectionModeInColumn();\n }\n }, {\n key: \"isCheckboxOnlySelection\",\n value: function isCheckboxOnlySelection() {\n return this.isCheckboxSelectionMode() && this.isCheckboxSelectionModeInColumn();\n }\n }, {\n key: \"isSelected\",\n value: function isSelected(rowData) {\n if (rowData && this.props.selection) {\n return this.props.selection instanceof Array ? this.findIndex(this.props.selection, rowData) > -1 : this.equals(rowData, this.props.selection);\n }\n\n return false;\n }\n }, {\n key: \"isContextMenuSelected\",\n value: function isContextMenuSelected(rowData) {\n if (rowData && this.props.contextMenuSelection) {\n return this.equals(rowData, this.props.contextMenuSelection);\n }\n\n return false;\n }\n }, {\n key: \"isRowExpanded\",\n value: function isRowExpanded(rowData) {\n if (rowData && this.props.expandedRows) {\n if (this.isSubheaderGrouping() && this.props.expandableRowGroups) {\n return this.isRowGroupExpanded(rowData);\n } else {\n if (this.props.dataKey) return this.props.expandedRows ? this.props.expandedRows[ObjectUtils.resolveFieldData(rowData, this.props.dataKey)] !== undefined : false;else return this.findIndex(this.props.expandedRows, rowData) !== -1;\n }\n }\n\n return false;\n }\n }, {\n key: \"isRowGroupExpanded\",\n value: function isRowGroupExpanded(rowData) {\n var _this2 = this;\n\n if (this.props.dataKey === this.props.groupRowsBy) return Object.keys(this.props.expandedRows).some(function (data) {\n return ObjectUtils.equals(data, ObjectUtils.resolveFieldData(rowData, _this2.props.dataKey));\n });else return this.props.expandedRows.some(function (data) {\n return ObjectUtils.equals(data, rowData, _this2.props.groupRowsBy);\n });\n }\n }, {\n key: \"isRowEditing\",\n value: function isRowEditing(rowData) {\n if (this.props.editMode === 'row' && rowData && this.props.editingRows) {\n if (this.props.dataKey) return this.props.editingRows ? this.props.editingRows[ObjectUtils.resolveFieldData(rowData, this.props.dataKey)] !== undefined : false;else return this.findIndex(this.props.editingRows, rowData) !== -1;\n }\n\n return false;\n }\n }, {\n key: \"allowDrag\",\n value: function allowDrag(event) {\n return this.props.dragSelection && this.isMultipleSelection() && !event.originalEvent.shiftKey;\n }\n }, {\n key: \"allowRowDrag\",\n value: function allowRowDrag(event) {\n return !this.allowCellSelection() && this.allowDrag(event);\n }\n }, {\n key: \"allowCellDrag\",\n value: function allowCellDrag(event) {\n return this.allowCellSelection() && this.allowDrag(event);\n }\n }, {\n key: \"allowSelection\",\n value: function allowSelection(event) {\n return !DomHandler.isClickable(event.originalEvent.target);\n }\n }, {\n key: \"allowMetaKeySelection\",\n value: function allowMetaKeySelection(event) {\n return !this.rowTouched && (!this.props.metaKeySelection || this.props.metaKeySelection && (event.originalEvent.metaKey || event.originalEvent.ctrlKey));\n }\n }, {\n key: \"allowRangeSelection\",\n value: function allowRangeSelection(event) {\n return this.isMultipleSelection() && event.originalEvent.shiftKey && this.anchorRowIndex !== null;\n }\n }, {\n key: \"allowRowSelection\",\n value: function allowRowSelection() {\n return (this.props.selectionMode || this.props.selectionModeInColumn) && !this.isRadioOnlySelection() && !this.isCheckboxOnlySelection();\n }\n }, {\n key: \"allowCellSelection\",\n value: function allowCellSelection() {\n return this.props.cellSelection && !this.isRadioSelectionModeInColumn() && !this.isCheckboxSelectionModeInColumn();\n }\n }, {\n key: \"getColumnsLength\",\n value: function getColumnsLength() {\n return this.props.columns ? this.props.columns.length : 0;\n }\n }, {\n key: \"getVirtualScrollerOption\",\n value: function getVirtualScrollerOption(option, options) {\n options = options || this.props.virtualScrollerOptions;\n return options ? options[option] : null;\n }\n }, {\n key: \"findIndex\",\n value: function findIndex(collection, rowData) {\n var _this3 = this;\n\n return (collection || []).findIndex(function (data) {\n return _this3.equals(rowData, data);\n });\n }\n }, {\n key: \"rowGroupHeaderStyle\",\n value: function rowGroupHeaderStyle() {\n if (this.props.scrollable) {\n return {\n top: this.state.rowGroupHeaderStyleObject['top']\n };\n }\n\n return null;\n }\n }, {\n key: \"getRowKey\",\n value: function getRowKey(rowData, index) {\n return this.props.dataKey ? ObjectUtils.resolveFieldData(rowData, this.props.dataKey) + '_' + index : index;\n }\n }, {\n key: \"shouldRenderRowGroupHeader\",\n value: function shouldRenderRowGroupHeader(value, rowData, i) {\n var currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.props.groupRowsBy);\n var prevRowData = value[i - 1];\n\n if (prevRowData) {\n var previousRowFieldData = ObjectUtils.resolveFieldData(prevRowData, this.props.groupRowsBy);\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n }\n }, {\n key: \"shouldRenderRowGroupFooter\",\n value: function shouldRenderRowGroupFooter(value, rowData, i, expanded) {\n if (this.props.expandableRowGroups && !expanded) {\n return false;\n } else {\n var currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.props.groupRowsBy);\n var nextRowData = value[i + 1];\n\n if (nextRowData) {\n var nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.props.groupRowsBy);\n return currentRowFieldData !== nextRowFieldData;\n } else {\n return true;\n }\n }\n }\n }, {\n key: \"updateFrozenRowStickyPosition\",\n value: function updateFrozenRowStickyPosition() {\n this.el.style.top = DomHandler.getOuterHeight(this.el.previousElementSibling) + 'px';\n }\n }, {\n key: \"updateFrozenRowGroupHeaderStickyPosition\",\n value: function updateFrozenRowGroupHeaderStickyPosition() {\n var tableHeaderHeight = DomHandler.getOuterHeight(this.el.previousElementSibling);\n var top = tableHeaderHeight + 'px';\n\n if (this.state.rowGroupHeaderStyleObject && this.state.rowGroupHeaderStyleObject.top !== top) {\n this.setState({\n rowGroupHeaderStyleObject: {\n top: top\n }\n });\n }\n }\n }, {\n key: \"updateVirtualScrollerPosition\",\n value: function updateVirtualScrollerPosition() {\n var tableHeaderHeight = DomHandler.getOuterHeight(this.el.previousElementSibling);\n this.el.style.top = (this.el.style.top || 0) + tableHeaderHeight + 'px';\n }\n }, {\n key: \"onSingleSelection\",\n value: function onSingleSelection(_ref) {\n var originalEvent = _ref.originalEvent,\n data = _ref.data,\n toggleable = _ref.toggleable,\n type = _ref.type;\n var selected = this.isSelected(data);\n var selection = this.props.selection;\n\n if (selected) {\n if (toggleable) {\n selection = null;\n this.onUnselect({\n originalEvent: originalEvent,\n data: data,\n type: type\n });\n }\n } else {\n selection = data;\n this.onSelect({\n originalEvent: originalEvent,\n data: data,\n type: type\n });\n }\n\n this.focusOnElement(originalEvent, true);\n\n if (this.props.onSelectionChange && selection !== this.props.selection) {\n this.props.onSelectionChange({\n originalEvent: originalEvent,\n value: selection\n });\n }\n }\n }, {\n key: \"onMultipleSelection\",\n value: function onMultipleSelection(_ref2) {\n var _this4 = this;\n\n var originalEvent = _ref2.originalEvent,\n data = _ref2.data,\n toggleable = _ref2.toggleable,\n type = _ref2.type;\n var selected = this.isSelected(data);\n var selection = this.props.selection || [];\n\n if (selected) {\n if (toggleable) {\n var selectionIndex = this.findIndex(selection, data);\n selection = this.props.selection.filter(function (val, i) {\n return i !== selectionIndex;\n });\n this.onUnselect({\n originalEvent: originalEvent,\n data: data,\n type: type\n });\n } else if (selection.length) {\n this.props.selection.forEach(function (d) {\n return _this4.onUnselect({\n originalEvent: originalEvent,\n data: d,\n type: type\n });\n });\n selection = [data];\n this.onSelect({\n originalEvent: originalEvent,\n data: data,\n type: type\n });\n }\n } else {\n selection = toggleable && this.isMultipleSelection() ? [].concat(_toConsumableArray(selection), [data]) : [data];\n this.onSelect({\n originalEvent: originalEvent,\n data: data,\n type: type\n });\n }\n\n this.focusOnElement(originalEvent, true);\n\n if (this.props.onSelectionChange && selection !== this.props.selection) {\n this.props.onSelectionChange({\n originalEvent: originalEvent,\n value: selection\n });\n }\n }\n }, {\n key: \"onRangeSelection\",\n value: function onRangeSelection(event) {\n DomHandler.clearSelection();\n this.rangeRowIndex = this.allowCellSelection() ? event.rowIndex : event.index;\n var selectionInRange = this.selectRange(event);\n var selection = this.isMultipleSelection() ? _toConsumableArray(new Set([].concat(_toConsumableArray(this.props.selection || []), _toConsumableArray(selectionInRange)))) : selectionInRange;\n\n if (this.props.onSelectionChange && selection !== this.props.selection) {\n this.props.onSelectionChange({\n originalEvent: event.originalEvent,\n value: selection\n });\n }\n\n this.anchorRowIndex = this.rangeRowIndex;\n this.anchorCellIndex = event.cellIndex;\n this.focusOnElement(event.originalEvent, false);\n }\n }, {\n key: \"selectRange\",\n value: function selectRange(event) {\n var rangeStart, rangeEnd;\n var isLazyAndPaginator = this.props.lazy && this.props.paginator;\n\n if (isLazyAndPaginator) {\n this.anchorRowIndex += this.anchorRowFirst;\n this.rangeRowIndex += this.props.first;\n }\n\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = rangeEnd = this.rangeRowIndex;\n }\n\n if (isLazyAndPaginator) {\n rangeStart = Math.max(rangeStart - this.props.first, 0);\n rangeEnd -= this.props.first;\n }\n\n return this.allowCellSelection() ? this.selectRangeOnCell(event, rangeStart, rangeEnd) : this.selectRangeOnRow(event, rangeStart, rangeEnd);\n }\n }, {\n key: \"selectRangeOnRow\",\n value: function selectRangeOnRow(event, rowRangeStart, rowRangeEnd) {\n var value = this.props.value;\n var selection = [];\n\n for (var i = rowRangeStart; i <= rowRangeEnd; i++) {\n var rangeRowData = value[i];\n selection.push(rangeRowData);\n this.onSelect({\n originalEvent: event.originalEvent,\n data: rangeRowData,\n type: 'row'\n });\n }\n\n return selection;\n }\n }, {\n key: \"selectRangeOnCell\",\n value: function selectRangeOnCell(event, rowRangeStart, rowRangeEnd) {\n var cellRangeStart,\n cellRangeEnd,\n cellIndex = event.cellIndex;\n\n if (cellIndex > this.anchorCellIndex) {\n cellRangeStart = this.anchorCellIndex;\n cellRangeEnd = cellIndex;\n } else if (cellIndex < this.anchorCellIndex) {\n cellRangeStart = cellIndex;\n cellRangeEnd = this.anchorCellIndex;\n } else {\n cellRangeStart = cellRangeEnd = cellIndex;\n }\n\n var value = this.props.value;\n var selection = [];\n\n for (var i = rowRangeStart; i <= rowRangeEnd; i++) {\n var rowData = value[i];\n var columns = this.props.columns;\n\n for (var j = cellRangeStart; j <= cellRangeEnd; j++) {\n var field = columns[j].props.field;\n var rangeRowData = {\n value: ObjectUtils.resolveFieldData(rowData, field),\n field: field,\n rowData: rowData,\n rowIndex: i,\n cellIndex: j,\n selected: true\n };\n selection.push(rangeRowData);\n this.onSelect({\n originalEvent: event.originalEvent,\n data: rangeRowData,\n type: 'cell'\n });\n }\n }\n\n return selection;\n }\n }, {\n key: \"onSelect\",\n value: function onSelect(event) {\n if (this.allowCellSelection()) this.props.onCellSelect && this.props.onCellSelect(_objectSpread$5(_objectSpread$5({\n originalEvent: event.originalEvent\n }, event.data), {}, {\n type: event.type\n }));else this.props.onRowSelect && this.props.onRowSelect(event);\n }\n }, {\n key: \"onUnselect\",\n value: function onUnselect(event) {\n if (this.allowCellSelection()) this.props.onCellUnselect && this.props.onCellUnselect(_objectSpread$5(_objectSpread$5({\n originalEvent: event.originalEvent\n }, event.data), {}, {\n type: event.type\n }));else this.props.onRowUnselect && this.props.onRowUnselect(event);\n }\n }, {\n key: \"enableDragSelection\",\n value: function enableDragSelection(event) {\n if (this.props.dragSelection && !this.dragSelectionHelper) {\n this.dragSelectionHelper = document.createElement('div');\n DomHandler.addClass(this.dragSelectionHelper, 'p-datatable-drag-selection-helper');\n this.initialDragPosition = {\n x: event.clientX,\n y: event.clientY\n };\n this.dragSelectionHelper.style.top = \"\".concat(event.pageY, \"px\");\n this.dragSelectionHelper.style.left = \"\".concat(event.pageX, \"px\");\n this.bindDragSelectionEvents();\n }\n }\n }, {\n key: \"focusOnElement\",\n value: function focusOnElement(event, isFocused) {\n var target = event.currentTarget;\n\n if (!this.allowCellSelection()) {\n if (this.isCheckboxSelectionModeInColumn()) {\n var checkbox = DomHandler.findSingle(target, 'td.p-selection-column .p-checkbox-box');\n checkbox && checkbox.focus();\n } else if (this.isRadioSelectionModeInColumn()) {\n var radio = DomHandler.findSingle(target, 'td.p-selection-column input[type=\"radio\"]');\n radio && radio.focus();\n }\n }\n\n !isFocused && target && target.focus();\n }\n }, {\n key: \"onRowClick\",\n value: function onRowClick(event) {\n if (this.allowCellSelection() || !this.allowSelection(event)) {\n return;\n }\n\n this.props.onRowClick && this.props.onRowClick(event);\n\n if (this.allowRowSelection()) {\n if (this.allowRangeSelection(event)) {\n this.onRangeSelection(event);\n } else {\n var toggleable = this.isRadioSelectionModeInColumn() || this.isCheckboxSelectionModeInColumn() || this.allowMetaKeySelection(event);\n this.anchorRowIndex = event.index;\n this.rangeRowIndex = event.index;\n this.anchorRowFirst = this.props.first;\n\n if (this.isSingleSelection()) {\n this.onSingleSelection(_objectSpread$5(_objectSpread$5({}, event), {}, {\n toggleable: toggleable,\n type: 'row'\n }));\n } else {\n this.onMultipleSelection(_objectSpread$5(_objectSpread$5({}, event), {}, {\n toggleable: toggleable,\n type: 'row'\n }));\n }\n }\n } else {\n this.focusOnElement(event.originalEvent);\n }\n\n this.rowTouched = false;\n }\n }, {\n key: \"onRowDoubleClick\",\n value: function onRowDoubleClick(e) {\n var event = e.originalEvent;\n\n if (DomHandler.isClickable(event.target)) {\n return;\n }\n\n if (this.props.onRowDoubleClick) {\n this.props.onRowDoubleClick(e);\n }\n }\n }, {\n key: \"onRowRightClick\",\n value: function onRowRightClick(event) {\n if (this.props.onContextMenu || this.props.onContextMenuSelectionChange) {\n DomHandler.clearSelection();\n\n if (this.props.onContextMenuSelectionChange) {\n this.props.onContextMenuSelectionChange({\n originalEvent: event.originalEvent,\n value: event.data\n });\n }\n\n if (this.props.onContextMenu) {\n this.props.onContextMenu({\n originalEvent: event.originalEvent,\n data: event.data\n });\n }\n\n event.originalEvent.preventDefault();\n }\n }\n }, {\n key: \"onRowTouchEnd\",\n value: function onRowTouchEnd() {\n this.rowTouched = true;\n }\n }, {\n key: \"onRowMouseDown\",\n value: function onRowMouseDown(e) {\n DomHandler.clearSelection();\n var event = e.originalEvent;\n if (DomHandler.hasClass(event.target, 'p-datatable-reorderablerow-handle')) event.currentTarget.draggable = true;else event.currentTarget.draggable = false;\n\n if (this.allowRowDrag(e)) {\n this.enableDragSelection(event);\n this.anchorRowIndex = e.index;\n this.rangeRowIndex = e.index;\n this.anchorRowFirst = this.props.first;\n }\n }\n }, {\n key: \"onRowMouseUp\",\n value: function onRowMouseUp(event) {\n var isSameRow = event.index === this.anchorRowIndex;\n\n if (this.allowRowDrag(event) && !isSameRow) {\n this.onRangeSelection(event);\n }\n }\n }, {\n key: \"onRowToggle\",\n value: function onRowToggle(event) {\n var expandedRows;\n var dataKey = this.props.dataKey;\n var hasDataKey = this.props.groupRowsBy ? dataKey === this.props.groupRowsBy : !!dataKey;\n\n if (hasDataKey) {\n var dataKeyValue = String(ObjectUtils.resolveFieldData(event.data, dataKey));\n expandedRows = this.props.expandedRows ? _objectSpread$5({}, this.props.expandedRows) : {};\n\n if (expandedRows[dataKeyValue] != null) {\n delete expandedRows[dataKeyValue];\n\n if (this.props.onRowCollapse) {\n this.props.onRowCollapse({\n originalEvent: event,\n data: event.data\n });\n }\n } else {\n expandedRows[dataKeyValue] = true;\n\n if (this.props.onRowExpand) {\n this.props.onRowExpand({\n originalEvent: event,\n data: event.data\n });\n }\n }\n } else {\n var expandedRowIndex = this.findIndex(this.props.expandedRows, event.data);\n expandedRows = this.props.expandedRows ? _toConsumableArray(this.props.expandedRows) : [];\n\n if (expandedRowIndex !== -1) {\n expandedRows = expandedRows.filter(function (val, i) {\n return i !== expandedRowIndex;\n });\n\n if (this.props.onRowCollapse) {\n this.props.onRowCollapse({\n originalEvent: event,\n data: event.data\n });\n }\n } else {\n expandedRows.push(event.data);\n\n if (this.props.onRowExpand) {\n this.props.onRowExpand({\n originalEvent: event,\n data: event.data\n });\n }\n }\n }\n\n if (this.props.onRowToggle) {\n this.props.onRowToggle({\n data: expandedRows\n });\n }\n }\n }, {\n key: \"onRowDragStart\",\n value: function onRowDragStart(e) {\n var event = e.originalEvent,\n index = e.index;\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n }\n }, {\n key: \"onRowDragOver\",\n value: function onRowDragOver(e) {\n var event = e.originalEvent,\n index = e.index;\n\n if (this.rowDragging && this.draggedRowIndex !== index) {\n var rowElement = event.currentTarget;\n var rowY = DomHandler.getOffset(rowElement).top + DomHandler.getWindowScrollTop();\n var pageY = event.pageY;\n var rowMidY = rowY + DomHandler.getOuterHeight(rowElement) / 2;\n var prevRowElement = rowElement.previousElementSibling;\n\n if (pageY < rowMidY) {\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n this.droppedRowIndex = index;\n if (prevRowElement) DomHandler.addClass(prevRowElement, 'p-datatable-dragpoint-bottom');else DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n } else {\n if (prevRowElement) DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');else DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n this.droppedRowIndex = index + 1;\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"onRowDragLeave\",\n value: function onRowDragLeave(e) {\n var event = e.originalEvent;\n var rowElement = event.currentTarget;\n var prevRowElement = rowElement.previousElementSibling;\n\n if (prevRowElement) {\n DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-top');\n }\n }, {\n key: \"onRowDragEnd\",\n value: function onRowDragEnd(e) {\n var event = e.originalEvent;\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n event.currentTarget.draggable = false;\n }\n }, {\n key: \"onRowDrop\",\n value: function onRowDrop(e) {\n var event = e.originalEvent;\n\n if (this.droppedRowIndex != null) {\n var dropIndex = this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;\n\n var val = _toConsumableArray(this.props.value);\n\n ObjectUtils.reorderArray(val, this.draggedRowIndex, dropIndex);\n\n if (this.props.onRowReorder) {\n this.props.onRowReorder({\n originalEvent: event,\n value: val,\n dragIndex: this.draggedRowIndex,\n dropIndex: this.droppedRowIndex\n });\n }\n } //cleanup\n\n\n this.onRowDragLeave(e);\n this.onRowDragEnd(e);\n event.preventDefault();\n }\n }, {\n key: \"onRadioChange\",\n value: function onRadioChange(event) {\n this.onSingleSelection(_objectSpread$5(_objectSpread$5({}, event), {}, {\n toggleable: true,\n type: 'radio'\n }));\n }\n }, {\n key: \"onCheckboxChange\",\n value: function onCheckboxChange(event) {\n this.onMultipleSelection(_objectSpread$5(_objectSpread$5({}, event), {}, {\n toggleable: true,\n type: 'checkbox'\n }));\n }\n }, {\n key: \"onDragSelectionMouseMove\",\n value: function onDragSelectionMouseMove(event) {\n var _this$initialDragPosi = this.initialDragPosition,\n x = _this$initialDragPosi.x,\n y = _this$initialDragPosi.y;\n var dx = event.clientX - x;\n var dy = event.clientY - y;\n if (dy < 0) this.dragSelectionHelper.style.top = \"\".concat(event.pageY + 5, \"px\");\n if (dx < 0) this.dragSelectionHelper.style.left = \"\".concat(event.pageX + 5, \"px\");\n this.dragSelectionHelper.style.height = \"\".concat(Math.abs(dy), \"px\");\n this.dragSelectionHelper.style.width = \"\".concat(Math.abs(dx), \"px\");\n event.preventDefault();\n }\n }, {\n key: \"onDragSelectionMouseUp\",\n value: function onDragSelectionMouseUp() {\n if (this.dragSelectionHelper) {\n this.dragSelectionHelper.remove();\n this.dragSelectionHelper = null;\n }\n\n document.removeEventListener('mousemove', this.onDragSelectionMouseMove);\n document.removeEventListener('mouseup', this.onDragSelectionMouseUp);\n }\n }, {\n key: \"onCellClick\",\n value: function onCellClick(event) {\n if (!this.allowSelection(event)) {\n return;\n }\n\n this.props.onCellClick && this.props.onCellClick(event);\n\n if (this.allowCellSelection()) {\n if (this.allowRangeSelection(event)) {\n this.onRangeSelection(event);\n } else {\n var toggleable = this.allowMetaKeySelection(event);\n\n var originalEvent = event.originalEvent,\n data = _objectWithoutProperties(event, _excluded);\n\n this.anchorRowIndex = event.rowIndex;\n this.rangeRowIndex = event.rowIndex;\n this.anchorRowFirst = this.props.first;\n this.anchorCellIndex = event.cellIndex;\n\n if (this.isSingleSelection()) {\n this.onSingleSelection({\n originalEvent: originalEvent,\n data: data,\n toggleable: toggleable,\n type: 'cell'\n });\n } else {\n this.onMultipleSelection({\n originalEvent: originalEvent,\n data: data,\n toggleable: toggleable,\n type: 'cell'\n });\n }\n }\n }\n\n this.rowTouched = false;\n }\n }, {\n key: \"onCellMouseDown\",\n value: function onCellMouseDown(event) {\n if (this.allowCellDrag(event)) {\n this.enableDragSelection(event.originalEvent);\n this.anchorRowIndex = event.rowIndex;\n this.rangeRowIndex = event.rowIndex;\n this.anchorRowFirst = this.props.first;\n this.anchorCellIndex = event.cellIndex;\n }\n }\n }, {\n key: \"onCellMouseUp\",\n value: function onCellMouseUp(event) {\n var isSameCell = event.rowIndex === this.anchorRowIndex && event.cellIndex === this.anchorCellIndex;\n\n if (this.allowCellDrag(event) && !isSameCell) {\n this.onRangeSelection(event);\n }\n }\n }, {\n key: \"bindDragSelectionEvents\",\n value: function bindDragSelectionEvents() {\n document.addEventListener('mousemove', this.onDragSelectionMouseMove);\n document.addEventListener('mouseup', this.onDragSelectionMouseUp);\n document.body.appendChild(this.dragSelectionHelper);\n }\n }, {\n key: \"unbindDragSelectionEvents\",\n value: function unbindDragSelectionEvents() {\n this.onDragSelectionMouseUp();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.props.scrollable && this.props.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n\n if (!this.props.isVirtualScrollerDisabled && this.getVirtualScrollerOption('vertical')) {\n this.updateVirtualScrollerPosition();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.props.scrollable && this.props.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n\n if (!this.props.isVirtualScrollerDisabled && this.getVirtualScrollerOption('vertical') && this.getVirtualScrollerOption('itemSize', prevProps.virtualScrollerOptions) !== this.getVirtualScrollerOption('itemSize')) {\n this.updateVirtualScrollerPosition();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.props.dragSelection) {\n this.unbindDragSelectionEvents();\n }\n }\n }, {\n key: \"renderEmptyContent\",\n value: function renderEmptyContent() {\n if (!this.props.loading) {\n var colSpan = this.getColumnsLength();\n var content = ObjectUtils.getJSXElement(this.props.emptyMessage, {\n props: this.props,\n frozen: this.props.frozenRow\n }) || localeOption('emptyMessage');\n return /*#__PURE__*/React.createElement(\"tr\", {\n className: \"p-datatable-emptymessage\",\n role: \"row\"\n }, /*#__PURE__*/React.createElement(\"td\", {\n colSpan: colSpan,\n role: \"cell\"\n }, content));\n }\n\n return null;\n }\n }, {\n key: \"renderGroupHeader\",\n value: function renderGroupHeader(rowData, index, expanded, isSubheaderGrouping, colSpan) {\n if (isSubheaderGrouping && this.shouldRenderRowGroupHeader(this.props.value, rowData, index)) {\n var style = this.rowGroupHeaderStyle();\n var toggler = this.props.expandableRowGroups && /*#__PURE__*/React.createElement(RowTogglerButton, {\n onClick: this.onRowToggle,\n rowData: rowData,\n expanded: expanded,\n expandedRowIcon: this.props.expandedRowIcon,\n collapsedRowIcon: this.props.collapsedRowIcon\n });\n var content = ObjectUtils.getJSXElement(this.props.rowGroupHeaderTemplate, rowData, {\n index: index,\n props: this.props.tableProps\n });\n return /*#__PURE__*/React.createElement(\"tr\", {\n className: \"p-rowgroup-header\",\n style: style,\n role: \"row\"\n }, /*#__PURE__*/React.createElement(\"td\", {\n colSpan: colSpan\n }, toggler, /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-rowgroup-header-name\"\n }, content)));\n }\n\n return null;\n }\n }, {\n key: \"renderRow\",\n value: function renderRow(rowData, index, expanded) {\n if (!this.props.expandableRowGroups || expanded) {\n var selected = this.isSelectionEnabled() ? this.isSelected(rowData) : false;\n var contextMenuSelected = this.isContextMenuSelected(rowData);\n var allowRowSelection = this.allowRowSelection();\n var allowCellSelection = this.allowCellSelection();\n var editing = this.isRowEditing(rowData);\n return /*#__PURE__*/React.createElement(BodyRow, {\n tableProps: this.props.tableProps,\n tableSelector: this.props.tableSelector,\n value: this.props.value,\n columns: this.props.columns,\n rowData: rowData,\n index: index,\n selected: selected,\n contextMenuSelected: contextMenuSelected,\n onRowClick: this.onRowClick,\n onRowDoubleClick: this.onRowDoubleClick,\n onRowRightClick: this.onRowRightClick,\n tabIndex: this.props.tabIndex,\n onRowTouchEnd: this.onRowTouchEnd,\n onRowMouseDown: this.onRowMouseDown,\n onRowMouseUp: this.onRowMouseUp,\n onRowToggle: this.onRowToggle,\n onRowDragStart: this.onRowDragStart,\n onRowDragOver: this.onRowDragOver,\n onRowDragLeave: this.onRowDragLeave,\n onRowDragEnd: this.onRowDragEnd,\n onRowDrop: this.onRowDrop,\n onRadioChange: this.onRadioChange,\n onCheckboxChange: this.onCheckboxChange,\n onCellClick: this.onCellClick,\n onCellMouseDown: this.onCellMouseDown,\n onCellMouseUp: this.onCellMouseUp,\n editing: editing,\n editingRows: this.props.editingRows,\n editingMeta: this.props.editingMeta,\n editMode: this.props.editMode,\n onRowEditChange: this.props.onRowEditChange,\n onEditingMetaChange: this.props.onEditingMetaChange,\n groupRowsBy: this.props.groupRowsBy,\n compareSelectionBy: this.props.compareSelectionBy,\n dataKey: this.props.dataKey,\n rowGroupMode: this.props.rowGroupMode,\n onRowEditInit: this.props.onRowEditInit,\n rowEditValidator: this.props.rowEditValidator,\n onRowEditSave: this.props.onRowEditSave,\n onRowEditComplete: this.props.onRowEditComplete,\n onRowEditCancel: this.props.onRowEditCancel,\n selection: this.props.selection,\n allowRowSelection: allowRowSelection,\n allowCellSelection: allowCellSelection,\n selectOnEdit: this.props.selectOnEdit,\n selectionMode: this.props.selectionMode,\n selectionModeInColumn: this.props.selectionModeInColumn,\n cellClassName: this.props.cellClassName,\n responsiveLayout: this.props.responsiveLayout,\n frozenRow: this.props.frozenRow,\n showSelectionElement: this.props.showSelectionElement,\n showRowReorderElement: this.props.showRowReorderElement,\n expanded: expanded,\n expandedRowIcon: this.props.expandedRowIcon,\n collapsedRowIcon: this.props.collapsedRowIcon,\n rowClassName: this.props.rowClassName,\n virtualScrollerOptions: this.props.virtualScrollerOptions\n });\n }\n }\n }, {\n key: \"renderExpansion\",\n value: function renderExpansion(rowData, index, expanded, isSubheaderGrouping, colSpan) {\n if (expanded && !(isSubheaderGrouping && this.props.expandableRowGroups)) {\n var content = ObjectUtils.getJSXElement(this.props.rowExpansionTemplate, rowData, {\n index: index\n });\n var id = \"\".concat(this.props.tableSelector, \"_content_\").concat(index, \"_expanded\");\n return /*#__PURE__*/React.createElement(\"tr\", {\n id: id,\n className: \"p-datatable-row-expansion\",\n role: \"row\"\n }, /*#__PURE__*/React.createElement(\"td\", {\n role: \"cell\",\n colSpan: colSpan\n }, content));\n }\n\n return null;\n }\n }, {\n key: \"renderGroupFooter\",\n value: function renderGroupFooter(rowData, index, expanded, isSubheaderGrouping, colSpan) {\n if (isSubheaderGrouping && this.shouldRenderRowGroupFooter(this.props.value, rowData, index, expanded)) {\n var content = ObjectUtils.getJSXElement(this.props.rowGroupFooterTemplate, rowData, {\n index: index,\n colSpan: colSpan,\n props: this.props.tableProps\n });\n return /*#__PURE__*/React.createElement(\"tr\", {\n className: \"p-rowgroup-footer\",\n role: \"row\"\n }, content);\n }\n\n return null;\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this5 = this;\n\n return this.props.value.map(function (rowData, i) {\n var index = _this5.getVirtualScrollerOption('getItemOptions') ? _this5.getVirtualScrollerOption('getItemOptions')(i).index : _this5.props.first + i;\n\n var key = _this5.getRowKey(rowData, index);\n\n var expanded = _this5.isRowExpanded(rowData);\n\n var isSubheaderGrouping = _this5.isSubheaderGrouping();\n\n var colSpan = _this5.getColumnsLength();\n\n var groupHeader = _this5.renderGroupHeader(rowData, index, expanded, isSubheaderGrouping, colSpan);\n\n var row = _this5.renderRow(rowData, index, expanded);\n\n var expansion = _this5.renderExpansion(rowData, index, expanded, isSubheaderGrouping, colSpan);\n\n var groupFooter = _this5.renderGroupFooter(rowData, index, expanded, isSubheaderGrouping, colSpan);\n\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: key\n }, groupHeader, row, expansion, groupFooter);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-datatable-tbody', this.props.className);\n var content = this.props.empty ? this.renderEmptyContent() : this.renderContent();\n return /*#__PURE__*/React.createElement(\"tbody\", {\n ref: this.ref,\n className: className\n }, content);\n }\n }]);\n\n return TableBody;\n}(Component);\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$6(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$6(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$6() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar FooterCell = /*#__PURE__*/function (_Component) {\n _inherits(FooterCell, _Component);\n\n var _super = _createSuper$6(FooterCell);\n\n function FooterCell(props) {\n var _this;\n\n _classCallCheck(this, FooterCell);\n\n _this = _super.call(this, props);\n _this.state = {\n styleObject: {}\n };\n return _this;\n }\n\n _createClass(FooterCell, [{\n key: \"getColumnProp\",\n value: function getColumnProp(prop) {\n return this.props.column.props[prop];\n }\n }, {\n key: \"getStyle\",\n value: function getStyle() {\n var footerStyle = this.getColumnProp('footerStyle');\n var columnStyle = this.getColumnProp('style');\n return this.getColumnProp('frozen') ? Object.assign({}, columnStyle, footerStyle, this.state.styleObject) : Object.assign({}, columnStyle, footerStyle);\n }\n }, {\n key: \"updateStickyPosition\",\n value: function updateStickyPosition() {\n if (this.getColumnProp('frozen')) {\n var styleObject = _objectSpread$4({}, this.state.styleObject);\n\n var align = this.getColumnProp('alignFrozen');\n\n if (align === 'right') {\n var right = 0;\n var next = this.el.nextElementSibling;\n\n if (next) {\n right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n styleObject['right'] = right + 'px';\n } else {\n var left = 0;\n var prev = this.el.previousElementSibling;\n\n if (prev) {\n left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n styleObject['left'] = left + 'px';\n }\n\n this.setState({\n styleObject: styleObject\n });\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.getColumnProp('frozen')) {\n this.updateStickyPosition();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.getColumnProp('frozen')) {\n this.updateStickyPosition();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var style = this.getStyle();\n var className = classNames(this.getColumnProp('footerClassName'), this.getColumnProp('className'), {\n 'p-frozen-column': this.getColumnProp('frozen')\n });\n var colSpan = this.getColumnProp('colSpan');\n var rowSpan = this.getColumnProp('rowSpan');\n var content = ObjectUtils.getJSXElement(this.getColumnProp('footer'), {\n props: this.props.tableProps\n });\n return /*#__PURE__*/React.createElement(\"td\", {\n ref: function ref(el) {\n return _this2.el = el;\n },\n style: style,\n className: className,\n role: \"cell\",\n colSpan: colSpan,\n rowSpan: rowSpan\n }, content);\n }\n }]);\n\n return FooterCell;\n}(Component);\n\nfunction _createSuper$5(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$5(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$5() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TableFooter = /*#__PURE__*/function (_Component) {\n _inherits(TableFooter, _Component);\n\n var _super = _createSuper$5(TableFooter);\n\n function TableFooter() {\n _classCallCheck(this, TableFooter);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(TableFooter, [{\n key: \"hasFooter\",\n value: function hasFooter() {\n return this.props.footerColumnGroup ? true : this.props.columns ? this.props.columns.some(function (col) {\n return col && col.props.footer;\n }) : false;\n }\n }, {\n key: \"renderGroupFooterCells\",\n value: function renderGroupFooterCells(row) {\n var columns = React.Children.toArray(row.props.children);\n return this.renderFooterCells(columns);\n }\n }, {\n key: \"renderFooterCells\",\n value: function renderFooterCells(columns) {\n var _this = this;\n\n return React.Children.map(columns, function (col, i) {\n var isVisible = col ? !col.props.hidden : true;\n var key = col ? col.props.columnKey || col.props.field || i : i;\n return isVisible && /*#__PURE__*/React.createElement(FooterCell, {\n key: key,\n tableProps: _this.props.tableProps,\n column: col\n });\n });\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this2 = this;\n\n if (this.props.footerColumnGroup) {\n var rows = React.Children.toArray(this.props.footerColumnGroup.props.children);\n return rows.map(function (row, i) {\n return /*#__PURE__*/React.createElement(\"tr\", {\n key: i,\n role: \"row\"\n }, _this2.renderGroupFooterCells(row));\n });\n }\n\n return /*#__PURE__*/React.createElement(\"tr\", {\n role: \"row\"\n }, this.renderFooterCells(this.props.columns));\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.hasFooter()) {\n var content = this.renderContent();\n return /*#__PURE__*/React.createElement(\"tfoot\", {\n className: \"p-datatable-tfoot\"\n }, content);\n }\n\n return null;\n }\n }]);\n\n return TableFooter;\n}(Component);\n\nfunction _createSuper$4(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$4(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$4() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar HeaderCheckbox = /*#__PURE__*/function (_Component) {\n _inherits(HeaderCheckbox, _Component);\n\n var _super = _createSuper$4(HeaderCheckbox);\n\n function HeaderCheckbox(props) {\n var _this;\n\n _classCallCheck(this, HeaderCheckbox);\n\n _this = _super.call(this, props);\n _this.state = {\n focused: false\n };\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(HeaderCheckbox, [{\n key: \"onFocus\",\n value: function onFocus() {\n this.setState({\n focused: true\n });\n }\n }, {\n key: \"onBlur\",\n value: function onBlur() {\n this.setState({\n focused: false\n });\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n if (!this.props.disabled) {\n this.setState({\n focused: true\n });\n this.props.onChange({\n originalEvent: event,\n checked: this.props.checked\n });\n }\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.code === 'Space') {\n this.onClick(event);\n event.preventDefault();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var boxClassName = classNames('p-checkbox-box p-component', {\n 'p-highlight': this.props.checked,\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused\n });\n var iconClassName = classNames('p-checkbox-icon', {\n 'pi pi-check': this.props.checked\n });\n var tabIndex = this.props.disabled ? null : 0;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-checkbox p-component\",\n onClick: this.onClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: boxClassName,\n role: \"checkbox\",\n \"aria-checked\": this.props.checked,\n tabIndex: tabIndex,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.onKeyDown\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n })));\n }\n }]);\n\n return HeaderCheckbox;\n}(Component);\n\nvar FilterMatchMode = Object.freeze({\n STARTS_WITH: 'startsWith',\n CONTAINS: 'contains',\n NOT_CONTAINS: 'notContains',\n ENDS_WITH: 'endsWith',\n EQUALS: 'equals',\n NOT_EQUALS: 'notEquals',\n IN: 'in',\n LESS_THAN: 'lt',\n LESS_THAN_OR_EQUAL_TO: 'lte',\n GREATER_THAN: 'gt',\n GREATER_THAN_OR_EQUAL_TO: 'gte',\n BETWEEN: 'between',\n DATE_IS: 'dateIs',\n DATE_IS_NOT: 'dateIsNot',\n DATE_BEFORE: 'dateBefore',\n DATE_AFTER: 'dateAfter',\n CUSTOM: 'custom'\n});\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ColumnFilter = /*#__PURE__*/function (_Component) {\n _inherits(ColumnFilter, _Component);\n\n var _super = _createSuper$3(ColumnFilter);\n\n function ColumnFilter(props) {\n var _this;\n\n _classCallCheck(this, ColumnFilter);\n\n _this = _super.call(this, props);\n _this.state = {\n overlayVisible: false\n };\n _this.overlayRef = /*#__PURE__*/React.createRef();\n _this.filterCallback = _this.filterCallback.bind(_assertThisInitialized(_this));\n _this.filterApplyCallback = _this.filterApplyCallback.bind(_assertThisInitialized(_this));\n _this.onOperatorChange = _this.onOperatorChange.bind(_assertThisInitialized(_this));\n _this.addConstraint = _this.addConstraint.bind(_assertThisInitialized(_this));\n _this.clearFilter = _this.clearFilter.bind(_assertThisInitialized(_this));\n _this.applyFilter = _this.applyFilter.bind(_assertThisInitialized(_this));\n _this.onInputChange = _this.onInputChange.bind(_assertThisInitialized(_this));\n _this.toggleMenu = _this.toggleMenu.bind(_assertThisInitialized(_this));\n _this.onOverlayEnter = _this.onOverlayEnter.bind(_assertThisInitialized(_this));\n _this.onOverlayExit = _this.onOverlayExit.bind(_assertThisInitialized(_this));\n _this.onOverlayExited = _this.onOverlayExited.bind(_assertThisInitialized(_this));\n _this.onContentKeyDown = _this.onContentKeyDown.bind(_assertThisInitialized(_this));\n _this.onContentClick = _this.onContentClick.bind(_assertThisInitialized(_this));\n _this.onContentMouseDown = _this.onContentMouseDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(ColumnFilter, [{\n key: \"field\",\n get: function get() {\n return this.getColumnProp('filterField') || this.getColumnProp('field');\n }\n }, {\n key: \"overlay\",\n get: function get() {\n return this.overlayRef ? this.overlayRef.current : null;\n }\n }, {\n key: \"filterModel\",\n get: function get() {\n return this.props.filters[this.field];\n }\n }, {\n key: \"filterStoreModel\",\n get: function get() {\n return this.props.filtersStore[this.field];\n }\n }, {\n key: \"hasFilter\",\n value: function hasFilter() {\n if (this.props.filtersStore) {\n var fieldFilter = this.props.filtersStore[this.field];\n return fieldFilter && (fieldFilter.operator ? !this.isFilterBlank(fieldFilter.constraints[0].value) : !this.isFilterBlank(fieldFilter.value));\n }\n\n return false;\n }\n }, {\n key: \"hasRowFilter\",\n value: function hasRowFilter() {\n return this.filterModel && !this.isFilterBlank(this.filterModel.value);\n }\n }, {\n key: \"isFilterBlank\",\n value: function isFilterBlank(filter) {\n return ObjectUtils.isEmpty(filter);\n }\n }, {\n key: \"isRowMatchModeSelected\",\n value: function isRowMatchModeSelected(matchMode) {\n return this.filterModel.matchMode === matchMode;\n }\n }, {\n key: \"showMenuButton\",\n value: function showMenuButton() {\n return this.getColumnProp('showFilterMenu') && (this.props.display === 'row' ? this.getColumnProp('dataType') !== 'boolean' : true);\n }\n }, {\n key: \"matchModes\",\n value: function matchModes() {\n return this.getColumnProp('filterMatchModeOptions') || PrimeReact.filterMatchModeOptions[this.findDataType()].map(function (key) {\n return {\n label: localeOption(key),\n value: key\n };\n });\n }\n }, {\n key: \"isShowMatchModes\",\n value: function isShowMatchModes() {\n return this.getColumnProp('dataType') !== 'boolean' && this.getColumnProp('showFilterMatchModes') && this.matchModes() && this.getColumnProp('showFilterMenuOptions');\n }\n }, {\n key: \"isShowOperator\",\n value: function isShowOperator() {\n return this.getColumnProp('showFilterOperator') && this.filterModel && this.filterModel.operator && this.getColumnProp('showFilterMenuOptions');\n }\n }, {\n key: \"showRemoveIcon\",\n value: function showRemoveIcon() {\n return this.fieldConstraints().length > 1;\n }\n }, {\n key: \"isShowAddConstraint\",\n value: function isShowAddConstraint() {\n return this.getColumnProp('showAddButton') && this.filterModel && this.filterModel.operator && this.fieldConstraints() && this.fieldConstraints().length < this.getColumnProp('maxConstraints') && this.getColumnProp('showFilterMenuOptions');\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(target) {\n return !this.isTargetClicked(target) && this.overlayRef && this.overlayRef.current && !(this.overlayRef.current.isSameNode(target) || this.overlayRef.current.contains(target));\n }\n }, {\n key: \"isTargetClicked\",\n value: function isTargetClicked(target) {\n return this.icon && (this.icon.isSameNode(target) || this.icon.contains(target));\n }\n }, {\n key: \"getColumnProp\",\n value: function getColumnProp(prop) {\n return this.props.column.props[prop];\n }\n }, {\n key: \"getDefaultConstraint\",\n value: function getDefaultConstraint() {\n if (this.props.filtersStore && this.filterStoreModel) {\n if (this.filterStoreModel.operator) {\n return {\n matchMode: this.filterStoreModel.constraints[0].matchMode,\n operator: this.filterStoreModel.operator\n };\n } else {\n return {\n matchMode: this.filterStoreModel.matchMode\n };\n }\n }\n }\n }, {\n key: \"findDataType\",\n value: function findDataType() {\n var dataType = this.getColumnProp('dataType');\n var matchMode = this.getColumnProp('filterMatchMode');\n\n var hasMatchMode = function hasMatchMode(key) {\n return PrimeReact.filterMatchModeOptions[key].some(function (mode) {\n return mode === matchMode;\n });\n };\n\n if (matchMode === 'custom' && !hasMatchMode(dataType)) {\n PrimeReact.filterMatchModeOptions[dataType].push(FilterMatchMode.CUSTOM);\n return dataType;\n } else if (matchMode) {\n return Object.keys(PrimeReact.filterMatchModeOptions).find(function (key) {\n return hasMatchMode(key);\n }) || dataType;\n }\n\n return dataType;\n }\n }, {\n key: \"clearFilter\",\n value: function clearFilter() {\n var field = this.field;\n var filterClearCallback = this.getColumnProp('onFilterClear');\n var defaultConstraint = this.getDefaultConstraint();\n\n var filters = _objectSpread$3({}, this.props.filters);\n\n if (filters[field].operator) {\n filters[field].constraints.splice(1);\n filters[field].operator = defaultConstraint.operator;\n filters[field].constraints[0] = {\n value: null,\n matchMode: defaultConstraint.matchMode\n };\n } else {\n filters[field].value = null;\n filters[field].matchMode = defaultConstraint.matchMode;\n }\n\n filterClearCallback && filterClearCallback();\n this.props.onFilterChange(filters);\n this.props.onFilterApply();\n this.hide();\n }\n }, {\n key: \"applyFilter\",\n value: function applyFilter() {\n var filterApplyClickCallback = this.getColumnProp('onFilterApplyClick');\n filterApplyClickCallback && filterApplyClickCallback({\n field: this.field,\n constraints: this.filterModel\n });\n this.props.onFilterApply();\n this.hide();\n }\n }, {\n key: \"toggleMenu\",\n value: function toggleMenu() {\n this.setState(function (prevState) {\n return {\n overlayVisible: !prevState.overlayVisible\n };\n });\n }\n }, {\n key: \"onToggleButtonKeyDown\",\n value: function onToggleButtonKeyDown(event) {\n switch (event.key) {\n case 'Escape':\n case 'Tab':\n this.hide();\n break;\n\n case 'ArrowDown':\n if (this.state.overlayVisible) {\n var focusable = DomHandler.getFirstFocusableElement(this.overlay);\n focusable && focusable.focus();\n event.preventDefault();\n } else if (event.altKey) {\n this.setState({\n overlayVisible: true\n });\n event.preventDefault();\n }\n\n break;\n }\n }\n }, {\n key: \"onContentKeyDown\",\n value: function onContentKeyDown(event) {\n if (event.key === 'Escape') {\n this.hide();\n this.icon && this.icon.focus();\n }\n }\n }, {\n key: \"onInputChange\",\n value: function onInputChange(event, index) {\n var filters = _objectSpread$3({}, this.props.filters);\n\n var value = event.target.value;\n\n if (this.props.display === 'menu') {\n filters[this.field].constraints[index].value = value;\n } else {\n filters[this.field].value = value;\n }\n\n this.props.onFilterChange(filters);\n\n if (!this.getColumnProp('showApplyButton') || this.props.display === 'row') {\n this.props.onFilterApply();\n }\n }\n }, {\n key: \"onRowMatchModeChange\",\n value: function onRowMatchModeChange(matchMode) {\n var filterMatchModeChangeCallback = this.getColumnProp('onFilterMatchModeChange');\n\n var filters = _objectSpread$3({}, this.props.filters);\n\n filters[this.field].matchMode = matchMode;\n filterMatchModeChangeCallback && filterMatchModeChangeCallback({\n field: this.field,\n matchMode: matchMode\n });\n this.props.onFilterChange(filters);\n this.props.onFilterApply();\n this.hide();\n }\n }, {\n key: \"onRowMatchModeKeyDown\",\n value: function onRowMatchModeKeyDown(event, matchMode, clear) {\n var item = event.target;\n\n switch (event.key) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = 0;\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = 0;\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'Enter':\n clear ? this.clearFilter() : this.onRowMatchModeChange(matchMode.value);\n event.preventDefault();\n break;\n }\n }\n }, {\n key: \"onOperatorChange\",\n value: function onOperatorChange(e) {\n var filterOperationChangeCallback = this.getColumnProp('onFilterOperatorChange');\n var value = e.value;\n\n var filters = _objectSpread$3({}, this.props.filters);\n\n filters[this.field].operator = value;\n this.props.onFilterChange(filters);\n filterOperationChangeCallback && filterOperationChangeCallback({\n field: this.field,\n operator: value\n });\n\n if (!this.getColumnProp('showApplyButton')) {\n this.props.onFilterApply();\n }\n }\n }, {\n key: \"onMenuMatchModeChange\",\n value: function onMenuMatchModeChange(value, index) {\n var filterMatchModeChangeCallback = this.getColumnProp('onFilterMatchModeChange');\n\n var filters = _objectSpread$3({}, this.props.filters);\n\n filters[this.field].constraints[index].matchMode = value;\n this.props.onFilterChange(filters);\n filterMatchModeChangeCallback && filterMatchModeChangeCallback({\n field: this.field,\n matchMode: value,\n index: index\n });\n\n if (!this.getColumnProp('showApplyButton')) {\n this.props.onFilterApply();\n }\n }\n }, {\n key: \"addConstraint\",\n value: function addConstraint() {\n var filterConstraintAddCallback = this.getColumnProp('onFilterConstraintAdd');\n var defaultConstraint = this.getDefaultConstraint();\n\n var filters = _objectSpread$3({}, this.props.filters);\n\n var newConstraint = {\n value: null,\n matchMode: defaultConstraint.matchMode\n };\n filters[this.field].constraints.push(newConstraint);\n filterConstraintAddCallback && filterConstraintAddCallback({\n field: this.field,\n constraing: newConstraint\n });\n this.props.onFilterChange(filters);\n\n if (!this.getColumnProp('showApplyButton')) {\n this.props.onFilterApply();\n }\n }\n }, {\n key: \"removeConstraint\",\n value: function removeConstraint(index) {\n var filterConstraintRemoveCallback = this.getColumnProp('onFilterConstraintRemove');\n\n var filters = _objectSpread$3({}, this.props.filters);\n\n var removedConstraint = filters[this.field].constraints.splice(index, 1);\n filterConstraintRemoveCallback && filterConstraintRemoveCallback({\n field: this.field,\n constraing: removedConstraint\n });\n this.props.onFilterChange(filters);\n\n if (!this.getColumnProp('showApplyButton')) {\n this.props.onFilterApply();\n }\n }\n }, {\n key: \"findNextItem\",\n value: function findNextItem(item) {\n var nextItem = item.nextElementSibling;\n if (nextItem) return DomHandler.hasClass(nextItem, 'p-column-filter-separator') ? this.findNextItem(nextItem) : nextItem;else return item.parentElement.firstElementChild;\n }\n }, {\n key: \"findPrevItem\",\n value: function findPrevItem(item) {\n var prevItem = item.previousElementSibling;\n if (prevItem) return DomHandler.hasClass(prevItem, 'p-column-filter-separator') ? this.findPrevItem(prevItem) : prevItem;else return item.parentElement.lastElementChild;\n }\n }, {\n key: \"hide\",\n value: function hide() {\n this.setState({\n overlayVisible: false\n });\n }\n }, {\n key: \"onContentClick\",\n value: function onContentClick(event) {\n this.selfClick = true;\n OverlayService.emit('overlay-click', {\n originalEvent: event,\n target: this.overlay\n });\n }\n }, {\n key: \"onContentMouseDown\",\n value: function onContentMouseDown() {\n this.selfClick = true;\n }\n }, {\n key: \"onOverlayEnter\",\n value: function onOverlayEnter() {\n var _this2 = this;\n\n ZIndexUtils.set('overlay', this.overlay, PrimeReact.autoZIndex, PrimeReact.zIndex['overlay']);\n DomHandler.alignOverlay(this.overlay, this.icon, PrimeReact.appendTo, false);\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.overlayEventListener = function (e) {\n if (!_this2.isOutsideClicked(e.target)) {\n _this2.selfClick = true;\n }\n };\n\n OverlayService.on('overlay-click', this.overlayEventListener);\n }\n }, {\n key: \"onOverlayExit\",\n value: function onOverlayExit() {\n this.onOverlayHide();\n }\n }, {\n key: \"onOverlayExited\",\n value: function onOverlayExited() {\n ZIndexUtils.clear(this.overlay);\n }\n }, {\n key: \"onOverlayHide\",\n value: function onOverlayHide() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n OverlayService.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n }, {\n key: \"bindOutsideClickListener\",\n value: function bindOutsideClickListener() {\n var _this3 = this;\n\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n if (!_this3.selfClick && _this3.isOutsideClicked(event.target)) {\n _this3.hide();\n }\n\n _this3.selfClick = false;\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n }\n }, {\n key: \"unbindOutsideClickListener\",\n value: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n this.selfClick = false;\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this4 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.icon, function () {\n if (_this4.state.overlayVisible) {\n _this4.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"bindResizeListener\",\n value: function bindResizeListener() {\n var _this5 = this;\n\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this5.state.overlayVisible) {\n _this5.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n }\n }, {\n key: \"unbindResizeListener\",\n value: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n }, {\n key: \"fieldConstraints\",\n value: function fieldConstraints() {\n return this.filterModel ? this.filterModel.constraints || [this.filterModel] : [];\n }\n }, {\n key: \"operator\",\n value: function operator() {\n return this.filterModel.operator;\n }\n }, {\n key: \"operatorOptions\",\n value: function operatorOptions() {\n return [{\n label: localeOption('matchAll'),\n value: FilterOperator.AND\n }, {\n label: localeOption('matchAny'),\n value: FilterOperator.OR\n }];\n }\n }, {\n key: \"noFilterLabel\",\n value: function noFilterLabel() {\n return localeOption('noFilter');\n }\n }, {\n key: \"removeRuleButtonLabel\",\n value: function removeRuleButtonLabel() {\n return localeOption('removeRule');\n }\n }, {\n key: \"addRuleButtonLabel\",\n value: function addRuleButtonLabel() {\n return localeOption('addRule');\n }\n }, {\n key: \"clearButtonLabel\",\n value: function clearButtonLabel() {\n return localeOption('clear');\n }\n }, {\n key: \"applyButtonLabel\",\n value: function applyButtonLabel() {\n return localeOption('apply');\n }\n }, {\n key: \"filterCallback\",\n value: function filterCallback(value) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var filters = _objectSpread$3({}, this.props.filters);\n\n var meta = filters[this.field];\n this.props.display === 'menu' && meta && meta.operator ? filters[this.field].constraints[index].value = value : filters[this.field].value = value;\n this.props.onFilterChange(filters);\n }\n }, {\n key: \"filterApplyCallback\",\n value: function filterApplyCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n args && this.filterCallback(args[0], args[1]);\n this.props.onFilterApply();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.display === 'menu' && this.state.overlayVisible) {\n DomHandler.alignOverlay(this.overlay, this.icon, PrimeReact.appendTo, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.overlayEventListener) {\n OverlayService.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n\n if (this.overlay) {\n ZIndexUtils.clear(this.overlay);\n this.onOverlayHide();\n }\n }\n }, {\n key: \"renderFilterElement\",\n value: function renderFilterElement(model, index) {\n var _this6 = this;\n\n return this.getColumnProp('filterElement') ? ObjectUtils.getJSXElement(this.getColumnProp('filterElement'), {\n field: this.field,\n index: index,\n filterModel: model,\n value: model.value,\n filterApplyCallback: this.filterApplyCallback,\n filterCallback: this.filterCallback\n }) : /*#__PURE__*/React.createElement(InputText, {\n type: this.getColumnProp('filterType'),\n value: model.value || '',\n onChange: function onChange(e) {\n return _this6.onInputChange(e, index);\n },\n className: \"p-column-filter\",\n placeholder: this.getColumnProp('filterPlaceholder'),\n maxLength: this.getColumnProp('filterMaxLength')\n });\n }\n }, {\n key: \"renderRowFilterElement\",\n value: function renderRowFilterElement() {\n if (this.props.display === 'row') {\n var content = this.renderFilterElement(this.filterModel, 0);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-fluid p-column-filter-element\"\n }, content);\n }\n\n return null;\n }\n }, {\n key: \"renderMenuFilterElement\",\n value: function renderMenuFilterElement(fieldConstraint, index) {\n if (this.props.display === 'menu') {\n return this.renderFilterElement(fieldConstraint, index);\n }\n\n return null;\n }\n }, {\n key: \"renderMenuButton\",\n value: function renderMenuButton() {\n var _this7 = this;\n\n if (this.showMenuButton()) {\n var className = classNames('p-column-filter-menu-button p-link', {\n 'p-column-filter-menu-button-open': this.state.overlayVisible,\n 'p-column-filter-menu-button-active': this.hasFilter()\n });\n return /*#__PURE__*/React.createElement(\"button\", {\n ref: function ref(el) {\n return _this7.icon = el;\n },\n type: \"button\",\n className: className,\n \"aria-haspopup\": true,\n \"aria-expanded\": this.state.overlayVisible,\n onClick: this.toggleMenu,\n onKeyDown: this.onToggleButtonKeyDown\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"pi pi-filter-icon pi-filter\"\n }));\n }\n\n return null;\n }\n }, {\n key: \"renderClearButton\",\n value: function renderClearButton() {\n if (this.getColumnProp('showClearButton') && this.props.display === 'row') {\n var className = classNames('p-column-filter-clear-button p-link', {\n 'p-hidden-space': !this.hasRowFilter()\n });\n return /*#__PURE__*/React.createElement(\"button\", {\n className: className,\n type: \"button\",\n onClick: this.clearFilter\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"pi pi-filter-slash\"\n }));\n }\n\n return null;\n }\n }, {\n key: \"renderRowItems\",\n value: function renderRowItems() {\n var _this8 = this;\n\n if (this.isShowMatchModes()) {\n var matchModes = this.matchModes();\n var noFilterLabel = this.noFilterLabel();\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"p-column-filter-row-items\"\n }, matchModes.map(function (matchMode, i) {\n var value = matchMode.value,\n label = matchMode.label;\n var className = classNames('p-column-filter-row-item', {\n 'p-highlight': _this8.isRowMatchModeSelected(value)\n });\n var tabIndex = i === 0 ? 0 : null;\n return /*#__PURE__*/React.createElement(\"li\", {\n className: className,\n key: label,\n onClick: function onClick() {\n return _this8.onRowMatchModeChange(value);\n },\n onKeyDown: function onKeyDown(e) {\n return _this8.onRowMatchModeKeyDown(e, matchMode);\n },\n tabIndex: tabIndex\n }, label);\n }), /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-column-filter-separator\"\n }), /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-column-filter-row-item\",\n onClick: this.clearFilter,\n onKeyDown: function onKeyDown(e) {\n return _this8.onRowMatchModeKeyDown(e, null, true);\n }\n }, noFilterLabel));\n }\n\n return null;\n }\n }, {\n key: \"renderOperator\",\n value: function renderOperator() {\n if (this.isShowOperator()) {\n var options = this.operatorOptions();\n var value = this.operator();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-column-filter-operator\"\n }, /*#__PURE__*/React.createElement(Dropdown, {\n options: options,\n value: value,\n onChange: this.onOperatorChange,\n className: \"p-column-filter-operator-dropdown\"\n }));\n }\n\n return null;\n }\n }, {\n key: \"renderMatchModeDropdown\",\n value: function renderMatchModeDropdown(constraint, index) {\n var _this9 = this;\n\n if (this.isShowMatchModes()) {\n var options = this.matchModes();\n return /*#__PURE__*/React.createElement(Dropdown, {\n options: options,\n value: constraint.matchMode,\n onChange: function onChange(e) {\n return _this9.onMenuMatchModeChange(e.value, index);\n },\n className: \"p-column-filter-matchmode-dropdown\"\n });\n }\n\n return null;\n }\n }, {\n key: \"renderRemoveButton\",\n value: function renderRemoveButton(index) {\n var _this10 = this;\n\n if (this.showRemoveIcon()) {\n var removeRuleLabel = this.removeRuleButtonLabel();\n return /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n icon: \"pi pi-trash\",\n className: \"p-column-filter-remove-button p-button-text p-button-danger p-button-sm\",\n onClick: function onClick() {\n return _this10.removeConstraint(index);\n },\n label: removeRuleLabel\n });\n }\n\n return null;\n }\n }, {\n key: \"renderConstraints\",\n value: function renderConstraints() {\n var _this11 = this;\n\n var fieldConstraints = this.fieldConstraints();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-column-filter-constraints\"\n }, fieldConstraints.map(function (fieldConstraint, i) {\n var matchModeDropdown = _this11.renderMatchModeDropdown(fieldConstraint, i);\n\n var menuFilterElement = _this11.renderMenuFilterElement(fieldConstraint, i);\n\n var removeButton = _this11.renderRemoveButton(i);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n key: i,\n className: \"p-column-filter-constraint\"\n }, matchModeDropdown, menuFilterElement, /*#__PURE__*/React.createElement(\"div\", null, removeButton));\n }));\n }\n }, {\n key: \"renderAddRule\",\n value: function renderAddRule() {\n if (this.isShowAddConstraint()) {\n var addRuleLabel = this.addRuleButtonLabel();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-column-filter-add-rule\"\n }, /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n label: addRuleLabel,\n icon: \"pi pi-plus\",\n className: \"p-column-filter-add-button p-button-text p-button-sm\",\n onClick: this.addConstraint\n }));\n }\n\n return null;\n }\n }, {\n key: \"renderFilterClearButton\",\n value: function renderFilterClearButton() {\n if (this.getColumnProp('showClearButton')) {\n if (!this.getColumnProp('filterClear')) {\n var clearLabel = this.clearButtonLabel();\n return /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n className: \"p-button-outlined p-button-sm\",\n onClick: this.clearFilter,\n label: clearLabel\n });\n }\n\n return ObjectUtils.getJSXElement(this.getColumnProp('filterClear'), {\n field: this.field,\n filterModel: this.filterModel,\n filterClearCallback: this.clearFilter\n });\n }\n\n return null;\n }\n }, {\n key: \"renderFilterApplyButton\",\n value: function renderFilterApplyButton() {\n if (this.getColumnProp('showApplyButton')) {\n if (!this.getColumnProp('filterApply')) {\n var applyLabel = this.applyButtonLabel();\n return /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n className: \"p-button-sm\",\n onClick: this.applyFilter,\n label: applyLabel\n });\n }\n\n return ObjectUtils.getJSXElement(this.getColumnProp('filterApply'), {\n field: this.field,\n filterModel: this.filterModel,\n filterApplyCallback: this.applyFilter\n });\n }\n\n return null;\n }\n }, {\n key: \"renderButtonBar\",\n value: function renderButtonBar() {\n var clearButton = this.renderFilterClearButton();\n var applyButton = this.renderFilterApplyButton();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-column-filter-buttonbar\"\n }, clearButton, applyButton);\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var operator = this.renderOperator();\n var constraints = this.renderConstraints();\n var addRule = this.renderAddRule();\n var buttonBar = this.renderButtonBar();\n return /*#__PURE__*/React.createElement(React.Fragment, null, operator, constraints, addRule, buttonBar);\n }\n }, {\n key: \"renderOverlay\",\n value: function renderOverlay() {\n var style = this.getColumnProp('filterMenuStyle');\n var className = classNames('p-column-filter-overlay p-component p-fluid', this.getColumnProp('filterMenuClassName'), {\n 'p-column-filter-overlay-menu': this.props.display === 'menu',\n 'p-input-filled': PrimeReact.inputStyle === 'filled',\n 'p-ripple-disabled': PrimeReact.ripple === false\n });\n var filterHeader = ObjectUtils.getJSXElement(this.getColumnProp('filterHeader'), {\n field: this.field,\n filterModel: this.filterModel,\n filterApplyCallback: this.filterApplyCallback\n });\n var filterFooter = ObjectUtils.getJSXElement(this.getColumnProp('filterFooter'), {\n field: this.field,\n filterModel: this.filterModel,\n filterApplyCallback: this.filterApplyCallback\n });\n var items = this.props.display === 'row' ? this.renderRowItems() : this.renderItems();\n return /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.overlayRef,\n classNames: \"p-connected-overlay\",\n in: this.state.overlayVisible,\n timeout: {\n enter: 120,\n exit: 100\n },\n unmountOnExit: true,\n onEnter: this.onOverlayEnter,\n onExit: this.onOverlayExit,\n onExited: this.onOverlayExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.overlayRef,\n style: style,\n className: className,\n onKeyDown: this.onContentKeyDown,\n onClick: this.onContentClick,\n onMouseDown: this.onContentMouseDown\n }, filterHeader, items, filterFooter)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-column-filter p-fluid', {\n 'p-column-filter-row': this.props.display === 'row',\n 'p-column-filter-menu': this.props.display === 'menu'\n });\n var rowFilterElement = this.renderRowFilterElement();\n var menuButton = this.renderMenuButton();\n var clearButton = this.renderClearButton();\n var overlay = this.renderOverlay();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, rowFilterElement, menuButton, clearButton, overlay);\n }\n }]);\n\n return ColumnFilter;\n}(Component);\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar HeaderCell = /*#__PURE__*/function (_Component) {\n _inherits(HeaderCell, _Component);\n\n var _super = _createSuper$2(HeaderCell);\n\n function HeaderCell(props) {\n var _this;\n\n _classCallCheck(this, HeaderCell);\n\n _this = _super.call(this, props);\n _this.state = {\n styleObject: {}\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this)); // drag\n\n _this.onDragStart = _this.onDragStart.bind(_assertThisInitialized(_this));\n _this.onDragOver = _this.onDragOver.bind(_assertThisInitialized(_this));\n _this.onDragLeave = _this.onDragLeave.bind(_assertThisInitialized(_this));\n _this.onDrop = _this.onDrop.bind(_assertThisInitialized(_this)); // resize\n\n _this.onResizerMouseDown = _this.onResizerMouseDown.bind(_assertThisInitialized(_this));\n _this.onResizerClick = _this.onResizerClick.bind(_assertThisInitialized(_this));\n _this.onResizerDoubleClick = _this.onResizerDoubleClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(HeaderCell, [{\n key: \"isBadgeVisible\",\n value: function isBadgeVisible() {\n return this.props.multiSortMeta && this.props.multiSortMeta.length > 1;\n }\n }, {\n key: \"isSortableDisabled\",\n value: function isSortableDisabled() {\n return !this.getColumnProp('sortable') || this.getColumnProp('sortable') && (this.props.allSortableDisabled || this.getColumnProp('sortableDisabled'));\n }\n }, {\n key: \"getColumnProp\",\n value: function getColumnProp() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.props.column ? typeof args[0] === 'string' ? this.props.column.props[args[0]] : (args[0] || this.props.column).props[args[1]] : null;\n }\n }, {\n key: \"getStyle\",\n value: function getStyle() {\n var headerStyle = this.getColumnProp('headerStyle');\n var columnStyle = this.getColumnProp('style');\n return this.getColumnProp('frozen') ? Object.assign({}, columnStyle, headerStyle, this.state.styleObject) : Object.assign({}, columnStyle, headerStyle);\n }\n }, {\n key: \"getMultiSortMetaIndex\",\n value: function getMultiSortMetaIndex() {\n var _this2 = this;\n\n return this.props.multiSortMeta.findIndex(function (meta) {\n return meta.field === _this2.getColumnProp('field') || meta.field === _this2.getColumnProp('sortField');\n });\n }\n }, {\n key: \"getSortMeta\",\n value: function getSortMeta() {\n var sorted = false;\n var sortOrder = 0;\n var metaIndex = -1;\n\n if (this.props.sortMode === 'single') {\n sorted = this.props.sortField && (this.props.sortField === this.getColumnProp('field') || this.props.sortField === this.getColumnProp('sortField'));\n sortOrder = sorted ? this.props.sortOrder : 0;\n } else if (this.props.sortMode === 'multiple') {\n metaIndex = this.getMultiSortMetaIndex();\n\n if (metaIndex > -1) {\n sorted = true;\n sortOrder = this.props.multiSortMeta[metaIndex].order;\n }\n }\n\n return {\n sorted: sorted,\n sortOrder: sortOrder,\n metaIndex: metaIndex\n };\n }\n }, {\n key: \"getAriaSort\",\n value: function getAriaSort(_ref) {\n var sorted = _ref.sorted,\n sortOrder = _ref.sortOrder;\n\n if (this.getColumnProp('sortable')) {\n var sortIcon = sorted ? sortOrder < 0 ? 'pi-sort-amount-down' : 'pi-sort-amount-up-alt' : 'pi-sort-alt';\n if (sortIcon === 'pi-sort-amount-down') return 'descending';else if (sortIcon === 'pi-sort-amount-up-alt') return 'ascending';else return 'none';\n }\n\n return null;\n }\n }, {\n key: \"updateStickyPosition\",\n value: function updateStickyPosition() {\n if (this.getColumnProp('frozen')) {\n var styleObject = _objectSpread$2({}, this.state.styleObject);\n\n var align = this.getColumnProp('alignFrozen');\n\n if (align === 'right') {\n var right = 0;\n var next = this.el.nextElementSibling;\n\n if (next) {\n right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n\n styleObject['right'] = right + 'px';\n } else {\n var left = 0;\n var prev = this.el.previousElementSibling;\n\n if (prev) {\n left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n\n styleObject['left'] = left + 'px';\n }\n\n var filterRow = this.el.parentElement.nextElementSibling;\n\n if (filterRow) {\n var index = DomHandler.index(this.el);\n filterRow.children[index].style.left = styleObject['left'];\n filterRow.children[index].style.right = styleObject['right'];\n }\n\n var isSameStyle = this.state.styleObject['left'] === styleObject['left'] && this.state.styleObject['right'] === styleObject['right'];\n !isSameStyle && this.setState({\n styleObject: styleObject\n });\n }\n }\n }, {\n key: \"updateSortableDisabled\",\n value: function updateSortableDisabled(prevColumn) {\n if (this.getColumnProp(prevColumn, 'sortableDisabled') !== this.getColumnProp('sortableDisabled') || this.getColumnProp(prevColumn, 'sortable') !== this.getColumnProp('sortable')) {\n this.props.onSortableChange();\n }\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n if (!this.isSortableDisabled()) {\n var targetNode = event.target;\n\n if (DomHandler.hasClass(targetNode, 'p-sortable-column') || DomHandler.hasClass(targetNode, 'p-column-title') || DomHandler.hasClass(targetNode, 'p-column-header-content') || DomHandler.hasClass(targetNode, 'p-sortable-column-icon') || DomHandler.hasClass(targetNode.parentElement, 'p-sortable-column-icon')) {\n DomHandler.clearSelection();\n this.props.onSortChange({\n originalEvent: event,\n column: this.props.column,\n sortableDisabledFields: this.props.sortableDisabledFields\n });\n }\n }\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n this.props.onColumnMouseDown({\n originalEvent: event,\n column: this.props.column\n });\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.key === 'Enter' && event.currentTarget === this.el && DomHandler.hasClass(event.currentTarget, 'p-sortable-column')) {\n this.onClick(event);\n event.preventDefault();\n }\n }\n }, {\n key: \"onDragStart\",\n value: function onDragStart(event) {\n this.props.onColumnDragStart({\n originalEvent: event,\n column: this.props.column\n });\n }\n }, {\n key: \"onDragOver\",\n value: function onDragOver(event) {\n this.props.onColumnDragOver({\n originalEvent: event,\n column: this.props.column\n });\n }\n }, {\n key: \"onDragLeave\",\n value: function onDragLeave(event) {\n this.props.onColumnDragLeave({\n originalEvent: event,\n column: this.props.column\n });\n }\n }, {\n key: \"onDrop\",\n value: function onDrop(event) {\n this.props.onColumnDrop({\n originalEvent: event,\n column: this.props.column\n });\n }\n }, {\n key: \"onResizerMouseDown\",\n value: function onResizerMouseDown(event) {\n this.props.onColumnResizeStart({\n originalEvent: event,\n column: this.props.column\n });\n }\n }, {\n key: \"onResizerClick\",\n value: function onResizerClick(event) {\n if (this.props.onColumnResizerClick) {\n this.props.onColumnResizerClick({\n originalEvent: event,\n element: event.currentTarget.parentElement,\n column: this.props.column\n });\n event.preventDefault();\n }\n }\n }, {\n key: \"onResizerDoubleClick\",\n value: function onResizerDoubleClick(event) {\n if (this.props.onColumnResizerDoubleClick) {\n this.props.onColumnResizerDoubleClick({\n originalEvent: event,\n element: event.currentTarget.parentElement,\n column: this.props.column\n });\n event.preventDefault();\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.getColumnProp('frozen')) {\n this.updateStickyPosition();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.getColumnProp('frozen')) {\n this.updateStickyPosition();\n }\n\n this.updateSortableDisabled(prevProps.column);\n }\n }, {\n key: \"renderResizer\",\n value: function renderResizer() {\n if (this.props.resizableColumns && !this.getColumnProp('frozen')) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-column-resizer\",\n onMouseDown: this.onResizerMouseDown,\n onClick: this.onResizerClick,\n onDoubleClick: this.onResizerDoubleClick\n });\n }\n\n return null;\n }\n }, {\n key: \"renderTitle\",\n value: function renderTitle() {\n var title = ObjectUtils.getJSXElement(this.getColumnProp('header'), {\n props: this.props.tableProps\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-column-title\"\n }, title);\n }\n }, {\n key: \"renderSortIcon\",\n value: function renderSortIcon(_ref2) {\n var sorted = _ref2.sorted,\n sortOrder = _ref2.sortOrder;\n\n if (this.getColumnProp('sortable')) {\n var sortIcon = sorted ? sortOrder < 0 ? 'pi-sort-amount-down' : 'pi-sort-amount-up-alt' : 'pi-sort-alt';\n var className = classNames('p-sortable-column-icon pi pi-fw', sortIcon);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className\n });\n }\n\n return null;\n }\n }, {\n key: \"renderBadge\",\n value: function renderBadge(_ref3) {\n var metaIndex = _ref3.metaIndex;\n\n if (metaIndex !== -1 && this.isBadgeVisible()) {\n var value = this.props.groupRowsBy && this.props.groupRowsBy === this.props.groupRowSortField ? metaIndex : metaIndex + 1;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-sortable-column-badge\"\n }, value);\n }\n\n return null;\n }\n }, {\n key: \"renderCheckbox\",\n value: function renderCheckbox() {\n if (this.getColumnProp('selectionMode') === 'multiple' && this.props.filterDisplay !== 'row') {\n var allRowsSelected = this.props.allRowsSelected(this.props.value);\n return /*#__PURE__*/React.createElement(HeaderCheckbox, {\n checked: allRowsSelected,\n onChange: this.props.onColumnCheckboxChange,\n disabled: this.props.empty\n });\n }\n\n return null;\n }\n }, {\n key: \"renderFilter\",\n value: function renderFilter() {\n if (this.props.filterDisplay === 'menu' && this.getColumnProp('filter')) {\n return /*#__PURE__*/React.createElement(ColumnFilter, {\n display: \"menu\",\n column: this.props.column,\n filters: this.props.filters,\n onFilterChange: this.props.onFilterChange,\n onFilterApply: this.props.onFilterApply,\n filtersStore: this.props.filtersStore\n });\n }\n\n return null;\n }\n }, {\n key: \"renderHeader\",\n value: function renderHeader(sortMeta) {\n var title = this.renderTitle();\n var sortIcon = this.renderSortIcon(sortMeta);\n var badge = this.renderBadge(sortMeta);\n var checkbox = this.renderCheckbox();\n var filter = this.renderFilter();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-column-header-content\"\n }, title, sortIcon, badge, checkbox, filter);\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var _this3 = this;\n\n var isSortableDisabled = this.isSortableDisabled();\n var sortMeta = this.getSortMeta();\n var style = this.getStyle();\n var className = classNames(this.getColumnProp('headerClassName'), this.getColumnProp('className'), {\n 'p-sortable-column': this.getColumnProp('sortable'),\n 'p-resizable-column': this.props.resizableColumns,\n 'p-highlight': sortMeta.sorted,\n 'p-frozen-column': this.getColumnProp('frozen'),\n 'p-selection-column': this.getColumnProp('selectionMode'),\n 'p-sortable-disabled': this.getColumnProp('sortable') && isSortableDisabled,\n 'p-reorderable-column': this.props.reorderableColumns && this.getColumnProp('reorderable')\n });\n var tabIndex = this.getColumnProp('sortable') && !isSortableDisabled ? this.props.tabIndex : null;\n var colSpan = this.getColumnProp('colSpan');\n var rowSpan = this.getColumnProp('rowSpan');\n var ariaSort = this.getAriaSort(sortMeta);\n var resizer = this.renderResizer();\n var header = this.renderHeader(sortMeta);\n return /*#__PURE__*/React.createElement(\"th\", {\n ref: function ref(el) {\n return _this3.el = el;\n },\n style: style,\n className: className,\n tabIndex: tabIndex,\n role: \"columnheader\",\n onClick: this.onClick,\n onKeyDown: this.onKeyDown,\n onMouseDown: this.onMouseDown,\n onDragStart: this.onDragStart,\n onDragOver: this.onDragOver,\n onDragLeave: this.onDragLeave,\n onDrop: this.onDrop,\n colSpan: colSpan,\n rowSpan: rowSpan,\n \"aria-sort\": ariaSort\n }, resizer, header);\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.renderElement();\n }\n }]);\n\n return HeaderCell;\n}(Component);\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar TableHeader = /*#__PURE__*/function (_Component) {\n _inherits(TableHeader, _Component);\n\n var _super = _createSuper$1(TableHeader);\n\n function TableHeader(props) {\n var _this;\n\n _classCallCheck(this, TableHeader);\n\n _this = _super.call(this, props);\n _this.state = {\n sortableDisabledFields: [],\n allSortableDisabled: false,\n styleObject: {}\n };\n _this.onSortableChange = _this.onSortableChange.bind(_assertThisInitialized(_this));\n _this.onCheckboxChange = _this.onCheckboxChange.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(TableHeader, [{\n key: \"isSingleSort\",\n value: function isSingleSort() {\n return this.props.sortMode === 'single';\n }\n }, {\n key: \"isMultipleSort\",\n value: function isMultipleSort() {\n return this.props.sortMode === 'multiple';\n }\n }, {\n key: \"isAllSortableDisabled\",\n value: function isAllSortableDisabled() {\n return this.isSingleSort() && this.state.allSortableDisabled;\n }\n }, {\n key: \"isColumnSorted\",\n value: function isColumnSorted(column) {\n return this.props.sortField !== null ? column.props.field === this.props.sortField || column.props.sortField === this.props.sortField : false;\n }\n }, {\n key: \"updateSortableDisabled\",\n value: function updateSortableDisabled() {\n var _this2 = this;\n\n if (this.isSingleSort() || this.isMultipleSort() && this.props.onSortChange) {\n var sortableDisabledFields = [];\n var allSortableDisabled = false;\n this.props.columns.forEach(function (column) {\n if (column.props.sortableDisabled) {\n sortableDisabledFields.push(column.props.sortField || column.props.field);\n\n if (!allSortableDisabled && _this2.isColumnSorted(column)) {\n allSortableDisabled = true;\n }\n }\n });\n this.setState({\n sortableDisabledFields: sortableDisabledFields,\n allSortableDisabled: allSortableDisabled\n });\n }\n }\n }, {\n key: \"onSortableChange\",\n value: function onSortableChange() {\n this.updateSortableDisabled();\n }\n }, {\n key: \"onCheckboxChange\",\n value: function onCheckboxChange(e) {\n this.props.onColumnCheckboxChange(e, this.props.value);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateSortableDisabled();\n }\n }, {\n key: \"renderGroupHeaderCells\",\n value: function renderGroupHeaderCells(row) {\n var columns = React.Children.toArray(row.props.children);\n return this.renderHeaderCells(columns);\n }\n }, {\n key: \"renderHeaderCells\",\n value: function renderHeaderCells(columns) {\n var _this3 = this;\n\n return React.Children.map(columns, function (col, i) {\n var isVisible = col ? !col.props.hidden : true;\n var key = col ? col.props.columnKey || col.props.field || i : i;\n return isVisible && /*#__PURE__*/React.createElement(HeaderCell, {\n key: key,\n value: _this3.props.value,\n tableProps: _this3.props.tableProps,\n column: col,\n tabIndex: _this3.props.tabIndex,\n empty: _this3.props.empty,\n resizableColumns: _this3.props.resizableColumns,\n groupRowsBy: _this3.props.groupRowsBy,\n groupRowSortField: _this3.props.groupRowSortField,\n sortMode: _this3.props.sortMode,\n sortField: _this3.props.sortField,\n sortOrder: _this3.props.sortOrder,\n multiSortMeta: _this3.props.multiSortMeta,\n allSortableDisabled: _this3.isAllSortableDisabled(),\n onSortableChange: _this3.onSortableChange,\n sortableDisabledFields: _this3.state.sortableDisabledFields,\n filterDisplay: _this3.props.filterDisplay,\n filters: _this3.props.filters,\n filtersStore: _this3.props.filtersStore,\n onFilterChange: _this3.props.onFilterChange,\n onFilterApply: _this3.props.onFilterApply,\n onColumnMouseDown: _this3.props.onColumnMouseDown,\n onColumnDragStart: _this3.props.onColumnDragStart,\n onColumnDragOver: _this3.props.onColumnDragOver,\n onColumnDragLeave: _this3.props.onColumnDragLeave,\n onColumnDrop: _this3.props.onColumnDrop,\n onColumnResizeStart: _this3.props.onColumnResizeStart,\n onColumnResizerClick: _this3.props.onColumnResizerClick,\n onColumnResizerDoubleClick: _this3.props.onColumnResizerDoubleClick,\n allRowsSelected: _this3.props.allRowsSelected,\n onColumnCheckboxChange: _this3.onCheckboxChange,\n reorderableColumns: _this3.props.reorderableColumns,\n onSortChange: _this3.props.onSortChange\n });\n });\n }\n }, {\n key: \"renderFilterCells\",\n value: function renderFilterCells() {\n var _this4 = this;\n\n return React.Children.map(this.props.columns, function (col, i) {\n var isVisible = !col.props.hidden;\n\n if (isVisible) {\n var _col$props = col.props,\n filterHeaderStyle = _col$props.filterHeaderStyle,\n style = _col$props.style,\n filterHeaderClassName = _col$props.filterHeaderClassName,\n className = _col$props.className,\n frozen = _col$props.frozen,\n columnKey = _col$props.columnKey,\n field = _col$props.field,\n selectionMode = _col$props.selectionMode,\n filter = _col$props.filter;\n\n var colStyle = _objectSpread$1(_objectSpread$1({}, filterHeaderStyle || {}), style || {});\n\n var colClassName = classNames('p-filter-column', filterHeaderClassName, className, {\n 'p-frozen-column': frozen\n });\n var colKey = columnKey || field || i;\n\n var allRowsSelected = selectionMode === 'multiple' && _this4.props.allRowsSelected(_this4.props.value);\n\n return /*#__PURE__*/React.createElement(\"th\", {\n key: colKey,\n style: colStyle,\n className: colClassName\n }, selectionMode === 'multiple' && /*#__PURE__*/React.createElement(HeaderCheckbox, {\n checked: allRowsSelected,\n onChange: _this4.onCheckboxChange,\n disabled: _this4.props.empty\n }), filter && /*#__PURE__*/React.createElement(ColumnFilter, {\n display: \"row\",\n column: col,\n filters: _this4.props.filters,\n filtersStore: _this4.props.filtersStore,\n onFilterChange: _this4.props.onFilterChange,\n onFilterApply: _this4.props.onFilterApply\n }));\n }\n\n return null;\n });\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this5 = this;\n\n if (this.props.headerColumnGroup) {\n var rows = React.Children.toArray(this.props.headerColumnGroup.props.children);\n return rows.map(function (row, i) {\n return /*#__PURE__*/React.createElement(\"tr\", {\n key: i,\n role: \"row\"\n }, _this5.renderGroupHeaderCells(row));\n });\n } else {\n var headerRow = /*#__PURE__*/React.createElement(\"tr\", {\n role: \"row\"\n }, this.renderHeaderCells(this.props.columns));\n var filterRow = this.props.filterDisplay === 'row' && /*#__PURE__*/React.createElement(\"tr\", {\n role: \"row\"\n }, this.renderFilterCells());\n return /*#__PURE__*/React.createElement(React.Fragment, null, headerRow, filterRow);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var content = this.renderContent();\n return /*#__PURE__*/React.createElement(\"thead\", {\n className: \"p-datatable-thead\"\n }, content);\n }\n }]);\n\n return TableHeader;\n}(Component);\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar DataTable = /*#__PURE__*/function (_Component) {\n _inherits(DataTable, _Component);\n\n var _super = _createSuper(DataTable);\n\n function DataTable(props) {\n var _this;\n\n _classCallCheck(this, DataTable);\n\n _this = _super.call(this, props);\n _this.state = {\n d_rows: props.rows,\n columnOrder: [],\n groupRowsSortMeta: null,\n editingMeta: {}\n };\n\n if (!_this.props.onPage) {\n _this.state.first = props.first;\n _this.state.rows = props.rows;\n }\n\n if (!_this.props.onSort) {\n _this.state.sortField = props.sortField;\n _this.state.sortOrder = props.sortOrder;\n _this.state.multiSortMeta = props.multiSortMeta;\n }\n\n _this.state.d_filters = _this.cloneFilters(props.filters);\n\n if (!_this.props.onFilter) {\n _this.state.filters = props.filters;\n }\n\n if (_this.isStateful()) {\n _this.restoreState(_this.state);\n }\n\n _this.attributeSelector = UniqueComponentId(); // header\n\n _this.onSortChange = _this.onSortChange.bind(_assertThisInitialized(_this));\n _this.onFilterChange = _this.onFilterChange.bind(_assertThisInitialized(_this));\n _this.onFilterApply = _this.onFilterApply.bind(_assertThisInitialized(_this));\n _this.onColumnHeaderMouseDown = _this.onColumnHeaderMouseDown.bind(_assertThisInitialized(_this));\n _this.onColumnHeaderDragStart = _this.onColumnHeaderDragStart.bind(_assertThisInitialized(_this));\n _this.onColumnHeaderDragOver = _this.onColumnHeaderDragOver.bind(_assertThisInitialized(_this));\n _this.onColumnHeaderDragLeave = _this.onColumnHeaderDragLeave.bind(_assertThisInitialized(_this));\n _this.onColumnHeaderDrop = _this.onColumnHeaderDrop.bind(_assertThisInitialized(_this));\n _this.onColumnResizeStart = _this.onColumnResizeStart.bind(_assertThisInitialized(_this));\n _this.onColumnHeaderCheckboxChange = _this.onColumnHeaderCheckboxChange.bind(_assertThisInitialized(_this));\n _this.allRowsSelected = _this.allRowsSelected.bind(_assertThisInitialized(_this)); // body\n\n _this.onEditingMetaChange = _this.onEditingMetaChange.bind(_assertThisInitialized(_this)); //paginator\n\n _this.onPageChange = _this.onPageChange.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(DataTable, [{\n key: \"isCustomStateStorage\",\n value: function isCustomStateStorage() {\n return this.props.stateStorage === 'custom';\n }\n }, {\n key: \"isStateful\",\n value: function isStateful() {\n return this.props.stateKey != null || this.isCustomStateStorage();\n }\n }, {\n key: \"isVirtualScrollerDisabled\",\n value: function isVirtualScrollerDisabled() {\n return ObjectUtils.isEmpty(this.props.virtualScrollerOptions) || !this.props.scrollable;\n }\n }, {\n key: \"hasFilter\",\n value: function hasFilter() {\n return ObjectUtils.isNotEmpty(this.getFilters()) || this.props.globalFilter;\n }\n }, {\n key: \"getFirst\",\n value: function getFirst() {\n return this.props.onPage ? this.props.first : this.state.first;\n }\n }, {\n key: \"getRows\",\n value: function getRows() {\n return this.props.onPage ? this.props.rows : this.state.rows;\n }\n }, {\n key: \"getSortField\",\n value: function getSortField() {\n return this.props.onSort ? this.props.sortField : this.state.sortField;\n }\n }, {\n key: \"getSortOrder\",\n value: function getSortOrder() {\n return this.props.onSort ? this.props.sortOrder : this.state.sortOrder;\n }\n }, {\n key: \"getMultiSortMeta\",\n value: function getMultiSortMeta() {\n return (this.props.onSort ? this.props.multiSortMeta : this.state.multiSortMeta) || [];\n }\n }, {\n key: \"getFilters\",\n value: function getFilters() {\n return this.props.onFilter ? this.props.filters : this.state.filters;\n }\n }, {\n key: \"getColumnProp\",\n value: function getColumnProp(col, prop) {\n return col.props[prop];\n }\n }, {\n key: \"getColumns\",\n value: function getColumns(ignoreReorderable) {\n var _this2 = this;\n\n var columns = React.Children.toArray(this.props.children);\n\n if (!columns) {\n return null;\n }\n\n if (!ignoreReorderable && this.props.reorderableColumns && this.state.columnOrder) {\n var orderedColumns = this.state.columnOrder.reduce(function (arr, columnKey) {\n var column = _this2.findColumnByKey(columns, columnKey);\n\n column && arr.push(column);\n return arr;\n }, []);\n return [].concat(_toConsumableArray(orderedColumns), _toConsumableArray(columns.filter(function (col) {\n return orderedColumns.indexOf(col) < 0;\n })));\n }\n\n return columns;\n }\n }, {\n key: \"getStorage\",\n value: function getStorage() {\n switch (this.props.stateStorage) {\n case 'local':\n return window.localStorage;\n\n case 'session':\n return window.sessionStorage;\n\n case 'custom':\n return null;\n\n default:\n throw new Error(this.props.stateStorage + ' is not a valid value for the state storage, supported values are \"local\", \"session\" and \"custom\".');\n }\n }\n }, {\n key: \"saveState\",\n value: function saveState() {\n var state = {};\n\n if (this.props.paginator) {\n state.first = this.getFirst();\n state.rows = this.getRows();\n }\n\n var sortField = this.getSortField();\n\n if (sortField) {\n state.sortField = sortField;\n state.sortOrder = this.getSortOrder();\n }\n\n var multiSortMeta = this.getMultiSortMeta();\n\n if (multiSortMeta) {\n state.multiSortMeta = multiSortMeta;\n }\n\n if (this.hasFilter()) {\n state.filters = this.getFilters();\n }\n\n if (this.props.resizableColumns) {\n this.saveColumnWidths(state);\n }\n\n if (this.props.reorderableColumns) {\n state.columnOrder = this.state.columnOrder;\n }\n\n if (this.props.expandedRows) {\n state.expandedRows = this.props.expandedRows;\n }\n\n if (this.props.selection && this.props.onSelectionChange) {\n state.selection = this.props.selection;\n }\n\n if (this.isCustomStateStorage()) {\n if (this.props.customSaveState) {\n this.props.customSaveState(state);\n }\n } else {\n var storage = this.getStorage();\n\n if (ObjectUtils.isNotEmpty(state)) {\n storage.setItem(this.props.stateKey, JSON.stringify(state));\n }\n }\n\n if (this.props.onStateSave) {\n this.props.onStateSave(state);\n }\n }\n }, {\n key: \"clearState\",\n value: function clearState() {\n var storage = this.getStorage();\n\n if (storage && this.props.stateKey) {\n storage.removeItem(this.props.stateKey);\n }\n }\n }, {\n key: \"restoreState\",\n value: function restoreState(state) {\n var restoredState = {};\n\n if (this.isCustomStateStorage()) {\n if (this.props.customRestoreState) {\n restoredState = this.props.customRestoreState();\n }\n } else {\n var storage = this.getStorage();\n var stateString = storage.getItem(this.props.stateKey);\n var dateFormat = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n\n var reviver = function reviver(key, value) {\n return typeof value === \"string\" && dateFormat.test(value) ? new Date(value) : value;\n };\n\n if (stateString) {\n restoredState = JSON.parse(stateString, reviver);\n }\n }\n\n this._restoreState(restoredState, state);\n }\n }, {\n key: \"restoreTableState\",\n value: function restoreTableState(restoredState) {\n var state = this._restoreState(restoredState);\n\n if (ObjectUtils.isNotEmpty(state)) {\n this.setState(state);\n }\n }\n }, {\n key: \"_restoreState\",\n value: function _restoreState(restoredState) {\n var _this3 = this;\n\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (ObjectUtils.isNotEmpty(restoredState)) {\n if (this.props.paginator) {\n if (this.props.onPage) {\n var getOnPageParams = function getOnPageParams(first, rows) {\n var totalRecords = _this3.getTotalRecords(_this3.processedData());\n\n var pageCount = Math.ceil(totalRecords / rows) || 1;\n var page = Math.floor(first / rows);\n return {\n first: first,\n rows: rows,\n page: page,\n pageCount: pageCount\n };\n };\n\n this.props.onPage(getOnPageParams(restoredState.first, restoredState.rows));\n } else {\n state.first = restoredState.first;\n state.rows = restoredState.rows;\n }\n }\n\n if (restoredState.sortField) {\n if (this.props.onSort) {\n this.props.onSort({\n sortField: restoredState.sortField,\n sortOrder: restoredState.sortOrder\n });\n } else {\n state.sortField = restoredState.sortField;\n state.sortOrder = restoredState.sortOrder;\n }\n }\n\n if (restoredState.multiSortMeta) {\n if (this.props.onSort) {\n this.props.onSort({\n multiSortMeta: restoredState.multiSortMeta\n });\n } else {\n state.multiSortMeta = restoredState.multiSortMeta;\n }\n }\n\n if (restoredState.filters) {\n state.d_filters = this.cloneFilters(restoredState.filters);\n\n if (this.props.onFilter) {\n this.props.onFilter({\n filters: restoredState.filters\n });\n } else {\n state.filters = this.cloneFilters(restoredState.filters);\n }\n }\n\n if (this.props.resizableColumns) {\n this.columnWidthsState = restoredState.columnWidths;\n this.tableWidthState = restoredState.tableWidth;\n }\n\n if (this.props.reorderableColumns) {\n state.columnOrder = restoredState.columnOrder;\n }\n\n if (restoredState.expandedRows && this.props.onRowToggle) {\n this.props.onRowToggle({\n data: restoredState.expandedRows\n });\n }\n\n if (restoredState.selection && this.props.onSelectionChange) {\n this.props.onSelectionChange({\n value: restoredState.selection\n });\n }\n\n if (this.props.onStateRestore) {\n this.props.onStateRestore(restoredState);\n }\n }\n\n return state;\n }\n }, {\n key: \"saveColumnWidths\",\n value: function saveColumnWidths(state) {\n var widths = [];\n var headers = DomHandler.find(this.el, '.p-datatable-thead > tr > th');\n headers.forEach(function (header) {\n return widths.push(DomHandler.getOuterWidth(header));\n });\n state.columnWidths = widths.join(',');\n\n if (this.props.columnResizeMode === 'expand') {\n state.tableWidth = DomHandler.getOuterWidth(this.table) + 'px';\n }\n }\n }, {\n key: \"restoreColumnWidths\",\n value: function restoreColumnWidths() {\n var _this4 = this;\n\n if (this.columnWidthsState) {\n var widths = this.columnWidthsState.split(',');\n\n if (this.props.columnResizeMode === 'expand' && this.tableWidthState) {\n this.table.style.width = this.tableWidthState;\n this.table.style.minWidth = this.tableWidthState;\n this.el.style.width = this.tableWidthState;\n }\n\n this.createStyleElement();\n\n if (this.props.scrollable && widths && widths.length > 0) {\n var innerHTML = '';\n widths.forEach(function (width, index) {\n innerHTML += \"\\n .p-datatable[\".concat(_this4.attributeSelector, \"] .p-datatable-thead > tr > th:nth-child(\").concat(index + 1, \") {\\n flex: 0 0 \").concat(width, \"px;\\n }\\n\\n .p-datatable[\").concat(_this4.attributeSelector, \"] .p-datatable-tbody > tr > td:nth-child(\").concat(index + 1, \") {\\n flex: 0 0 \").concat(width, \"px;\\n }\\n \");\n });\n this.styleElement.innerHTML = innerHTML;\n } else {\n DomHandler.find(this.table, '.p-datatable-thead > tr > th').forEach(function (header, index) {\n return header.style.width = widths[index] + 'px';\n });\n }\n }\n }\n }, {\n key: \"findParentHeader\",\n value: function findParentHeader(element) {\n if (element.nodeName === 'TH') {\n return element;\n } else {\n var parent = element.parentElement;\n\n while (parent.nodeName !== 'TH') {\n parent = parent.parentElement;\n if (!parent) break;\n }\n\n return parent;\n }\n }\n }, {\n key: \"getGroupRowSortField\",\n value: function getGroupRowSortField() {\n return this.props.sortMode === 'single' ? this.props.sortField : this.state.groupRowsSortMeta ? this.state.groupRowsSortMeta.field : null;\n }\n }, {\n key: \"allRowsSelected\",\n value: function allRowsSelected(processedData) {\n var _this5 = this;\n\n var val = this.props.frozenValue ? [].concat(_toConsumableArray(this.props.frozenValue), _toConsumableArray(processedData)) : processedData;\n var selectableVal = this.props.showSelectionElement ? val.filter(function (data, index) {\n return _this5.props.showSelectionElement(data, {\n rowIndex: index,\n props: _this5.props\n });\n }) : val;\n var length = this.props.lazy ? this.props.totalRecords : selectableVal ? selectableVal.length : 0;\n return selectableVal && length > 0 && this.props.selection && this.props.selection.length > 0 && this.props.selection.length === length;\n }\n }, {\n key: \"getSelectionModeInColumn\",\n value: function getSelectionModeInColumn(columns) {\n if (columns) {\n var col = columns.find(function (c) {\n return !!c.props.selectionMode;\n });\n return col ? col.props.selectionMode : null;\n }\n\n return null;\n }\n }, {\n key: \"findColumnByKey\",\n value: function findColumnByKey(columns, key) {\n return ObjectUtils.isNotEmpty(columns) ? columns.find(function (col) {\n return col.props.columnKey === key || col.props.field === key;\n }) : null;\n }\n }, {\n key: \"getTotalRecords\",\n value: function getTotalRecords(data) {\n return this.props.lazy ? this.props.totalRecords : data ? data.length : 0;\n }\n }, {\n key: \"onEditingMetaChange\",\n value: function onEditingMetaChange(e) {\n var rowData = e.rowData,\n field = e.field,\n rowIndex = e.rowIndex,\n editing = e.editing;\n\n var editingMeta = _objectSpread({}, this.state.editingMeta);\n\n var meta = editingMeta[rowIndex];\n\n if (editing) {\n !meta && (meta = editingMeta[rowIndex] = {\n data: _objectSpread({}, rowData),\n fields: []\n });\n meta['fields'].push(field);\n } else if (meta) {\n var fields = meta['fields'].filter(function (f) {\n return f !== field;\n });\n !fields.length ? delete editingMeta[rowIndex] : meta['fields'] = fields;\n }\n\n this.setState({\n editingMeta: editingMeta\n });\n }\n }, {\n key: \"clearEditingMetaData\",\n value: function clearEditingMetaData() {\n if (this.props.editMode && ObjectUtils.isNotEmpty(this.state.editingMeta)) {\n this.setState({\n editingMeta: {}\n });\n }\n }\n }, {\n key: \"onColumnResizeStart\",\n value: function onColumnResizeStart(e) {\n var event = e.originalEvent,\n column = e.column;\n var containerLeft = DomHandler.getOffset(this.el).left;\n this.resizeColumn = column;\n this.resizeColumnElement = event.currentTarget.parentElement;\n this.columnResizing = true;\n this.lastResizeHelperX = event.pageX - containerLeft + this.el.scrollLeft;\n this.bindColumnResizeEvents();\n }\n }, {\n key: \"onColumnResize\",\n value: function onColumnResize(event) {\n var containerLeft = DomHandler.getOffset(this.el).left;\n DomHandler.addClass(this.el, 'p-unselectable-text');\n this.resizeHelper.style.height = this.el.offsetHeight + 'px';\n this.resizeHelper.style.top = 0 + 'px';\n this.resizeHelper.style.left = event.pageX - containerLeft + this.el.scrollLeft + 'px';\n this.resizeHelper.style.display = 'block';\n }\n }, {\n key: \"onColumnResizeEnd\",\n value: function onColumnResizeEnd() {\n var delta = this.resizeHelper.offsetLeft - this.lastResizeHelperX;\n var columnWidth = this.resizeColumnElement.offsetWidth;\n var newColumnWidth = columnWidth + delta;\n var minWidth = this.resizeColumnElement.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.props.columnResizeMode === 'fit') {\n var nextColumn = this.resizeColumnElement.nextElementSibling;\n var nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n } else if (this.props.columnResizeMode === 'expand') {\n var tableWidth = this.table.offsetWidth + delta + 'px';\n this.table.style.width = tableWidth;\n this.table.style.minWidth = tableWidth;\n this.resizeTableCells(newColumnWidth);\n }\n\n if (this.props.onColumnResizeEnd) {\n this.props.onColumnResizeEnd({\n element: this.resizeColumnElement,\n column: this.resizeColumn,\n delta: delta\n });\n }\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n this.resizeHelper.style.display = 'none';\n this.resizeColumn = null;\n this.resizeColumnElement = null;\n DomHandler.removeClass(this.el, 'p-unselectable-text');\n this.unbindColumnResizeEvents();\n }\n }, {\n key: \"resizeTableCells\",\n value: function resizeTableCells(newColumnWidth, nextColumnWidth) {\n var _this6 = this;\n\n var widths = [];\n var colIndex = DomHandler.index(this.resizeColumnElement);\n var headers = DomHandler.find(this.table, '.p-datatable-thead > tr > th');\n headers.forEach(function (header) {\n return widths.push(DomHandler.getOuterWidth(header));\n });\n this.destroyStyleElement();\n this.createStyleElement();\n var innerHTML = '';\n widths.forEach(function (width, index) {\n var colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n var style = _this6.props.scrollable ? \"flex: 0 0 \".concat(colWidth, \"px !important\") : \"width: \".concat(colWidth, \"px !important\");\n innerHTML += \"\\n .p-datatable[\".concat(_this6.attributeSelector, \"] .p-datatable-thead > tr > th:nth-child(\").concat(index + 1, \"),\\n .p-datatable[\").concat(_this6.attributeSelector, \"] .p-datatable-tbody > tr > td:nth-child(\").concat(index + 1, \"),\\n .p-datatable[\").concat(_this6.attributeSelector, \"] .p-datatable-tfoot > tr > td:nth-child(\").concat(index + 1, \") {\\n \").concat(style, \"\\n }\\n \");\n });\n this.styleElement.innerHTML = innerHTML;\n }\n }, {\n key: \"bindColumnResizeEvents\",\n value: function bindColumnResizeEvents() {\n var _this7 = this;\n\n if (!this.documentColumnResizeListener) {\n this.documentColumnResizeListener = document.addEventListener('mousemove', function (event) {\n if (_this7.columnResizing) {\n _this7.onColumnResize(event);\n }\n });\n }\n\n if (!this.documentColumnResizeEndListener) {\n this.documentColumnResizeEndListener = document.addEventListener('mouseup', function () {\n if (_this7.columnResizing) {\n _this7.columnResizing = false;\n\n _this7.onColumnResizeEnd();\n }\n });\n }\n }\n }, {\n key: \"unbindColumnResizeEvents\",\n value: function unbindColumnResizeEvents() {\n if (this.documentColumnResizeListener) {\n document.removeEventListener('document', this.documentColumnResizeListener);\n this.documentColumnResizeListener = null;\n }\n\n if (this.documentColumnResizeEndListener) {\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n this.documentColumnResizeEndListener = null;\n }\n }\n }, {\n key: \"onColumnHeaderMouseDown\",\n value: function onColumnHeaderMouseDown(e) {\n DomHandler.clearSelection();\n var event = e.originalEvent,\n column = e.column;\n\n if (this.props.reorderableColumns && this.getColumnProp(column, 'reorderable') !== false) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || DomHandler.hasClass(event.target, 'p-column-resizer')) event.currentTarget.draggable = false;else event.currentTarget.draggable = true;\n }\n }\n }, {\n key: \"onColumnHeaderCheckboxChange\",\n value: function onColumnHeaderCheckboxChange(e, processedData) {\n var _this8 = this;\n\n var originalEvent = e.originalEvent,\n checked = e.checked;\n var selection;\n\n if (!checked) {\n selection = this.props.frozenValue ? [].concat(_toConsumableArray(this.props.frozenValue), _toConsumableArray(processedData)) : processedData;\n selection = this.props.showSelectionElement ? selection.filter(function (data, index) {\n return _this8.props.showSelectionElement(data, {\n rowIndex: index,\n props: _this8.props\n });\n }) : selection;\n this.props.onAllRowsSelect && this.props.onAllRowsSelect({\n originalEvent: originalEvent,\n data: selection,\n type: 'all'\n });\n } else {\n selection = [];\n this.props.onAllRowsUnselect && this.props.onAllRowsUnselect({\n originalEvent: originalEvent,\n data: selection,\n type: 'all'\n });\n }\n\n if (this.props.onSelectionChange) {\n this.props.onSelectionChange({\n originalEvent: originalEvent,\n value: selection\n });\n }\n }\n }, {\n key: \"onColumnHeaderDragStart\",\n value: function onColumnHeaderDragStart(e) {\n var event = e.originalEvent,\n column = e.column;\n\n if (this.columnResizing) {\n event.preventDefault();\n return;\n }\n\n this.colReorderIconWidth = DomHandler.getHiddenElementOuterWidth(this.reorderIndicatorUp);\n this.colReorderIconHeight = DomHandler.getHiddenElementOuterHeight(this.reorderIndicatorUp);\n this.draggedColumn = column;\n this.draggedColumnElement = this.findParentHeader(event.currentTarget);\n event.dataTransfer.setData('text', 'b'); // Firefox requires this to make dragging possible\n }\n }, {\n key: \"onColumnHeaderDragOver\",\n value: function onColumnHeaderDragOver(e) {\n var event = e.originalEvent;\n var dropHeader = this.findParentHeader(event.currentTarget);\n\n if (this.props.reorderableColumns && this.draggedColumnElement && dropHeader) {\n event.preventDefault();\n\n if (this.draggedColumnElement !== dropHeader) {\n var containerOffset = DomHandler.getOffset(this.el);\n var dropHeaderOffset = DomHandler.getOffset(dropHeader);\n var targetLeft = dropHeaderOffset.left - containerOffset.left;\n var columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n this.reorderIndicatorUp.style.top = dropHeaderOffset.top - containerOffset.top - (this.colReorderIconHeight - 1) + 'px';\n this.reorderIndicatorDown.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n this.reorderIndicatorUp.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.reorderIndicatorDown.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.reorderIndicatorUp.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.reorderIndicatorDown.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n this.reorderIndicatorUp.style.display = 'block';\n this.reorderIndicatorDown.style.display = 'block';\n }\n }\n }\n }, {\n key: \"onColumnHeaderDragLeave\",\n value: function onColumnHeaderDragLeave(e) {\n var event = e.originalEvent;\n\n if (this.props.reorderableColumns && this.draggedColumnElement) {\n event.preventDefault();\n this.reorderIndicatorUp.style.display = 'none';\n this.reorderIndicatorDown.style.display = 'none';\n }\n }\n }, {\n key: \"onColumnHeaderDrop\",\n value: function onColumnHeaderDrop(e) {\n var _this9 = this;\n\n var event = e.originalEvent,\n column = e.column;\n event.preventDefault();\n\n if (this.draggedColumnElement) {\n var dragIndex = DomHandler.index(this.draggedColumnElement);\n var dropIndex = DomHandler.index(this.findParentHeader(event.currentTarget));\n var allowDrop = dragIndex !== dropIndex;\n\n if (allowDrop && (dropIndex - dragIndex === 1 && this.dropPosition === -1 || dragIndex - dropIndex === 1 && this.dropPosition === 1)) {\n allowDrop = false;\n }\n\n if (allowDrop) {\n var columns = this.getColumns();\n\n var isSameColumn = function isSameColumn(col1, col2) {\n return col1.props.columnKey || col2.props.columnKey ? ObjectUtils.equals(col1.props, col2.props, 'columnKey') : ObjectUtils.equals(col1.props, col2.props, 'field');\n };\n\n var dragColIndex = columns.findIndex(function (child) {\n return isSameColumn(child, _this9.draggedColumn);\n });\n var dropColIndex = columns.findIndex(function (child) {\n return isSameColumn(child, column);\n });\n\n if (dropColIndex < dragColIndex && this.dropPosition === 1) {\n dropColIndex++;\n }\n\n if (dropColIndex > dragColIndex && this.dropPosition === -1) {\n dropColIndex--;\n }\n\n ObjectUtils.reorderArray(columns, dragColIndex, dropColIndex);\n var columnOrder = columns.reduce(function (orders, col) {\n orders.push(col.props.columnKey || col.props.field);\n return orders;\n }, []);\n this.setState({\n columnOrder: columnOrder\n });\n\n if (this.props.onColReorder) {\n this.props.onColReorder({\n originalEvent: event,\n dragIndex: dragColIndex,\n dropIndex: dropColIndex,\n columns: columns\n });\n }\n }\n\n this.reorderIndicatorUp.style.display = 'none';\n this.reorderIndicatorDown.style.display = 'none';\n this.draggedColumnElement.draggable = false;\n this.draggedColumnElement = null;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n }\n }, {\n key: \"createStyleElement\",\n value: function createStyleElement() {\n this.styleElement = document.createElement('style');\n document.head.appendChild(this.styleElement);\n }\n }, {\n key: \"createResponsiveStyle\",\n value: function createResponsiveStyle() {\n if (!this.responsiveStyleElement) {\n this.responsiveStyleElement = document.createElement('style');\n document.head.appendChild(this.responsiveStyleElement);\n var innerHTML = \"\\n@media screen and (max-width: \".concat(this.props.breakpoint, \") {\\n .p-datatable[\").concat(this.attributeSelector, \"] .p-datatable-thead > tr > th,\\n .p-datatable[\").concat(this.attributeSelector, \"] .p-datatable-tfoot > tr > td {\\n display: none !important;\\n }\\n\\n .p-datatable[\").concat(this.attributeSelector, \"] .p-datatable-tbody > tr > td {\\n display: flex;\\n width: 100% !important;\\n align-items: center;\\n justify-content: space-between;\\n }\\n\\n .p-datatable[\").concat(this.attributeSelector, \"] .p-datatable-tbody > tr > td:not(:last-child) {\\n border: 0 none;\\n }\\n\\n .p-datatable[\").concat(this.attributeSelector, \"].p-datatable-gridlines .p-datatable-tbody > tr > td:last-child {\\n border-top: 0;\\n border-right: 0;\\n border-left: 0;\\n }\\n\\n .p-datatable[\").concat(this.attributeSelector, \"] .p-datatable-tbody > tr > td > .p-column-title {\\n display: block;\\n }\\n}\\n\");\n this.responsiveStyleElement.innerHTML = innerHTML;\n }\n }\n }, {\n key: \"destroyResponsiveStyle\",\n value: function destroyResponsiveStyle() {\n if (this.responsiveStyleElement) {\n document.head.removeChild(this.responsiveStyleElement);\n this.responsiveStyleElement = null;\n }\n }\n }, {\n key: \"destroyStyleElement\",\n value: function destroyStyleElement() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n }\n }, {\n key: \"onPageChange\",\n value: function onPageChange(e) {\n this.clearEditingMetaData();\n if (this.props.onPage) this.props.onPage(e);else this.setState({\n first: e.first,\n rows: e.rows\n });\n\n if (this.props.onValueChange) {\n this.props.onValueChange(this.processedData());\n }\n }\n }, {\n key: \"onSortChange\",\n value: function onSortChange(e) {\n this.clearEditingMetaData();\n var event = e.originalEvent,\n column = e.column,\n sortableDisabledFields = e.sortableDisabledFields;\n var sortField = column.props.sortField || column.props.field;\n var sortOrder = this.props.defaultSortOrder;\n var multiSortMeta;\n var eventMeta;\n this.columnSortable = column.props.sortable;\n this.columnSortFunction = column.props.sortFunction;\n this.columnField = column.props.sortField;\n\n if (this.props.sortMode === 'multiple') {\n var metaKey = event.metaKey || event.ctrlKey;\n multiSortMeta = _toConsumableArray(this.getMultiSortMeta());\n var sortMeta = multiSortMeta.find(function (sortMeta) {\n return sortMeta.field === sortField;\n });\n sortOrder = sortMeta ? this.getCalculatedSortOrder(sortMeta.order) : sortOrder;\n var newMetaData = {\n field: sortField,\n order: sortOrder\n };\n\n if (sortOrder) {\n multiSortMeta = metaKey ? multiSortMeta : multiSortMeta.filter(function (meta) {\n return sortableDisabledFields.some(function (field) {\n return field === meta.field;\n });\n });\n this.addSortMeta(newMetaData, multiSortMeta);\n } else if (this.props.removableSort) {\n this.removeSortMeta(newMetaData, multiSortMeta);\n }\n\n eventMeta = {\n multiSortMeta: multiSortMeta\n };\n } else {\n sortOrder = this.getSortField() === sortField ? this.getCalculatedSortOrder(this.getSortOrder()) : sortOrder;\n\n if (this.props.removableSort) {\n sortField = sortOrder ? sortField : null;\n }\n\n eventMeta = {\n sortField: sortField,\n sortOrder: sortOrder\n };\n }\n\n if (this.props.onSort) {\n this.props.onSort(eventMeta);\n } else {\n eventMeta.first = 0;\n this.setState(eventMeta);\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(this.processedData({\n sortField: sortField,\n sortOrder: sortOrder,\n multiSortMeta: multiSortMeta\n }));\n }\n }\n }, {\n key: \"getCalculatedSortOrder\",\n value: function getCalculatedSortOrder(currentOrder) {\n return this.props.removableSort ? this.props.defaultSortOrder === currentOrder ? currentOrder * -1 : 0 : currentOrder * -1;\n }\n }, {\n key: \"addSortMeta\",\n value: function addSortMeta(meta, multiSortMeta) {\n var index = multiSortMeta.findIndex(function (sortMeta) {\n return sortMeta.field === meta.field;\n });\n if (index >= 0) multiSortMeta[index] = meta;else multiSortMeta.push(meta);\n }\n }, {\n key: \"removeSortMeta\",\n value: function removeSortMeta(meta, multiSortMeta) {\n var index = multiSortMeta.findIndex(function (sortMeta) {\n return sortMeta.field === meta.field;\n });\n\n if (index >= 0) {\n multiSortMeta.splice(index, 1);\n }\n\n multiSortMeta = multiSortMeta.length > 0 ? multiSortMeta : null;\n }\n }, {\n key: \"sortSingle\",\n value: function sortSingle(data, field, order) {\n if (this.props.groupRowsBy && this.props.groupRowsBy === this.props.sortField) {\n var multiSortMeta = [{\n field: this.props.sortField,\n order: this.props.sortOrder || this.props.defaultSortOrder\n }];\n this.props.sortField !== field && multiSortMeta.push({\n field: field,\n order: order\n });\n return this.sortMultiple(data, multiSortMeta);\n }\n\n var value = _toConsumableArray(data);\n\n if (this.columnSortable && this.columnSortFunction) {\n value = this.columnSortFunction({\n field: field,\n order: order\n });\n } else {\n value.sort(function (data1, data2) {\n var value1 = ObjectUtils.resolveFieldData(data1, field);\n var value2 = ObjectUtils.resolveFieldData(data2, field);\n var result = null;\n if (value1 == null && value2 != null) result = -1;else if (value1 != null && value2 == null) result = 1;else if (value1 == null && value2 == null) result = 0;else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, undefined, {\n numeric: true\n });else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return order * result;\n });\n }\n\n return value;\n }\n }, {\n key: \"sortMultiple\",\n value: function sortMultiple(data) {\n var _this10 = this;\n\n var multiSortMeta = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n if (this.props.groupRowsBy && (this.groupRowsSortMeta || multiSortMeta.length && this.props.groupRowsBy === multiSortMeta[0].field)) {\n var firstSortMeta = multiSortMeta[0];\n !this.groupRowsSortMeta && (this.groupRowsSortMeta = firstSortMeta);\n\n if (firstSortMeta.field !== this.groupRowsSortMeta.field) {\n multiSortMeta = [this.groupRowsSortMeta].concat(_toConsumableArray(multiSortMeta));\n }\n }\n\n var value = _toConsumableArray(data);\n\n if (this.columnSortable && this.columnSortFunction) {\n var meta = multiSortMeta.find(function (meta) {\n return meta.field === _this10.columnField;\n });\n var field = this.columnField;\n var order = meta ? meta.order : this.defaultSortOrder;\n value = this.columnSortFunction({\n field: field,\n order: order\n });\n } else {\n value.sort(function (data1, data2) {\n return _this10.multisortField(data1, data2, multiSortMeta, 0);\n });\n }\n\n return value;\n }\n }, {\n key: \"multisortField\",\n value: function multisortField(data1, data2, multiSortMeta, index) {\n var value1 = ObjectUtils.resolveFieldData(data1, multiSortMeta[index].field);\n var value2 = ObjectUtils.resolveFieldData(data2, multiSortMeta[index].field);\n var result = null;\n\n if (typeof value1 === 'string' || value1 instanceof String) {\n if (value1.localeCompare && value1 !== value2) {\n return multiSortMeta[index].order * value1.localeCompare(value2, undefined, {\n numeric: true\n });\n }\n } else {\n result = value1 < value2 ? -1 : 1;\n }\n\n if (value1 === value2) {\n return multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, multiSortMeta, index + 1) : 0;\n }\n\n return multiSortMeta[index].order * result;\n }\n }, {\n key: \"onFilterChange\",\n value: function onFilterChange(filters) {\n this.clearEditingMetaData();\n this.setState({\n d_filters: filters\n });\n }\n }, {\n key: \"onFilterApply\",\n value: function onFilterApply() {\n var _this11 = this;\n\n clearTimeout(this.filterTimeout);\n this.filterTimeout = setTimeout(function () {\n var filters = _this11.cloneFilters(_this11.state.d_filters);\n\n if (_this11.props.onFilter) {\n _this11.props.onFilter({\n filters: filters\n });\n } else {\n _this11.setState({\n first: 0,\n filters: filters\n });\n }\n\n if (_this11.props.onValueChange) {\n _this11.props.onValueChange(_this11.processedData({\n filters: filters\n }));\n }\n }, this.props.filterDelay);\n }\n }, {\n key: \"filterLocal\",\n value: function filterLocal(data, filters) {\n if (!data) return;\n filters = filters || {};\n var columns = this.getColumns();\n var filteredValue = [];\n var isGlobalFilter = filters['global'] || this.props.globalFilter;\n var globalFilterFieldsArray;\n\n if (isGlobalFilter) {\n globalFilterFieldsArray = this.props.globalFilterFields || columns.filter(function (col) {\n return !col.props.excludeGlobalFilter;\n }).map(function (col) {\n return col.props.filterField || col.props.field;\n });\n }\n\n for (var i = 0; i < data.length; i++) {\n var localMatch = true;\n var globalMatch = false;\n var localFiltered = false;\n\n for (var prop in filters) {\n if (Object.prototype.hasOwnProperty.call(filters, prop) && prop !== 'global') {\n localFiltered = true;\n var filterField = prop;\n var filterMeta = filters[filterField];\n\n if (filterMeta.operator) {\n for (var j = 0; j < filterMeta.constraints.length; j++) {\n var filterConstraint = filterMeta.constraints[j];\n localMatch = this.executeLocalFilter(filterField, data[i], filterConstraint, j);\n\n if (filterMeta.operator === FilterOperator.OR && localMatch || filterMeta.operator === FilterOperator.AND && !localMatch) {\n break;\n }\n }\n } else {\n localMatch = this.executeLocalFilter(filterField, data[i], filterMeta, 0);\n }\n\n if (!localMatch) {\n break;\n }\n }\n }\n\n if (isGlobalFilter && !globalMatch && globalFilterFieldsArray) {\n for (var _j = 0; _j < globalFilterFieldsArray.length; _j++) {\n var globalFilterField = globalFilterFieldsArray[_j];\n var matchMode = filters['global'] ? filters['global'].matchMode : FilterMatchMode$1.CONTAINS;\n var value = filters['global'] ? filters['global'].value : this.props.globalFilter;\n globalMatch = FilterService.filters[matchMode](ObjectUtils.resolveFieldData(data[i], globalFilterField), value, this.props.filterLocale);\n\n if (globalMatch) {\n break;\n }\n }\n }\n\n var matches = void 0;\n\n if (isGlobalFilter) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n } else {\n matches = localFiltered && localMatch;\n }\n\n if (matches) {\n filteredValue.push(data[i]);\n }\n }\n\n if (filteredValue.length === this.props.value.length) {\n filteredValue = data;\n }\n\n return filteredValue;\n }\n }, {\n key: \"executeLocalFilter\",\n value: function executeLocalFilter(field, rowData, filterMeta, index) {\n var filterValue = filterMeta.value;\n var filterMatchMode = filterMeta.matchMode === 'custom' ? \"custom_\".concat(field) : filterMeta.matchMode || FilterMatchMode$1.STARTS_WITH;\n var dataFieldValue = ObjectUtils.resolveFieldData(rowData, field);\n var filterConstraint = FilterService.filters[filterMatchMode];\n return filterConstraint(dataFieldValue, filterValue, this.props.filterLocale, index);\n }\n }, {\n key: \"cloneFilters\",\n value: function cloneFilters(filters) {\n var _this12 = this;\n\n filters = filters || this.props.filters;\n var cloned = {};\n\n if (filters) {\n Object.entries(filters).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n prop = _ref2[0],\n value = _ref2[1];\n\n cloned[prop] = value.operator ? {\n operator: value.operator,\n constraints: value.constraints.map(function (constraint) {\n return _objectSpread({}, constraint);\n })\n } : _objectSpread({}, value);\n });\n } else {\n var columns = this.getColumns();\n cloned = columns.reduce(function (_filters, col) {\n if (col.props.filter) {\n var field = col.props.filterField || col.props.field;\n var filterFunction = col.props.filterFunction;\n var dataType = col.props.dataType;\n var matchMode = col.props.filterMatchMode || (PrimeReact.filterMatchModeOptions[dataType] ? PrimeReact.filterMatchModeOptions[dataType][0] : FilterMatchMode$1.STARTS_WITH);\n var constraint = {\n value: null,\n matchMode: matchMode\n };\n\n if (filterFunction) {\n FilterService.register(\"custom_\".concat(field), function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return filterFunction.apply(void 0, args.concat([{\n column: col\n }]));\n });\n }\n\n _filters[field] = _this12.props.filterDisplay === 'menu' ? {\n operator: FilterOperator.AND,\n constraints: [constraint]\n } : constraint;\n }\n\n return _filters;\n }, {});\n }\n\n return cloned;\n }\n }, {\n key: \"filter\",\n value: function filter(value, field, matchMode) {\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n\n var filters = _objectSpread({}, this.state.d_filters);\n\n var meta = filters[field];\n var constraint = meta && meta.operator ? meta.constraints[index] : meta;\n constraint = meta ? {\n value: value,\n matchMode: matchMode || constraint.matchMode\n } : {\n value: value,\n matchMode: matchMode\n };\n this.props.filterDisplay === 'menu' && meta && meta.operator ? filters[field].constraints[index] = constraint : filters[field] = constraint;\n this.setState({\n d_filters: filters\n }, this.onFilterApply);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var state = {\n d_rows: this.props.rows,\n d_filters: this.cloneFilters(this.props.filters),\n groupRowsSortMeta: null,\n editingMeta: {}\n };\n\n if (!this.props.onPage) {\n state.first = this.props.first;\n state.rows = this.props.rows;\n }\n\n if (!this.props.onSort) {\n state.sortField = this.props.sortField;\n state.sortOrder = this.props.sortOrder;\n state.multiSortMeta = this.props.multiSortMeta;\n }\n\n if (!this.props.onFilter) {\n state.filters = this.props.filters;\n }\n\n this.resetColumnOrder();\n this.setState(state);\n }\n }, {\n key: \"resetColumnOrder\",\n value: function resetColumnOrder() {\n var columns = this.getColumns(true);\n var columnOrder = [];\n\n if (columns) {\n columnOrder = columns.reduce(function (orders, col) {\n orders.push(col.props.columnKey || col.props.field);\n return orders;\n }, []);\n }\n\n this.setState({\n columnOrder: columnOrder\n });\n }\n }, {\n key: \"exportCSV\",\n value: function exportCSV(options) {\n var _this13 = this;\n\n var data;\n var csv = \"\\uFEFF\";\n var columns = this.getColumns();\n\n if (options && options.selectionOnly) {\n data = this.props.selection || [];\n } else {\n data = [].concat(_toConsumableArray(this.props.frozenValue || []), _toConsumableArray(this.processedData() || []));\n } //headers\n\n\n columns.forEach(function (column, i) {\n var _column$props = column.props,\n field = _column$props.field,\n header = _column$props.header,\n exportable = _column$props.exportable;\n\n if (exportable && field) {\n csv += '\"' + (header || field) + '\"';\n\n if (i < columns.length - 1) {\n csv += _this13.props.csvSeparator;\n }\n }\n }); //body\n\n data.forEach(function (record) {\n csv += '\\n';\n columns.forEach(function (column, i) {\n var _column$props2 = column.props,\n field = _column$props2.field,\n exportable = _column$props2.exportable;\n\n if (exportable && field) {\n var cellData = ObjectUtils.resolveFieldData(record, field);\n\n if (cellData != null) {\n cellData = _this13.props.exportFunction ? _this13.props.exportFunction({\n data: cellData,\n field: field,\n rowData: record,\n column: column\n }) : String(cellData).replace(/\"/g, '\"\"');\n } else cellData = '';\n\n csv += '\"' + cellData + '\"';\n\n if (i < columns.length - 1) {\n csv += _this13.props.csvSeparator;\n }\n }\n });\n });\n DomHandler.exportCSV(csv, this.props.exportFilename);\n }\n }, {\n key: \"closeEditingCell\",\n value: function closeEditingCell() {\n if (this.props.editMode !== \"row\") {\n document.body.click();\n }\n }\n }, {\n key: \"processedData\",\n value: function processedData(localState) {\n var data = this.props.value || [];\n\n if (!this.props.lazy) {\n if (data && data.length) {\n var filters = localState && localState.filters || this.getFilters();\n var sortField = localState && localState.sortField || this.getSortField();\n var sortOrder = localState && localState.sortOrder || this.getSortOrder();\n var multiSortMeta = localState && localState.multiSortMeta || this.getMultiSortMeta();\n\n if (ObjectUtils.isNotEmpty(filters) || this.props.globalFilter) {\n data = this.filterLocal(data, filters);\n }\n\n if (sortField || ObjectUtils.isNotEmpty(multiSortMeta)) {\n if (this.props.sortMode === 'single') data = this.sortSingle(data, sortField, sortOrder);else if (this.props.sortMode === 'multiple') data = this.sortMultiple(data, multiSortMeta);\n }\n }\n }\n\n return data;\n }\n }, {\n key: \"dataToRender\",\n value: function dataToRender(data) {\n if (data && this.props.paginator) {\n var first = this.props.lazy ? 0 : this.getFirst();\n return data.slice(first, first + this.getRows());\n }\n\n return data;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.el.setAttribute(this.attributeSelector, '');\n\n if (this.props.responsiveLayout === 'stack' && !this.props.scrollable) {\n this.createResponsiveStyle();\n }\n\n if (this.isStateful() && this.props.resizableColumns) {\n this.restoreColumnWidths();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.isStateful()) {\n this.saveState();\n }\n\n if (prevProps.responsiveLayout !== this.props.responsiveLayout) {\n this.destroyResponsiveStyle();\n\n if (this.props.responsiveLayout === 'stack' && !this.props.scrollable) {\n this.createResponsiveStyle();\n }\n }\n\n if (prevProps.filters !== this.props.filters) {\n this.setState({\n filters: this.cloneFilters(this.props.filters),\n d_filters: this.cloneFilters(this.props.filters)\n });\n }\n\n if (prevProps.globalFilter !== this.props.globalFilter) {\n this.filter(this.props.globalFilter, 'global', 'contains');\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindColumnResizeEvents();\n this.destroyStyleElement();\n this.destroyResponsiveStyle();\n }\n }, {\n key: \"renderLoader\",\n value: function renderLoader() {\n if (this.props.loading) {\n var iconClassName = classNames('p-datatable-loading-icon pi-spin', this.props.loadingIcon);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datatable-loading-overlay p-component-overlay\"\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: iconClassName\n }));\n }\n\n return null;\n }\n }, {\n key: \"renderHeader\",\n value: function renderHeader() {\n if (this.props.header) {\n var content = ObjectUtils.getJSXElement(this.props.header, {\n props: this.props\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datatable-header\"\n }, content);\n }\n\n return null;\n }\n }, {\n key: \"renderTableHeader\",\n value: function renderTableHeader(options, empty) {\n var sortField = this.getSortField();\n var sortOrder = this.getSortOrder();\n\n var multiSortMeta = _toConsumableArray(this.getMultiSortMeta());\n\n var groupRowSortField = this.getGroupRowSortField();\n var filters = this.state.d_filters;\n var filtersStore = this.getFilters();\n var processedData = options.items,\n columns = options.columns;\n return /*#__PURE__*/React.createElement(TableHeader, {\n value: processedData,\n tableProps: this.props,\n columns: columns,\n tabIndex: this.props.tabIndex,\n empty: empty,\n headerColumnGroup: this.props.headerColumnGroup,\n resizableColumns: this.props.resizableColumns,\n onColumnResizeStart: this.onColumnResizeStart,\n onColumnResizerClick: this.props.onColumnResizerClick,\n onColumnResizerDoubleClick: this.props.onColumnResizerDoubleClick,\n sortMode: this.props.sortMode,\n sortField: sortField,\n sortOrder: sortOrder,\n multiSortMeta: multiSortMeta,\n groupRowsBy: this.props.groupRowsBy,\n groupRowSortField: groupRowSortField,\n onSortChange: this.onSortChange,\n filterDisplay: this.props.filterDisplay,\n filters: filters,\n filtersStore: filtersStore,\n onFilterChange: this.onFilterChange,\n onFilterApply: this.onFilterApply,\n allRowsSelected: this.allRowsSelected,\n onColumnCheckboxChange: this.onColumnHeaderCheckboxChange,\n onColumnMouseDown: this.onColumnHeaderMouseDown,\n onColumnDragStart: this.onColumnHeaderDragStart,\n onColumnDragOver: this.onColumnHeaderDragOver,\n onColumnDragLeave: this.onColumnHeaderDragLeave,\n onColumnDrop: this.onColumnHeaderDrop,\n rowGroupMode: this.props.rowGroupMode,\n reorderableColumns: this.props.reorderableColumns\n });\n }\n }, {\n key: \"renderTableBody\",\n value: function renderTableBody(options, selectionModeInColumn, empty, isVirtualScrollerDisabled) {\n var tableSelector = this.attributeSelector;\n var first = this.getFirst();\n var editingMeta = this.state.editingMeta;\n var rows = options.rows,\n columns = options.columns,\n contentRef = options.contentRef,\n className = options.className;\n var frozenBody = this.props.frozenValue && /*#__PURE__*/React.createElement(TableBody, {\n value: this.props.frozenValue,\n className: \"p-datatable-frozen-tbody\",\n frozenRow: true,\n tableProps: this.props,\n tableSelector: tableSelector,\n columns: columns,\n selectionModeInColumn: selectionModeInColumn,\n first: first,\n editingMeta: editingMeta,\n onEditingMetaChange: this.onEditingMetaChange,\n tabIndex: this.props.tabIndex,\n onRowClick: this.props.onRowClick,\n onRowDoubleClick: this.props.onRowDoubleClick,\n onCellClick: this.props.onCellClick,\n selection: this.props.selection,\n onSelectionChange: this.props.onSelectionChange,\n lazy: this.props.lazy,\n paginator: this.props.paginator,\n onCellSelect: this.props.onCellSelect,\n onCellUnselect: this.props.onCellUnselect,\n onRowSelect: this.props.onRowSelect,\n onRowUnselect: this.props.onRowUnselect,\n dragSelection: this.props.dragSelection,\n onContextMenu: this.props.onContextMenu,\n onContextMenuSelectionChange: this.props.onContextMenuSelectionChange,\n metaKeySelection: this.props.metaKeySelection,\n selectionMode: this.props.selectionMode,\n cellSelection: this.props.cellSelection,\n contextMenuSelection: this.props.contextMenuSelection,\n dataKey: this.props.dataKey,\n expandedRows: this.props.expandedRows,\n onRowCollapse: this.props.onRowCollapse,\n onRowExpand: this.props.onRowExpand,\n onRowToggle: this.props.onRowToggle,\n editMode: this.props.editMode,\n editingRows: this.props.editingRows,\n onRowReorder: this.props.onRowReorder,\n scrollable: this.props.scrollable,\n rowGroupMode: this.props.rowGroupMode,\n groupRowsBy: this.props.groupRowsBy,\n expandableRowGroups: this.props.expandableRowGroups,\n loading: this.props.loading,\n emptyMessage: this.props.emptyMessage,\n rowGroupHeaderTemplate: this.props.rowGroupHeaderTemplate,\n rowExpansionTemplate: this.props.rowExpansionTemplate,\n rowGroupFooterTemplate: this.props.rowGroupFooterTemplate,\n onRowEditChange: this.props.onRowEditChange,\n compareSelectionBy: this.props.compareSelectionBy,\n selectOnEdit: this.props.selectOnEdit,\n onRowEditInit: this.props.onRowEditInit,\n rowEditValidator: this.props.rowEditValidator,\n onRowEditSave: this.props.onRowEditSave,\n onRowEditComplete: this.props.onRowEditComplete,\n onRowEditCancel: this.props.onRowEditCancel,\n cellClassName: this.props.cellClassName,\n responsiveLayout: this.props.responsiveLayout,\n showSelectionElement: this.props.showSelectionElement,\n showRowReorderElement: this.props.showRowReorderElement,\n expandedRowIcon: this.props.expandedRowIcon,\n collapsedRowIcon: this.props.collapsedRowIcon,\n rowClassName: this.props.rowClassName,\n isVirtualScrollerDisabled: true\n });\n var body = /*#__PURE__*/React.createElement(TableBody, {\n value: this.dataToRender(rows),\n className: className,\n empty: empty,\n frozenRow: false,\n tableProps: this.props,\n tableSelector: tableSelector,\n columns: columns,\n selectionModeInColumn: selectionModeInColumn,\n first: first,\n editingMeta: editingMeta,\n onEditingMetaChange: this.onEditingMetaChange,\n tabIndex: this.props.tabIndex,\n onRowClick: this.props.onRowClick,\n onRowDoubleClick: this.props.onRowDoubleClick,\n onCellClick: this.props.onCellClick,\n selection: this.props.selection,\n onSelectionChange: this.props.onSelectionChange,\n lazy: this.props.lazy,\n paginator: this.props.paginator,\n onCellSelect: this.props.onCellSelect,\n onCellUnselect: this.props.onCellUnselect,\n onRowSelect: this.props.onRowSelect,\n onRowUnselect: this.props.onRowUnselect,\n dragSelection: this.props.dragSelection,\n onContextMenu: this.props.onContextMenu,\n onContextMenuSelectionChange: this.props.onContextMenuSelectionChange,\n metaKeySelection: this.props.metaKeySelection,\n selectionMode: this.props.selectionMode,\n cellSelection: this.props.cellSelection,\n contextMenuSelection: this.props.contextMenuSelection,\n dataKey: this.props.dataKey,\n expandedRows: this.props.expandedRows,\n onRowCollapse: this.props.onRowCollapse,\n onRowExpand: this.props.onRowExpand,\n onRowToggle: this.props.onRowToggle,\n editMode: this.props.editMode,\n editingRows: this.props.editingRows,\n onRowReorder: this.props.onRowReorder,\n scrollable: this.props.scrollable,\n rowGroupMode: this.props.rowGroupMode,\n groupRowsBy: this.props.groupRowsBy,\n expandableRowGroups: this.props.expandableRowGroups,\n loading: this.props.loading,\n emptyMessage: this.props.emptyMessage,\n rowGroupHeaderTemplate: this.props.rowGroupHeaderTemplate,\n rowExpansionTemplate: this.props.rowExpansionTemplate,\n rowGroupFooterTemplate: this.props.rowGroupFooterTemplate,\n onRowEditChange: this.props.onRowEditChange,\n compareSelectionBy: this.props.compareSelectionBy,\n selectOnEdit: this.props.selectOnEdit,\n onRowEditInit: this.props.onRowEditInit,\n rowEditValidator: this.props.rowEditValidator,\n onRowEditSave: this.props.onRowEditSave,\n onRowEditComplete: this.props.onRowEditComplete,\n onRowEditCancel: this.props.onRowEditCancel,\n cellClassName: this.props.cellClassName,\n responsiveLayout: this.props.responsiveLayout,\n showSelectionElement: this.props.showSelectionElement,\n showRowReorderElement: this.props.showRowReorderElement,\n expandedRowIcon: this.props.expandedRowIcon,\n collapsedRowIcon: this.props.collapsedRowIcon,\n rowClassName: this.props.rowClassName,\n virtualScrollerContentRef: contentRef,\n virtualScrollerOptions: options,\n isVirtualScrollerDisabled: isVirtualScrollerDisabled\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, frozenBody, body);\n }\n }, {\n key: \"renderTableFooter\",\n value: function renderTableFooter(options) {\n var columns = options.columns;\n return /*#__PURE__*/React.createElement(TableFooter, {\n tableProps: this.props,\n columns: columns,\n footerColumnGroup: this.props.footerColumnGroup\n });\n }\n }, {\n key: \"renderContent\",\n value: function renderContent(processedData, columns, selectionModeInColumn, empty) {\n var _this14 = this;\n\n if (!columns) return;\n var isVirtualScrollerDisabled = this.isVirtualScrollerDisabled();\n var virtualScrollerOptions = this.props.virtualScrollerOptions || {};\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datatable-wrapper\",\n style: {\n maxHeight: isVirtualScrollerDisabled ? this.props.scrollHeight : ''\n }\n }, /*#__PURE__*/React.createElement(VirtualScroller, _extends({}, virtualScrollerOptions, {\n items: processedData,\n columns: columns,\n style: {\n height: this.props.scrollHeight\n },\n disabled: isVirtualScrollerDisabled,\n loaderDisabled: true,\n showSpacer: false,\n contentTemplate: function contentTemplate(options) {\n var ref = function ref(el) {\n _this14.table = el;\n options.spacerRef && options.spacerRef(el);\n };\n\n var tableClassName = classNames('p-datatable-table', _this14.props.tableClassName);\n\n var tableHeader = _this14.renderTableHeader(options, empty);\n\n var tableBody = _this14.renderTableBody(options, selectionModeInColumn, empty, isVirtualScrollerDisabled);\n\n var tableFooter = _this14.renderTableFooter(options);\n\n return /*#__PURE__*/React.createElement(\"table\", {\n ref: ref,\n style: _this14.props.tableStyle,\n className: tableClassName,\n role: \"table\"\n }, tableHeader, tableBody, tableFooter);\n }\n })));\n }\n }, {\n key: \"renderFooter\",\n value: function renderFooter() {\n if (this.props.footer) {\n var content = ObjectUtils.getJSXElement(this.props.footer, {\n props: this.props\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-datatable-footer\"\n }, content);\n }\n\n return null;\n }\n }, {\n key: \"renderPaginator\",\n value: function renderPaginator(position, totalRecords) {\n var className = classNames('p-paginator-' + position, this.props.paginatorClassName);\n return /*#__PURE__*/React.createElement(Paginator, {\n first: this.getFirst(),\n rows: this.getRows(),\n pageLinkSize: this.props.pageLinkSize,\n className: className,\n onPageChange: this.onPageChange,\n template: this.props.paginatorTemplate,\n totalRecords: totalRecords,\n rowsPerPageOptions: this.props.rowsPerPageOptions,\n currentPageReportTemplate: this.props.currentPageReportTemplate,\n leftContent: this.props.paginatorLeft,\n rightContent: this.props.paginatorRight,\n alwaysShow: this.props.alwaysShowPaginator,\n dropdownAppendTo: this.props.paginatorDropdownAppendTo\n });\n }\n }, {\n key: \"renderPaginatorTop\",\n value: function renderPaginatorTop(totalRecords) {\n if (this.props.paginator && this.props.paginatorPosition !== 'bottom') {\n return this.renderPaginator('top', totalRecords);\n }\n\n return null;\n }\n }, {\n key: \"renderPaginatorBottom\",\n value: function renderPaginatorBottom(totalRecords) {\n if (this.props.paginator && this.props.paginatorPosition !== 'top') {\n return this.renderPaginator('bottom', totalRecords);\n }\n\n return null;\n }\n }, {\n key: \"renderResizeHelper\",\n value: function renderResizeHelper() {\n var _this15 = this;\n\n if (this.props.resizableColumns) {\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this15.resizeHelper = el;\n },\n className: \"p-column-resizer-helper\",\n style: {\n display: 'none'\n }\n });\n }\n\n return null;\n }\n }, {\n key: \"renderReorderIndicators\",\n value: function renderReorderIndicators() {\n var _this16 = this;\n\n if (this.props.reorderableColumns) {\n var style = {\n position: 'absolute',\n display: 'none'\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n return _this16.reorderIndicatorUp = el;\n },\n className: \"pi pi-arrow-down p-datatable-reorder-indicator-up\",\n style: style\n }), /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n return _this16.reorderIndicatorDown = el;\n },\n className: \"pi pi-arrow-up p-datatable-reorder-indicator-down\",\n style: style\n }));\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this17 = this;\n\n var processedData = this.processedData();\n var columns = this.getColumns();\n var totalRecords = this.getTotalRecords(processedData);\n var empty = ObjectUtils.isEmpty(processedData);\n var selectionModeInColumn = this.getSelectionModeInColumn(columns);\n var className = classNames('p-datatable p-component', {\n 'p-datatable-hoverable-rows': this.props.rowHover || this.props.selectionMode || selectionModeInColumn,\n 'p-datatable-auto-layout': this.props.autoLayout,\n 'p-datatable-resizable': this.props.resizableColumns,\n 'p-datatable-resizable-fit': this.props.resizableColumns && this.props.columnResizeMode === 'fit',\n 'p-datatable-scrollable': this.props.scrollable,\n 'p-datatable-scrollable-vertical': this.props.scrollable && this.props.scrollDirection === 'vertical',\n 'p-datatable-scrollable-horizontal': this.props.scrollable && this.props.scrollDirection === 'horizontal',\n 'p-datatable-scrollable-both': this.props.scrollable && this.props.scrollDirection === 'both',\n 'p-datatable-flex-scrollable': this.props.scrollable && this.props.scrollHeight === 'flex',\n 'p-datatable-responsive-stack': this.props.responsiveLayout === 'stack',\n 'p-datatable-responsive-scroll': this.props.responsiveLayout === 'scroll',\n 'p-datatable-striped': this.props.stripedRows,\n 'p-datatable-gridlines': this.props.showGridlines,\n 'p-datatable-grouped-header': this.props.headerColumnGroup != null,\n 'p-datatable-grouped-footer': this.props.footerColumnGroup != null,\n 'p-datatable-sm': this.props.size === 'small',\n 'p-datatable-lg': this.props.size === 'large'\n }, this.props.className);\n var loader = this.renderLoader();\n var header = this.renderHeader();\n var paginatorTop = this.renderPaginatorTop(totalRecords);\n var content = this.renderContent(processedData, columns, selectionModeInColumn, empty);\n var paginatorBottom = this.renderPaginatorBottom(totalRecords);\n var footer = this.renderFooter();\n var resizeHelper = this.renderResizeHelper();\n var reorderIndicators = this.renderReorderIndicators();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this17.el = el;\n },\n id: this.props.id,\n className: className,\n style: this.props.style,\n \"data-scrollselectors\": \".p-datatable-wrapper\"\n }, loader, header, paginatorTop, content, paginatorBottom, footer, resizeHelper, reorderIndicators);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.rows !== prevState.d_rows && !nextProps.onPage) {\n return {\n rows: nextProps.rows,\n d_rows: nextProps.rows\n };\n }\n\n return null;\n }\n }]);\n\n return DataTable;\n}(Component);\n\n_defineProperty(DataTable, \"defaultProps\", {\n id: null,\n value: null,\n header: null,\n footer: null,\n style: null,\n className: null,\n tableStyle: null,\n tableClassName: null,\n paginator: false,\n paginatorPosition: 'bottom',\n alwaysShowPaginator: true,\n paginatorClassName: null,\n paginatorTemplate: 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown',\n paginatorLeft: null,\n paginatorRight: null,\n paginatorDropdownAppendTo: null,\n pageLinkSize: 5,\n rowsPerPageOptions: null,\n currentPageReportTemplate: '({currentPage} of {totalPages})',\n first: 0,\n rows: null,\n totalRecords: null,\n lazy: false,\n sortField: null,\n sortOrder: null,\n multiSortMeta: null,\n sortMode: 'single',\n defaultSortOrder: 1,\n removableSort: false,\n emptyMessage: null,\n selectionMode: null,\n dragSelection: false,\n cellSelection: false,\n selection: null,\n onSelectionChange: null,\n contextMenuSelection: null,\n onContextMenuSelectionChange: null,\n compareSelectionBy: 'deepEquals',\n dataKey: null,\n metaKeySelection: true,\n selectOnEdit: true,\n headerColumnGroup: null,\n footerColumnGroup: null,\n rowExpansionTemplate: null,\n expandedRows: null,\n onRowToggle: null,\n resizableColumns: false,\n columnResizeMode: 'fit',\n reorderableColumns: false,\n filters: null,\n globalFilter: null,\n filterDelay: 300,\n filterLocale: undefined,\n scrollable: false,\n scrollHeight: null,\n scrollDirection: 'vertical',\n virtualScrollerOptions: null,\n frozenWidth: null,\n frozenValue: null,\n csvSeparator: ',',\n exportFilename: 'download',\n rowGroupMode: null,\n autoLayout: false,\n rowClassName: null,\n cellClassName: null,\n rowGroupHeaderTemplate: null,\n rowGroupFooterTemplate: null,\n loading: false,\n loadingIcon: 'pi pi-spinner',\n tabIndex: 0,\n stateKey: null,\n stateStorage: 'session',\n groupRowsBy: null,\n editMode: 'cell',\n editingRows: null,\n expandableRowGroups: false,\n rowHover: false,\n showGridlines: false,\n stripedRows: false,\n size: 'normal',\n responsiveLayout: 'stack',\n breakpoint: '960px',\n filterDisplay: 'menu',\n expandedRowIcon: 'pi pi-chevron-down',\n collapsedRowIcon: 'pi pi-chevron-right',\n onRowEditComplete: null,\n globalFilterFields: null,\n showSelectionElement: null,\n showRowReorderElement: null,\n onColumnResizeEnd: null,\n onColumnResizerClick: null,\n onColumnResizerDoubleClick: null,\n onSort: null,\n onPage: null,\n onFilter: null,\n onAllRowsSelect: null,\n onAllRowsUnselect: null,\n onRowClick: null,\n onRowDoubleClick: null,\n onRowSelect: null,\n onRowUnselect: null,\n onRowExpand: null,\n onRowCollapse: null,\n onContextMenu: null,\n onColReorder: null,\n onCellClick: null,\n onCellSelect: null,\n onCellUnselect: null,\n onRowReorder: null,\n onValueChange: null,\n rowEditValidator: null,\n onRowEditInit: null,\n onRowEditSave: null,\n onRowEditCancel: null,\n onRowEditChange: null,\n exportFunction: null,\n customSaveState: null,\n customRestoreState: null,\n onStateSave: null,\n onStateRestore: null\n});\n\nexport { DataTable };\n","import { DomHandler } from 'primereact/utils';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar KeyFilter = /*#__PURE__*/function () {\n function KeyFilter() {\n _classCallCheck(this, KeyFilter);\n }\n\n _createClass(KeyFilter, null, [{\n key: \"isNavKeyPress\",\n value:\n /* eslint-disable */\n\n /* eslint-enable */\n function isNavKeyPress(e) {\n var k = e.keyCode;\n k = DomHandler.getBrowser().safari ? KeyFilter.SAFARI_KEYS[k] || k : k;\n return k >= 33 && k <= 40 || k === KeyFilter.KEYS.RETURN || k === KeyFilter.KEYS.TAB || k === KeyFilter.KEYS.ESC;\n }\n }, {\n key: \"isSpecialKey\",\n value: function isSpecialKey(e) {\n var k = e.keyCode;\n return k === 9 || k === 13 || k === 27 || k === 16 || k === 17 || k >= 18 && k <= 20 || DomHandler.getBrowser().opera && !e.shiftKey && (k === 8 || k >= 33 && k <= 35 || k >= 36 && k <= 39 || k >= 44 && k <= 45);\n }\n }, {\n key: \"getKey\",\n value: function getKey(e) {\n var k = e.keyCode || e.charCode;\n return DomHandler.getBrowser().safari ? KeyFilter.SAFARI_KEYS[k] || k : k;\n }\n }, {\n key: \"getCharCode\",\n value: function getCharCode(e) {\n return e.charCode || e.keyCode || e.which;\n }\n }, {\n key: \"onKeyPress\",\n value: function onKeyPress(e, keyfilter, validateOnly) {\n if (validateOnly) {\n return;\n }\n\n var regex = KeyFilter.DEFAULT_MASKS[keyfilter] ? KeyFilter.DEFAULT_MASKS[keyfilter] : keyfilter;\n var browser = DomHandler.getBrowser();\n\n if (e.ctrlKey || e.altKey) {\n return;\n }\n\n var k = this.getKey(e);\n\n if (browser.mozilla && (this.isNavKeyPress(e) || k === KeyFilter.KEYS.BACKSPACE || k === KeyFilter.KEYS.DELETE && e.charCode === 0)) {\n return;\n }\n\n var c = this.getCharCode(e);\n var cc = String.fromCharCode(c);\n\n if (browser.mozilla && (this.isSpecialKey(e) || !cc)) {\n return;\n }\n\n if (!regex.test(cc)) {\n e.preventDefault();\n }\n }\n }, {\n key: \"validate\",\n value: function validate(e, keyfilter) {\n var value = e.target.value,\n validatePattern = true;\n\n if (value && !keyfilter.test(value)) {\n validatePattern = false;\n }\n\n return validatePattern;\n }\n }]);\n\n return KeyFilter;\n}();\n\n_defineProperty(KeyFilter, \"DEFAULT_MASKS\", {\n pint: /[\\d]/,\n int: /[\\d\\-]/,\n pnum: /[\\d\\.]/,\n money: /[\\d\\.\\s,]/,\n num: /[\\d\\-\\.]/,\n hex: /[0-9a-f]/i,\n email: /[a-z0-9_\\.\\-@]/i,\n alpha: /[a-z_]/i,\n alphanum: /[a-z0-9_]/i\n});\n\n_defineProperty(KeyFilter, \"KEYS\", {\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n BACKSPACE: 8,\n DELETE: 46\n});\n\n_defineProperty(KeyFilter, \"SAFARI_KEYS\", {\n 63234: 37,\n // left\n 63235: 39,\n // right\n 63232: 38,\n // up\n 63233: 40,\n // down\n 63276: 33,\n // page up\n 63277: 34,\n // page down\n 63272: 46,\n // delete\n 63273: 36,\n // home\n 63275: 35 // end\n\n});\n\nexport { KeyFilter };\n","import React, { createRef, Component } from 'react';\nimport { DomHandler, classNames, ObjectUtils } from 'primereact/utils';\nimport { KeyFilter } from 'primereact/keyfilter';\nimport { tip } from 'primereact/tooltip';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar InputTextComponent = /*#__PURE__*/function (_Component) {\n _inherits(InputTextComponent, _Component);\n\n var _super = _createSuper(InputTextComponent);\n\n function InputTextComponent(props) {\n var _this;\n\n _classCallCheck(this, InputTextComponent);\n\n _this = _super.call(this, props);\n _this.onInput = _this.onInput.bind(_assertThisInitialized(_this));\n _this.onKeyPress = _this.onKeyPress.bind(_assertThisInitialized(_this));\n _this.elementRef = /*#__PURE__*/createRef(_this.props.forwardRef);\n return _this;\n }\n\n _createClass(InputTextComponent, [{\n key: \"isFilled\",\n value: function isFilled() {\n return this.props.value != null && this.props.value.toString().length > 0 || this.props.defaultValue != null && this.props.defaultValue.toString().length > 0 || this.elementRef && this.elementRef.current && this.elementRef.current.value != null && this.elementRef.current.value.toString().length > 0;\n }\n }, {\n key: \"onKeyPress\",\n value: function onKeyPress(event) {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.keyfilter) {\n KeyFilter.onKeyPress(event, this.props.keyfilter, this.props.validateOnly);\n }\n }\n }, {\n key: \"onInput\",\n value: function onInput(event) {\n var validatePattern = true;\n\n if (this.props.keyfilter && this.props.validateOnly) {\n validatePattern = KeyFilter.validate(event, this.props.keyfilter);\n }\n\n if (this.props.onInput) {\n this.props.onInput(event, validatePattern);\n }\n\n if (!this.props.onChange) {\n if (event.target.value.length > 0) DomHandler.addClass(event.target, 'p-filled');else DomHandler.removeClass(event.target, 'p-filled');\n }\n }\n }, {\n key: \"updateForwardRef\",\n value: function updateForwardRef() {\n var ref = this.props.forwardRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.elementRef.current);\n } else {\n ref.current = this.elementRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateForwardRef();\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.elementRef.current,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-inputtext p-component', {\n 'p-disabled': this.props.disabled,\n 'p-filled': this.isFilled()\n }, this.props.className);\n var inputProps = ObjectUtils.findDiffKeys(this.props, InputTextComponent.defaultProps);\n return /*#__PURE__*/React.createElement(\"input\", _extends({\n ref: this.elementRef\n }, inputProps, {\n className: className,\n onInput: this.onInput,\n onKeyPress: this.onKeyPress\n }));\n }\n }]);\n\n return InputTextComponent;\n}(Component);\n\n_defineProperty(InputTextComponent, \"defaultProps\", {\n keyfilter: null,\n validateOnly: false,\n tooltip: null,\n tooltipOptions: null,\n onInput: null,\n onKeyPress: null,\n forwardRef: null\n});\n\nvar InputText = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(InputTextComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nexport { InputText };\n","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc && doc.defaultView || window;\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n var css = '';\n var transforms = '';\n\n if (typeof property === 'string') {\n return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n }\n\n Object.keys(property).forEach(function (key) {\n var value = property[key];\n\n if (!value && value !== 0) {\n node.style.removeProperty(hyphenate(key));\n } else if (isTransform(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += hyphenate(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += \"transform: \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default style;","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { DEFAULT_INTL_CONFIG as CORE_DEFAULT_INTL_CONFIG } from '@formatjs/intl';\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n ' needs to exist in the component ancestry.');\n}\nexport var DEFAULT_INTL_CONFIG = __assign(__assign({}, CORE_DEFAULT_INTL_CONFIG), { textComponent: React.Fragment });\n/**\n * Takes a `formatXMLElementFn`, and composes it in function, which passes\n * argument `parts` through, assigning unique key to each part, to prevent\n * \"Each child in a list should have a unique \"key\"\" React error.\n * @param formatXMLElementFn\n */\nexport function assignUniqueKeysToParts(formatXMLElementFn) {\n return function (parts) {\n // eslint-disable-next-line prefer-rest-params\n return formatXMLElementFn(React.Children.toArray(parts));\n };\n}\nexport function shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (objA[key] !== objB[key] ||\n !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n","import * as React from 'react'; // TODO: check\n\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'NavbarContext';\nexport default context;","import { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport PrimeReact from 'primereact/api';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Portal = /*#__PURE__*/function (_Component) {\n _inherits(Portal, _Component);\n\n var _super = _createSuper(Portal);\n\n function Portal(props) {\n var _this;\n\n _classCallCheck(this, Portal);\n\n _this = _super.call(this, props);\n _this.state = {\n mounted: props.visible\n };\n return _this;\n }\n\n _createClass(Portal, [{\n key: \"hasDOM\",\n value: function hasDOM() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.hasDOM() && !this.state.mounted) {\n this.setState({\n mounted: true\n }, this.props.onMounted);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.props.onUnmounted && this.props.onUnmounted();\n }\n }, {\n key: \"render\",\n value: function render() {\n var element = this.props.element || this.props.children;\n\n if (element && this.state.mounted) {\n var appendTo = this.props.appendTo || PrimeReact.appendTo || document.body;\n return appendTo === 'self' ? element : /*#__PURE__*/ReactDOM.createPortal(element, appendTo);\n }\n\n return null;\n }\n }]);\n\n return Portal;\n}(Component);\n\n_defineProperty(Portal, \"defaultProps\", {\n element: null,\n appendTo: null,\n visible: false,\n onMounted: null,\n onUnmounted: null\n});\n\nexport { Portal };\n","/*!\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nvar prefix = \"fas\";\nvar faAd = {\n prefix: 'fas',\n iconName: 'ad',\n icon: [512, 512, [], \"f641\", \"M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z\"]\n};\nvar faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [448, 512, [], \"f2b9\", \"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [], \"f2bb\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faAdjust = {\n prefix: 'fas',\n iconName: 'adjust',\n icon: [512, 512, [], \"f042\", \"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\"]\n};\nvar faAirFreshener = {\n prefix: 'fas',\n iconName: 'air-freshener',\n icon: [512, 512, [], \"f5d0\", \"M224 160H96C43 160 0 203 0 256V480C0 497.625 14.375 512 32 512H288C305.625 512 320 497.625 320 480V256C320 203 277 160 224 160ZM160 416C115.875 416 80 380.125 80 336S115.875 256 160 256S240 291.875 240 336S204.125 416 160 416ZM224 32C224 14.375 209.625 0 192 0H128C110.375 0 96 14.375 96 32V128H224V32ZM381.781 51.578C383 50.969 384 49.359 384 48C384 46.625 383 45.031 381.781 44.422L352 32L339.562 2.219C338.969 1 337.375 0 336 0S333.031 1 332.406 2.219L320 32L290.219 44.422C289 45.031 288 46.625 288 48C288 49.359 289 50.969 290.219 51.578L320 64L332.406 93.781C333.031 95 334.625 96 336 96S338.969 95 339.562 93.781L352 64L381.781 51.578ZM448 64L460.406 93.781C461.031 95 462.625 96 464 96S466.969 95 467.562 93.781L480 64L509.781 51.578C511 50.969 512 49.359 512 48C512 46.625 511 45.031 509.781 44.422L480 32L467.562 2.219C466.969 1 465.375 0 464 0S461.031 1 460.406 2.219L448 32L418.219 44.422C417 45.031 416 46.625 416 48C416 49.359 417 50.969 418.219 51.578L448 64ZM480 224L467.562 194.219C466.969 193 465.375 192 464 192S461.031 193 460.406 194.219L448 224L418.219 236.422C417 237.031 416 238.625 416 240C416 241.359 417 242.969 418.219 243.578L448 256L460.406 285.781C461.031 287 462.625 288 464 288S466.969 287 467.562 285.781L480 256L509.781 243.578C511 242.969 512 241.359 512 240C512 238.625 511 237.031 509.781 236.422L480 224ZM445.781 147.578C447 146.969 448 145.359 448 144C448 142.625 447 141.031 445.781 140.422L416 128L403.562 98.219C402.969 97 401.375 96 400 96S397.031 97 396.406 98.219L384 128L354.219 140.422C353 141.031 352 142.625 352 144C352 145.359 353 146.969 354.219 147.578L384 160L396.406 189.781C397.031 191 398.625 192 400 192S402.969 191 403.562 189.781L416 160L445.781 147.578Z\"]\n};\nvar faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\"]\n};\nvar faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\"]\n};\nvar faAllergies = {\n prefix: 'fas',\n iconName: 'allergies',\n icon: [448, 512, [], \"f461\", \"M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faAmbulance = {\n prefix: 'fas',\n iconName: 'ambulance',\n icon: [640, 512, [], \"f0f9\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faAmericanSignLanguageInterpreting = {\n prefix: 'fas',\n iconName: 'american-sign-language-interpreting',\n icon: [640, 512, [], \"f2a3\", \"M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z\"]\n};\nvar faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [], \"f13d\", \"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\"]\n};\nvar faAngleDoubleDown = {\n prefix: 'fas',\n iconName: 'angle-double-down',\n icon: [320, 512, [], \"f103\", \"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\"]\n};\nvar faAngleDoubleLeft = {\n prefix: 'fas',\n iconName: 'angle-double-left',\n icon: [448, 512, [], \"f100\", \"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\"]\n};\nvar faAngleDoubleRight = {\n prefix: 'fas',\n iconName: 'angle-double-right',\n icon: [448, 512, [], \"f101\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\"]\n};\nvar faAngleDoubleUp = {\n prefix: 'fas',\n iconName: 'angle-double-up',\n icon: [320, 512, [], \"f102\", \"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\"]\n};\nvar faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [320, 512, [], \"f107\", \"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"]\n};\nvar faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [256, 512, [], \"f104\", \"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"]\n};\nvar faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [256, 512, [], \"f105\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"]\n};\nvar faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [320, 512, [], \"f106\", \"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"]\n};\nvar faAngry = {\n prefix: 'fas',\n iconName: 'angry',\n icon: [496, 512, [], \"f556\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z\"]\n};\nvar faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [], \"f644\", \"M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z\"]\n};\nvar faAppleAlt = {\n prefix: 'fas',\n iconName: 'apple-alt',\n icon: [448, 512, [], \"f5d1\", \"M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z\"]\n};\nvar faArchive = {\n prefix: 'fas',\n iconName: 'archive',\n icon: [512, 512, [], \"f187\", \"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [576, 512, [], \"f557\", \"M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"]\n};\nvar faArrowAltCircleDown = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-down',\n icon: [512, 512, [], \"f358\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z\"]\n};\nvar faArrowAltCircleLeft = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-left',\n icon: [512, 512, [], \"f359\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z\"]\n};\nvar faArrowAltCircleRight = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-right',\n icon: [512, 512, [], \"f35a\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\"]\n};\nvar faArrowAltCircleUp = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-up',\n icon: [512, 512, [], \"f35b\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z\"]\n};\nvar faArrowCircleDown = {\n prefix: 'fas',\n iconName: 'arrow-circle-down',\n icon: [512, 512, [], \"f0ab\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z\"]\n};\nvar faArrowCircleLeft = {\n prefix: 'fas',\n iconName: 'arrow-circle-left',\n icon: [512, 512, [], \"f0a8\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z\"]\n};\nvar faArrowCircleRight = {\n prefix: 'fas',\n iconName: 'arrow-circle-right',\n icon: [512, 512, [], \"f0a9\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z\"]\n};\nvar faArrowCircleUp = {\n prefix: 'fas',\n iconName: 'arrow-circle-up',\n icon: [512, 512, [], \"f0aa\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z\"]\n};\nvar faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [448, 512, [], \"f063\", \"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"]\n};\nvar faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [448, 512, [], \"f060\", \"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"]\n};\nvar faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [448, 512, [], \"f061\", \"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"]\n};\nvar faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [448, 512, [], \"f062\", \"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\"]\n};\nvar faArrowsAlt = {\n prefix: 'fas',\n iconName: 'arrows-alt',\n icon: [512, 512, [], \"f0b2\", \"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z\"]\n};\nvar faArrowsAltH = {\n prefix: 'fas',\n iconName: 'arrows-alt-h',\n icon: [512, 512, [], \"f337\", \"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\"]\n};\nvar faArrowsAltV = {\n prefix: 'fas',\n iconName: 'arrows-alt-v',\n icon: [256, 512, [], \"f338\", \"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\"]\n};\nvar faAssistiveListeningSystems = {\n prefix: 'fas',\n iconName: 'assistive-listening-systems',\n icon: [512, 512, [], \"f2a2\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z\"]\n};\nvar faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [512, 512, [], \"f069\", \"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\"]\n};\nvar faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [], \"f1fa\", \"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\"]\n};\nvar faAtlas = {\n prefix: 'fas',\n iconName: 'atlas',\n icon: [448, 512, [], \"f558\", \"M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z\"]\n};\nvar faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [448, 512, [], \"f5d2\", \"M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z\"]\n};\nvar faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [512, 512, [], \"f29e\", \"M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z\"]\n};\nvar faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [384, 512, [], \"f559\", \"M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z\"]\n};\nvar faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [384, 512, [], \"f77c\", \"M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [], \"f77d\", \"M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z\"]\n};\nvar faBackspace = {\n prefix: 'fas',\n iconName: 'backspace',\n icon: [640, 512, [], \"f55a\", \"M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z\"]\n};\nvar faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [512, 512, [], \"f04a\", \"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\"]\n};\nvar faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [], \"f7e5\", \"M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z\"]\n};\nvar faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160Zm431.26,45.3a17.79,17.79,0,0,0-17.06-12.69,17.55,17.55,0,0,0-5.08.74l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.28,83.28,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.88,17.88,0,0,0,24.93,3.6A17.67,17.67,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21a83.27,83.27,0,0,0,.82-19.05l11.58-3.43A17.7,17.7,0,0,0,639.26,205.3ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416Z\"]\n};\nvar faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [512, 512, [], \"e05a\", \"M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z\"]\n};\nvar faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [512, 512, [], \"f666\", \"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z\"]\n};\nvar faBalanceScale = {\n prefix: 'fas',\n iconName: 'balance-scale',\n icon: [640, 512, [], \"f24e\", \"M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faBalanceScaleLeft = {\n prefix: 'fas',\n iconName: 'balance-scale-left',\n icon: [640, 512, [], \"f515\", \"M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z\"]\n};\nvar faBalanceScaleRight = {\n prefix: 'fas',\n iconName: 'balance-scale-right',\n icon: [640, 512, [], \"f516\", \"M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z\"]\n};\nvar faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [], \"f05e\", \"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\"]\n};\nvar faBandAid = {\n prefix: 'fas',\n iconName: 'band-aid',\n icon: [640, 512, [], \"f462\", \"M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"]\n};\nvar faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [512, 512, [], \"f02a\", \"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z\"]\n};\nvar faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [], \"f0c9\", \"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"]\n};\nvar faBaseballBall = {\n prefix: 'fas',\n iconName: 'baseball-ball',\n icon: [496, 512, [], \"f433\", \"M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z\"]\n};\nvar faBasketballBall = {\n prefix: 'fas',\n iconName: 'basketball-ball',\n icon: [496, 512, [], \"f434\", \"M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z\"]\n};\nvar faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [], \"f2cd\", \"M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z\"]\n};\nvar faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [640, 512, [], \"f244\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z\"]\n};\nvar faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [640, 512, [], \"f240\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z\"]\n};\nvar faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [640, 512, [], \"f242\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [640, 512, [], \"f243\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [640, 512, [], \"f241\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z\"]\n};\nvar faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [640, 512, [], \"f236\", \"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\"]\n};\nvar faBeer = {\n prefix: 'fas',\n iconName: 'beer',\n icon: [448, 512, [], \"f0fc\", \"M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z\"]\n};\nvar faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [], \"f0f3\", \"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\"]\n};\nvar faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [640, 512, [], \"f1f6\", \"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"]\n};\nvar faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faBible = {\n prefix: 'fas',\n iconName: 'bible',\n icon: [448, 512, [], \"f647\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"]\n};\nvar faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [], \"f206\", \"M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z\"]\n};\nvar faBiking = {\n prefix: 'fas',\n iconName: 'biking',\n icon: [640, 512, [], \"f84a\", \"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"]\n};\nvar faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z\"]\n};\nvar faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [], \"f780\", \"M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faBirthdayCake = {\n prefix: 'fas',\n iconName: 'birthday-cake',\n icon: [448, 512, [], \"f1fd\", \"M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z\"]\n};\nvar faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z\"]\n};\nvar faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBlind = {\n prefix: 'fas',\n iconName: 'blind',\n icon: [384, 512, [], \"f29d\", \"M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z\"]\n};\nvar faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\"]\n};\nvar faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\"]\n};\nvar faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [320, 512, [], \"f0e7\", \"M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z\"]\n};\nvar faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [512, 512, [], \"f1e2\", \"M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [640, 512, [], \"f5d7\", \"M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z\"]\n};\nvar faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [448, 512, [], \"f55c\", \"M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z\"]\n};\nvar faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [], \"f02d\", \"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\"]\n};\nvar faBookDead = {\n prefix: 'fas',\n iconName: 'book-dead',\n icon: [448, 512, [], \"f6b7\", \"M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z\"]\n};\nvar faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z\"]\n};\nvar faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [576, 512, [], \"f518\", \"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z\"]\n};\nvar faBookReader = {\n prefix: 'fas',\n iconName: 'book-reader',\n icon: [512, 512, [], \"f5da\", \"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\"]\n};\nvar faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [], \"f02e\", \"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\"]\n};\nvar faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z\"]\n};\nvar faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBorderStyle = {\n prefix: 'fas',\n iconName: 'border-style',\n icon: [448, 512, [], \"f853\", \"M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [496, 512, [], \"f436\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [512, 512, [], \"f466\", \"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z\"]\n};\nvar faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z\"]\n};\nvar faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z\"]\n};\nvar faBoxes = {\n prefix: 'fas',\n iconName: 'boxes',\n icon: [576, 512, [], \"f468\", \"M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z\"]\n};\nvar faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [640, 512, [], \"f2a1\", \"M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [576, 512, [], \"f5dc\", \"M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z\"]\n};\nvar faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [576, 512, [], \"f7ec\", \"M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z\"]\n};\nvar faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [], \"f0b1\", \"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z\"]\n};\nvar faBroadcastTower = {\n prefix: 'fas',\n iconName: 'broadcast-tower',\n icon: [640, 512, [], \"f519\", \"M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z\"]\n};\nvar faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [640, 512, [], \"f51a\", \"M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z\"]\n};\nvar faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z\"]\n};\nvar faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [512, 512, [], \"f188\", \"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z\"]\n};\nvar faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [448, 512, [], \"f1ad\", \"M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z\"]\n};\nvar faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [576, 512, [], \"f0a1\", \"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z\"]\n};\nvar faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [496, 512, [], \"f140\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"]\n};\nvar faBurn = {\n prefix: 'fas',\n iconName: 'burn',\n icon: [384, 512, [], \"f46a\", \"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z\"]\n};\nvar faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [512, 512, [], \"f207\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBusAlt = {\n prefix: 'fas',\n iconName: 'bus-alt',\n icon: [512, 512, [], \"f55e\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [], \"f64a\", \"M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z\"]\n};\nvar faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [448, 512, [], \"f1ec\", \"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z\"]\n};\nvar faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [], \"f133\", \"M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z\"]\n};\nvar faCalendarAlt = {\n prefix: 'fas',\n iconName: 'calendar-alt',\n icon: [448, 512, [], \"f073\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z\"]\n};\nvar faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z\"]\n};\nvar faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z\"]\n};\nvar faCalendarTimes = {\n prefix: 'fas',\n iconName: 'calendar-times',\n icon: [448, 512, [], \"f273\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z\"]\n};\nvar faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [], \"f030\", \"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z\"]\n};\nvar faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [], \"f083\", \"M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z\"]\n};\nvar faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [640, 512, [], \"f6bb\", \"M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z\"]\n};\nvar faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [512, 512, [], \"f786\", \"M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z\"]\n};\nvar faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z\"]\n};\nvar faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z\"]\n};\nvar faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [], \"f1b9\", \"M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"]\n};\nvar faCarAlt = {\n prefix: 'fas',\n iconName: 'car-alt',\n icon: [480, 512, [], \"f5de\", \"M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"]\n};\nvar faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [], \"f5df\", \"M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z\"]\n};\nvar faCarCrash = {\n prefix: 'fas',\n iconName: 'car-crash',\n icon: [640, 512, [], \"f5e1\", \"M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z\"]\n};\nvar faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [], \"f5e4\", \"M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z\"]\n};\nvar faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"]\n};\nvar faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [192, 512, [], \"f0d9\", \"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\"]\n};\nvar faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [192, 512, [], \"f0da\", \"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"]\n};\nvar faCaretSquareDown = {\n prefix: 'fas',\n iconName: 'caret-square-down',\n icon: [448, 512, [], \"f150\", \"M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z\"]\n};\nvar faCaretSquareLeft = {\n prefix: 'fas',\n iconName: 'caret-square-left',\n icon: [448, 512, [], \"f191\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z\"]\n};\nvar faCaretSquareRight = {\n prefix: 'fas',\n iconName: 'caret-square-right',\n icon: [448, 512, [], \"f152\", \"M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z\"]\n};\nvar faCaretSquareUp = {\n prefix: 'fas',\n iconName: 'caret-square-up',\n icon: [448, 512, [], \"f151\", \"M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z\"]\n};\nvar faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"]\n};\nvar faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [512, 512, [], \"f787\", \"M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [576, 512, [], \"f218\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z\"]\n};\nvar faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [576, 512, [], \"f217\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z\"]\n};\nvar faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z\"]\n};\nvar faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [512, 512, [], \"f6be\", \"M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [512, 512, [], \"f0a3\", \"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\"]\n};\nvar faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [], \"f6c0\", \"M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z\"]\n};\nvar faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [640, 512, [], \"f51b\", \"M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faChalkboardTeacher = {\n prefix: 'fas',\n iconName: 'chalkboard-teacher',\n icon: [640, 512, [], \"f51c\", \"M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z\"]\n};\nvar faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z\"]\n};\nvar faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [], \"f1fe\", \"M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z\"]\n};\nvar faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [], \"f080\", \"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [], \"f201\", \"M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z\"]\n};\nvar faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [544, 512, [], \"f200\", \"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\"]\n};\nvar faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [512, 512, [], \"f00c\", \"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"]\n};\nvar faCheckCircle = {\n prefix: 'fas',\n iconName: 'check-circle',\n icon: [512, 512, [], \"f058\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\"]\n};\nvar faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [512, 512, [], \"f560\", \"M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z\"]\n};\nvar faCheckSquare = {\n prefix: 'fas',\n iconName: 'check-square',\n icon: [448, 512, [], \"f14a\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\"]\n};\nvar faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z\"]\n};\nvar faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\"]\n};\nvar faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [], \"f43a\", \"M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [512, 512, [], \"f43c\", \"M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z\"]\n};\nvar faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [], \"f43f\", \"M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z\"]\n};\nvar faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [384, 512, [], \"f441\", \"M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [320, 512, [], \"f443\", \"M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [], \"f445\", \"M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z\"]\n};\nvar faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [384, 512, [], \"f447\", \"M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChevronCircleDown = {\n prefix: 'fas',\n iconName: 'chevron-circle-down',\n icon: [512, 512, [], \"f13a\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z\"]\n};\nvar faChevronCircleLeft = {\n prefix: 'fas',\n iconName: 'chevron-circle-left',\n icon: [512, 512, [], \"f137\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z\"]\n};\nvar faChevronCircleRight = {\n prefix: 'fas',\n iconName: 'chevron-circle-right',\n icon: [512, 512, [], \"f138\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z\"]\n};\nvar faChevronCircleUp = {\n prefix: 'fas',\n iconName: 'chevron-circle-up',\n icon: [512, 512, [], \"f139\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z\"]\n};\nvar faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [448, 512, [], \"f078\", \"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"]\n};\nvar faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [320, 512, [], \"f053\", \"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"]\n};\nvar faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [320, 512, [], \"f054\", \"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"]\n};\nvar faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [448, 512, [], \"f077\", \"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"]\n};\nvar faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [384, 512, [], \"f1ae\", \"M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z\"]\n};\nvar faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [640, 512, [], \"f51d\", \"M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z\"]\n};\nvar faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [], \"f111\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"]\n};\nvar faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z\"]\n};\nvar faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [640, 512, [], \"f64f\", \"M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z\"]\n};\nvar faClinicMedical = {\n prefix: 'fas',\n iconName: 'clinic-medical',\n icon: [576, 512, [], \"f7f2\", \"M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z\"]\n};\nvar faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [], \"f328\", \"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z\"]\n};\nvar faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [], \"f017\", \"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z\"]\n};\nvar faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [512, 512, [], \"f20a\", \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z\"]\n};\nvar faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [640, 512, [], \"f0c2\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z\"]\n};\nvar faCloudDownloadAlt = {\n prefix: 'fas',\n iconName: 'cloud-download-alt',\n icon: [640, 512, [], \"f381\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\"]\n};\nvar faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z\"]\n};\nvar faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [576, 512, [], \"f6c3\", \"M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z\"]\n};\nvar faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [576, 512, [], \"f73c\", \"M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [], \"f73d\", \"M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z\"]\n};\nvar faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [512, 512, [], \"f740\", \"M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z\"]\n};\nvar faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [640, 512, [], \"f6c4\", \"M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [576, 512, [], \"f743\", \"M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudUploadAlt = {\n prefix: 'fas',\n iconName: 'cloud-upload-alt',\n icon: [640, 512, [], \"f382\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\"]\n};\nvar faCocktail = {\n prefix: 'fas',\n iconName: 'cocktail',\n icon: [576, 512, [], \"f561\", \"M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z\"]\n};\nvar faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [640, 512, [], \"f121\", \"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\"]\n};\nvar faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [384, 512, [], \"f126\", \"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\"]\n};\nvar faCoffee = {\n prefix: 'fas',\n iconName: 'coffee',\n icon: [640, 512, [], \"f0f4\", \"M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z\"]\n};\nvar faCog = {\n prefix: 'fas',\n iconName: 'cog',\n icon: [512, 512, [], \"f013\", \"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faCogs = {\n prefix: 'fas',\n iconName: 'cogs',\n icon: [640, 512, [], \"f085\", \"M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z\"]\n};\nvar faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z\"]\n};\nvar faColumns = {\n prefix: 'fas',\n iconName: 'columns',\n icon: [512, 512, [], \"f0db\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\"]\n};\nvar faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [], \"f075\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\"]\n};\nvar faCommentAlt = {\n prefix: 'fas',\n iconName: 'comment-alt',\n icon: [512, 512, [], \"f27a\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z\"]\n};\nvar faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z\"]\n};\nvar faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [], \"f4ad\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\"]\n};\nvar faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [640, 512, [], \"f4b3\", \"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"]\n};\nvar faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [576, 512, [], \"f086\", \"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z\"]\n};\nvar faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [576, 512, [], \"f653\", \"M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z\"]\n};\nvar faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [496, 512, [], \"f51f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [496, 512, [], \"f14e\", \"M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z\"]\n};\nvar faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"]\n};\nvar faCompressAlt = {\n prefix: 'fas',\n iconName: 'compress-alt',\n icon: [448, 512, [], \"f422\", \"M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z\"]\n};\nvar faCompressArrowsAlt = {\n prefix: 'fas',\n iconName: 'compress-arrows-alt',\n icon: [512, 512, [], \"f78c\", \"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z\"]\n};\nvar faConciergeBell = {\n prefix: 'fas',\n iconName: 'concierge-bell',\n icon: [512, 512, [], \"f562\", \"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [], \"f563\", \"M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\"]\n};\nvar faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [], \"f1f9\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z\"]\n};\nvar faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z\"]\n};\nvar faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [576, 512, [], \"f09d\", \"M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z\"]\n};\nvar faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faCropAlt = {\n prefix: 'fas',\n iconName: 'crop-alt',\n icon: [512, 512, [], \"f565\", \"M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z\"]\n};\nvar faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [], \"f654\", \"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [512, 512, [], \"f05b\", \"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\"]\n};\nvar faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [640, 512, [], \"f521\", \"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z\"]\n};\nvar faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z\"]\n};\nvar faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\"]\n};\nvar faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [512, 512, [], \"f1b3\", \"M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z\"]\n};\nvar faCut = {\n prefix: 'fas',\n iconName: 'cut',\n icon: [448, 512, [], \"f0c4\", \"M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z\"]\n};\nvar faDeaf = {\n prefix: 'fas',\n iconName: 'deaf',\n icon: [512, 512, [], \"f2a4\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z\"]\n};\nvar faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z\"]\n};\nvar faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [576, 512, [], \"f108\", \"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\"]\n};\nvar faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [], \"f655\", \"M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z\"]\n};\nvar faDiagnoses = {\n prefix: 'fas',\n iconName: 'diagnoses',\n icon: [640, 512, [], \"f470\", \"M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [640, 512, [], \"f522\", \"M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [480, 512, [], \"f6cf\", \"M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z\"]\n};\nvar faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [448, 512, [], \"f6d1\", \"M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z\"]\n};\nvar faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [], \"f523\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [], \"f524\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [], \"f525\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [], \"f526\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [], \"f527\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [], \"f528\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDigitalTachograph = {\n prefix: 'fas',\n iconName: 'digital-tachograph',\n icon: [640, 512, [], \"f566\", \"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z\"]\n};\nvar faDirections = {\n prefix: 'fas',\n iconName: 'directions',\n icon: [512, 512, [], \"f5eb\", \"M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z\"]\n};\nvar faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]\n};\nvar faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [], \"f529\", \"M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faDizzy = {\n prefix: 'fas',\n iconName: 'dizzy',\n icon: [496, 512, [], \"f567\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z\"]\n};\nvar faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [448, 512, [], \"f471\", \"M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z\"]\n};\nvar faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [], \"f6d3\", \"M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z\"]\n};\nvar faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [288, 512, [], \"f155\", \"M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z\"]\n};\nvar faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [576, 512, [], \"f472\", \"M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faDollyFlatbed = {\n prefix: 'fas',\n iconName: 'dolly-flatbed',\n icon: [640, 512, [], \"f474\", \"M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDonate = {\n prefix: 'fas',\n iconName: 'donate',\n icon: [512, 512, [], \"f4b9\", \"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z\"]\n};\nvar faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [640, 512, [], \"f52a\", \"M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z\"]\n};\nvar faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [640, 512, [], \"f52b\", \"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z\"]\n};\nvar faDotCircle = {\n prefix: 'fas',\n iconName: 'dot-circle',\n icon: [512, 512, [], \"f192\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z\"]\n};\nvar faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [], \"f4ba\", \"M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [512, 512, [], \"f019\", \"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"]\n};\nvar faDraftingCompass = {\n prefix: 'fas',\n iconName: 'drafting-compass',\n icon: [512, 512, [], \"f568\", \"M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z\"]\n};\nvar faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [], \"f6d5\", \"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z\"]\n};\nvar faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [448, 512, [], \"f5ee\", \"M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\"]\n};\nvar faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [512, 512, [], \"f569\", \"M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z\"]\n};\nvar faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z\"]\n};\nvar faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z\"]\n};\nvar faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z\"]\n};\nvar faEdit = {\n prefix: 'fas',\n iconName: 'edit',\n icon: [576, 512, [], \"f044\", \"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z\"]\n};\nvar faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [], \"f7fb\", \"M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z\"]\n};\nvar faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [], \"f052\", \"M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z\"]\n};\nvar faEllipsisH = {\n prefix: 'fas',\n iconName: 'ellipsis-h',\n icon: [512, 512, [], \"f141\", \"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"]\n};\nvar faEllipsisV = {\n prefix: 'fas',\n iconName: 'ellipsis-v',\n icon: [192, 512, [], \"f142\", \"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\"]\n};\nvar faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [], \"f0e0\", \"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [], \"f2b6\", \"M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z\"]\n};\nvar faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [512, 512, [], \"f658\", \"M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z\"]\n};\nvar faEnvelopeSquare = {\n prefix: 'fas',\n iconName: 'envelope-square',\n icon: [448, 512, [], \"f199\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\"]\n};\nvar faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [], \"f52c\", \"M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [512, 512, [], \"f12d\", \"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z\"]\n};\nvar faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"]\n};\nvar faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [320, 512, [], \"f153\", \"M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z\"]\n};\nvar faExchangeAlt = {\n prefix: 'fas',\n iconName: 'exchange-alt',\n icon: [512, 512, [], \"f362\", \"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"]\n};\nvar faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [192, 512, [], \"f12a\", \"M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z\"]\n};\nvar faExclamationCircle = {\n prefix: 'fas',\n iconName: 'exclamation-circle',\n icon: [512, 512, [], \"f06a\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"]\n};\nvar faExclamationTriangle = {\n prefix: 'fas',\n iconName: 'exclamation-triangle',\n icon: [576, 512, [], \"f071\", \"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"]\n};\nvar faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z\"]\n};\nvar faExpandAlt = {\n prefix: 'fas',\n iconName: 'expand-alt',\n icon: [448, 512, [], \"f424\", \"M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z\"]\n};\nvar faExpandArrowsAlt = {\n prefix: 'fas',\n iconName: 'expand-arrows-alt',\n icon: [448, 512, [], \"f31e\", \"M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z\"]\n};\nvar faExternalLinkAlt = {\n prefix: 'fas',\n iconName: 'external-link-alt',\n icon: [512, 512, [], \"f35d\", \"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\"]\n};\nvar faExternalLinkSquareAlt = {\n prefix: 'fas',\n iconName: 'external-link-square-alt',\n icon: [448, 512, [], \"f360\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z\"]\n};\nvar faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [], \"f06e\", \"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z\"]\n};\nvar faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [], \"f1fb\", \"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z\"]\n};\nvar faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z\"]\n};\nvar faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faFastBackward = {\n prefix: 'fas',\n iconName: 'fast-backward',\n icon: [512, 512, [], \"f049\", \"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\"]\n};\nvar faFastForward = {\n prefix: 'fas',\n iconName: 'fast-forward',\n icon: [512, 512, [], \"f050\", \"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\"]\n};\nvar faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z\"]\n};\nvar faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [], \"f1ac\", \"M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z\"]\n};\nvar faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [], \"f52d\", \"M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z\"]\n};\nvar faFeatherAlt = {\n prefix: 'fas',\n iconName: 'feather-alt',\n icon: [512, 512, [], \"f56b\", \"M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z\"]\n};\nvar faFemale = {\n prefix: 'fas',\n iconName: 'female',\n icon: [256, 512, [], \"f182\", \"M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z\"]\n};\nvar faFighterJet = {\n prefix: 'fas',\n iconName: 'fighter-jet',\n icon: [640, 512, [], \"f0fb\", \"M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z\"]\n};\nvar faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [], \"f15b\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileAlt = {\n prefix: 'fas',\n iconName: 'file-alt',\n icon: [384, 512, [], \"f15c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileArchive = {\n prefix: 'fas',\n iconName: 'file-archive',\n icon: [384, 512, [], \"f1c6\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z\"]\n};\nvar faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z\"]\n};\nvar faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [384, 512, [], \"f6dd\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileDownload = {\n prefix: 'fas',\n iconName: 'file-download',\n icon: [384, 512, [], \"f56d\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [576, 512, [], \"f56e\", \"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z\"]\n};\nvar faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [], \"f1c5\", \"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z\"]\n};\nvar faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [512, 512, [], \"f56f\", \"M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z\"]\n};\nvar faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z\"]\n};\nvar faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\"]\n};\nvar faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z\"]\n};\nvar faFileMedicalAlt = {\n prefix: 'fas',\n iconName: 'file-medical-alt',\n icon: [448, 512, [], \"f478\", \"M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", \"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z\"]\n};\nvar faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [576, 512, [], \"f573\", \"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z\"]\n};\nvar faFileUpload = {\n prefix: 'fas',\n iconName: 'file-upload',\n icon: [384, 512, [], \"f574\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z\"]\n};\nvar faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [512, 512, [], \"f575\", \"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z\"]\n};\nvar faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z\"]\n};\nvar faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [512, 512, [], \"f008\", \"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\"]\n};\nvar faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z\"]\n};\nvar faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [384, 512, [], \"f06d\", \"M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z\"]\n};\nvar faFireAlt = {\n prefix: 'fas',\n iconName: 'fire-alt',\n icon: [448, 512, [], \"f7e4\", \"M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z\"]\n};\nvar faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [448, 512, [], \"f134\", \"M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z\"]\n};\nvar faFirstAid = {\n prefix: 'fas',\n iconName: 'first-aid',\n icon: [576, 512, [], \"f479\", \"M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [], \"f578\", \"M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"]\n};\nvar faFistRaised = {\n prefix: 'fas',\n iconName: 'fist-raised',\n icon: [384, 512, [], \"f6de\", \"M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z\"]\n};\nvar faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [512, 512, [], \"f024\", \"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\"]\n};\nvar faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [512, 512, [], \"f11e\", \"M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z\"]\n};\nvar faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [512, 512, [], \"f74d\", \"M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z\"]\n};\nvar faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z\"]\n};\nvar faFlushed = {\n prefix: 'fas',\n iconName: 'flushed',\n icon: [496, 512, [], \"f579\", \"M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z\"]\n};\nvar faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [], \"f07b\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\"]\n};\nvar faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z\"]\n};\nvar faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [], \"f07c\", \"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\"]\n};\nvar faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z\"]\n};\nvar faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [448, 512, [], \"f031\", \"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z\"]\n};\nvar faFontAwesomeLogoFull = {\n prefix: 'fas',\n iconName: 'font-awesome-logo-full',\n icon: [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"]\n};\nvar faFootballBall = {\n prefix: 'fas',\n iconName: 'football-ball',\n icon: [496, 512, [], \"f44e\", \"M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z\"]\n};\nvar faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [512, 512, [], \"f04e\", \"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\"]\n};\nvar faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"]\n};\nvar faFrown = {\n prefix: 'fas',\n iconName: 'frown',\n icon: [496, 512, [], \"f119\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z\"]\n};\nvar faFrownOpen = {\n prefix: 'fas',\n iconName: 'frown-open',\n icon: [496, 512, [], \"f57a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faFunnelDollar = {\n prefix: 'fas',\n iconName: 'funnel-dollar',\n icon: [640, 512, [], \"f662\", \"M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z\"]\n};\nvar faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [], \"f1e3\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z\"]\n};\nvar faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\"]\n};\nvar faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [], \"f52f\", \"M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z\"]\n};\nvar faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [512, 512, [], \"f0e3\", \"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\"]\n};\nvar faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [576, 512, [], \"f3a5\", \"M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z\"]\n};\nvar faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [288, 512, [], \"f22d\", \"M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z\"]\n};\nvar faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [], \"f6e2\", \"M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [], \"f06b\", \"M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z\"]\n};\nvar faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [640, 512, [], \"f79c\", \"M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z\"]\n};\nvar faGlassCheers = {\n prefix: 'fas',\n iconName: 'glass-cheers',\n icon: [640, 512, [], \"f79f\", \"M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z\"]\n};\nvar faGlassMartini = {\n prefix: 'fas',\n iconName: 'glass-martini',\n icon: [512, 512, [], \"f000\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z\"]\n};\nvar faGlassMartiniAlt = {\n prefix: 'fas',\n iconName: 'glass-martini-alt',\n icon: [512, 512, [], \"f57b\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z\"]\n};\nvar faGlassWhiskey = {\n prefix: 'fas',\n iconName: 'glass-whiskey',\n icon: [512, 512, [], \"f7a0\", \"M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z\"]\n};\nvar faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z\"]\n};\nvar faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [496, 512, [], \"f0ac\", \"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\"]\n};\nvar faGlobeAfrica = {\n prefix: 'fas',\n iconName: 'globe-africa',\n icon: [496, 512, [], \"f57c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z\"]\n};\nvar faGlobeAmericas = {\n prefix: 'fas',\n iconName: 'globe-americas',\n icon: [496, 512, [], \"f57d\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\"]\n};\nvar faGlobeAsia = {\n prefix: 'fas',\n iconName: 'globe-asia',\n icon: [496, 512, [], \"f57e\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z\"]\n};\nvar faGlobeEurope = {\n prefix: 'fas',\n iconName: 'globe-europe',\n icon: [496, 512, [], \"f7a2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z\"]\n};\nvar faGolfBall = {\n prefix: 'fas',\n iconName: 'golf-ball',\n icon: [416, 512, [], \"f450\", \"M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z\"]\n};\nvar faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"]\n};\nvar faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [640, 512, [], \"f19d\", \"M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z\"]\n};\nvar faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [384, 512, [], \"f531\", \"M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faGrimace = {\n prefix: 'fas',\n iconName: 'grimace',\n icon: [496, 512, [], \"f57f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z\"]\n};\nvar faGrin = {\n prefix: 'fas',\n iconName: 'grin',\n icon: [496, 512, [], \"f580\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinAlt = {\n prefix: 'fas',\n iconName: 'grin-alt',\n icon: [496, 512, [], \"f581\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinBeam = {\n prefix: 'fas',\n iconName: 'grin-beam',\n icon: [496, 512, [], \"f582\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'grin-beam-sweat',\n icon: [504, 512, [], \"f583\", \"M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinHearts = {\n prefix: 'fas',\n iconName: 'grin-hearts',\n icon: [496, 512, [], \"f584\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z\"]\n};\nvar faGrinSquint = {\n prefix: 'fas',\n iconName: 'grin-squint',\n icon: [496, 512, [], \"f585\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinSquintTears = {\n prefix: 'fas',\n iconName: 'grin-squint-tears',\n icon: [512, 512, [], \"f586\", \"M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z\"]\n};\nvar faGrinStars = {\n prefix: 'fas',\n iconName: 'grin-stars',\n icon: [496, 512, [], \"f587\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z\"]\n};\nvar faGrinTears = {\n prefix: 'fas',\n iconName: 'grin-tears',\n icon: [640, 512, [], \"f588\", \"M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinTongue = {\n prefix: 'fas',\n iconName: 'grin-tongue',\n icon: [496, 512, [], \"f589\", \"M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"]\n};\nvar faGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'grin-tongue-squint',\n icon: [496, 512, [], \"f58a\", \"M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z\"]\n};\nvar faGrinTongueWink = {\n prefix: 'fas',\n iconName: 'grin-tongue-wink',\n icon: [496, 512, [], \"f58b\", \"M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"]\n};\nvar faGrinWink = {\n prefix: 'fas',\n iconName: 'grin-wink',\n icon: [496, 512, [], \"f58c\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z\"]\n};\nvar faGripHorizontal = {\n prefix: 'fas',\n iconName: 'grip-horizontal',\n icon: [448, 512, [], \"f58d\", \"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [512, 512, [], \"f7a4\", \"M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [256, 512, [], \"f7a5\", \"M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z\"]\n};\nvar faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [], \"f58e\", \"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]\n};\nvar faHSquare = {\n prefix: 'fas',\n iconName: 'h-square',\n icon: [448, 512, [], \"f0fd\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z\"]\n};\nvar faHamburger = {\n prefix: 'fas',\n iconName: 'hamburger',\n icon: [512, 512, [], \"f805\", \"M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\"]\n};\nvar faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [576, 512, [], \"f6e3\", \"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z\"]\n};\nvar faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z\"]\n};\nvar faHandHoldingUsd = {\n prefix: 'fas',\n iconName: 'hand-holding-usd',\n icon: [576, 512, [], \"f4c0\", \"M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z\"]\n};\nvar faHandHoldingWater = {\n prefix: 'fas',\n iconName: 'hand-holding-water',\n icon: [576, 512, [], \"f4c1\", \"M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [576, 512, [], \"f258\", \"M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [512, 512, [], \"f806\", \"M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z\"]\n};\nvar faHandPaper = {\n prefix: 'fas',\n iconName: 'hand-paper',\n icon: [448, 512, [], \"f256\", \"M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z\"]\n};\nvar faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [448, 512, [], \"f25b\", \"M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z\"]\n};\nvar faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z\"]\n};\nvar faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"]\n};\nvar faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [], \"f0a6\", \"M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\"]\n};\nvar faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z\"]\n};\nvar faHandRock = {\n prefix: 'fas',\n iconName: 'hand-rock',\n icon: [512, 512, [], \"f255\", \"M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z\"]\n};\nvar faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z\"]\n};\nvar faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z\"]\n};\nvar faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [512, 512, [], \"f259\", \"M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z\"]\n};\nvar faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [640, 512, [], \"f4c2\", \"M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z\"]\n};\nvar faHandsHelping = {\n prefix: 'fas',\n iconName: 'hands-helping',\n icon: [640, 512, [], \"f4c4\", \"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\"]\n};\nvar faHandsWash = {\n prefix: 'fas',\n iconName: 'hands-wash',\n icon: [576, 512, [], \"e05e\", \"M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z\"]\n};\nvar faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z\"]\n};\nvar faHandshakeAltSlash = {\n prefix: 'fas',\n iconName: 'handshake-alt-slash',\n icon: [640, 512, [], \"e05f\", \"M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [640, 512, [], \"e060\", \"M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z\"]\n};\nvar faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [], \"f6e6\", \"M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z\"]\n};\nvar faHardHat = {\n prefix: 'fas',\n iconName: 'hard-hat',\n icon: [512, 512, [], \"f807\", \"M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [448, 512, [], \"f292\", \"M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z\"]\n};\nvar faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z\"]\n};\nvar faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z\"]\n};\nvar faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z\"]\n};\nvar faHdd = {\n prefix: 'fas',\n iconName: 'hdd',\n icon: [576, 512, [], \"f0a0\", \"M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [640, 512, [], \"e061\", \"M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z\"]\n};\nvar faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [640, 512, [], \"e062\", \"M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", \"M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z\"]\n};\nvar faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [512, 512, [], \"f1dc\", \"M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z\"]\n};\nvar faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [512, 512, [], \"f025\", \"M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z\"]\n};\nvar faHeadphonesAlt = {\n prefix: 'fas',\n iconName: 'headphones-alt',\n icon: [512, 512, [], \"f58f\", \"M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z\"]\n};\nvar faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [512, 512, [], \"f590\", \"M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z\"]\n};\nvar faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [], \"f004\", \"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\"]\n};\nvar faHeartBroken = {\n prefix: 'fas',\n iconName: 'heart-broken',\n icon: [512, 512, [], \"f7a9\", \"M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z\"]\n};\nvar faHeartbeat = {\n prefix: 'fas',\n iconName: 'heartbeat',\n icon: [512, 512, [], \"f21e\", \"M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z\"]\n};\nvar faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [640, 512, [], \"f533\", \"M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z\"]\n};\nvar faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [544, 512, [], \"f591\", \"M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z\"]\n};\nvar faHiking = {\n prefix: 'fas',\n iconName: 'hiking',\n icon: [384, 512, [], \"f6ec\", \"M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z\"]\n};\nvar faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [], \"f6ed\", \"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faHistory = {\n prefix: 'fas',\n iconName: 'history',\n icon: [512, 512, [], \"f1da\", \"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z\"]\n};\nvar faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [448, 512, [], \"f7aa\", \"M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z\"]\n};\nvar faHome = {\n prefix: 'fas',\n iconName: 'home',\n icon: [576, 512, [], \"f015\", \"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\"]\n};\nvar faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [], \"f6f0\", \"M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", \"M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z\"]\n};\nvar faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [448, 512, [], \"f0f8\", \"M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z\"]\n};\nvar faHospitalAlt = {\n prefix: 'fas',\n iconName: 'hospital-alt',\n icon: [576, 512, [], \"f47d\", \"M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faHospitalSymbol = {\n prefix: 'fas',\n iconName: 'hospital-symbol',\n icon: [512, 512, [], \"f47e\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z\"]\n};\nvar faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [640, 512, [], \"f80d\", \"M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\"]\n};\nvar faHotTub = {\n prefix: 'fas',\n iconName: 'hot-tub',\n icon: [512, 512, [], \"f593\", \"M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z\"]\n};\nvar faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [], \"f80f\", \"M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z\"]\n};\nvar faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [576, 512, [], \"f594\", \"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"]\n};\nvar faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [], \"f254\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [], \"f253\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z\"]\n};\nvar faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [], \"f252\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z\"]\n};\nvar faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [], \"f251\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z\"]\n};\nvar faHouseDamage = {\n prefix: 'fas',\n iconName: 'house-damage',\n icon: [576, 512, [], \"f6f1\", \"M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z\"]\n};\nvar faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [576, 512, [], \"e065\", \"M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z\"]\n};\nvar faHryvnia = {\n prefix: 'fas',\n iconName: 'hryvnia',\n icon: [384, 512, [], \"f6f2\", \"M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z\"]\n};\nvar faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z\"]\n};\nvar faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [448, 512, [], \"f810\", \"M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z\"]\n};\nvar faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z\"]\n};\nvar faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [512, 512, [], \"f86d\", \"M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z\"]\n};\nvar faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [], \"f2c2\", \"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\"]\n};\nvar faIdCardAlt = {\n prefix: 'fas',\n iconName: 'id-card-alt',\n icon: [576, 512, [], \"f47f\", \"M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z\"]\n};\nvar faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z\"]\n};\nvar faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"]\n};\nvar faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z\"]\n};\nvar faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [576, 512, [], \"f01c\", \"M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z\"]\n};\nvar faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", \"M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z\"]\n};\nvar faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [], \"f534\", \"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z\"]\n};\nvar faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\"]\n};\nvar faInfoCircle = {\n prefix: 'fas',\n iconName: 'info-circle',\n icon: [512, 512, [], \"f05a\", \"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"]\n};\nvar faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [320, 512, [], \"f033\", \"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"]\n};\nvar faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z\"]\n};\nvar faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [640, 512, [], \"f595\", \"M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z\"]\n};\nvar faJournalWhills = {\n prefix: 'fas',\n iconName: 'journal-whills',\n icon: [448, 512, [], \"f66a\", \"M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z\"]\n};\nvar faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [576, 512, [], \"f66b\", \"M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z\"]\n};\nvar faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [], \"f084\", \"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\"]\n};\nvar faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [], \"f11c\", \"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"]\n};\nvar faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [512, 512, [], \"f66d\", \"M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z\"]\n};\nvar faKiss = {\n prefix: 'fas',\n iconName: 'kiss',\n icon: [496, 512, [], \"f596\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faKissBeam = {\n prefix: 'fas',\n iconName: 'kiss-beam',\n icon: [496, 512, [], \"f597\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z\"]\n};\nvar faKissWinkHeart = {\n prefix: 'fas',\n iconName: 'kiss-wink-heart',\n icon: [504, 512, [], \"f598\", \"M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z\"]\n};\nvar faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z\"]\n};\nvar faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [], \"f66f\", \"M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [640, 512, [], \"f1ab\", \"M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z\"]\n};\nvar faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [], \"f109\", \"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"]\n};\nvar faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"]\n};\nvar faLaptopHouse = {\n prefix: 'fas',\n iconName: 'laptop-house',\n icon: [640, 512, [], \"e066\", \"M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z\"]\n};\nvar faLaugh = {\n prefix: 'fas',\n iconName: 'laugh',\n icon: [496, 512, [], \"f599\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z\"]\n};\nvar faLaughBeam = {\n prefix: 'fas',\n iconName: 'laugh-beam',\n icon: [496, 512, [], \"f59a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLaughSquint = {\n prefix: 'fas',\n iconName: 'laugh-squint',\n icon: [496, 512, [], \"f59b\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLaughWink = {\n prefix: 'fas',\n iconName: 'laugh-wink',\n icon: [496, 512, [], \"f59c\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [512, 512, [], \"f5fd\", \"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z\"]\n};\nvar faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [576, 512, [], \"f06c\", \"M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z\"]\n};\nvar faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [512, 512, [], \"f094\", \"M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z\"]\n};\nvar faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [384, 512, [], \"f536\", \"M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z\"]\n};\nvar faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faLevelDownAlt = {\n prefix: 'fas',\n iconName: 'level-down-alt',\n icon: [320, 512, [], \"f3be\", \"M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z\"]\n};\nvar faLevelUpAlt = {\n prefix: 'fas',\n iconName: 'level-up-alt',\n icon: [320, 512, [], \"f3bf\", \"M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z\"]\n};\nvar faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z\"]\n};\nvar faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [352, 512, [], \"f0eb\", \"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [512, 512, [], \"f0c1\", \"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"]\n};\nvar faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [384, 512, [], \"f195\", \"M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z\"]\n};\nvar faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [], \"f03a\", \"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faListAlt = {\n prefix: 'fas',\n iconName: 'list-alt',\n icon: [512, 512, [], \"f022\", \"M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z\"]\n};\nvar faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [], \"f0cb\", \"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"]\n};\nvar faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [], \"f0ca\", \"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [512, 512, [], \"f124\", \"M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z\"]\n};\nvar faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [448, 512, [], \"f023\", \"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\"]\n};\nvar faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z\"]\n};\nvar faLongArrowAltDown = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-down',\n icon: [256, 512, [], \"f309\", \"M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z\"]\n};\nvar faLongArrowAltLeft = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-left',\n icon: [448, 512, [], \"f30a\", \"M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z\"]\n};\nvar faLongArrowAltRight = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-right',\n icon: [448, 512, [], \"f30b\", \"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z\"]\n};\nvar faLongArrowAltUp = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-up',\n icon: [256, 512, [], \"f30c\", \"M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z\"]\n};\nvar faLowVision = {\n prefix: 'fas',\n iconName: 'low-vision',\n icon: [576, 512, [], \"f2a8\", \"M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z\"]\n};\nvar faLuggageCart = {\n prefix: 'fas',\n iconName: 'luggage-cart',\n icon: [640, 512, [], \"f59d\", \"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z\"]\n};\nvar faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [640, 512, [], \"f604\", \"M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z\"]\n};\nvar faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [640, 512, [], \"e067\", \"M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z\"]\n};\nvar faMagic = {\n prefix: 'fas',\n iconName: 'magic',\n icon: [512, 512, [], \"f0d0\", \"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\"]\n};\nvar faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [512, 512, [], \"f076\", \"M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z\"]\n};\nvar faMailBulk = {\n prefix: 'fas',\n iconName: 'mail-bulk',\n icon: [576, 512, [], \"f674\", \"M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z\"]\n};\nvar faMale = {\n prefix: 'fas',\n iconName: 'male',\n icon: [192, 512, [], \"f183\", \"M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z\"]\n};\nvar faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [576, 512, [], \"f279\", \"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarked = {\n prefix: 'fas',\n iconName: 'map-marked',\n icon: [576, 512, [], \"f59f\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarkedAlt = {\n prefix: 'fas',\n iconName: 'map-marked-alt',\n icon: [576, 512, [], \"f5a0\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarker = {\n prefix: 'fas',\n iconName: 'map-marker',\n icon: [384, 512, [], \"f041\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z\"]\n};\nvar faMapMarkerAlt = {\n prefix: 'fas',\n iconName: 'map-marker-alt',\n icon: [384, 512, [], \"f3c5\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\"]\n};\nvar faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [288, 512, [], \"f276\", \"M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z\"]\n};\nvar faMapSigns = {\n prefix: 'fas',\n iconName: 'map-signs',\n icon: [512, 512, [], \"f277\", \"M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z\"]\n};\nvar faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z\"]\n};\nvar faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [384, 512, [], \"f222\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [512, 512, [], \"f227\", \"M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z\"]\n};\nvar faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [384, 512, [], \"f229\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faMarsStrokeH = {\n prefix: 'fas',\n iconName: 'mars-stroke-h',\n icon: [480, 512, [], \"f22b\", \"M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"]\n};\nvar faMarsStrokeV = {\n prefix: 'fas',\n iconName: 'mars-stroke-v',\n icon: [288, 512, [], \"f22a\", \"M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"]\n};\nvar faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [640, 512, [], \"f6fa\", \"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z\"]\n};\nvar faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [512, 512, [], \"f5a2\", \"M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z\"]\n};\nvar faMedkit = {\n prefix: 'fas',\n iconName: 'medkit',\n icon: [512, 512, [], \"f0fa\", \"M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z\"]\n};\nvar faMeh = {\n prefix: 'fas',\n iconName: 'meh',\n icon: [496, 512, [], \"f11a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMehBlank = {\n prefix: 'fas',\n iconName: 'meh-blank',\n icon: [496, 512, [], \"f5a4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMehRollingEyes = {\n prefix: 'fas',\n iconName: 'meh-rolling-eyes',\n icon: [496, 512, [], \"f5a5\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z\"]\n};\nvar faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [640, 512, [], \"f538\", \"M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z\"]\n};\nvar faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z\"]\n};\nvar faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [288, 512, [], \"f223\", \"M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"]\n};\nvar faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [], \"f753\", \"M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z\"]\n};\nvar faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z\"]\n};\nvar faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [352, 512, [], \"f130\", \"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicrophoneAlt = {\n prefix: 'fas',\n iconName: 'microphone-alt',\n icon: [352, 512, [], \"f3c9\", \"M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z\"]\n};\nvar faMicrophoneAltSlash = {\n prefix: 'fas',\n iconName: 'microphone-alt-slash',\n icon: [640, 512, [], \"f539\", \"M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [640, 512, [], \"f131\", \"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [], \"f610\", \"M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z\"]\n};\nvar faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [], \"f068\", \"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faMinusCircle = {\n prefix: 'fas',\n iconName: 'minus-circle',\n icon: [512, 512, [], \"f056\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\"]\n};\nvar faMinusSquare = {\n prefix: 'fas',\n iconName: 'minus-square',\n icon: [448, 512, [], \"f146\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z\"]\n};\nvar faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z\"]\n};\nvar faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [320, 512, [], \"f10b\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMobileAlt = {\n prefix: 'fas',\n iconName: 'mobile-alt',\n icon: [320, 512, [], \"f3cd\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\"]\n};\nvar faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [640, 512, [], \"f0d6\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"]\n};\nvar faMoneyBillAlt = {\n prefix: 'fas',\n iconName: 'money-bill-alt',\n icon: [640, 512, [], \"f3d1\", \"M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [640, 512, [], \"f53a\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z\"]\n};\nvar faMoneyBillWaveAlt = {\n prefix: 'fas',\n iconName: 'money-bill-wave-alt',\n icon: [640, 512, [], \"f53b\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [640, 512, [], \"f53c\", \"M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z\"]\n};\nvar faMoneyCheckAlt = {\n prefix: 'fas',\n iconName: 'money-check-alt',\n icon: [640, 512, [], \"f53d\", \"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z\"]\n};\nvar faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"]\n};\nvar faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [512, 512, [], \"f186\", \"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z\"]\n};\nvar faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [640, 512, [], \"f678\", \"M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z\"]\n};\nvar faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [], \"f21c\", \"M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z\"]\n};\nvar faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [640, 512, [], \"f6fc\", \"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z\"]\n};\nvar faMouse = {\n prefix: 'fas',\n iconName: 'mouse',\n icon: [384, 512, [], \"f8cc\", \"M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z\"]\n};\nvar faMousePointer = {\n prefix: 'fas',\n iconName: 'mouse-pointer',\n icon: [320, 512, [], \"f245\", \"M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z\"]\n};\nvar faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [512, 512, [], \"f7b6\", \"M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [], \"f001\", \"M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z\"]\n};\nvar faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [640, 512, [], \"f6ff\", \"M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z\"]\n};\nvar faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [288, 512, [], \"f22c\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [576, 512, [], \"f1ea\", \"M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z\"]\n};\nvar faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z\"]\n};\nvar faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [384, 512, [], \"f481\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [512, 512, [], \"f247\", \"M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z\"]\n};\nvar faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [576, 512, [], \"f248\", \"M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z\"]\n};\nvar faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z\"]\n};\nvar faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [512, 512, [], \"f679\", \"M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z\"]\n};\nvar faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [], \"f700\", \"M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z\"]\n};\nvar faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [448, 512, [], \"f03b\", \"M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [], \"f815\", \"M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z\"]\n};\nvar faPaintBrush = {\n prefix: 'fas',\n iconName: 'paint-brush',\n icon: [512, 512, [], \"f1fc\", \"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\"]\n};\nvar faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z\"]\n};\nvar faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [], \"f53f\", \"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [640, 512, [], \"f482\", \"M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z\"]\n};\nvar faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [512, 512, [], \"f1d8\", \"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\"]\n};\nvar faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [448, 512, [], \"f0c6\", \"M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z\"]\n};\nvar faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z\"]\n};\nvar faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [], \"f1dd\", \"M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z\"]\n};\nvar faParking = {\n prefix: 'fas',\n iconName: 'parking',\n icon: [448, 512, [], \"f540\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z\"]\n};\nvar faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [448, 512, [], \"f5ab\", \"M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z\"]\n};\nvar faPastafarianism = {\n prefix: 'fas',\n iconName: 'pastafarianism',\n icon: [640, 512, [], \"f67b\", \"M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z\"]\n};\nvar faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [448, 512, [], \"f0ea\", \"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z\"]\n};\nvar faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [448, 512, [], \"f04c\", \"M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z\"]\n};\nvar faPauseCircle = {\n prefix: 'fas',\n iconName: 'pause-circle',\n icon: [512, 512, [], \"f28b\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z\"]\n};\nvar faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [496, 512, [], \"f67c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z\"]\n};\nvar faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [], \"f304\", \"M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z\"]\n};\nvar faPenAlt = {\n prefix: 'fas',\n iconName: 'pen-alt',\n icon: [512, 512, [], \"f305\", \"M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z\"]\n};\nvar faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [], \"f5ac\", \"M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z\"]\n};\nvar faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [], \"f5ad\", \"M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z\"]\n};\nvar faPenSquare = {\n prefix: 'fas',\n iconName: 'pen-square',\n icon: [448, 512, [], \"f14b\", \"M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z\"]\n};\nvar faPencilAlt = {\n prefix: 'fas',\n iconName: 'pencil-alt',\n icon: [512, 512, [], \"f303\", \"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\"]\n};\nvar faPencilRuler = {\n prefix: 'fas',\n iconName: 'pencil-ruler',\n icon: [512, 512, [], \"f5ae\", \"M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z\"]\n};\nvar faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [576, 512, [], \"e068\", \"M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z\"]\n};\nvar faPeopleCarry = {\n prefix: 'fas',\n iconName: 'people-carry',\n icon: [640, 512, [], \"f4ce\", \"M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z\"]\n};\nvar faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [512, 512, [], \"f816\", \"M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z\"]\n};\nvar faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [448, 512, [], \"f295\", \"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z\"]\n};\nvar faPercentage = {\n prefix: 'fas',\n iconName: 'percentage',\n icon: [384, 512, [], \"f541\", \"M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z\"]\n};\nvar faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z\"]\n};\nvar faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [], \"f095\", \"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z\"]\n};\nvar faPhoneAlt = {\n prefix: 'fas',\n iconName: 'phone-alt',\n icon: [512, 512, [], \"f879\", \"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\"]\n};\nvar faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [640, 512, [], \"f3dd\", \"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"]\n};\nvar faPhoneSquare = {\n prefix: 'fas',\n iconName: 'phone-square',\n icon: [448, 512, [], \"f098\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z\"]\n};\nvar faPhoneSquareAlt = {\n prefix: 'fas',\n iconName: 'phone-square-alt',\n icon: [448, 512, [], \"f87b\", \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z\"]\n};\nvar faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [384, 512, [], \"f2a0\", \"M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z\"]\n};\nvar faPhotoVideo = {\n prefix: 'fas',\n iconName: 'photo-video',\n icon: [640, 512, [], \"f87c\", \"M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z\"]\n};\nvar faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z\"]\n};\nvar faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [576, 512, [], \"f484\", \"M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [640, 512, [], \"f67f\", \"M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z\"]\n};\nvar faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [640, 512, [], \"f5af\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z\"]\n};\nvar faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [640, 512, [], \"f5b0\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [640, 512, [], \"e069\", \"M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z\"]\n};\nvar faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [448, 512, [], \"f04b\", \"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"]\n};\nvar faPlayCircle = {\n prefix: 'fas',\n iconName: 'play-circle',\n icon: [512, 512, [], \"f144\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\"]\n};\nvar faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [384, 512, [], \"f1e6\", \"M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z\"]\n};\nvar faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [], \"f067\", \"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faPlusCircle = {\n prefix: 'fas',\n iconName: 'plus-circle',\n icon: [512, 512, [], \"f055\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"]\n};\nvar faPlusSquare = {\n prefix: 'fas',\n iconName: 'plus-square',\n icon: [448, 512, [], \"f0fe\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"]\n};\nvar faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z\"]\n};\nvar faPoll = {\n prefix: 'fas',\n iconName: 'poll',\n icon: [448, 512, [], \"f681\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z\"]\n};\nvar faPollH = {\n prefix: 'fas',\n iconName: 'poll-h',\n icon: [448, 512, [], \"f682\", \"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z\"]\n};\nvar faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [], \"f2fe\", \"M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [448, 512, [], \"f75a\", \"M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z\"]\n};\nvar faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z\"]\n};\nvar faPortrait = {\n prefix: 'fas',\n iconName: 'portrait',\n icon: [384, 512, [], \"f3e0\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faPoundSign = {\n prefix: 'fas',\n iconName: 'pound-sign',\n icon: [320, 512, [], \"f154\", \"M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z\"]\n};\nvar faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [], \"f011\", \"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\"]\n};\nvar faPray = {\n prefix: 'fas',\n iconName: 'pray',\n icon: [384, 512, [], \"f683\", \"M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z\"]\n};\nvar faPrayingHands = {\n prefix: 'fas',\n iconName: 'praying-hands',\n icon: [640, 512, [], \"f684\", \"M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z\"]\n};\nvar faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [384, 512, [], \"f5b1\", \"M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z\"]\n};\nvar faPrescriptionBottleAlt = {\n prefix: 'fas',\n iconName: 'prescription-bottle-alt',\n icon: [384, 512, [], \"f486\", \"M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z\"]\n};\nvar faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [], \"f02f\", \"M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faProcedures = {\n prefix: 'fas',\n iconName: 'procedures',\n icon: [640, 512, [], \"f487\", \"M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"]\n};\nvar faProjectDiagram = {\n prefix: 'fas',\n iconName: 'project-diagram',\n icon: [640, 512, [], \"f542\", \"M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z\"]\n};\nvar faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [384, 512, [], \"e06a\", \"M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z\"]\n};\nvar faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [384, 512, [], \"e06b\", \"M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [576, 512, [], \"f12e\", \"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\"]\n};\nvar faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z\"]\n};\nvar faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [384, 512, [], \"f128\", \"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\"]\n};\nvar faQuestionCircle = {\n prefix: 'fas',\n iconName: 'question-circle',\n icon: [512, 512, [], \"f059\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\"]\n};\nvar faQuidditch = {\n prefix: 'fas',\n iconName: 'quidditch',\n icon: [640, 512, [], \"f458\", \"M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [512, 512, [], \"f10d\", \"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"]\n};\nvar faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [512, 512, [], \"f10e\", \"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faQuran = {\n prefix: 'fas',\n iconName: 'quran',\n icon: [448, 512, [], \"f687\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"]\n};\nvar faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [496, 512, [], \"f7b9\", \"M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z\"]\n};\nvar faRadiationAlt = {\n prefix: 'fas',\n iconName: 'radiation-alt',\n icon: [496, 512, [], \"f7ba\", \"M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [576, 512, [], \"f75b\", \"M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z\"]\n};\nvar faRandom = {\n prefix: 'fas',\n iconName: 'random',\n icon: [512, 512, [], \"f074\", \"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\"]\n};\nvar faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [], \"f543\", \"M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z\"]\n};\nvar faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [512, 512, [], \"f1b8\", \"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z\"]\n};\nvar faRedo = {\n prefix: 'fas',\n iconName: 'redo',\n icon: [512, 512, [], \"f01e\", \"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z\"]\n};\nvar faRedoAlt = {\n prefix: 'fas',\n iconName: 'redo-alt',\n icon: [512, 512, [], \"f2f9\", \"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z\"]\n};\nvar faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [], \"f25d\", \"M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z\"]\n};\nvar faRemoveFormat = {\n prefix: 'fas',\n iconName: 'remove-format',\n icon: [640, 512, [], \"f87d\", \"M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z\"]\n};\nvar faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [], \"f3e5\", \"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\"]\n};\nvar faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [], \"f122\", \"M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z\"]\n};\nvar faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z\"]\n};\nvar faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z\"]\n};\nvar faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [640, 512, [], \"f079\", \"M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z\"]\n};\nvar faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [448, 512, [], \"f4d6\", \"M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z\"]\n};\nvar faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z\"]\n};\nvar faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [576, 512, [], \"f018\", \"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z\"]\n};\nvar faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [], \"f544\", \"M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z\"]\n};\nvar faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z\"]\n};\nvar faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [], \"f09e\", \"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z\"]\n};\nvar faRssSquare = {\n prefix: 'fas',\n iconName: 'rss-square',\n icon: [448, 512, [], \"f143\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z\"]\n};\nvar faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [384, 512, [], \"f158\", \"M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z\"]\n};\nvar faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [640, 512, [], \"f545\", \"M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z\"]\n};\nvar faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [512, 512, [], \"f546\", \"M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [576, 512, [], \"f547\", \"M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z\"]\n};\nvar faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z\"]\n};\nvar faRunning = {\n prefix: 'fas',\n iconName: 'running',\n icon: [416, 512, [], \"f70c\", \"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z\"]\n};\nvar faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [320, 512, [], \"f156\", \"M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z\"]\n};\nvar faSadCry = {\n prefix: 'fas',\n iconName: 'sad-cry',\n icon: [496, 512, [], \"f5b3\", \"M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z\"]\n};\nvar faSadTear = {\n prefix: 'fas',\n iconName: 'sad-tear',\n icon: [496, 512, [], \"f5b4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z\"]\n};\nvar faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [], \"f7bf\", \"M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z\"]\n};\nvar faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [], \"f7c0\", \"M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z\"]\n};\nvar faSave = {\n prefix: 'fas',\n iconName: 'save',\n icon: [448, 512, [], \"f0c7\", \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z\"]\n};\nvar faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [640, 512, [], \"f549\", \"M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z\"]\n};\nvar faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [512, 512, [], \"f54a\", \"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z\"]\n};\nvar faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [640, 512, [], \"f70e\", \"M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z\"]\n};\nvar faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z\"]\n};\nvar faSearch = {\n prefix: 'fas',\n iconName: 'search',\n icon: [512, 512, [], \"f002\", \"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"]\n};\nvar faSearchDollar = {\n prefix: 'fas',\n iconName: 'search-dollar',\n icon: [512, 512, [], \"f688\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z\"]\n};\nvar faSearchLocation = {\n prefix: 'fas',\n iconName: 'search-location',\n icon: [512, 512, [], \"f689\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faSearchMinus = {\n prefix: 'fas',\n iconName: 'search-minus',\n icon: [512, 512, [], \"f010\", \"M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"]\n};\nvar faSearchPlus = {\n prefix: 'fas',\n iconName: 'search-plus',\n icon: [512, 512, [], \"f00e\", \"M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"]\n};\nvar faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [], \"f4d8\", \"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z\"]\n};\nvar faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [512, 512, [], \"f233\", \"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\"]\n};\nvar faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [], \"f61f\", \"M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z\"]\n};\nvar faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [], \"f064\", \"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\"]\n};\nvar faShareAlt = {\n prefix: 'fas',\n iconName: 'share-alt',\n icon: [448, 512, [], \"f1e0\", \"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z\"]\n};\nvar faShareAltSquare = {\n prefix: 'fas',\n iconName: 'share-alt-square',\n icon: [448, 512, [], \"f1e1\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z\"]\n};\nvar faShareSquare = {\n prefix: 'fas',\n iconName: 'share-square',\n icon: [576, 512, [], \"f14d\", \"M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z\"]\n};\nvar faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [], \"f20b\", \"M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z\"]\n};\nvar faShieldAlt = {\n prefix: 'fas',\n iconName: 'shield-alt',\n icon: [512, 512, [], \"f3ed\", \"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\"]\n};\nvar faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z\"]\n};\nvar faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [640, 512, [], \"f21a\", \"M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z\"]\n};\nvar faShippingFast = {\n prefix: 'fas',\n iconName: 'shipping-fast',\n icon: [640, 512, [], \"f48b\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [640, 512, [], \"f54b\", \"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\"]\n};\nvar faShoppingBag = {\n prefix: 'fas',\n iconName: 'shopping-bag',\n icon: [448, 512, [], \"f290\", \"M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z\"]\n};\nvar faShoppingBasket = {\n prefix: 'fas',\n iconName: 'shopping-basket',\n icon: [576, 512, [], \"f291\", \"M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z\"]\n};\nvar faShoppingCart = {\n prefix: 'fas',\n iconName: 'shopping-cart',\n icon: [576, 512, [], \"f07a\", \"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z\"]\n};\nvar faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [], \"f2cc\", \"M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z\"]\n};\nvar faShuttleVan = {\n prefix: 'fas',\n iconName: 'shuttle-van',\n icon: [640, 512, [], \"f5b6\", \"M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z\"]\n};\nvar faSign = {\n prefix: 'fas',\n iconName: 'sign',\n icon: [512, 512, [], \"f4d9\", \"M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z\"]\n};\nvar faSignInAlt = {\n prefix: 'fas',\n iconName: 'sign-in-alt',\n icon: [512, 512, [], \"f2f6\", \"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\"]\n};\nvar faSignLanguage = {\n prefix: 'fas',\n iconName: 'sign-language',\n icon: [448, 512, [], \"f2a7\", \"M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z\"]\n};\nvar faSignOutAlt = {\n prefix: 'fas',\n iconName: 'sign-out-alt',\n icon: [512, 512, [], \"f2f5\", \"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\"]\n};\nvar faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [640, 512, [], \"f012\", \"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"]\n};\nvar faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z\"]\n};\nvar faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z\"]\n};\nvar faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H400V256h64a16,16,0,0,0,16-16V224a16,16,0,0,0-16-16H384a32,32,0,0,0-32,32v48H288V96a32,32,0,0,1,64,0v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288H160V240a32,32,0,0,0-32-32H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z\"]\n};\nvar faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [640, 512, [], \"f0e8\", \"M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faSkating = {\n prefix: 'fas',\n iconName: 'skating',\n icon: [448, 512, [], \"f7c5\", \"M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSkiing = {\n prefix: 'fas',\n iconName: 'skiing',\n icon: [512, 512, [], \"f7c9\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z\"]\n};\nvar faSkiingNordic = {\n prefix: 'fas',\n iconName: 'skiing-nordic',\n icon: [576, 512, [], \"f7ca\", \"M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z\"]\n};\nvar faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [], \"f54c\", \"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"]\n};\nvar faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [448, 512, [], \"f714\", \"M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z\"]\n};\nvar faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [640, 512, [], \"f715\", \"M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z\"]\n};\nvar faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z\"]\n};\nvar faSlidersH = {\n prefix: 'fas',\n iconName: 'sliders-h',\n icon: [512, 512, [], \"f1de\", \"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z\"]\n};\nvar faSmile = {\n prefix: 'fas',\n iconName: 'smile',\n icon: [496, 512, [], \"f118\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z\"]\n};\nvar faSmileBeam = {\n prefix: 'fas',\n iconName: 'smile-beam',\n icon: [496, 512, [], \"f5b8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z\"]\n};\nvar faSmileWink = {\n prefix: 'fas',\n iconName: 'smile-wink',\n icon: [496, 512, [], \"f4da\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z\"]\n};\nvar faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [640, 512, [], \"f75f\", \"M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z\"]\n};\nvar faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [640, 512, [], \"f48d\", \"M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\"]\n};\nvar faSmokingBan = {\n prefix: 'fas',\n iconName: 'smoking-ban',\n icon: [512, 512, [], \"f54d\", \"M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z\"]\n};\nvar faSms = {\n prefix: 'fas',\n iconName: 'sms',\n icon: [512, 512, [], \"f7cd\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z\"]\n};\nvar faSnowboarding = {\n prefix: 'fas',\n iconName: 'snowboarding',\n icon: [512, 512, [], \"f7ce\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z\"]\n};\nvar faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [448, 512, [], \"f2dc\", \"M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z\"]\n};\nvar faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [512, 512, [], \"f7d0\", \"M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [], \"e06e\", \"M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z\"]\n};\nvar faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [], \"f696\", \"M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z\"]\n};\nvar faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [640, 512, [], \"f5ba\", \"M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z\"]\n};\nvar faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [320, 512, [], \"f0dc\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z\"]\n};\nvar faSortAlphaDown = {\n prefix: 'fas',\n iconName: 'sort-alpha-down',\n icon: [448, 512, [], \"f15d\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"]\n};\nvar faSortAlphaDownAlt = {\n prefix: 'fas',\n iconName: 'sort-alpha-down-alt',\n icon: [448, 512, [], \"f881\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"]\n};\nvar faSortAlphaUp = {\n prefix: 'fas',\n iconName: 'sort-alpha-up',\n icon: [448, 512, [], \"f15e\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"]\n};\nvar faSortAlphaUpAlt = {\n prefix: 'fas',\n iconName: 'sort-alpha-up-alt',\n icon: [448, 512, [], \"f882\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"]\n};\nvar faSortAmountDown = {\n prefix: 'fas',\n iconName: 'sort-amount-down',\n icon: [512, 512, [], \"f160\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faSortAmountDownAlt = {\n prefix: 'fas',\n iconName: 'sort-amount-down-alt',\n icon: [512, 512, [], \"f884\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]\n};\nvar faSortAmountUp = {\n prefix: 'fas',\n iconName: 'sort-amount-up',\n icon: [512, 512, [], \"f161\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faSortAmountUpAlt = {\n prefix: 'fas',\n iconName: 'sort-amount-up-alt',\n icon: [512, 512, [], \"f885\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\"]\n};\nvar faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [320, 512, [], \"f0dd\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z\"]\n};\nvar faSortNumericDown = {\n prefix: 'fas',\n iconName: 'sort-numeric-down',\n icon: [448, 512, [], \"f162\", \"M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]\n};\nvar faSortNumericDownAlt = {\n prefix: 'fas',\n iconName: 'sort-numeric-down-alt',\n icon: [448, 512, [], \"f886\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]\n};\nvar faSortNumericUp = {\n prefix: 'fas',\n iconName: 'sort-numeric-up',\n icon: [448, 512, [], \"f163\", \"M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"]\n};\nvar faSortNumericUpAlt = {\n prefix: 'fas',\n iconName: 'sort-numeric-up-alt',\n icon: [448, 512, [], \"f887\", \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]\n};\nvar faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [320, 512, [], \"f0de\", \"M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z\"]\n};\nvar faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z\"]\n};\nvar faSpaceShuttle = {\n prefix: 'fas',\n iconName: 'space-shuttle',\n icon: [640, 512, [], \"f197\", \"M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z\"]\n};\nvar faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [576, 512, [], \"f891\", \"M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z\"]\n};\nvar faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [576, 512, [], \"f717\", \"M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z\"]\n};\nvar faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"]\n};\nvar faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z\"]\n};\nvar faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [512, 512, [], \"f5bd\", \"M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [], \"f0c8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [], \"f45c\", \"M512 512H0V0h512v512z\"]\n};\nvar faSquareRootAlt = {\n prefix: 'fas',\n iconName: 'square-root-alt',\n icon: [576, 512, [], \"f698\", \"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z\"]\n};\nvar faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z\"]\n};\nvar faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [], \"f005\", \"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"]\n};\nvar faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [512, 512, [], \"f699\", \"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z\"]\n};\nvar faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [], \"f089\", \"M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z\"]\n};\nvar faStarHalfAlt = {\n prefix: 'fas',\n iconName: 'star-half-alt',\n icon: [536, 512, [], \"f5c0\", \"M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [464, 512, [], \"f69a\", \"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z\"]\n};\nvar faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [480, 512, [], \"f621\", \"M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z\"]\n};\nvar faStepBackward = {\n prefix: 'fas',\n iconName: 'step-backward',\n icon: [448, 512, [], \"f048\", \"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\"]\n};\nvar faStepForward = {\n prefix: 'fas',\n iconName: 'step-forward',\n icon: [448, 512, [], \"f051\", \"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\"]\n};\nvar faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [512, 512, [], \"f0f1\", \"M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faStickyNote = {\n prefix: 'fas',\n iconName: 'sticky-note',\n icon: [448, 512, [], \"f249\", \"M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z\"]\n};\nvar faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [448, 512, [], \"f04d\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faStopCircle = {\n prefix: 'fas',\n iconName: 'stop-circle',\n icon: [512, 512, [], \"f28d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [], \"f2f2\", \"M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z\"]\n};\nvar faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [616, 512, [], \"f54e\", \"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z\"]\n};\nvar faStoreAlt = {\n prefix: 'fas',\n iconName: 'store-alt',\n icon: [640, 512, [], \"f54f\", \"M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z\"]\n};\nvar faStoreAltSlash = {\n prefix: 'fas',\n iconName: 'store-alt-slash',\n icon: [640, 512, [], \"e070\", \"M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z\"]\n};\nvar faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [640, 512, [], \"e071\", \"M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z\"]\n};\nvar faStream = {\n prefix: 'fas',\n iconName: 'stream',\n icon: [512, 512, [], \"f550\", \"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\"]\n};\nvar faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z\"]\n};\nvar faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z\"]\n};\nvar faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z\"]\n};\nvar faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [512, 512, [], \"f12c\", \"M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]\n};\nvar faSubway = {\n prefix: 'fas',\n iconName: 'subway',\n icon: [448, 512, [], \"f239\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [], \"f0f2\", \"M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z\"]\n};\nvar faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z\"]\n};\nvar faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [512, 512, [], \"f185\", \"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z\"]\n};\nvar faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [512, 512, [], \"f12b\", \"M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]\n};\nvar faSurprise = {\n prefix: 'fas',\n iconName: 'surprise',\n icon: [496, 512, [], \"f5c2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z\"]\n};\nvar faSwimmer = {\n prefix: 'fas',\n iconName: 'swimmer',\n icon: [640, 512, [], \"f5c4\", \"M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z\"]\n};\nvar faSwimmingPool = {\n prefix: 'fas',\n iconName: 'swimming-pool',\n icon: [640, 512, [], \"f5c5\", \"M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z\"]\n};\nvar faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [640, 512, [], \"f69b\", \"M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z\"]\n};\nvar faSync = {\n prefix: 'fas',\n iconName: 'sync',\n icon: [512, 512, [], \"f021\", \"M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z\"]\n};\nvar faSyncAlt = {\n prefix: 'fas',\n iconName: 'sync-alt',\n icon: [512, 512, [], \"f2f1\", \"M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z\"]\n};\nvar faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [512, 512, [], \"f48e\", \"M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z\"]\n};\nvar faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [512, 512, [], \"f0ce\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\"]\n};\nvar faTableTennis = {\n prefix: 'fas',\n iconName: 'table-tennis',\n icon: [512, 512, [], \"f45d\", \"M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z\"]\n};\nvar faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [], \"f10a\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faTabletAlt = {\n prefix: 'fas',\n iconName: 'tablet-alt',\n icon: [448, 512, [], \"f3fa\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z\"]\n};\nvar faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [640, 512, [], \"f490\", \"M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z\"]\n};\nvar faTachometerAlt = {\n prefix: 'fas',\n iconName: 'tachometer-alt',\n icon: [576, 512, [], \"f3fd\", \"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [512, 512, [], \"f02b\", \"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [640, 512, [], \"f02c\", \"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z\"]\n};\nvar faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [640, 512, [], \"f4db\", \"M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\"]\n};\nvar faTasks = {\n prefix: 'fas',\n iconName: 'tasks',\n icon: [512, 512, [], \"f0ae\", \"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [], \"f1ba\", \"M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [640, 512, [], \"f62e\", \"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z\"]\n};\nvar faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [640, 512, [], \"f62f\", \"M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z\"]\n};\nvar faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTenge = {\n prefix: 'fas',\n iconName: 'tenge',\n icon: [384, 512, [], \"f7d7\", \"M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z\"]\n};\nvar faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [640, 512, [], \"f120\", \"M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z\"]\n};\nvar faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z\"]\n};\nvar faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z\"]\n};\nvar faTh = {\n prefix: 'fas',\n iconName: 'th',\n icon: [512, 512, [], \"f00a\", \"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z\"]\n};\nvar faThLarge = {\n prefix: 'fas',\n iconName: 'th-large',\n icon: [512, 512, [], \"f009\", \"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z\"]\n};\nvar faThList = {\n prefix: 'fas',\n iconName: 'th-list',\n icon: [512, 512, [], \"f00b\", \"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z\"]\n};\nvar faTheaterMasks = {\n prefix: 'fas',\n iconName: 'theater-masks',\n icon: [640, 512, [], \"f630\", \"M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z\"]\n};\nvar faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z\"]\n};\nvar faThermometerEmpty = {\n prefix: 'fas',\n iconName: 'thermometer-empty',\n icon: [256, 512, [], \"f2cb\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerFull = {\n prefix: 'fas',\n iconName: 'thermometer-full',\n icon: [256, 512, [], \"f2c7\", \"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z\"]\n};\nvar faThermometerHalf = {\n prefix: 'fas',\n iconName: 'thermometer-half',\n icon: [256, 512, [], \"f2c9\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerQuarter = {\n prefix: 'fas',\n iconName: 'thermometer-quarter',\n icon: [256, 512, [], \"f2ca\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerThreeQuarters = {\n prefix: 'fas',\n iconName: 'thermometer-three-quarters',\n icon: [256, 512, [], \"f2c8\", \"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [], \"f165\", \"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\"]\n};\nvar faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [], \"f164\", \"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\"]\n};\nvar faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [], \"f08d\", \"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\"]\n};\nvar faTicketAlt = {\n prefix: 'fas',\n iconName: 'ticket-alt',\n icon: [576, 512, [], \"f3ff\", \"M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z\"]\n};\nvar faTimes = {\n prefix: 'fas',\n iconName: 'times',\n icon: [352, 512, [], \"f00d\", \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"]\n};\nvar faTimesCircle = {\n prefix: 'fas',\n iconName: 'times-circle',\n icon: [512, 512, [], \"f057\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\"]\n};\nvar faTint = {\n prefix: 'fas',\n iconName: 'tint',\n icon: [352, 512, [], \"f043\", \"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faTintSlash = {\n prefix: 'fas',\n iconName: 'tint-slash',\n icon: [640, 512, [], \"f5c7\", \"M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z\"]\n};\nvar faTired = {\n prefix: 'fas',\n iconName: 'tired',\n icon: [496, 512, [], \"f5c8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z\"]\n};\nvar faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z\"]\n};\nvar faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z\"]\n};\nvar faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [384, 512, [], \"f7d8\", \"M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z\"]\n};\nvar faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [576, 512, [], \"f71e\", \"M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z\"]\n};\nvar faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [640, 512, [], \"e072\", \"M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z\"]\n};\nvar faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [], \"f552\", \"M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z\"]\n};\nvar faTools = {\n prefix: 'fas',\n iconName: 'tools',\n icon: [512, 512, [], \"f7d9\", \"M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z\"]\n};\nvar faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [448, 512, [], \"f5c9\", \"M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z\"]\n};\nvar faTorah = {\n prefix: 'fas',\n iconName: 'torah',\n icon: [640, 512, [], \"f6a0\", \"M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z\"]\n};\nvar faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [512, 512, [], \"f6a1\", \"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z\"]\n};\nvar faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [640, 512, [], \"f722\", \"M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z\"]\n};\nvar faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [], \"f25c\", \"M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z\"]\n};\nvar faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [384, 512, [], \"f637\", \"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"]\n};\nvar faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z\"]\n};\nvar faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [448, 512, [], \"f238\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z\"]\n};\nvar faTram = {\n prefix: 'fas',\n iconName: 'tram',\n icon: [512, 512, [], \"f7da\", \"M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [384, 512, [], \"f224\", \"M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTransgenderAlt = {\n prefix: 'fas',\n iconName: 'transgender-alt',\n icon: [480, 512, [], \"f225\", \"M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\"]\n};\nvar faTrashAlt = {\n prefix: 'fas',\n iconName: 'trash-alt',\n icon: [448, 512, [], \"f2ed\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTrashRestore = {\n prefix: 'fas',\n iconName: 'trash-restore',\n icon: [448, 512, [], \"f829\", \"M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTrashRestoreAlt = {\n prefix: 'fas',\n iconName: 'trash-restore-alt',\n icon: [448, 512, [], \"f82a\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [384, 512, [], \"f1bb\", \"M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z\"]\n};\nvar faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [576, 512, [], \"f091\", \"M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z\"]\n};\nvar faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [640, 512, [], \"f0d1\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faTruckLoading = {\n prefix: 'fas',\n iconName: 'truck-loading',\n icon: [640, 512, [], \"f4de\", \"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [640, 512, [], \"f63b\", \"M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"]\n};\nvar faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\"]\n};\nvar faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [], \"f63c\", \"M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faTshirt = {\n prefix: 'fas',\n iconName: 'tshirt',\n icon: [640, 512, [], \"f553\", \"M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z\"]\n};\nvar faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [], \"f1e4\", \"M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"]\n};\nvar faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [640, 512, [], \"f26c\", \"M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z\"]\n};\nvar faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [576, 512, [], \"f0e9\", \"M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [640, 512, [], \"f5ca\", \"M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z\"]\n};\nvar faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [448, 512, [], \"f0cd\", \"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faUndo = {\n prefix: 'fas',\n iconName: 'undo',\n icon: [512, 512, [], \"f0e2\", \"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\"]\n};\nvar faUndoAlt = {\n prefix: 'fas',\n iconName: 'undo-alt',\n icon: [512, 512, [], \"f2ea\", \"M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z\"]\n};\nvar faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z\"]\n};\nvar faUniversity = {\n prefix: 'fas',\n iconName: 'university',\n icon: [512, 512, [], \"f19c\", \"M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z\"]\n};\nvar faUnlink = {\n prefix: 'fas',\n iconName: 'unlink',\n icon: [512, 512, [], \"f127\", \"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\"]\n};\nvar faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [448, 512, [], \"f09c\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"]\n};\nvar faUnlockAlt = {\n prefix: 'fas',\n iconName: 'unlock-alt',\n icon: [448, 512, [], \"f13e\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\"]\n};\nvar faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [512, 512, [], \"f093\", \"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"]\n};\nvar faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [], \"f007\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserAlt = {\n prefix: 'fas',\n iconName: 'user-alt',\n icon: [512, 512, [], \"f406\", \"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z\"]\n};\nvar faUserAltSlash = {\n prefix: 'fas',\n iconName: 'user-alt-slash',\n icon: [640, 512, [], \"f4fa\", \"M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z\"]\n};\nvar faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z\"]\n};\nvar faUserCircle = {\n prefix: 'fas',\n iconName: 'user-circle',\n icon: [496, 512, [], \"f2bd\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z\"]\n};\nvar faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [640, 512, [], \"f4fd\", \"M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z\"]\n};\nvar faUserCog = {\n prefix: 'fas',\n iconName: 'user-cog',\n icon: [640, 512, [], \"f4fe\", \"M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z\"]\n};\nvar faUserEdit = {\n prefix: 'fas',\n iconName: 'user-edit',\n icon: [640, 512, [], \"f4ff\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\"]\n};\nvar faUserFriends = {\n prefix: 'fas',\n iconName: 'user-friends',\n icon: [640, 512, [], \"f500\", \"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z\"]\n};\nvar faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z\"]\n};\nvar faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z\"]\n};\nvar faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [640, 512, [], \"f502\", \"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z\"]\n};\nvar faUserMd = {\n prefix: 'fas',\n iconName: 'user-md',\n icon: [448, 512, [], \"f0f0\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z\"]\n};\nvar faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [], \"f504\", \"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z\"]\n};\nvar faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z\"]\n};\nvar faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [], \"f21b\", \"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\"]\n};\nvar faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [640, 512, [], \"f505\", \"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\"]\n};\nvar faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [640, 512, [], \"f506\", \"M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z\"]\n};\nvar faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z\"]\n};\nvar faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\"]\n};\nvar faUserTimes = {\n prefix: 'fas',\n iconName: 'user-times',\n icon: [640, 512, [], \"f235\", \"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"]\n};\nvar faUsersCog = {\n prefix: 'fas',\n iconName: 'users-cog',\n icon: [640, 512, [], \"f509\", \"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"]\n};\nvar faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M132.65,212.32,36.21,137.78A63.4,63.4,0,0,0,32,160a63.84,63.84,0,0,0,100.65,52.32Zm40.44,62.28A63.79,63.79,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.62,146.62,0,0,1,173.09,274.6ZM544,224a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM500.56,355.11a114.24,114.24,0,0,0-84.47-65.28L361,247.23c41.46-16.3,71-55.92,71-103.23A111.93,111.93,0,0,0,320,32c-57.14,0-103.69,42.83-110.6,98.08L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM128,403.21V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.83,128,343.42,128,403.21ZM576,256H512a63.79,63.79,0,0,0-45.09,18.6A146.29,146.29,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z\"]\n};\nvar faUtensilSpoon = {\n prefix: 'fas',\n iconName: 'utensil-spoon',\n icon: [512, 512, [], \"f2e5\", \"M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z\"]\n};\nvar faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [416, 512, [], \"f2e7\", \"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z\"]\n};\nvar faVectorSquare = {\n prefix: 'fas',\n iconName: 'vector-square',\n icon: [512, 512, [], \"f5cb\", \"M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z\"]\n};\nvar faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [288, 512, [], \"f221\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"]\n};\nvar faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [512, 512, [], \"f226\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z\"]\n};\nvar faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [576, 512, [], \"f228\", \"M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a24.021,24.021,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM131.312,371.312l-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Zm256,48a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312Z\"]\n};\nvar faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a23.982,23.982,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A23.982,23.982,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.561A151.579,151.579,0,0,0,224,86.234a151.565,151.565,0,0,0,73.811-19.668L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM63.5,272.484a12.01,12.01,0,0,1,17-16.968l15.5,15.5,15.5-15.5a12.01,12.01,0,0,1,17,16.968L112.984,288,128.5,303.516a12.01,12.01,0,0,1-17,16.968L96,304.984l-15.5,15.5a12.01,12.01,0,0,1-17-16.968L79.016,288ZM96,456a40,40,0,1,1,40-40A40,40,0,0,1,96,456ZM359.227,335.785,310.7,336a6.671,6.671,0,0,1-6.7-6.7l.215-48.574A24.987,24.987,0,0,1,331.43,256.1c12.789,1.162,22.129,12.619,22.056,25.419l-.037,5.057,5.051-.037c12.826-.035,24.236,9.275,25.4,22.076A24.948,24.948,0,0,1,359.227,335.785Z\"]\n};\nvar faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [480, 512, [], \"f492\", \"M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z\"]\n};\nvar faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [640, 512, [], \"f493\", \"M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z\"]\n};\nvar faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [], \"f03d\", \"M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z\"]\n};\nvar faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [640, 512, [], \"f4e2\", \"M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z\"]\n};\nvar faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [640, 512, [], \"f6a7\", \"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z\"]\n};\nvar faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z\"]\n};\nvar faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [640, 512, [], \"e075\", \"M114,227.6H92.4C76.7,227.6,64,240.3,64,256s12.7,28.4,28.4,28.4H114c50.7,0,76.1,61.3,40.2,97.1L139,396.8 c-11.5,10.7-12.2,28.7-1.6,40.2s28.7,12.2,40.2,1.6c0.5-0.5,1.1-1,1.6-1.6l15.2-15.2c35.8-35.8,97.1-10.5,97.1,40.2v21.5 c0,15.7,12.8,28.4,28.5,28.4c15.7,0,28.4-12.7,28.4-28.4V462c0-26.6,17-45.9,38.2-53.4l-244.5-189 C133.7,224.7,123.9,227.5,114,227.6z M617,505.8l19.6-25.3c5.4-7,4.2-17-2.8-22.5L470.6,332c4.2-25.4,24.9-47.5,55.4-47.5h21.5 c15.7,0,28.4-12.7,28.4-28.4s-12.7-28.4-28.4-28.4H526c-50.7,0-76.1-61.3-40.2-97.1l15.2-15.3c10.7-11.5,10-29.5-1.6-40.2 c-10.9-10.1-27.7-10.1-38.6,0l-15.2,15.2c-35.8,35.8-97.1,10.5-97.1-40.2V28.5C348.4,12.7,335.7,0,320,0 c-15.7,0-28.4,12.7-28.4,28.4V50c0,50.7-61.3,76.1-97.1,40.2L179.2,75c-11.1-11.1-29.4-10.6-40.5,0.5L45.5,3.4 c-7-5.4-17-4.2-22.5,2.8L3.4,31.5c-5.4,7-4.2,17,2.8,22.5l588.4,454.7C601.5,514.1,611.6,512.8,617,505.8z M335.4,227.5l-62.9-48.6 c4.9-1.8,10.2-2.8,15.4-2.9c26.5,0,48,21.5,48,48C336,225.2,335.5,226.3,335.4,227.5z\"]\n};\nvar faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z\"]\n};\nvar faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"]\n};\nvar faVolleyballBall = {\n prefix: 'fas',\n iconName: 'volleyball-ball',\n icon: [512, 512, [], \"f45f\", \"M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z\"]\n};\nvar faVolumeDown = {\n prefix: 'fas',\n iconName: 'volume-down',\n icon: [384, 512, [], \"f027\", \"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z\"]\n};\nvar faVolumeMute = {\n prefix: 'fas',\n iconName: 'volume-mute',\n icon: [512, 512, [], \"f6a9\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z\"]\n};\nvar faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [256, 512, [], \"f026\", \"M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z\"]\n};\nvar faVolumeUp = {\n prefix: 'fas',\n iconName: 'volume-up',\n icon: [576, 512, [], \"f028\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z\"]\n};\nvar faVoteYea = {\n prefix: 'fas',\n iconName: 'vote-yea',\n icon: [640, 512, [], \"f772\", \"M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z\"]\n};\nvar faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [640, 512, [], \"f729\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z\"]\n};\nvar faWalking = {\n prefix: 'fas',\n iconName: 'walking',\n icon: [320, 512, [], \"f554\", \"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z\"]\n};\nvar faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [640, 512, [], \"f494\", \"M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z\"]\n};\nvar faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [576, 512, [], \"f773\", \"M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z\"]\n};\nvar faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [640, 512, [], \"f83e\", \"M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z\"]\n};\nvar faWeight = {\n prefix: 'fas',\n iconName: 'weight',\n icon: [512, 512, [], \"f496\", \"M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z\"]\n};\nvar faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [512, 512, [], \"f193\", \"M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z\"]\n};\nvar faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [640, 512, [], \"f1eb\", \"M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z\"]\n};\nvar faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z\"]\n};\nvar faWindowClose = {\n prefix: 'fas',\n iconName: 'window-close',\n icon: [512, 512, [], \"f410\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z\"]\n};\nvar faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [], \"f2d0\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [], \"f2d1\", \"M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z\"]\n};\nvar faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z\"]\n};\nvar faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [512, 512, [], \"f72f\", \"M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z\"]\n};\nvar faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [288, 512, [], \"f4e3\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z\"]\n};\nvar faWineGlassAlt = {\n prefix: 'fas',\n iconName: 'wine-glass-alt',\n icon: [288, 512, [], \"f5ce\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z\"]\n};\nvar faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [576, 512, [], \"f159\", \"M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z\"]\n};\nvar faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [512, 512, [], \"f0ad\", \"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [640, 512, [], \"f497\", \"M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [384, 512, [], \"f157\", \"M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z\"]\n};\nvar faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [496, 512, [], \"f6ad\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar _iconsCache = {\n faAd: faAd,\n faAddressBook: faAddressBook,\n faAddressCard: faAddressCard,\n faAdjust: faAdjust,\n faAirFreshener: faAirFreshener,\n faAlignCenter: faAlignCenter,\n faAlignJustify: faAlignJustify,\n faAlignLeft: faAlignLeft,\n faAlignRight: faAlignRight,\n faAllergies: faAllergies,\n faAmbulance: faAmbulance,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAnchor: faAnchor,\n faAngleDoubleDown: faAngleDoubleDown,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faAngleDoubleRight: faAngleDoubleRight,\n faAngleDoubleUp: faAngleDoubleUp,\n faAngleDown: faAngleDown,\n faAngleLeft: faAngleLeft,\n faAngleRight: faAngleRight,\n faAngleUp: faAngleUp,\n faAngry: faAngry,\n faAnkh: faAnkh,\n faAppleAlt: faAppleAlt,\n faArchive: faArchive,\n faArchway: faArchway,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faArrowCircleDown: faArrowCircleDown,\n faArrowCircleLeft: faArrowCircleLeft,\n faArrowCircleRight: faArrowCircleRight,\n faArrowCircleUp: faArrowCircleUp,\n faArrowDown: faArrowDown,\n faArrowLeft: faArrowLeft,\n faArrowRight: faArrowRight,\n faArrowUp: faArrowUp,\n faArrowsAlt: faArrowsAlt,\n faArrowsAltH: faArrowsAltH,\n faArrowsAltV: faArrowsAltV,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faAsterisk: faAsterisk,\n faAt: faAt,\n faAtlas: faAtlas,\n faAtom: faAtom,\n faAudioDescription: faAudioDescription,\n faAward: faAward,\n faBaby: faBaby,\n faBabyCarriage: faBabyCarriage,\n faBackspace: faBackspace,\n faBackward: faBackward,\n faBacon: faBacon,\n faBacteria: faBacteria,\n faBacterium: faBacterium,\n faBahai: faBahai,\n faBalanceScale: faBalanceScale,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faBalanceScaleRight: faBalanceScaleRight,\n faBan: faBan,\n faBandAid: faBandAid,\n faBarcode: faBarcode,\n faBars: faBars,\n faBaseballBall: faBaseballBall,\n faBasketballBall: faBasketballBall,\n faBath: faBath,\n faBatteryEmpty: faBatteryEmpty,\n faBatteryFull: faBatteryFull,\n faBatteryHalf: faBatteryHalf,\n faBatteryQuarter: faBatteryQuarter,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBed: faBed,\n faBeer: faBeer,\n faBell: faBell,\n faBellSlash: faBellSlash,\n faBezierCurve: faBezierCurve,\n faBible: faBible,\n faBicycle: faBicycle,\n faBiking: faBiking,\n faBinoculars: faBinoculars,\n faBiohazard: faBiohazard,\n faBirthdayCake: faBirthdayCake,\n faBlender: faBlender,\n faBlenderPhone: faBlenderPhone,\n faBlind: faBlind,\n faBlog: faBlog,\n faBold: faBold,\n faBolt: faBolt,\n faBomb: faBomb,\n faBone: faBone,\n faBong: faBong,\n faBook: faBook,\n faBookDead: faBookDead,\n faBookMedical: faBookMedical,\n faBookOpen: faBookOpen,\n faBookReader: faBookReader,\n faBookmark: faBookmark,\n faBorderAll: faBorderAll,\n faBorderNone: faBorderNone,\n faBorderStyle: faBorderStyle,\n faBowlingBall: faBowlingBall,\n faBox: faBox,\n faBoxOpen: faBoxOpen,\n faBoxTissue: faBoxTissue,\n faBoxes: faBoxes,\n faBraille: faBraille,\n faBrain: faBrain,\n faBreadSlice: faBreadSlice,\n faBriefcase: faBriefcase,\n faBriefcaseMedical: faBriefcaseMedical,\n faBroadcastTower: faBroadcastTower,\n faBroom: faBroom,\n faBrush: faBrush,\n faBug: faBug,\n faBuilding: faBuilding,\n faBullhorn: faBullhorn,\n faBullseye: faBullseye,\n faBurn: faBurn,\n faBus: faBus,\n faBusAlt: faBusAlt,\n faBusinessTime: faBusinessTime,\n faCalculator: faCalculator,\n faCalendar: faCalendar,\n faCalendarAlt: faCalendarAlt,\n faCalendarCheck: faCalendarCheck,\n faCalendarDay: faCalendarDay,\n faCalendarMinus: faCalendarMinus,\n faCalendarPlus: faCalendarPlus,\n faCalendarTimes: faCalendarTimes,\n faCalendarWeek: faCalendarWeek,\n faCamera: faCamera,\n faCameraRetro: faCameraRetro,\n faCampground: faCampground,\n faCandyCane: faCandyCane,\n faCannabis: faCannabis,\n faCapsules: faCapsules,\n faCar: faCar,\n faCarAlt: faCarAlt,\n faCarBattery: faCarBattery,\n faCarCrash: faCarCrash,\n faCarSide: faCarSide,\n faCaravan: faCaravan,\n faCaretDown: faCaretDown,\n faCaretLeft: faCaretLeft,\n faCaretRight: faCaretRight,\n faCaretSquareDown: faCaretSquareDown,\n faCaretSquareLeft: faCaretSquareLeft,\n faCaretSquareRight: faCaretSquareRight,\n faCaretSquareUp: faCaretSquareUp,\n faCaretUp: faCaretUp,\n faCarrot: faCarrot,\n faCartArrowDown: faCartArrowDown,\n faCartPlus: faCartPlus,\n faCashRegister: faCashRegister,\n faCat: faCat,\n faCertificate: faCertificate,\n faChair: faChair,\n faChalkboard: faChalkboard,\n faChalkboardTeacher: faChalkboardTeacher,\n faChargingStation: faChargingStation,\n faChartArea: faChartArea,\n faChartBar: faChartBar,\n faChartLine: faChartLine,\n faChartPie: faChartPie,\n faCheck: faCheck,\n faCheckCircle: faCheckCircle,\n faCheckDouble: faCheckDouble,\n faCheckSquare: faCheckSquare,\n faCheese: faCheese,\n faChess: faChess,\n faChessBishop: faChessBishop,\n faChessBoard: faChessBoard,\n faChessKing: faChessKing,\n faChessKnight: faChessKnight,\n faChessPawn: faChessPawn,\n faChessQueen: faChessQueen,\n faChessRook: faChessRook,\n faChevronCircleDown: faChevronCircleDown,\n faChevronCircleLeft: faChevronCircleLeft,\n faChevronCircleRight: faChevronCircleRight,\n faChevronCircleUp: faChevronCircleUp,\n faChevronDown: faChevronDown,\n faChevronLeft: faChevronLeft,\n faChevronRight: faChevronRight,\n faChevronUp: faChevronUp,\n faChild: faChild,\n faChurch: faChurch,\n faCircle: faCircle,\n faCircleNotch: faCircleNotch,\n faCity: faCity,\n faClinicMedical: faClinicMedical,\n faClipboard: faClipboard,\n faClipboardCheck: faClipboardCheck,\n faClipboardList: faClipboardList,\n faClock: faClock,\n faClone: faClone,\n faClosedCaptioning: faClosedCaptioning,\n faCloud: faCloud,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faCloudMeatball: faCloudMeatball,\n faCloudMoon: faCloudMoon,\n faCloudMoonRain: faCloudMoonRain,\n faCloudRain: faCloudRain,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faCloudSun: faCloudSun,\n faCloudSunRain: faCloudSunRain,\n faCloudUploadAlt: faCloudUploadAlt,\n faCocktail: faCocktail,\n faCode: faCode,\n faCodeBranch: faCodeBranch,\n faCoffee: faCoffee,\n faCog: faCog,\n faCogs: faCogs,\n faCoins: faCoins,\n faColumns: faColumns,\n faComment: faComment,\n faCommentAlt: faCommentAlt,\n faCommentDollar: faCommentDollar,\n faCommentDots: faCommentDots,\n faCommentMedical: faCommentMedical,\n faCommentSlash: faCommentSlash,\n faComments: faComments,\n faCommentsDollar: faCommentsDollar,\n faCompactDisc: faCompactDisc,\n faCompass: faCompass,\n faCompress: faCompress,\n faCompressAlt: faCompressAlt,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faConciergeBell: faConciergeBell,\n faCookie: faCookie,\n faCookieBite: faCookieBite,\n faCopy: faCopy,\n faCopyright: faCopyright,\n faCouch: faCouch,\n faCreditCard: faCreditCard,\n faCrop: faCrop,\n faCropAlt: faCropAlt,\n faCross: faCross,\n faCrosshairs: faCrosshairs,\n faCrow: faCrow,\n faCrown: faCrown,\n faCrutch: faCrutch,\n faCube: faCube,\n faCubes: faCubes,\n faCut: faCut,\n faDatabase: faDatabase,\n faDeaf: faDeaf,\n faDemocrat: faDemocrat,\n faDesktop: faDesktop,\n faDharmachakra: faDharmachakra,\n faDiagnoses: faDiagnoses,\n faDice: faDice,\n faDiceD20: faDiceD20,\n faDiceD6: faDiceD6,\n faDiceFive: faDiceFive,\n faDiceFour: faDiceFour,\n faDiceOne: faDiceOne,\n faDiceSix: faDiceSix,\n faDiceThree: faDiceThree,\n faDiceTwo: faDiceTwo,\n faDigitalTachograph: faDigitalTachograph,\n faDirections: faDirections,\n faDisease: faDisease,\n faDivide: faDivide,\n faDizzy: faDizzy,\n faDna: faDna,\n faDog: faDog,\n faDollarSign: faDollarSign,\n faDolly: faDolly,\n faDollyFlatbed: faDollyFlatbed,\n faDonate: faDonate,\n faDoorClosed: faDoorClosed,\n faDoorOpen: faDoorOpen,\n faDotCircle: faDotCircle,\n faDove: faDove,\n faDownload: faDownload,\n faDraftingCompass: faDraftingCompass,\n faDragon: faDragon,\n faDrawPolygon: faDrawPolygon,\n faDrum: faDrum,\n faDrumSteelpan: faDrumSteelpan,\n faDrumstickBite: faDrumstickBite,\n faDumbbell: faDumbbell,\n faDumpster: faDumpster,\n faDumpsterFire: faDumpsterFire,\n faDungeon: faDungeon,\n faEdit: faEdit,\n faEgg: faEgg,\n faEject: faEject,\n faEllipsisH: faEllipsisH,\n faEllipsisV: faEllipsisV,\n faEnvelope: faEnvelope,\n faEnvelopeOpen: faEnvelopeOpen,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faEnvelopeSquare: faEnvelopeSquare,\n faEquals: faEquals,\n faEraser: faEraser,\n faEthernet: faEthernet,\n faEuroSign: faEuroSign,\n faExchangeAlt: faExchangeAlt,\n faExclamation: faExclamation,\n faExclamationCircle: faExclamationCircle,\n faExclamationTriangle: faExclamationTriangle,\n faExpand: faExpand,\n faExpandAlt: faExpandAlt,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faExternalLinkAlt: faExternalLinkAlt,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faEye: faEye,\n faEyeDropper: faEyeDropper,\n faEyeSlash: faEyeSlash,\n faFan: faFan,\n faFastBackward: faFastBackward,\n faFastForward: faFastForward,\n faFaucet: faFaucet,\n faFax: faFax,\n faFeather: faFeather,\n faFeatherAlt: faFeatherAlt,\n faFemale: faFemale,\n faFighterJet: faFighterJet,\n faFile: faFile,\n faFileAlt: faFileAlt,\n faFileArchive: faFileArchive,\n faFileAudio: faFileAudio,\n faFileCode: faFileCode,\n faFileContract: faFileContract,\n faFileCsv: faFileCsv,\n faFileDownload: faFileDownload,\n faFileExcel: faFileExcel,\n faFileExport: faFileExport,\n faFileImage: faFileImage,\n faFileImport: faFileImport,\n faFileInvoice: faFileInvoice,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faFileMedical: faFileMedical,\n faFileMedicalAlt: faFileMedicalAlt,\n faFilePdf: faFilePdf,\n faFilePowerpoint: faFilePowerpoint,\n faFilePrescription: faFilePrescription,\n faFileSignature: faFileSignature,\n faFileUpload: faFileUpload,\n faFileVideo: faFileVideo,\n faFileWord: faFileWord,\n faFill: faFill,\n faFillDrip: faFillDrip,\n faFilm: faFilm,\n faFilter: faFilter,\n faFingerprint: faFingerprint,\n faFire: faFire,\n faFireAlt: faFireAlt,\n faFireExtinguisher: faFireExtinguisher,\n faFirstAid: faFirstAid,\n faFish: faFish,\n faFistRaised: faFistRaised,\n faFlag: faFlag,\n faFlagCheckered: faFlagCheckered,\n faFlagUsa: faFlagUsa,\n faFlask: faFlask,\n faFlushed: faFlushed,\n faFolder: faFolder,\n faFolderMinus: faFolderMinus,\n faFolderOpen: faFolderOpen,\n faFolderPlus: faFolderPlus,\n faFont: faFont,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faFootballBall: faFootballBall,\n faForward: faForward,\n faFrog: faFrog,\n faFrown: faFrown,\n faFrownOpen: faFrownOpen,\n faFunnelDollar: faFunnelDollar,\n faFutbol: faFutbol,\n faGamepad: faGamepad,\n faGasPump: faGasPump,\n faGavel: faGavel,\n faGem: faGem,\n faGenderless: faGenderless,\n faGhost: faGhost,\n faGift: faGift,\n faGifts: faGifts,\n faGlassCheers: faGlassCheers,\n faGlassMartini: faGlassMartini,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faGlassWhiskey: faGlassWhiskey,\n faGlasses: faGlasses,\n faGlobe: faGlobe,\n faGlobeAfrica: faGlobeAfrica,\n faGlobeAmericas: faGlobeAmericas,\n faGlobeAsia: faGlobeAsia,\n faGlobeEurope: faGlobeEurope,\n faGolfBall: faGolfBall,\n faGopuram: faGopuram,\n faGraduationCap: faGraduationCap,\n faGreaterThan: faGreaterThan,\n faGreaterThanEqual: faGreaterThanEqual,\n faGrimace: faGrimace,\n faGrin: faGrin,\n faGrinAlt: faGrinAlt,\n faGrinBeam: faGrinBeam,\n faGrinBeamSweat: faGrinBeamSweat,\n faGrinHearts: faGrinHearts,\n faGrinSquint: faGrinSquint,\n faGrinSquintTears: faGrinSquintTears,\n faGrinStars: faGrinStars,\n faGrinTears: faGrinTears,\n faGrinTongue: faGrinTongue,\n faGrinTongueSquint: faGrinTongueSquint,\n faGrinTongueWink: faGrinTongueWink,\n faGrinWink: faGrinWink,\n faGripHorizontal: faGripHorizontal,\n faGripLines: faGripLines,\n faGripLinesVertical: faGripLinesVertical,\n faGripVertical: faGripVertical,\n faGuitar: faGuitar,\n faHSquare: faHSquare,\n faHamburger: faHamburger,\n faHammer: faHammer,\n faHamsa: faHamsa,\n faHandHolding: faHandHolding,\n faHandHoldingHeart: faHandHoldingHeart,\n faHandHoldingMedical: faHandHoldingMedical,\n faHandHoldingUsd: faHandHoldingUsd,\n faHandHoldingWater: faHandHoldingWater,\n faHandLizard: faHandLizard,\n faHandMiddleFinger: faHandMiddleFinger,\n faHandPaper: faHandPaper,\n faHandPeace: faHandPeace,\n faHandPointDown: faHandPointDown,\n faHandPointLeft: faHandPointLeft,\n faHandPointRight: faHandPointRight,\n faHandPointUp: faHandPointUp,\n faHandPointer: faHandPointer,\n faHandRock: faHandRock,\n faHandScissors: faHandScissors,\n faHandSparkles: faHandSparkles,\n faHandSpock: faHandSpock,\n faHands: faHands,\n faHandsHelping: faHandsHelping,\n faHandsWash: faHandsWash,\n faHandshake: faHandshake,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faHandshakeSlash: faHandshakeSlash,\n faHanukiah: faHanukiah,\n faHardHat: faHardHat,\n faHashtag: faHashtag,\n faHatCowboy: faHatCowboy,\n faHatCowboySide: faHatCowboySide,\n faHatWizard: faHatWizard,\n faHdd: faHdd,\n faHeadSideCough: faHeadSideCough,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faHeadSideMask: faHeadSideMask,\n faHeadSideVirus: faHeadSideVirus,\n faHeading: faHeading,\n faHeadphones: faHeadphones,\n faHeadphonesAlt: faHeadphonesAlt,\n faHeadset: faHeadset,\n faHeart: faHeart,\n faHeartBroken: faHeartBroken,\n faHeartbeat: faHeartbeat,\n faHelicopter: faHelicopter,\n faHighlighter: faHighlighter,\n faHiking: faHiking,\n faHippo: faHippo,\n faHistory: faHistory,\n faHockeyPuck: faHockeyPuck,\n faHollyBerry: faHollyBerry,\n faHome: faHome,\n faHorse: faHorse,\n faHorseHead: faHorseHead,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalSymbol: faHospitalSymbol,\n faHospitalUser: faHospitalUser,\n faHotTub: faHotTub,\n faHotdog: faHotdog,\n faHotel: faHotel,\n faHourglass: faHourglass,\n faHourglassEnd: faHourglassEnd,\n faHourglassHalf: faHourglassHalf,\n faHourglassStart: faHourglassStart,\n faHouseDamage: faHouseDamage,\n faHouseUser: faHouseUser,\n faHryvnia: faHryvnia,\n faICursor: faICursor,\n faIceCream: faIceCream,\n faIcicles: faIcicles,\n faIcons: faIcons,\n faIdBadge: faIdBadge,\n faIdCard: faIdCard,\n faIdCardAlt: faIdCardAlt,\n faIgloo: faIgloo,\n faImage: faImage,\n faImages: faImages,\n faInbox: faInbox,\n faIndent: faIndent,\n faIndustry: faIndustry,\n faInfinity: faInfinity,\n faInfo: faInfo,\n faInfoCircle: faInfoCircle,\n faItalic: faItalic,\n faJedi: faJedi,\n faJoint: faJoint,\n faJournalWhills: faJournalWhills,\n faKaaba: faKaaba,\n faKey: faKey,\n faKeyboard: faKeyboard,\n faKhanda: faKhanda,\n faKiss: faKiss,\n faKissBeam: faKissBeam,\n faKissWinkHeart: faKissWinkHeart,\n faKiwiBird: faKiwiBird,\n faLandmark: faLandmark,\n faLanguage: faLanguage,\n faLaptop: faLaptop,\n faLaptopCode: faLaptopCode,\n faLaptopHouse: faLaptopHouse,\n faLaptopMedical: faLaptopMedical,\n faLaugh: faLaugh,\n faLaughBeam: faLaughBeam,\n faLaughSquint: faLaughSquint,\n faLaughWink: faLaughWink,\n faLayerGroup: faLayerGroup,\n faLeaf: faLeaf,\n faLemon: faLemon,\n faLessThan: faLessThan,\n faLessThanEqual: faLessThanEqual,\n faLevelDownAlt: faLevelDownAlt,\n faLevelUpAlt: faLevelUpAlt,\n faLifeRing: faLifeRing,\n faLightbulb: faLightbulb,\n faLink: faLink,\n faLiraSign: faLiraSign,\n faList: faList,\n faListAlt: faListAlt,\n faListOl: faListOl,\n faListUl: faListUl,\n faLocationArrow: faLocationArrow,\n faLock: faLock,\n faLockOpen: faLockOpen,\n faLongArrowAltDown: faLongArrowAltDown,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faLongArrowAltRight: faLongArrowAltRight,\n faLongArrowAltUp: faLongArrowAltUp,\n faLowVision: faLowVision,\n faLuggageCart: faLuggageCart,\n faLungs: faLungs,\n faLungsVirus: faLungsVirus,\n faMagic: faMagic,\n faMagnet: faMagnet,\n faMailBulk: faMailBulk,\n faMale: faMale,\n faMap: faMap,\n faMapMarked: faMapMarked,\n faMapMarkedAlt: faMapMarkedAlt,\n faMapMarker: faMapMarker,\n faMapMarkerAlt: faMapMarkerAlt,\n faMapPin: faMapPin,\n faMapSigns: faMapSigns,\n faMarker: faMarker,\n faMars: faMars,\n faMarsDouble: faMarsDouble,\n faMarsStroke: faMarsStroke,\n faMarsStrokeH: faMarsStrokeH,\n faMarsStrokeV: faMarsStrokeV,\n faMask: faMask,\n faMedal: faMedal,\n faMedkit: faMedkit,\n faMeh: faMeh,\n faMehBlank: faMehBlank,\n faMehRollingEyes: faMehRollingEyes,\n faMemory: faMemory,\n faMenorah: faMenorah,\n faMercury: faMercury,\n faMeteor: faMeteor,\n faMicrochip: faMicrochip,\n faMicrophone: faMicrophone,\n faMicrophoneAlt: faMicrophoneAlt,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faMicrophoneSlash: faMicrophoneSlash,\n faMicroscope: faMicroscope,\n faMinus: faMinus,\n faMinusCircle: faMinusCircle,\n faMinusSquare: faMinusSquare,\n faMitten: faMitten,\n faMobile: faMobile,\n faMobileAlt: faMobileAlt,\n faMoneyBill: faMoneyBill,\n faMoneyBillAlt: faMoneyBillAlt,\n faMoneyBillWave: faMoneyBillWave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faMoneyCheck: faMoneyCheck,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faMonument: faMonument,\n faMoon: faMoon,\n faMortarPestle: faMortarPestle,\n faMosque: faMosque,\n faMotorcycle: faMotorcycle,\n faMountain: faMountain,\n faMouse: faMouse,\n faMousePointer: faMousePointer,\n faMugHot: faMugHot,\n faMusic: faMusic,\n faNetworkWired: faNetworkWired,\n faNeuter: faNeuter,\n faNewspaper: faNewspaper,\n faNotEqual: faNotEqual,\n faNotesMedical: faNotesMedical,\n faObjectGroup: faObjectGroup,\n faObjectUngroup: faObjectUngroup,\n faOilCan: faOilCan,\n faOm: faOm,\n faOtter: faOtter,\n faOutdent: faOutdent,\n faPager: faPager,\n faPaintBrush: faPaintBrush,\n faPaintRoller: faPaintRoller,\n faPalette: faPalette,\n faPallet: faPallet,\n faPaperPlane: faPaperPlane,\n faPaperclip: faPaperclip,\n faParachuteBox: faParachuteBox,\n faParagraph: faParagraph,\n faParking: faParking,\n faPassport: faPassport,\n faPastafarianism: faPastafarianism,\n faPaste: faPaste,\n faPause: faPause,\n faPauseCircle: faPauseCircle,\n faPaw: faPaw,\n faPeace: faPeace,\n faPen: faPen,\n faPenAlt: faPenAlt,\n faPenFancy: faPenFancy,\n faPenNib: faPenNib,\n faPenSquare: faPenSquare,\n faPencilAlt: faPencilAlt,\n faPencilRuler: faPencilRuler,\n faPeopleArrows: faPeopleArrows,\n faPeopleCarry: faPeopleCarry,\n faPepperHot: faPepperHot,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faPersonBooth: faPersonBooth,\n faPhone: faPhone,\n faPhoneAlt: faPhoneAlt,\n faPhoneSlash: faPhoneSlash,\n faPhoneSquare: faPhoneSquare,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faPhoneVolume: faPhoneVolume,\n faPhotoVideo: faPhotoVideo,\n faPiggyBank: faPiggyBank,\n faPills: faPills,\n faPizzaSlice: faPizzaSlice,\n faPlaceOfWorship: faPlaceOfWorship,\n faPlane: faPlane,\n faPlaneArrival: faPlaneArrival,\n faPlaneDeparture: faPlaneDeparture,\n faPlaneSlash: faPlaneSlash,\n faPlay: faPlay,\n faPlayCircle: faPlayCircle,\n faPlug: faPlug,\n faPlus: faPlus,\n faPlusCircle: faPlusCircle,\n faPlusSquare: faPlusSquare,\n faPodcast: faPodcast,\n faPoll: faPoll,\n faPollH: faPollH,\n faPoo: faPoo,\n faPooStorm: faPooStorm,\n faPoop: faPoop,\n faPortrait: faPortrait,\n faPoundSign: faPoundSign,\n faPowerOff: faPowerOff,\n faPray: faPray,\n faPrayingHands: faPrayingHands,\n faPrescription: faPrescription,\n faPrescriptionBottle: faPrescriptionBottle,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faPrint: faPrint,\n faProcedures: faProcedures,\n faProjectDiagram: faProjectDiagram,\n faPumpMedical: faPumpMedical,\n faPumpSoap: faPumpSoap,\n faPuzzlePiece: faPuzzlePiece,\n faQrcode: faQrcode,\n faQuestion: faQuestion,\n faQuestionCircle: faQuestionCircle,\n faQuidditch: faQuidditch,\n faQuoteLeft: faQuoteLeft,\n faQuoteRight: faQuoteRight,\n faQuran: faQuran,\n faRadiation: faRadiation,\n faRadiationAlt: faRadiationAlt,\n faRainbow: faRainbow,\n faRandom: faRandom,\n faReceipt: faReceipt,\n faRecordVinyl: faRecordVinyl,\n faRecycle: faRecycle,\n faRedo: faRedo,\n faRedoAlt: faRedoAlt,\n faRegistered: faRegistered,\n faRemoveFormat: faRemoveFormat,\n faReply: faReply,\n faReplyAll: faReplyAll,\n faRepublican: faRepublican,\n faRestroom: faRestroom,\n faRetweet: faRetweet,\n faRibbon: faRibbon,\n faRing: faRing,\n faRoad: faRoad,\n faRobot: faRobot,\n faRocket: faRocket,\n faRoute: faRoute,\n faRss: faRss,\n faRssSquare: faRssSquare,\n faRubleSign: faRubleSign,\n faRuler: faRuler,\n faRulerCombined: faRulerCombined,\n faRulerHorizontal: faRulerHorizontal,\n faRulerVertical: faRulerVertical,\n faRunning: faRunning,\n faRupeeSign: faRupeeSign,\n faSadCry: faSadCry,\n faSadTear: faSadTear,\n faSatellite: faSatellite,\n faSatelliteDish: faSatelliteDish,\n faSave: faSave,\n faSchool: faSchool,\n faScrewdriver: faScrewdriver,\n faScroll: faScroll,\n faSdCard: faSdCard,\n faSearch: faSearch,\n faSearchDollar: faSearchDollar,\n faSearchLocation: faSearchLocation,\n faSearchMinus: faSearchMinus,\n faSearchPlus: faSearchPlus,\n faSeedling: faSeedling,\n faServer: faServer,\n faShapes: faShapes,\n faShare: faShare,\n faShareAlt: faShareAlt,\n faShareAltSquare: faShareAltSquare,\n faShareSquare: faShareSquare,\n faShekelSign: faShekelSign,\n faShieldAlt: faShieldAlt,\n faShieldVirus: faShieldVirus,\n faShip: faShip,\n faShippingFast: faShippingFast,\n faShoePrints: faShoePrints,\n faShoppingBag: faShoppingBag,\n faShoppingBasket: faShoppingBasket,\n faShoppingCart: faShoppingCart,\n faShower: faShower,\n faShuttleVan: faShuttleVan,\n faSign: faSign,\n faSignInAlt: faSignInAlt,\n faSignLanguage: faSignLanguage,\n faSignOutAlt: faSignOutAlt,\n faSignal: faSignal,\n faSignature: faSignature,\n faSimCard: faSimCard,\n faSink: faSink,\n faSitemap: faSitemap,\n faSkating: faSkating,\n faSkiing: faSkiing,\n faSkiingNordic: faSkiingNordic,\n faSkull: faSkull,\n faSkullCrossbones: faSkullCrossbones,\n faSlash: faSlash,\n faSleigh: faSleigh,\n faSlidersH: faSlidersH,\n faSmile: faSmile,\n faSmileBeam: faSmileBeam,\n faSmileWink: faSmileWink,\n faSmog: faSmog,\n faSmoking: faSmoking,\n faSmokingBan: faSmokingBan,\n faSms: faSms,\n faSnowboarding: faSnowboarding,\n faSnowflake: faSnowflake,\n faSnowman: faSnowman,\n faSnowplow: faSnowplow,\n faSoap: faSoap,\n faSocks: faSocks,\n faSolarPanel: faSolarPanel,\n faSort: faSort,\n faSortAlphaDown: faSortAlphaDown,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faSortAlphaUp: faSortAlphaUp,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faSortAmountDown: faSortAmountDown,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faSortAmountUp: faSortAmountUp,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faSortDown: faSortDown,\n faSortNumericDown: faSortNumericDown,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faSortNumericUp: faSortNumericUp,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faSortUp: faSortUp,\n faSpa: faSpa,\n faSpaceShuttle: faSpaceShuttle,\n faSpellCheck: faSpellCheck,\n faSpider: faSpider,\n faSpinner: faSpinner,\n faSplotch: faSplotch,\n faSprayCan: faSprayCan,\n faSquare: faSquare,\n faSquareFull: faSquareFull,\n faSquareRootAlt: faSquareRootAlt,\n faStamp: faStamp,\n faStar: faStar,\n faStarAndCrescent: faStarAndCrescent,\n faStarHalf: faStarHalf,\n faStarHalfAlt: faStarHalfAlt,\n faStarOfDavid: faStarOfDavid,\n faStarOfLife: faStarOfLife,\n faStepBackward: faStepBackward,\n faStepForward: faStepForward,\n faStethoscope: faStethoscope,\n faStickyNote: faStickyNote,\n faStop: faStop,\n faStopCircle: faStopCircle,\n faStopwatch: faStopwatch,\n faStopwatch20: faStopwatch20,\n faStore: faStore,\n faStoreAlt: faStoreAlt,\n faStoreAltSlash: faStoreAltSlash,\n faStoreSlash: faStoreSlash,\n faStream: faStream,\n faStreetView: faStreetView,\n faStrikethrough: faStrikethrough,\n faStroopwafel: faStroopwafel,\n faSubscript: faSubscript,\n faSubway: faSubway,\n faSuitcase: faSuitcase,\n faSuitcaseRolling: faSuitcaseRolling,\n faSun: faSun,\n faSuperscript: faSuperscript,\n faSurprise: faSurprise,\n faSwatchbook: faSwatchbook,\n faSwimmer: faSwimmer,\n faSwimmingPool: faSwimmingPool,\n faSynagogue: faSynagogue,\n faSync: faSync,\n faSyncAlt: faSyncAlt,\n faSyringe: faSyringe,\n faTable: faTable,\n faTableTennis: faTableTennis,\n faTablet: faTablet,\n faTabletAlt: faTabletAlt,\n faTablets: faTablets,\n faTachometerAlt: faTachometerAlt,\n faTag: faTag,\n faTags: faTags,\n faTape: faTape,\n faTasks: faTasks,\n faTaxi: faTaxi,\n faTeeth: faTeeth,\n faTeethOpen: faTeethOpen,\n faTemperatureHigh: faTemperatureHigh,\n faTemperatureLow: faTemperatureLow,\n faTenge: faTenge,\n faTerminal: faTerminal,\n faTextHeight: faTextHeight,\n faTextWidth: faTextWidth,\n faTh: faTh,\n faThLarge: faThLarge,\n faThList: faThList,\n faTheaterMasks: faTheaterMasks,\n faThermometer: faThermometer,\n faThermometerEmpty: faThermometerEmpty,\n faThermometerFull: faThermometerFull,\n faThermometerHalf: faThermometerHalf,\n faThermometerQuarter: faThermometerQuarter,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faThumbsDown: faThumbsDown,\n faThumbsUp: faThumbsUp,\n faThumbtack: faThumbtack,\n faTicketAlt: faTicketAlt,\n faTimes: faTimes,\n faTimesCircle: faTimesCircle,\n faTint: faTint,\n faTintSlash: faTintSlash,\n faTired: faTired,\n faToggleOff: faToggleOff,\n faToggleOn: faToggleOn,\n faToilet: faToilet,\n faToiletPaper: faToiletPaper,\n faToiletPaperSlash: faToiletPaperSlash,\n faToolbox: faToolbox,\n faTools: faTools,\n faTooth: faTooth,\n faTorah: faTorah,\n faToriiGate: faToriiGate,\n faTractor: faTractor,\n faTrademark: faTrademark,\n faTrafficLight: faTrafficLight,\n faTrailer: faTrailer,\n faTrain: faTrain,\n faTram: faTram,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faTrash: faTrash,\n faTrashAlt: faTrashAlt,\n faTrashRestore: faTrashRestore,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faTree: faTree,\n faTrophy: faTrophy,\n faTruck: faTruck,\n faTruckLoading: faTruckLoading,\n faTruckMonster: faTruckMonster,\n faTruckMoving: faTruckMoving,\n faTruckPickup: faTruckPickup,\n faTshirt: faTshirt,\n faTty: faTty,\n faTv: faTv,\n faUmbrella: faUmbrella,\n faUmbrellaBeach: faUmbrellaBeach,\n faUnderline: faUnderline,\n faUndo: faUndo,\n faUndoAlt: faUndoAlt,\n faUniversalAccess: faUniversalAccess,\n faUniversity: faUniversity,\n faUnlink: faUnlink,\n faUnlock: faUnlock,\n faUnlockAlt: faUnlockAlt,\n faUpload: faUpload,\n faUser: faUser,\n faUserAlt: faUserAlt,\n faUserAltSlash: faUserAltSlash,\n faUserAstronaut: faUserAstronaut,\n faUserCheck: faUserCheck,\n faUserCircle: faUserCircle,\n faUserClock: faUserClock,\n faUserCog: faUserCog,\n faUserEdit: faUserEdit,\n faUserFriends: faUserFriends,\n faUserGraduate: faUserGraduate,\n faUserInjured: faUserInjured,\n faUserLock: faUserLock,\n faUserMd: faUserMd,\n faUserMinus: faUserMinus,\n faUserNinja: faUserNinja,\n faUserNurse: faUserNurse,\n faUserPlus: faUserPlus,\n faUserSecret: faUserSecret,\n faUserShield: faUserShield,\n faUserSlash: faUserSlash,\n faUserTag: faUserTag,\n faUserTie: faUserTie,\n faUserTimes: faUserTimes,\n faUsers: faUsers,\n faUsersCog: faUsersCog,\n faUsersSlash: faUsersSlash,\n faUtensilSpoon: faUtensilSpoon,\n faUtensils: faUtensils,\n faVectorSquare: faVectorSquare,\n faVenus: faVenus,\n faVenusDouble: faVenusDouble,\n faVenusMars: faVenusMars,\n faVest: faVest,\n faVestPatches: faVestPatches,\n faVial: faVial,\n faVials: faVials,\n faVideo: faVideo,\n faVideoSlash: faVideoSlash,\n faVihara: faVihara,\n faVirus: faVirus,\n faVirusSlash: faVirusSlash,\n faViruses: faViruses,\n faVoicemail: faVoicemail,\n faVolleyballBall: faVolleyballBall,\n faVolumeDown: faVolumeDown,\n faVolumeMute: faVolumeMute,\n faVolumeOff: faVolumeOff,\n faVolumeUp: faVolumeUp,\n faVoteYea: faVoteYea,\n faVrCardboard: faVrCardboard,\n faWalking: faWalking,\n faWallet: faWallet,\n faWarehouse: faWarehouse,\n faWater: faWater,\n faWaveSquare: faWaveSquare,\n faWeight: faWeight,\n faWeightHanging: faWeightHanging,\n faWheelchair: faWheelchair,\n faWifi: faWifi,\n faWind: faWind,\n faWindowClose: faWindowClose,\n faWindowMaximize: faWindowMaximize,\n faWindowMinimize: faWindowMinimize,\n faWindowRestore: faWindowRestore,\n faWineBottle: faWineBottle,\n faWineGlass: faWineGlass,\n faWineGlassAlt: faWineGlassAlt,\n faWonSign: faWonSign,\n faWrench: faWrench,\n faXRay: faXRay,\n faYenSign: faYenSign,\n faYinYang: faYinYang\n};\n\nexport { _iconsCache as fas, prefix, faAd, faAddressBook, faAddressCard, faAdjust, faAirFreshener, faAlignCenter, faAlignJustify, faAlignLeft, faAlignRight, faAllergies, faAmbulance, faAmericanSignLanguageInterpreting, faAnchor, faAngleDoubleDown, faAngleDoubleLeft, faAngleDoubleRight, faAngleDoubleUp, faAngleDown, faAngleLeft, faAngleRight, faAngleUp, faAngry, faAnkh, faAppleAlt, faArchive, faArchway, faArrowAltCircleDown, faArrowAltCircleLeft, faArrowAltCircleRight, faArrowAltCircleUp, faArrowCircleDown, faArrowCircleLeft, faArrowCircleRight, faArrowCircleUp, faArrowDown, faArrowLeft, faArrowRight, faArrowUp, faArrowsAlt, faArrowsAltH, faArrowsAltV, faAssistiveListeningSystems, faAsterisk, faAt, faAtlas, faAtom, faAudioDescription, faAward, faBaby, faBabyCarriage, faBackspace, faBackward, faBacon, faBacteria, faBacterium, faBahai, faBalanceScale, faBalanceScaleLeft, faBalanceScaleRight, faBan, faBandAid, faBarcode, faBars, faBaseballBall, faBasketballBall, faBath, faBatteryEmpty, faBatteryFull, faBatteryHalf, faBatteryQuarter, faBatteryThreeQuarters, faBed, faBeer, faBell, faBellSlash, faBezierCurve, faBible, faBicycle, faBiking, faBinoculars, faBiohazard, faBirthdayCake, faBlender, faBlenderPhone, faBlind, faBlog, faBold, faBolt, faBomb, faBone, faBong, faBook, faBookDead, faBookMedical, faBookOpen, faBookReader, faBookmark, faBorderAll, faBorderNone, faBorderStyle, faBowlingBall, faBox, faBoxOpen, faBoxTissue, faBoxes, faBraille, faBrain, faBreadSlice, faBriefcase, faBriefcaseMedical, faBroadcastTower, faBroom, faBrush, faBug, faBuilding, faBullhorn, faBullseye, faBurn, faBus, faBusAlt, faBusinessTime, faCalculator, faCalendar, faCalendarAlt, faCalendarCheck, faCalendarDay, faCalendarMinus, faCalendarPlus, faCalendarTimes, faCalendarWeek, faCamera, faCameraRetro, faCampground, faCandyCane, faCannabis, faCapsules, faCar, faCarAlt, faCarBattery, faCarCrash, faCarSide, faCaravan, faCaretDown, faCaretLeft, faCaretRight, faCaretSquareDown, faCaretSquareLeft, faCaretSquareRight, faCaretSquareUp, faCaretUp, faCarrot, faCartArrowDown, faCartPlus, faCashRegister, faCat, faCertificate, faChair, faChalkboard, faChalkboardTeacher, faChargingStation, faChartArea, faChartBar, faChartLine, faChartPie, faCheck, faCheckCircle, faCheckDouble, faCheckSquare, faCheese, faChess, faChessBishop, faChessBoard, faChessKing, faChessKnight, faChessPawn, faChessQueen, faChessRook, faChevronCircleDown, faChevronCircleLeft, faChevronCircleRight, faChevronCircleUp, faChevronDown, faChevronLeft, faChevronRight, faChevronUp, faChild, faChurch, faCircle, faCircleNotch, faCity, faClinicMedical, faClipboard, faClipboardCheck, faClipboardList, faClock, faClone, faClosedCaptioning, faCloud, faCloudDownloadAlt, faCloudMeatball, faCloudMoon, faCloudMoonRain, faCloudRain, faCloudShowersHeavy, faCloudSun, faCloudSunRain, faCloudUploadAlt, faCocktail, faCode, faCodeBranch, faCoffee, faCog, faCogs, faCoins, faColumns, faComment, faCommentAlt, faCommentDollar, faCommentDots, faCommentMedical, faCommentSlash, faComments, faCommentsDollar, faCompactDisc, faCompass, faCompress, faCompressAlt, faCompressArrowsAlt, faConciergeBell, faCookie, faCookieBite, faCopy, faCopyright, faCouch, faCreditCard, faCrop, faCropAlt, faCross, faCrosshairs, faCrow, faCrown, faCrutch, faCube, faCubes, faCut, faDatabase, faDeaf, faDemocrat, faDesktop, faDharmachakra, faDiagnoses, faDice, faDiceD20, faDiceD6, faDiceFive, faDiceFour, faDiceOne, faDiceSix, faDiceThree, faDiceTwo, faDigitalTachograph, faDirections, faDisease, faDivide, faDizzy, faDna, faDog, faDollarSign, faDolly, faDollyFlatbed, faDonate, faDoorClosed, faDoorOpen, faDotCircle, faDove, faDownload, faDraftingCompass, faDragon, faDrawPolygon, faDrum, faDrumSteelpan, faDrumstickBite, faDumbbell, faDumpster, faDumpsterFire, faDungeon, faEdit, faEgg, faEject, faEllipsisH, faEllipsisV, faEnvelope, faEnvelopeOpen, faEnvelopeOpenText, faEnvelopeSquare, faEquals, faEraser, faEthernet, faEuroSign, faExchangeAlt, faExclamation, faExclamationCircle, faExclamationTriangle, faExpand, faExpandAlt, faExpandArrowsAlt, faExternalLinkAlt, faExternalLinkSquareAlt, faEye, faEyeDropper, faEyeSlash, faFan, faFastBackward, faFastForward, faFaucet, faFax, faFeather, faFeatherAlt, faFemale, faFighterJet, faFile, faFileAlt, faFileArchive, faFileAudio, faFileCode, faFileContract, faFileCsv, faFileDownload, faFileExcel, faFileExport, faFileImage, faFileImport, faFileInvoice, faFileInvoiceDollar, faFileMedical, faFileMedicalAlt, faFilePdf, faFilePowerpoint, faFilePrescription, faFileSignature, faFileUpload, faFileVideo, faFileWord, faFill, faFillDrip, faFilm, faFilter, faFingerprint, faFire, faFireAlt, faFireExtinguisher, faFirstAid, faFish, faFistRaised, faFlag, faFlagCheckered, faFlagUsa, faFlask, faFlushed, faFolder, faFolderMinus, faFolderOpen, faFolderPlus, faFont, faFontAwesomeLogoFull, faFootballBall, faForward, faFrog, faFrown, faFrownOpen, faFunnelDollar, faFutbol, faGamepad, faGasPump, faGavel, faGem, faGenderless, faGhost, faGift, faGifts, faGlassCheers, faGlassMartini, faGlassMartiniAlt, faGlassWhiskey, faGlasses, faGlobe, faGlobeAfrica, faGlobeAmericas, faGlobeAsia, faGlobeEurope, faGolfBall, faGopuram, faGraduationCap, faGreaterThan, faGreaterThanEqual, faGrimace, faGrin, faGrinAlt, faGrinBeam, faGrinBeamSweat, faGrinHearts, faGrinSquint, faGrinSquintTears, faGrinStars, faGrinTears, faGrinTongue, faGrinTongueSquint, faGrinTongueWink, faGrinWink, faGripHorizontal, faGripLines, faGripLinesVertical, faGripVertical, faGuitar, faHSquare, faHamburger, faHammer, faHamsa, faHandHolding, faHandHoldingHeart, faHandHoldingMedical, faHandHoldingUsd, faHandHoldingWater, faHandLizard, faHandMiddleFinger, faHandPaper, faHandPeace, faHandPointDown, faHandPointLeft, faHandPointRight, faHandPointUp, faHandPointer, faHandRock, faHandScissors, faHandSparkles, faHandSpock, faHands, faHandsHelping, faHandsWash, faHandshake, faHandshakeAltSlash, faHandshakeSlash, faHanukiah, faHardHat, faHashtag, faHatCowboy, faHatCowboySide, faHatWizard, faHdd, faHeadSideCough, faHeadSideCoughSlash, faHeadSideMask, faHeadSideVirus, faHeading, faHeadphones, faHeadphonesAlt, faHeadset, faHeart, faHeartBroken, faHeartbeat, faHelicopter, faHighlighter, faHiking, faHippo, faHistory, faHockeyPuck, faHollyBerry, faHome, faHorse, faHorseHead, faHospital, faHospitalAlt, faHospitalSymbol, faHospitalUser, faHotTub, faHotdog, faHotel, faHourglass, faHourglassEnd, faHourglassHalf, faHourglassStart, faHouseDamage, faHouseUser, faHryvnia, faICursor, faIceCream, faIcicles, faIcons, faIdBadge, faIdCard, faIdCardAlt, faIgloo, faImage, faImages, faInbox, faIndent, faIndustry, faInfinity, faInfo, faInfoCircle, faItalic, faJedi, faJoint, faJournalWhills, faKaaba, faKey, faKeyboard, faKhanda, faKiss, faKissBeam, faKissWinkHeart, faKiwiBird, faLandmark, faLanguage, faLaptop, faLaptopCode, faLaptopHouse, faLaptopMedical, faLaugh, faLaughBeam, faLaughSquint, faLaughWink, faLayerGroup, faLeaf, faLemon, faLessThan, faLessThanEqual, faLevelDownAlt, faLevelUpAlt, faLifeRing, faLightbulb, faLink, faLiraSign, faList, faListAlt, faListOl, faListUl, faLocationArrow, faLock, faLockOpen, faLongArrowAltDown, faLongArrowAltLeft, faLongArrowAltRight, faLongArrowAltUp, faLowVision, faLuggageCart, faLungs, faLungsVirus, faMagic, faMagnet, faMailBulk, faMale, faMap, faMapMarked, faMapMarkedAlt, faMapMarker, faMapMarkerAlt, faMapPin, faMapSigns, faMarker, faMars, faMarsDouble, faMarsStroke, faMarsStrokeH, faMarsStrokeV, faMask, faMedal, faMedkit, faMeh, faMehBlank, faMehRollingEyes, faMemory, faMenorah, faMercury, faMeteor, faMicrochip, faMicrophone, faMicrophoneAlt, faMicrophoneAltSlash, faMicrophoneSlash, faMicroscope, faMinus, faMinusCircle, faMinusSquare, faMitten, faMobile, faMobileAlt, faMoneyBill, faMoneyBillAlt, faMoneyBillWave, faMoneyBillWaveAlt, faMoneyCheck, faMoneyCheckAlt, faMonument, faMoon, faMortarPestle, faMosque, faMotorcycle, faMountain, faMouse, faMousePointer, faMugHot, faMusic, faNetworkWired, faNeuter, faNewspaper, faNotEqual, faNotesMedical, faObjectGroup, faObjectUngroup, faOilCan, faOm, faOtter, faOutdent, faPager, faPaintBrush, faPaintRoller, faPalette, faPallet, faPaperPlane, faPaperclip, faParachuteBox, faParagraph, faParking, faPassport, faPastafarianism, faPaste, faPause, faPauseCircle, faPaw, faPeace, faPen, faPenAlt, faPenFancy, faPenNib, faPenSquare, faPencilAlt, faPencilRuler, faPeopleArrows, faPeopleCarry, faPepperHot, faPercent, faPercentage, faPersonBooth, faPhone, faPhoneAlt, faPhoneSlash, faPhoneSquare, faPhoneSquareAlt, faPhoneVolume, faPhotoVideo, faPiggyBank, faPills, faPizzaSlice, faPlaceOfWorship, faPlane, faPlaneArrival, faPlaneDeparture, faPlaneSlash, faPlay, faPlayCircle, faPlug, faPlus, faPlusCircle, faPlusSquare, faPodcast, faPoll, faPollH, faPoo, faPooStorm, faPoop, faPortrait, faPoundSign, faPowerOff, faPray, faPrayingHands, faPrescription, faPrescriptionBottle, faPrescriptionBottleAlt, faPrint, faProcedures, faProjectDiagram, faPumpMedical, faPumpSoap, faPuzzlePiece, faQrcode, faQuestion, faQuestionCircle, faQuidditch, faQuoteLeft, faQuoteRight, faQuran, faRadiation, faRadiationAlt, faRainbow, faRandom, faReceipt, faRecordVinyl, faRecycle, faRedo, faRedoAlt, faRegistered, faRemoveFormat, faReply, faReplyAll, faRepublican, faRestroom, faRetweet, faRibbon, faRing, faRoad, faRobot, faRocket, faRoute, faRss, faRssSquare, faRubleSign, faRuler, faRulerCombined, faRulerHorizontal, faRulerVertical, faRunning, faRupeeSign, faSadCry, faSadTear, faSatellite, faSatelliteDish, faSave, faSchool, faScrewdriver, faScroll, faSdCard, faSearch, faSearchDollar, faSearchLocation, faSearchMinus, faSearchPlus, faSeedling, faServer, faShapes, faShare, faShareAlt, faShareAltSquare, faShareSquare, faShekelSign, faShieldAlt, faShieldVirus, faShip, faShippingFast, faShoePrints, faShoppingBag, faShoppingBasket, faShoppingCart, faShower, faShuttleVan, faSign, faSignInAlt, faSignLanguage, faSignOutAlt, faSignal, faSignature, faSimCard, faSink, faSitemap, faSkating, faSkiing, faSkiingNordic, faSkull, faSkullCrossbones, faSlash, faSleigh, faSlidersH, faSmile, faSmileBeam, faSmileWink, faSmog, faSmoking, faSmokingBan, faSms, faSnowboarding, faSnowflake, faSnowman, faSnowplow, faSoap, faSocks, faSolarPanel, faSort, faSortAlphaDown, faSortAlphaDownAlt, faSortAlphaUp, faSortAlphaUpAlt, faSortAmountDown, faSortAmountDownAlt, faSortAmountUp, faSortAmountUpAlt, faSortDown, faSortNumericDown, faSortNumericDownAlt, faSortNumericUp, faSortNumericUpAlt, faSortUp, faSpa, faSpaceShuttle, faSpellCheck, faSpider, faSpinner, faSplotch, faSprayCan, faSquare, faSquareFull, faSquareRootAlt, faStamp, faStar, faStarAndCrescent, faStarHalf, faStarHalfAlt, faStarOfDavid, faStarOfLife, faStepBackward, faStepForward, faStethoscope, faStickyNote, faStop, faStopCircle, faStopwatch, faStopwatch20, faStore, faStoreAlt, faStoreAltSlash, faStoreSlash, faStream, faStreetView, faStrikethrough, faStroopwafel, faSubscript, faSubway, faSuitcase, faSuitcaseRolling, faSun, faSuperscript, faSurprise, faSwatchbook, faSwimmer, faSwimmingPool, faSynagogue, faSync, faSyncAlt, faSyringe, faTable, faTableTennis, faTablet, faTabletAlt, faTablets, faTachometerAlt, faTag, faTags, faTape, faTasks, faTaxi, faTeeth, faTeethOpen, faTemperatureHigh, faTemperatureLow, faTenge, faTerminal, faTextHeight, faTextWidth, faTh, faThLarge, faThList, faTheaterMasks, faThermometer, faThermometerEmpty, faThermometerFull, faThermometerHalf, faThermometerQuarter, faThermometerThreeQuarters, faThumbsDown, faThumbsUp, faThumbtack, faTicketAlt, faTimes, faTimesCircle, faTint, faTintSlash, faTired, faToggleOff, faToggleOn, faToilet, faToiletPaper, faToiletPaperSlash, faToolbox, faTools, faTooth, faTorah, faToriiGate, faTractor, faTrademark, faTrafficLight, faTrailer, faTrain, faTram, faTransgender, faTransgenderAlt, faTrash, faTrashAlt, faTrashRestore, faTrashRestoreAlt, faTree, faTrophy, faTruck, faTruckLoading, faTruckMonster, faTruckMoving, faTruckPickup, faTshirt, faTty, faTv, faUmbrella, faUmbrellaBeach, faUnderline, faUndo, faUndoAlt, faUniversalAccess, faUniversity, faUnlink, faUnlock, faUnlockAlt, faUpload, faUser, faUserAlt, faUserAltSlash, faUserAstronaut, faUserCheck, faUserCircle, faUserClock, faUserCog, faUserEdit, faUserFriends, faUserGraduate, faUserInjured, faUserLock, faUserMd, faUserMinus, faUserNinja, faUserNurse, faUserPlus, faUserSecret, faUserShield, faUserSlash, faUserTag, faUserTie, faUserTimes, faUsers, faUsersCog, faUsersSlash, faUtensilSpoon, faUtensils, faVectorSquare, faVenus, faVenusDouble, faVenusMars, faVest, faVestPatches, faVial, faVials, faVideo, faVideoSlash, faVihara, faVirus, faVirusSlash, faViruses, faVoicemail, faVolleyballBall, faVolumeDown, faVolumeMute, faVolumeOff, faVolumeUp, faVoteYea, faVrCardboard, faWalking, faWallet, faWarehouse, faWater, faWaveSquare, faWeight, faWeightHanging, faWheelchair, faWifi, faWind, faWindowClose, faWindowMaximize, faWindowMinimize, faWindowRestore, faWineBottle, faWineGlass, faWineGlassAlt, faWonSign, faWrench, faXRay, faYenSign, faYinYang };\n","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('popover-header');","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('popover-body');","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport PopoverHeader from './PopoverHeader';\nimport PopoverBody from './PopoverBody';\nimport { getOverlayDirection } from './helpers';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst defaultProps = {\n placement: 'right'\n};\nconst Popover = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n placement,\n className,\n style,\n children,\n body,\n arrowProps,\n popper: _,\n show: _1,\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'popover');\n const isRTL = useIsRTL();\n const [primaryPlacement] = (placement == null ? void 0 : placement.split('-')) || [];\n const bsDirection = getOverlayDirection(primaryPlacement, isRTL);\n return /*#__PURE__*/_jsxs(\"div\", {\n ref: ref,\n role: \"tooltip\",\n style: style,\n \"x-placement\": primaryPlacement,\n className: classNames(className, decoratedBsPrefix, primaryPlacement && `bs-popover-${bsDirection}`),\n ...props,\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"popover-arrow\",\n ...arrowProps\n }), body ? /*#__PURE__*/_jsx(PopoverBody, {\n children: children\n }) : children]\n });\n});\nPopover.defaultProps = defaultProps;\nexport default Object.assign(Popover, {\n Header: PopoverHeader,\n Body: PopoverBody,\n // Default popover offset.\n // https://github.com/twbs/bootstrap/blob/5c32767e0e0dbac2d934bcdee03719a65d3f1187/js/src/popover.js#L28\n POPPER_OFFSET: [0, 8]\n});","import React, { Component, createRef } from 'react';\nimport { classNames, ObjectUtils, DomHandler, ZIndexUtils, ConnectedOverlayScrollHandler } from 'primereact/utils';\nimport { Ripple } from 'primereact/ripple';\nimport { CSSTransition } from 'primereact/csstransition';\nimport { Portal } from 'primereact/portal';\nimport { VirtualScroller } from 'primereact/virtualscroller';\nimport PrimeReact, { localeOption, FilterService } from 'primereact/api';\nimport { tip } from 'primereact/tooltip';\nimport { OverlayService } from 'primereact/overlayservice';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar DropdownItem = /*#__PURE__*/function (_Component) {\n _inherits(DropdownItem, _Component);\n\n var _super = _createSuper$2(DropdownItem);\n\n function DropdownItem(props) {\n var _this;\n\n _classCallCheck(this, DropdownItem);\n\n _this = _super.call(this, props);\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(DropdownItem, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.onClick) {\n this.props.onClick({\n originalEvent: event,\n option: this.props.option\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var className = classNames('p-dropdown-item', {\n 'p-highlight': this.props.selected,\n 'p-disabled': this.props.disabled,\n 'p-dropdown-item-empty': !this.props.label || this.props.label.length === 0\n }, this.props.option.className);\n var content = this.props.template ? ObjectUtils.getJSXElement(this.props.template, this.props.option) : this.props.label;\n return /*#__PURE__*/React.createElement(\"li\", {\n className: className,\n onClick: this.onClick,\n \"aria-label\": this.props.label,\n key: this.props.label,\n role: \"option\",\n \"aria-selected\": this.props.selected\n }, content, /*#__PURE__*/React.createElement(Ripple, null));\n }\n }]);\n\n return DropdownItem;\n}(Component);\n\n_defineProperty(DropdownItem, \"defaultProps\", {\n option: null,\n label: null,\n template: null,\n selected: false,\n disabled: false,\n onClick: null\n});\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar DropdownPanelComponent = /*#__PURE__*/function (_Component) {\n _inherits(DropdownPanelComponent, _Component);\n\n var _super = _createSuper$1(DropdownPanelComponent);\n\n function DropdownPanelComponent(props) {\n var _this;\n\n _classCallCheck(this, DropdownPanelComponent);\n\n _this = _super.call(this, props);\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.onEntered = _this.onEntered.bind(_assertThisInitialized(_this));\n _this.onFilterInputChange = _this.onFilterInputChange.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(DropdownPanelComponent, [{\n key: \"onEnter\",\n value: function onEnter() {\n var _this2 = this;\n\n this.props.onEnter(function () {\n if (_this2.virtualScrollerRef) {\n var selectedIndex = _this2.props.getSelectedOptionIndex();\n\n if (selectedIndex !== -1) {\n _this2.virtualScrollerRef.scrollToIndex(selectedIndex);\n }\n }\n });\n }\n }, {\n key: \"onEntered\",\n value: function onEntered() {\n var _this3 = this;\n\n this.props.onEntered(function () {\n if (_this3.props.filter && _this3.props.filterInputAutoFocus) {\n _this3.filterInput.focus();\n }\n });\n }\n }, {\n key: \"onFilterInputChange\",\n value: function onFilterInputChange(event) {\n if (this.virtualScrollerRef) {\n this.virtualScrollerRef.scrollToIndex(0);\n }\n\n this.props.onFilterInputChange && this.props.onFilterInputChange(event);\n }\n }, {\n key: \"isEmptyFilter\",\n value: function isEmptyFilter() {\n return !(this.props.visibleOptions && this.props.visibleOptions.length) && this.props.hasFilter();\n }\n }, {\n key: \"renderGroupChildren\",\n value: function renderGroupChildren(optionGroup) {\n var _this4 = this;\n\n var groupChildren = this.props.getOptionGroupChildren(optionGroup);\n return groupChildren.map(function (option, j) {\n var optionLabel = _this4.props.getOptionLabel(option);\n\n var optionKey = j + '_' + _this4.props.getOptionRenderKey(option);\n\n var disabled = _this4.props.isOptionDisabled(option);\n\n return /*#__PURE__*/React.createElement(DropdownItem, {\n key: optionKey,\n label: optionLabel,\n option: option,\n template: _this4.props.itemTemplate,\n selected: _this4.props.isSelected(option),\n disabled: disabled,\n onClick: _this4.props.onOptionClick\n });\n });\n }\n }, {\n key: \"renderEmptyMessage\",\n value: function renderEmptyMessage(emptyMessage, isFilter) {\n var message = ObjectUtils.getJSXElement(emptyMessage, this.props) || localeOption(isFilter ? 'emptyFilterMessage' : 'emptyMessage');\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-dropdown-empty-message\"\n }, message);\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(option, index) {\n if (this.props.optionGroupLabel) {\n var groupContent = this.props.optionGroupTemplate ? ObjectUtils.getJSXElement(this.props.optionGroupTemplate, option, index) : this.props.getOptionGroupLabel(option);\n var groupChildrenContent = this.renderGroupChildren(option);\n var key = index + '_' + this.props.getOptionGroupRenderKey(option);\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: key\n }, /*#__PURE__*/React.createElement(\"li\", {\n className: \"p-dropdown-item-group\"\n }, groupContent), groupChildrenContent);\n } else {\n var optionLabel = this.props.getOptionLabel(option);\n var optionKey = index + '_' + this.props.getOptionRenderKey(option);\n var disabled = this.props.isOptionDisabled(option);\n return /*#__PURE__*/React.createElement(DropdownItem, {\n key: optionKey,\n label: optionLabel,\n option: option,\n template: this.props.itemTemplate,\n selected: this.props.isSelected(option),\n disabled: disabled,\n onClick: this.props.onOptionClick\n });\n }\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this5 = this;\n\n if (this.props.visibleOptions && this.props.visibleOptions.length) {\n return this.props.visibleOptions.map(function (option, index) {\n return _this5.renderItem(option, index);\n });\n } else if (this.props.hasFilter()) {\n return this.renderEmptyMessage(this.props.emptyFilterMessage, true);\n }\n\n return this.renderEmptyMessage(this.props.emptyMessage);\n }\n }, {\n key: \"renderFilterClearIcon\",\n value: function renderFilterClearIcon() {\n var _this6 = this;\n\n if (this.props.showFilterClear && this.props.filterValue) {\n return /*#__PURE__*/React.createElement(\"i\", {\n className: \"p-dropdown-filter-clear-icon pi pi-times\",\n onClick: function onClick() {\n return _this6.props.onFilterClearIconClick(function () {\n return _this6.filterInput.focus();\n });\n }\n });\n }\n\n return null;\n }\n }, {\n key: \"renderFilter\",\n value: function renderFilter() {\n var _this7 = this;\n\n if (this.props.filter) {\n var clearIcon = this.renderFilterClearIcon();\n var containerClassName = classNames('p-dropdown-filter-container', {\n 'p-dropdown-clearable-filter': !!clearIcon\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-dropdown-header\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this7.filterInput = el;\n },\n type: \"text\",\n autoComplete: \"off\",\n className: \"p-dropdown-filter p-inputtext p-component\",\n placeholder: this.props.filterPlaceholder,\n onKeyDown: this.props.onFilterInputKeyDown,\n onChange: this.onFilterInputChange,\n value: this.props.filterValue\n }), clearIcon, /*#__PURE__*/React.createElement(\"i\", {\n className: \"p-dropdown-filter-icon pi pi-search\"\n })));\n }\n\n return null;\n }\n }, {\n key: \"renderContent\",\n value: function renderContent() {\n var _this8 = this;\n\n if (this.props.virtualScrollerOptions) {\n var virtualScrollerProps = _objectSpread$1(_objectSpread$1({}, this.props.virtualScrollerOptions), {\n style: _objectSpread$1(_objectSpread$1({}, this.props.virtualScrollerOptions.style), {\n height: this.props.scrollHeight\n }),\n className: classNames('p-dropdown-items-wrapper', this.props.virtualScrollerOptions.className),\n items: this.props.visibleOptions,\n onLazyLoad: function onLazyLoad(event) {\n return _this8.props.virtualScrollerOptions.onLazyLoad(_objectSpread$1(_objectSpread$1({}, event), {\n filter: _this8.props.filterValue\n }));\n },\n itemTemplate: function itemTemplate(item, options) {\n return item && _this8.renderItem(item, options.index);\n },\n contentTemplate: function contentTemplate(options) {\n var className = classNames('p-dropdown-items', options.className);\n var content = _this8.isEmptyFilter() ? _this8.renderEmptyMessage() : options.children;\n return /*#__PURE__*/React.createElement(\"ul\", {\n ref: options.contentRef,\n className: className,\n role: \"listbox\"\n }, content);\n }\n });\n\n return /*#__PURE__*/React.createElement(VirtualScroller, _extends({\n ref: function ref(el) {\n return _this8.virtualScrollerRef = el;\n }\n }, virtualScrollerProps));\n } else {\n var items = this.renderItems();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-dropdown-items-wrapper\",\n style: {\n maxHeight: this.props.scrollHeight || 'auto'\n }\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: \"p-dropdown-items\",\n role: \"listbox\"\n }, items));\n }\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var className = classNames('p-dropdown-panel p-component', this.props.panelClassName);\n var filter = this.renderFilter();\n var content = this.renderContent();\n return /*#__PURE__*/React.createElement(CSSTransition, {\n nodeRef: this.props.forwardRef,\n classNames: \"p-connected-overlay\",\n in: this.props.in,\n timeout: {\n enter: 120,\n exit: 100\n },\n options: this.props.transitionOptions,\n unmountOnExit: true,\n onEnter: this.onEnter,\n onEntering: this.props.onEntering,\n onEntered: this.onEntered,\n onExit: this.props.onExit,\n onExited: this.props.onExited\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.props.forwardRef,\n className: className,\n style: this.props.panelStyle,\n onClick: this.props.onClick\n }, filter, content));\n }\n }, {\n key: \"render\",\n value: function render() {\n var element = this.renderElement();\n return /*#__PURE__*/React.createElement(Portal, {\n element: element,\n appendTo: this.props.appendTo\n });\n }\n }]);\n\n return DropdownPanelComponent;\n}(Component);\n\nvar DropdownPanel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(DropdownPanelComponent, _extends({\n forwardRef: ref\n }, props));\n});\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar Dropdown = /*#__PURE__*/function (_Component) {\n _inherits(Dropdown, _Component);\n\n var _super = _createSuper(Dropdown);\n\n function Dropdown(props) {\n var _this;\n\n _classCallCheck(this, Dropdown);\n\n _this = _super.call(this, props);\n _this.state = {\n filter: '',\n focused: false,\n overlayVisible: false\n };\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.onInputFocus = _this.onInputFocus.bind(_assertThisInitialized(_this));\n _this.onInputBlur = _this.onInputBlur.bind(_assertThisInitialized(_this));\n _this.onInputKeyDown = _this.onInputKeyDown.bind(_assertThisInitialized(_this));\n _this.onEditableInputChange = _this.onEditableInputChange.bind(_assertThisInitialized(_this));\n _this.onEditableInputFocus = _this.onEditableInputFocus.bind(_assertThisInitialized(_this));\n _this.onOptionClick = _this.onOptionClick.bind(_assertThisInitialized(_this));\n _this.onFilterInputChange = _this.onFilterInputChange.bind(_assertThisInitialized(_this));\n _this.onFilterInputKeyDown = _this.onFilterInputKeyDown.bind(_assertThisInitialized(_this));\n _this.onFilterClearIconClick = _this.onFilterClearIconClick.bind(_assertThisInitialized(_this));\n _this.onPanelClick = _this.onPanelClick.bind(_assertThisInitialized(_this));\n _this.onOverlayEnter = _this.onOverlayEnter.bind(_assertThisInitialized(_this));\n _this.onOverlayEntered = _this.onOverlayEntered.bind(_assertThisInitialized(_this));\n _this.onOverlayExit = _this.onOverlayExit.bind(_assertThisInitialized(_this));\n _this.onOverlayExited = _this.onOverlayExited.bind(_assertThisInitialized(_this));\n _this.resetFilter = _this.resetFilter.bind(_assertThisInitialized(_this));\n _this.clear = _this.clear.bind(_assertThisInitialized(_this));\n _this.hasFilter = _this.hasFilter.bind(_assertThisInitialized(_this));\n _this.getOptionLabel = _this.getOptionLabel.bind(_assertThisInitialized(_this));\n _this.getOptionRenderKey = _this.getOptionRenderKey.bind(_assertThisInitialized(_this));\n _this.isOptionDisabled = _this.isOptionDisabled.bind(_assertThisInitialized(_this));\n _this.getOptionGroupChildren = _this.getOptionGroupChildren.bind(_assertThisInitialized(_this));\n _this.getOptionGroupLabel = _this.getOptionGroupLabel.bind(_assertThisInitialized(_this));\n _this.getOptionGroupRenderKey = _this.getOptionGroupRenderKey.bind(_assertThisInitialized(_this));\n _this.getSelectedOptionIndex = _this.getSelectedOptionIndex.bind(_assertThisInitialized(_this));\n _this.isSelected = _this.isSelected.bind(_assertThisInitialized(_this));\n _this.overlayRef = /*#__PURE__*/createRef();\n _this.inputRef = /*#__PURE__*/createRef(_this.props.inputRef);\n return _this;\n }\n\n _createClass(Dropdown, [{\n key: \"onClick\",\n value: function onClick(event) {\n if (this.props.disabled) {\n return;\n }\n\n if (DomHandler.hasClass(event.target, 'p-dropdown-clear-icon') || event.target.tagName === 'INPUT') {\n return;\n } else if (!this.overlayRef.current || !(this.overlayRef.current && this.overlayRef.current.contains(event.target))) {\n this.focusInput.focus();\n\n if (this.state.overlayVisible) {\n this.hideOverlay();\n } else {\n this.showOverlay();\n }\n }\n }\n }, {\n key: \"onInputFocus\",\n value: function onInputFocus(event) {\n var _this2 = this;\n\n event.persist();\n\n if (this.props.showOnFocus && !this.state.overlayVisible) {\n this.showOverlay();\n }\n\n this.setState({\n focused: true\n }, function () {\n if (_this2.props.onFocus) {\n _this2.props.onFocus(event);\n }\n });\n }\n }, {\n key: \"onInputBlur\",\n value: function onInputBlur(event) {\n var _this3 = this;\n\n event.persist();\n this.setState({\n focused: false\n }, function () {\n if (_this3.props.onBlur) {\n _this3.props.onBlur(event);\n }\n });\n }\n }, {\n key: \"onPanelClick\",\n value: function onPanelClick(event) {\n OverlayService.emit('overlay-click', {\n originalEvent: event,\n target: this.container\n });\n }\n }, {\n key: \"onInputKeyDown\",\n value: function onInputKeyDown(event) {\n switch (event.which) {\n //down\n case 40:\n this.onDownKey(event);\n break;\n //up\n\n case 38:\n this.onUpKey(event);\n break;\n //space\n\n case 32:\n if (this.state.overlayVisible) this.hideOverlay();else this.showOverlay();\n event.preventDefault();\n break;\n //enter\n\n case 13:\n this.hideOverlay();\n event.preventDefault();\n break;\n //escape and tab\n\n case 27:\n case 9:\n this.hideOverlay();\n break;\n\n default:\n this.search(event);\n break;\n }\n }\n }, {\n key: \"onFilterInputKeyDown\",\n value: function onFilterInputKeyDown(event) {\n switch (event.which) {\n //down\n case 40:\n this.onDownKey(event);\n break;\n //up\n\n case 38:\n this.onUpKey(event);\n break;\n //enter and escape\n\n case 13:\n case 27:\n this.hideOverlay();\n event.preventDefault();\n break;\n }\n }\n }, {\n key: \"onUpKey\",\n value: function onUpKey(event) {\n var visibleOptions = this.getVisibleOptions();\n\n if (visibleOptions) {\n var prevOption = this.findPrevOption(this.getSelectedOptionIndex());\n\n if (prevOption) {\n this.selectItem({\n originalEvent: event,\n option: prevOption\n });\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"onDownKey\",\n value: function onDownKey(event) {\n var visibleOptions = this.getVisibleOptions();\n\n if (visibleOptions) {\n if (!this.state.overlayVisible && event.altKey) {\n this.showOverlay();\n } else {\n var nextOption = this.findNextOption(this.getSelectedOptionIndex());\n\n if (nextOption) {\n this.selectItem({\n originalEvent: event,\n option: nextOption\n });\n }\n }\n }\n\n event.preventDefault();\n }\n }, {\n key: \"findNextOption\",\n value: function findNextOption(index) {\n var visibleOptions = this.getVisibleOptions();\n\n if (this.props.optionGroupLabel) {\n var groupIndex = index === -1 ? 0 : index.group;\n var optionIndex = index === -1 ? -1 : index.option;\n var option = this.findNextOptionInList(this.getOptionGroupChildren(visibleOptions[groupIndex]), optionIndex);\n if (option) return option;else if (groupIndex + 1 !== visibleOptions.length) return this.findNextOption({\n group: groupIndex + 1,\n option: -1\n });else return null;\n } else {\n return this.findNextOptionInList(visibleOptions, index);\n }\n }\n }, {\n key: \"findNextOptionInList\",\n value: function findNextOptionInList(list, index) {\n var i = index + 1;\n\n if (i === list.length) {\n return null;\n }\n\n var option = list[i];\n if (this.isOptionDisabled(option)) return this.findNextOptionInList(i);else return option;\n }\n }, {\n key: \"findPrevOption\",\n value: function findPrevOption(index) {\n if (index === -1) {\n return null;\n }\n\n var visibleOptions = this.getVisibleOptions();\n\n if (this.props.optionGroupLabel) {\n var groupIndex = index.group;\n var optionIndex = index.option;\n var option = this.findPrevOptionInList(this.getOptionGroupChildren(visibleOptions[groupIndex]), optionIndex);\n if (option) return option;else if (groupIndex > 0) return this.findPrevOption({\n group: groupIndex - 1,\n option: this.getOptionGroupChildren(visibleOptions[groupIndex - 1]).length\n });else return null;\n } else {\n return this.findPrevOptionInList(visibleOptions, index);\n }\n }\n }, {\n key: \"findPrevOptionInList\",\n value: function findPrevOptionInList(list, index) {\n var i = index - 1;\n\n if (i < 0) {\n return null;\n }\n\n var option = list[i];\n if (this.isOptionDisabled(option)) return this.findPrevOption(i);else return option;\n }\n }, {\n key: \"search\",\n value: function search(event) {\n var _this4 = this;\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n var char = event.key;\n this.previousSearchChar = this.currentSearchChar;\n this.currentSearchChar = char;\n if (this.previousSearchChar === this.currentSearchChar) this.searchValue = this.currentSearchChar;else this.searchValue = this.searchValue ? this.searchValue + char : char;\n\n if (this.searchValue) {\n var searchIndex = this.getSelectedOptionIndex();\n var newOption = this.props.optionGroupLabel ? this.searchOptionInGroup(searchIndex) : this.searchOption(++searchIndex);\n\n if (newOption) {\n this.selectItem({\n originalEvent: event,\n option: newOption\n });\n this.selectedOptionUpdated = true;\n }\n }\n\n this.searchTimeout = setTimeout(function () {\n _this4.searchValue = null;\n }, 250);\n }\n }, {\n key: \"searchOption\",\n value: function searchOption(index) {\n var option;\n\n if (this.searchValue) {\n var visibleOptions = this.getVisibleOptions();\n option = this.searchOptionInRange(index, visibleOptions.length);\n\n if (!option) {\n option = this.searchOptionInRange(0, index);\n }\n }\n\n return option;\n }\n }, {\n key: \"searchOptionInRange\",\n value: function searchOptionInRange(start, end) {\n var visibleOptions = this.getVisibleOptions();\n\n for (var i = start; i < end; i++) {\n var opt = visibleOptions[i];\n\n if (this.matchesSearchValue(opt)) {\n return opt;\n }\n }\n\n return null;\n }\n }, {\n key: \"searchOptionInGroup\",\n value: function searchOptionInGroup(index) {\n var searchIndex = index === -1 ? {\n group: 0,\n option: -1\n } : index;\n var visibleOptions = this.getVisibleOptions();\n\n for (var i = searchIndex.group; i < visibleOptions.length; i++) {\n var groupOptions = this.getOptionGroupChildren(visibleOptions[i]);\n\n for (var j = searchIndex.group === i ? searchIndex.option + 1 : 0; j < groupOptions.length; j++) {\n if (this.matchesSearchValue(groupOptions[j])) {\n return groupOptions[j];\n }\n }\n }\n\n for (var _i = 0; _i <= searchIndex.group; _i++) {\n var _groupOptions = this.getOptionGroupChildren(visibleOptions[_i]);\n\n for (var _j = 0; _j < (searchIndex.group === _i ? searchIndex.option : _groupOptions.length); _j++) {\n if (this.matchesSearchValue(_groupOptions[_j])) {\n return _groupOptions[_j];\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"matchesSearchValue\",\n value: function matchesSearchValue(option) {\n var label = this.getOptionLabel(option).toLocaleLowerCase(this.props.filterLocale);\n return label.startsWith(this.searchValue.toLocaleLowerCase(this.props.filterLocale));\n }\n }, {\n key: \"onEditableInputChange\",\n value: function onEditableInputChange(event) {\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event.originalEvent,\n value: event.target.value,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: event.target.value\n }\n });\n }\n }\n }, {\n key: \"onEditableInputFocus\",\n value: function onEditableInputFocus(event) {\n var _this5 = this;\n\n event.persist();\n this.setState({\n focused: true\n }, function () {\n _this5.hideOverlay();\n\n if (_this5.props.onFocus) {\n _this5.props.onFocus(event);\n }\n });\n }\n }, {\n key: \"onOptionClick\",\n value: function onOptionClick(event) {\n var option = event.option;\n\n if (!option.disabled) {\n this.selectItem(event);\n this.focusInput.focus();\n }\n\n this.hideOverlay();\n }\n }, {\n key: \"onFilterInputChange\",\n value: function onFilterInputChange(event) {\n var _this6 = this;\n\n var filter = event.target.value;\n this.setState({\n filter: filter\n }, function () {\n if (_this6.props.onFilter) {\n _this6.props.onFilter({\n originalEvent: event,\n filter: filter\n });\n }\n });\n }\n }, {\n key: \"onFilterClearIconClick\",\n value: function onFilterClearIconClick(callback) {\n this.resetFilter(callback);\n }\n }, {\n key: \"resetFilter\",\n value: function resetFilter(callback) {\n var _this7 = this;\n\n var filter = '';\n this.setState({\n filter: filter\n }, function () {\n _this7.props.onFilter && _this7.props.onFilter({\n filter: filter\n });\n callback && callback();\n });\n }\n }, {\n key: \"clear\",\n value: function clear(event) {\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event,\n value: undefined,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: undefined\n }\n });\n }\n\n this.updateEditableLabel();\n }\n }, {\n key: \"selectItem\",\n value: function selectItem(event) {\n var currentSelectedOption = this.getSelectedOption();\n\n if (currentSelectedOption !== event.option) {\n this.updateEditableLabel(event.option);\n var optionValue = this.getOptionValue(event.option);\n\n if (this.props.onChange) {\n this.props.onChange({\n originalEvent: event.originalEvent,\n value: optionValue,\n stopPropagation: function stopPropagation() {},\n preventDefault: function preventDefault() {},\n target: {\n name: this.props.name,\n id: this.props.id,\n value: optionValue\n }\n });\n }\n }\n }\n }, {\n key: \"getSelectedOption\",\n value: function getSelectedOption() {\n var index = this.getSelectedOptionIndex();\n var visibleOptions = this.getVisibleOptions();\n return index !== -1 ? this.props.optionGroupLabel ? this.getOptionGroupChildren(visibleOptions[index.group])[index.option] : visibleOptions[index] : null;\n }\n }, {\n key: \"getSelectedOptionIndex\",\n value: function getSelectedOptionIndex() {\n var visibleOptions = this.getVisibleOptions();\n\n if (this.props.value != null && visibleOptions) {\n if (this.props.optionGroupLabel) {\n for (var i = 0; i < visibleOptions.length; i++) {\n var selectedOptionIndex = this.findOptionIndexInList(this.props.value, this.getOptionGroupChildren(visibleOptions[i]));\n\n if (selectedOptionIndex !== -1) {\n return {\n group: i,\n option: selectedOptionIndex\n };\n }\n }\n } else {\n return this.findOptionIndexInList(this.props.value, visibleOptions);\n }\n }\n\n return -1;\n }\n }, {\n key: \"findOptionIndexInList\",\n value: function findOptionIndexInList(value, list) {\n var key = this.equalityKey();\n\n for (var i = 0; i < list.length; i++) {\n if (ObjectUtils.equals(value, this.getOptionValue(list[i]), key)) {\n return i;\n }\n }\n\n return -1;\n }\n }, {\n key: \"isSelected\",\n value: function isSelected(option) {\n return ObjectUtils.equals(this.props.value, this.getOptionValue(option), this.equalityKey());\n }\n }, {\n key: \"equalityKey\",\n value: function equalityKey() {\n return this.props.optionValue ? null : this.props.dataKey;\n }\n }, {\n key: \"showOverlay\",\n value: function showOverlay() {\n this.setState({\n overlayVisible: true\n });\n }\n }, {\n key: \"hideOverlay\",\n value: function hideOverlay() {\n this.setState({\n overlayVisible: false\n });\n }\n }, {\n key: \"onOverlayEnter\",\n value: function onOverlayEnter(callback) {\n ZIndexUtils.set('overlay', this.overlayRef.current, PrimeReact.autoZIndex, PrimeReact.zIndex['overlay']);\n this.alignOverlay();\n callback && callback();\n }\n }, {\n key: \"onOverlayEntered\",\n value: function onOverlayEntered(callback) {\n this.bindDocumentClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n callback && callback();\n this.props.onShow && this.props.onShow();\n }\n }, {\n key: \"onOverlayExit\",\n value: function onOverlayExit() {\n this.unbindDocumentClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n }\n }, {\n key: \"onOverlayExited\",\n value: function onOverlayExited() {\n if (this.props.filter && this.props.resetFilterOnHide) {\n this.resetFilter();\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n this.props.onHide && this.props.onHide();\n }\n }, {\n key: \"alignOverlay\",\n value: function alignOverlay() {\n DomHandler.alignOverlay(this.overlayRef.current, this.input.parentElement, this.props.appendTo || PrimeReact.appendTo);\n }\n }, {\n key: \"scrollInView\",\n value: function scrollInView() {\n var highlightItem = DomHandler.findSingle(this.overlayRef.current, 'li.p-highlight');\n\n if (highlightItem) {\n highlightItem.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n }\n }, {\n key: \"bindDocumentClickListener\",\n value: function bindDocumentClickListener() {\n var _this8 = this;\n\n if (!this.documentClickListener) {\n this.documentClickListener = function (event) {\n if (_this8.state.overlayVisible && _this8.isOutsideClicked(event)) {\n _this8.hideOverlay();\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n }\n }\n }, {\n key: \"unbindDocumentClickListener\",\n value: function unbindDocumentClickListener() {\n if (this.documentClickListener) {\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = null;\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this9 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.container, function () {\n if (_this9.state.overlayVisible) {\n _this9.hideOverlay();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"bindResizeListener\",\n value: function bindResizeListener() {\n var _this10 = this;\n\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this10.state.overlayVisible && !DomHandler.isTouchDevice()) {\n _this10.hideOverlay();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n }\n }, {\n key: \"unbindResizeListener\",\n value: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n }, {\n key: \"isOutsideClicked\",\n value: function isOutsideClicked(event) {\n return this.container && !(this.container.isSameNode(event.target) || this.isClearClicked(event) || this.container.contains(event.target) || this.overlayRef && this.overlayRef.current.contains(event.target));\n }\n }, {\n key: \"isClearClicked\",\n value: function isClearClicked(event) {\n return DomHandler.hasClass(event.target, 'p-dropdown-clear-icon') || DomHandler.hasClass(event.target, 'p-dropdown-filter-clear-icon');\n }\n }, {\n key: \"updateEditableLabel\",\n value: function updateEditableLabel(option) {\n if (this.input) {\n this.input.value = option ? this.getOptionLabel(option) : this.props.value || '';\n }\n }\n }, {\n key: \"hasFilter\",\n value: function hasFilter() {\n return this.state.filter && this.state.filter.trim().length > 0;\n }\n }, {\n key: \"getOptionLabel\",\n value: function getOptionLabel(option) {\n return this.props.optionLabel ? ObjectUtils.resolveFieldData(option, this.props.optionLabel) : option && option['label'] !== undefined ? option['label'] : option;\n }\n }, {\n key: \"getOptionValue\",\n value: function getOptionValue(option) {\n return this.props.optionValue ? ObjectUtils.resolveFieldData(option, this.props.optionValue) : option && option['value'] !== undefined ? option['value'] : option;\n }\n }, {\n key: \"getOptionRenderKey\",\n value: function getOptionRenderKey(option) {\n return this.props.dataKey ? ObjectUtils.resolveFieldData(option, this.props.dataKey) : this.getOptionLabel(option);\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option) {\n if (this.props.optionDisabled) {\n return ObjectUtils.isFunction(this.props.optionDisabled) ? this.props.optionDisabled(option) : ObjectUtils.resolveFieldData(option, this.props.optionDisabled);\n }\n\n return option && option['disabled'] !== undefined ? option['disabled'] : false;\n }\n }, {\n key: \"getOptionGroupRenderKey\",\n value: function getOptionGroupRenderKey(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupLabel);\n }\n }, {\n key: \"getOptionGroupLabel\",\n value: function getOptionGroupLabel(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupLabel);\n }\n }, {\n key: \"getOptionGroupChildren\",\n value: function getOptionGroupChildren(optionGroup) {\n return ObjectUtils.resolveFieldData(optionGroup, this.props.optionGroupChildren);\n }\n }, {\n key: \"checkValidity\",\n value: function checkValidity() {\n return this.inputRef.current.checkValidity();\n }\n }, {\n key: \"isLazy\",\n value: function isLazy() {\n return this.props.virtualScrollerOptions && this.props.virtualScrollerOptions.lazy;\n }\n }, {\n key: \"getVisibleOptions\",\n value: function getVisibleOptions() {\n if (this.hasFilter() && !this.isLazy()) {\n var filterValue = this.state.filter.trim().toLocaleLowerCase(this.props.filterLocale);\n var searchFields = this.props.filterBy ? this.props.filterBy.split(',') : [this.props.optionLabel || 'label'];\n\n if (this.props.optionGroupLabel) {\n var filteredGroups = [];\n\n var _iterator = _createForOfIteratorHelper(this.props.options),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var optgroup = _step.value;\n var filteredSubOptions = FilterService.filter(this.getOptionGroupChildren(optgroup), searchFields, filterValue, this.props.filterMatchMode, this.props.filterLocale);\n\n if (filteredSubOptions && filteredSubOptions.length) {\n filteredGroups.push(_objectSpread(_objectSpread({}, optgroup), {\n items: filteredSubOptions\n }));\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return filteredGroups;\n } else {\n return FilterService.filter(this.props.options, searchFields, filterValue, this.props.filterMatchMode, this.props.filterLocale);\n }\n } else {\n return this.props.options;\n }\n }\n }, {\n key: \"updateInputField\",\n value: function updateInputField() {\n if (this.props.editable && this.input) {\n var selectedOption = this.getSelectedOption();\n var label = selectedOption ? this.getOptionLabel(selectedOption) : null;\n var value = label || this.props.value || '';\n this.input.value = value;\n }\n }\n }, {\n key: \"updateInputRef\",\n value: function updateInputRef() {\n var ref = this.props.inputRef;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(this.inputRef.current);\n } else {\n ref.current = this.inputRef.current;\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateInputRef();\n\n if (this.props.autoFocus && this.focusInput) {\n this.focusInput.focus();\n }\n\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n\n this.updateInputField();\n this.inputRef.current.selectedIndex = 1;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindDocumentClickListener();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n\n ZIndexUtils.clear(this.overlayRef.current);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.state.overlayVisible) {\n if (this.props.filter) {\n this.alignOverlay();\n }\n\n if (prevProps.value !== this.props.value) {\n this.scrollInView();\n }\n }\n\n if (prevProps.tooltip !== this.props.tooltip || prevProps.tooltipOptions !== this.props.tooltipOptions) {\n if (this.tooltip) this.tooltip.update(_objectSpread({\n content: this.props.tooltip\n }, this.props.tooltipOptions || {}));else this.renderTooltip();\n }\n\n if (this.state.filter && (!this.props.options || this.props.options.length === 0)) {\n this.setState({\n filter: ''\n });\n }\n\n this.updateInputField();\n this.inputRef.current.selectedIndex = 1;\n }\n }, {\n key: \"renderHiddenSelect\",\n value: function renderHiddenSelect(selectedOption) {\n var placeHolderOption = /*#__PURE__*/React.createElement(\"option\", {\n value: \"\"\n }, this.props.placeholder);\n var option = selectedOption ? /*#__PURE__*/React.createElement(\"option\", {\n value: selectedOption.value\n }, this.getOptionLabel(selectedOption)) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hidden-accessible p-dropdown-hidden-select\"\n }, /*#__PURE__*/React.createElement(\"select\", {\n ref: this.inputRef,\n required: this.props.required,\n name: this.props.name,\n tabIndex: -1,\n \"aria-hidden\": \"true\"\n }, placeHolderOption, option));\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = tip({\n target: this.container,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderKeyboardHelper\",\n value: function renderKeyboardHelper() {\n var _this11 = this;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-hidden-accessible\"\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this11.focusInput = el;\n },\n id: this.props.inputId,\n type: \"text\",\n readOnly: true,\n \"aria-haspopup\": \"listbox\",\n onFocus: this.onInputFocus,\n onBlur: this.onInputBlur,\n onKeyDown: this.onInputKeyDown,\n disabled: this.props.disabled,\n tabIndex: this.props.tabIndex,\n \"aria-label\": this.props.ariaLabel,\n \"aria-labelledby\": this.props.ariaLabelledBy\n }));\n }\n }, {\n key: \"renderLabel\",\n value: function renderLabel(selectedOption) {\n var _this12 = this;\n\n var label = ObjectUtils.isNotEmpty(selectedOption) ? this.getOptionLabel(selectedOption) : null;\n\n if (this.props.editable) {\n var value = label || this.props.value || '';\n return /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this12.input = el;\n },\n type: \"text\",\n defaultValue: value,\n className: \"p-dropdown-label p-inputtext\",\n disabled: this.props.disabled,\n placeholder: this.props.placeholder,\n maxLength: this.props.maxLength,\n onInput: this.onEditableInputChange,\n onFocus: this.onEditableInputFocus,\n onBlur: this.onInputBlur,\n \"aria-label\": this.props.ariaLabel,\n \"aria-labelledby\": this.props.ariaLabelledBy,\n \"aria-haspopup\": \"listbox\"\n });\n } else {\n var className = classNames('p-dropdown-label p-inputtext', {\n 'p-placeholder': label === null && this.props.placeholder,\n 'p-dropdown-label-empty': label === null && !this.props.placeholder\n });\n var content = this.props.valueTemplate ? ObjectUtils.getJSXElement(this.props.valueTemplate, selectedOption, this.props) : label || this.props.placeholder || 'empty';\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: function ref(el) {\n return _this12.input = el;\n },\n className: className\n }, content);\n }\n }\n }, {\n key: \"renderClearIcon\",\n value: function renderClearIcon() {\n if (this.props.value != null && this.props.showClear && !this.props.disabled) {\n return /*#__PURE__*/React.createElement(\"i\", {\n className: \"p-dropdown-clear-icon pi pi-times\",\n onClick: this.clear\n });\n }\n\n return null;\n }\n }, {\n key: \"renderDropdownIcon\",\n value: function renderDropdownIcon() {\n var _this13 = this;\n\n var iconClassName = classNames('p-dropdown-trigger-icon p-clickable', this.props.dropdownIcon);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n return _this13.trigger = el;\n },\n className: \"p-dropdown-trigger\",\n role: \"button\",\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": this.state.overlayVisible\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this14 = this;\n\n var className = classNames('p-dropdown p-component p-inputwrapper', this.props.className, {\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused,\n 'p-dropdown-clearable': this.props.showClear && !this.props.disabled,\n 'p-inputwrapper-filled': this.props.value,\n 'p-inputwrapper-focus': this.state.focused || this.state.overlayVisible\n });\n var visibleOptions = this.getVisibleOptions();\n var selectedOption = this.getSelectedOption();\n var appendTo = this.props.appendTo || PrimeReact.appendTo;\n var hiddenSelect = this.renderHiddenSelect(selectedOption);\n var keyboardHelper = this.renderKeyboardHelper();\n var labelElement = this.renderLabel(selectedOption);\n var dropdownIcon = this.renderDropdownIcon();\n var clearIcon = this.renderClearIcon();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n ref: function ref(el) {\n return _this14.container = el;\n },\n className: className,\n style: this.props.style,\n onClick: this.onClick,\n onMouseDown: this.props.onMouseDown,\n onContextMenu: this.props.onContextMenu\n }, keyboardHelper, hiddenSelect, labelElement, clearIcon, dropdownIcon, /*#__PURE__*/React.createElement(DropdownPanel, _extends({\n ref: this.overlayRef,\n visibleOptions: visibleOptions\n }, this.props, {\n appendTo: appendTo,\n onClick: this.onPanelClick,\n onOptionClick: this.onOptionClick,\n filterValue: this.state.filter,\n hasFilter: this.hasFilter,\n onFilterClearIconClick: this.onFilterClearIconClick,\n onFilterInputKeyDown: this.onFilterInputKeyDown,\n onFilterInputChange: this.onFilterInputChange,\n getOptionLabel: this.getOptionLabel,\n getOptionRenderKey: this.getOptionRenderKey,\n isOptionDisabled: this.isOptionDisabled,\n getOptionGroupChildren: this.getOptionGroupChildren,\n getOptionGroupLabel: this.getOptionGroupLabel,\n getOptionGroupRenderKey: this.getOptionGroupRenderKey,\n isSelected: this.isSelected,\n getSelectedOptionIndex: this.getSelectedOptionIndex,\n in: this.state.overlayVisible,\n onEnter: this.onOverlayEnter,\n onEntered: this.onOverlayEntered,\n onExit: this.onOverlayExit,\n onExited: this.onOverlayExited\n })));\n }\n }]);\n\n return Dropdown;\n}(Component);\n\n_defineProperty(Dropdown, \"defaultProps\", {\n id: null,\n inputRef: null,\n name: null,\n value: null,\n options: null,\n optionLabel: null,\n optionValue: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n optionGroupTemplate: null,\n valueTemplate: null,\n itemTemplate: null,\n style: null,\n className: null,\n virtualScrollerOptions: null,\n scrollHeight: '200px',\n filter: false,\n filterBy: null,\n filterMatchMode: 'contains',\n filterPlaceholder: null,\n filterLocale: undefined,\n emptyMessage: null,\n emptyFilterMessage: null,\n editable: false,\n placeholder: null,\n required: false,\n disabled: false,\n appendTo: null,\n tabIndex: null,\n autoFocus: false,\n filterInputAutoFocus: true,\n resetFilterOnHide: false,\n showFilterClear: false,\n panelClassName: null,\n panelStyle: null,\n dataKey: null,\n inputId: null,\n showClear: false,\n maxLength: null,\n tooltip: null,\n tooltipOptions: null,\n ariaLabel: null,\n ariaLabelledBy: null,\n transitionOptions: null,\n dropdownIcon: 'pi pi-chevron-down',\n showOnFocus: false,\n onChange: null,\n onFocus: null,\n onBlur: null,\n onMouseDown: null,\n onContextMenu: null,\n onShow: null,\n onHide: null,\n onFilter: null\n});\n\nexport { Dropdown };\n","import * as React from 'react';\nconst SelectableContext = /*#__PURE__*/React.createContext(null);\nexport const makeEventKey = (eventKey, href = null) => {\n if (eventKey != null) return String(eventKey);\n return href || null;\n};\nexport default SelectableContext;","import addEventListener from './addEventListener';\nimport removeEventListener from './removeEventListener';\n\nfunction listen(node, eventName, handler, options) {\n addEventListener(node, eventName, handler, options);\n return function () {\n removeEventListener(node, eventName, handler, options);\n };\n}\n\nexport default listen;","import * as React from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nexport default function useIntl() {\n var intl = React.useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n","import { useEffect, useRef } from 'react';\n/**\n * Creates a `Ref` whose value is updated in an effect, ensuring the most recent\n * value is the one rendered with. Generally only required for Concurrent mode usage\n * where previous work in `render()` may be discarded befor being used.\n *\n * This is safe to access in an event handler.\n *\n * @param value The `Ref` value\n */\n\nfunction useCommittedRef(value) {\n var ref = useRef(value);\n useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref;\n}\n\nexport default useCommittedRef;","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import React, { Component } from 'react';\nimport { CSSTransition as CSSTransition$1 } from 'react-transition-group';\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar CSSTransition = /*#__PURE__*/function (_Component) {\n _inherits(CSSTransition, _Component);\n\n var _super = _createSuper(CSSTransition);\n\n function CSSTransition(props) {\n var _this;\n\n _classCallCheck(this, CSSTransition);\n\n _this = _super.call(this, props);\n _this.onEnter = _this.onEnter.bind(_assertThisInitialized(_this));\n _this.onEntering = _this.onEntering.bind(_assertThisInitialized(_this));\n _this.onEntered = _this.onEntered.bind(_assertThisInitialized(_this));\n _this.onExit = _this.onExit.bind(_assertThisInitialized(_this));\n _this.onExiting = _this.onExiting.bind(_assertThisInitialized(_this));\n _this.onExited = _this.onExited.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(CSSTransition, [{\n key: \"onEnter\",\n value: function onEnter(node, isAppearing) {\n this.props.onEnter && this.props.onEnter(node, isAppearing); // component\n\n this.props.options && this.props.options.onEnter && this.props.options.onEnter(node, isAppearing); // user option\n }\n }, {\n key: \"onEntering\",\n value: function onEntering(node, isAppearing) {\n this.props.onEntering && this.props.onEntering(node, isAppearing); // component\n\n this.props.options && this.props.options.onEntering && this.props.options.onEntering(node, isAppearing); // user option\n }\n }, {\n key: \"onEntered\",\n value: function onEntered(node, isAppearing) {\n this.props.onEntered && this.props.onEntered(node, isAppearing); // component\n\n this.props.options && this.props.options.onEntered && this.props.options.onEntered(node, isAppearing); // user option\n }\n }, {\n key: \"onExit\",\n value: function onExit(node) {\n this.props.onExit && this.props.onExit(node); // component\n\n this.props.options && this.props.options.onExit && this.props.options.onExit(node); // user option\n }\n }, {\n key: \"onExiting\",\n value: function onExiting(node) {\n this.props.onExiting && this.props.onExiting(node); // component\n\n this.props.options && this.props.options.onExiting && this.props.options.onExiting(node); // user option\n }\n }, {\n key: \"onExited\",\n value: function onExited(node) {\n this.props.onExited && this.props.onExited(node); // component\n\n this.props.options && this.props.options.onExited && this.props.options.onExited(node); // user option\n }\n }, {\n key: \"render\",\n value: function render() {\n var immutableProps = {\n nodeRef: this.props.nodeRef,\n in: this.props.in,\n onEnter: this.onEnter,\n onEntering: this.onEntering,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n };\n var mutableProps = {\n classNames: this.props.classNames,\n timeout: this.props.timeout,\n unmountOnExit: this.props.unmountOnExit\n };\n\n var props = _objectSpread(_objectSpread(_objectSpread({}, mutableProps), this.props.options || {}), immutableProps);\n\n return /*#__PURE__*/React.createElement(CSSTransition$1, props, this.props.children);\n }\n }]);\n\n return CSSTransition;\n}(Component);\n\nexport { CSSTransition };\n","import { useEffect, useRef } from 'react';\n/**\n * Creates a `Ref` whose value is updated in an effect, ensuring the most recent\n * value is the one rendered with. Generally only required for Concurrent mode usage\n * where previous work in `render()` may be discarded befor being used.\n *\n * This is safe to access in an event handler.\n *\n * @param value The `Ref` value\n */\n\nfunction useCommittedRef(value) {\n var ref = useRef(value);\n useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref;\n}\n\nexport default useCommittedRef;","import { useCallback } from 'react';\nimport useCommittedRef from './useCommittedRef';\nexport default function useEventCallback(fn) {\n var ref = useCommittedRef(fn);\n return useCallback(function () {\n return ref.current && ref.current.apply(ref, arguments);\n }, [ref]);\n}","var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);\n/**\n * Runs `querySelectorAll` on a given element.\n * \n * @param element the element\n * @param selector the selector\n */\n\nexport default function qsa(element, selector) {\n return toArray(element.querySelectorAll(selector));\n}","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CardImg = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n bsPrefix,\n className,\n variant,\n as: Component = 'img',\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'card-img');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(variant ? `${prefix}-${variant}` : prefix, className),\n ...props\n });\n});\nCardImg.displayName = 'CardImg';\nexport default CardImg;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport CardHeaderContext from './CardHeaderContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CardHeader = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'card-header');\n const contextValue = useMemo(() => ({\n cardHeaderBsPrefix: prefix\n }), [prefix]);\n return /*#__PURE__*/_jsx(CardHeaderContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, prefix)\n })\n });\n});\nCardHeader.displayName = 'CardHeader';\nexport default CardHeader;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport createWithBsPrefix from './createWithBsPrefix';\nimport divWithClassName from './divWithClassName';\nimport CardImg from './CardImg';\nimport CardHeader from './CardHeader';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DivStyledAsH5 = divWithClassName('h5');\nconst DivStyledAsH6 = divWithClassName('h6');\nconst CardBody = createWithBsPrefix('card-body');\nconst CardTitle = createWithBsPrefix('card-title', {\n Component: DivStyledAsH5\n});\nconst CardSubtitle = createWithBsPrefix('card-subtitle', {\n Component: DivStyledAsH6\n});\nconst CardLink = createWithBsPrefix('card-link', {\n Component: 'a'\n});\nconst CardText = createWithBsPrefix('card-text', {\n Component: 'p'\n});\nconst CardFooter = createWithBsPrefix('card-footer');\nconst CardImgOverlay = createWithBsPrefix('card-img-overlay');\nconst defaultProps = {\n body: false\n};\nconst Card = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n bg,\n text,\n border,\n body,\n children,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'card');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, prefix, bg && `bg-${bg}`, text && `text-${text}`, border && `border-${border}`),\n children: body ? /*#__PURE__*/_jsx(CardBody, {\n children: children\n }) : children\n });\n});\nCard.displayName = 'Card';\nCard.defaultProps = defaultProps;\nexport default Object.assign(Card, {\n Img: CardImg,\n Title: CardTitle,\n Subtitle: CardSubtitle,\n Body: CardBody,\n Link: CardLink,\n Text: CardText,\n Header: CardHeader,\n Footer: CardFooter,\n ImgOverlay: CardImgOverlay\n});","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import { useMemo } from 'react';\n\nvar toFnRef = function toFnRef(ref) {\n return !ref || typeof ref === 'function' ? ref : function (value) {\n ref.current = value;\n };\n};\n\nexport function mergeRefs(refA, refB) {\n var a = toFnRef(refA);\n var b = toFnRef(refB);\n return function (value) {\n if (a) a(value);\n if (b) b(value);\n };\n}\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return