@openmrs/esm-app-shell 8.0.1-pre.3328 → 8.0.1-pre.3349
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +11 -13
- package/dist/18821cd9b4faaa77.js.map +1 -0
- package/dist/{546c6bfce53cd9de.js → 86ad42432ebd7435.js} +1 -1
- package/dist/a48ac555f9c8f4b1.js +1 -0
- package/dist/{de6eff539629b20c.js.map → dba4329a5f923cfd.js.map} +1 -1
- package/dist/index.html +1 -1
- package/dist/{openmrs.9db431775daccc4a.js → openmrs.fc321a65c26e79f8.js} +1 -1
- package/dist/{openmrs.9db431775daccc4a.js.map → openmrs.fc321a65c26e79f8.js.map} +1 -1
- package/dist/service-worker.js +1 -1
- package/lib/3e16b91f3a85e08c.js +22 -0
- package/lib/{441ea53fdc7e1535.js → 7b7cacfbf9fb1472.js} +4 -4
- package/lib/{e7716cbca8f87729.js → d8be2a4a8de86aa7.js} +1 -1
- package/lib/esm-devtools-app/380.js.map +1 -1
- package/lib/esm-devtools-app/main.js +1 -1
- package/lib/esm-devtools-app/openmrs-esm-devtools-app.js +1 -1
- package/lib/esm-devtools-app/openmrs-esm-devtools-app.js.buildmanifest.json +3 -3
- package/lib/esm-devtools-app/routes.json +1 -1
- package/lib/esm-help-menu-app/108.js +1 -0
- package/lib/esm-help-menu-app/108.js.map +1 -0
- package/lib/esm-help-menu-app/11.js +1 -0
- package/lib/esm-help-menu-app/11.js.map +1 -0
- package/lib/esm-help-menu-app/248.js +1 -0
- package/lib/esm-help-menu-app/248.js.map +1 -0
- package/lib/esm-help-menu-app/322.js +1 -0
- package/lib/esm-help-menu-app/322.js.map +1 -0
- package/lib/esm-help-menu-app/326.js +2 -0
- package/lib/esm-help-menu-app/326.js.map +1 -0
- package/lib/esm-help-menu-app/380.js +1 -0
- package/lib/esm-help-menu-app/380.js.map +1 -0
- package/lib/esm-help-menu-app/555.js +1 -0
- package/lib/esm-help-menu-app/555.js.map +1 -0
- package/lib/esm-help-menu-app/556.js +2 -0
- package/lib/{esm-offline-tools-app/9346.js.LICENSE.txt → esm-help-menu-app/556.js.LICENSE.txt} +10 -0
- package/lib/esm-help-menu-app/556.js.map +1 -0
- package/lib/esm-help-menu-app/623.js +2 -0
- package/lib/esm-help-menu-app/623.js.map +1 -0
- package/lib/esm-help-menu-app/660.js +2 -0
- package/lib/esm-help-menu-app/660.js.map +1 -0
- package/lib/esm-help-menu-app/770.js +2 -0
- package/lib/esm-help-menu-app/770.js.map +1 -0
- package/lib/esm-help-menu-app/802.js +1 -0
- package/lib/esm-help-menu-app/802.js.map +1 -0
- package/lib/esm-help-menu-app/90.js +1 -0
- package/lib/esm-help-menu-app/90.js.map +1 -0
- package/lib/esm-help-menu-app/932.js +2 -0
- package/lib/esm-help-menu-app/932.js.map +1 -0
- package/lib/esm-help-menu-app/main.js +1 -0
- package/lib/esm-help-menu-app/main.js.map +1 -0
- package/lib/esm-help-menu-app/openmrs-esm-help-menu-app.js +1 -0
- package/lib/esm-help-menu-app/openmrs-esm-help-menu-app.js.buildmanifest.json +464 -0
- package/lib/esm-help-menu-app/openmrs-esm-help-menu-app.js.map +1 -0
- package/lib/esm-help-menu-app/routes.json +1 -0
- package/lib/esm-implementer-tools-app/7380.js.map +1 -1
- package/lib/esm-implementer-tools-app/9538.js +1 -1
- package/lib/esm-implementer-tools-app/main.js +1 -1
- package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js +1 -1
- package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js.buildmanifest.json +6 -6
- package/lib/esm-implementer-tools-app/routes.json +1 -1
- package/lib/esm-login-app/8494.js.map +1 -1
- package/lib/esm-login-app/9182.js +1 -1
- package/lib/esm-login-app/main.js +1 -1
- package/lib/esm-login-app/openmrs-esm-login-app.js +1 -1
- package/lib/esm-login-app/openmrs-esm-login-app.js.buildmanifest.json +6 -6
- package/lib/esm-login-app/routes.json +1 -1
- package/lib/esm-primary-navigation-app/7380.js.map +1 -1
- package/lib/esm-primary-navigation-app/9538.js +1 -1
- package/lib/esm-primary-navigation-app/main.js +1 -1
- package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js +1 -1
- package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js.buildmanifest.json +6 -6
- package/lib/esm-primary-navigation-app/routes.json +1 -1
- package/lib/index.html +2 -2
- package/lib/openmrs.js +4 -4
- package/lib/service-worker.js +1 -1
- package/package.json +3 -3
- package/dist/5e8aea2775453e88.js +0 -1
- package/dist/6031113e46945adf.js.map +0 -1
- package/lib/a45dcb6da2ee08e1.js +0 -22
- package/lib/esm-offline-tools-app/1119.js +0 -1
- package/lib/esm-offline-tools-app/1185.js +0 -1
- package/lib/esm-offline-tools-app/1185.js.map +0 -1
- package/lib/esm-offline-tools-app/1197.js +0 -1
- package/lib/esm-offline-tools-app/1405.js +0 -1
- package/lib/esm-offline-tools-app/1405.js.map +0 -1
- package/lib/esm-offline-tools-app/1584c81d564cacde.svg +0 -8
- package/lib/esm-offline-tools-app/2146.js +0 -1
- package/lib/esm-offline-tools-app/2500.js +0 -1
- package/lib/esm-offline-tools-app/2500.js.map +0 -1
- package/lib/esm-offline-tools-app/2690.js +0 -1
- package/lib/esm-offline-tools-app/3099.js +0 -1
- package/lib/esm-offline-tools-app/3389.js +0 -2
- package/lib/esm-offline-tools-app/3389.js.map +0 -1
- package/lib/esm-offline-tools-app/3584.js +0 -1
- package/lib/esm-offline-tools-app/3709.js +0 -1
- package/lib/esm-offline-tools-app/3709.js.map +0 -1
- package/lib/esm-offline-tools-app/4055.js +0 -1
- package/lib/esm-offline-tools-app/4132.js +0 -1
- package/lib/esm-offline-tools-app/4300.js +0 -1
- package/lib/esm-offline-tools-app/4335.js +0 -1
- package/lib/esm-offline-tools-app/4618.js +0 -1
- package/lib/esm-offline-tools-app/4652.js +0 -1
- package/lib/esm-offline-tools-app/4944.js +0 -1
- package/lib/esm-offline-tools-app/5173.js +0 -1
- package/lib/esm-offline-tools-app/5241.js +0 -1
- package/lib/esm-offline-tools-app/5442.js +0 -1
- package/lib/esm-offline-tools-app/5623.js +0 -2
- package/lib/esm-offline-tools-app/5623.js.map +0 -1
- package/lib/esm-offline-tools-app/5661.js +0 -1
- package/lib/esm-offline-tools-app/5725.js +0 -2
- package/lib/esm-offline-tools-app/5725.js.LICENSE.txt +0 -9
- package/lib/esm-offline-tools-app/5725.js.map +0 -1
- package/lib/esm-offline-tools-app/5770.js +0 -2
- package/lib/esm-offline-tools-app/5770.js.map +0 -1
- package/lib/esm-offline-tools-app/6022.js +0 -1
- package/lib/esm-offline-tools-app/6090.js +0 -2
- package/lib/esm-offline-tools-app/6090.js.LICENSE.txt +0 -9
- package/lib/esm-offline-tools-app/6090.js.map +0 -1
- package/lib/esm-offline-tools-app/6224.js +0 -1
- package/lib/esm-offline-tools-app/6224.js.map +0 -1
- package/lib/esm-offline-tools-app/6248.js +0 -1
- package/lib/esm-offline-tools-app/6248.js.map +0 -1
- package/lib/esm-offline-tools-app/6252.js +0 -1
- package/lib/esm-offline-tools-app/6252.js.map +0 -1
- package/lib/esm-offline-tools-app/6269.js +0 -2
- package/lib/esm-offline-tools-app/6269.js.LICENSE.txt +0 -9
- package/lib/esm-offline-tools-app/6269.js.map +0 -1
- package/lib/esm-offline-tools-app/6326.js +0 -2
- package/lib/esm-offline-tools-app/6326.js.map +0 -1
- package/lib/esm-offline-tools-app/6408.js +0 -2
- package/lib/esm-offline-tools-app/6408.js.LICENSE.txt +0 -32
- package/lib/esm-offline-tools-app/6408.js.map +0 -1
- package/lib/esm-offline-tools-app/6468.js +0 -1
- package/lib/esm-offline-tools-app/6679.js +0 -1
- package/lib/esm-offline-tools-app/6840.js +0 -1
- package/lib/esm-offline-tools-app/6859.js +0 -1
- package/lib/esm-offline-tools-app/7097.js +0 -1
- package/lib/esm-offline-tools-app/7159.js +0 -1
- package/lib/esm-offline-tools-app/723.js +0 -1
- package/lib/esm-offline-tools-app/7380.js +0 -1
- package/lib/esm-offline-tools-app/7380.js.map +0 -1
- package/lib/esm-offline-tools-app/7617.js +0 -1
- package/lib/esm-offline-tools-app/795.js +0 -1
- package/lib/esm-offline-tools-app/8163.js +0 -1
- package/lib/esm-offline-tools-app/8349.js +0 -1
- package/lib/esm-offline-tools-app/8618.js +0 -1
- package/lib/esm-offline-tools-app/8650.js +0 -1
- package/lib/esm-offline-tools-app/8650.js.map +0 -1
- package/lib/esm-offline-tools-app/890.js +0 -1
- package/lib/esm-offline-tools-app/9214.js +0 -1
- package/lib/esm-offline-tools-app/9346.js +0 -2
- package/lib/esm-offline-tools-app/9346.js.map +0 -1
- package/lib/esm-offline-tools-app/9538.js +0 -1
- package/lib/esm-offline-tools-app/9569.js +0 -1
- package/lib/esm-offline-tools-app/9825.js +0 -2
- package/lib/esm-offline-tools-app/9825.js.map +0 -1
- package/lib/esm-offline-tools-app/986.js +0 -1
- package/lib/esm-offline-tools-app/9879.js +0 -1
- package/lib/esm-offline-tools-app/9895.js +0 -1
- package/lib/esm-offline-tools-app/9900.js +0 -1
- package/lib/esm-offline-tools-app/9913.js +0 -1
- package/lib/esm-offline-tools-app/main.js +0 -2
- package/lib/esm-offline-tools-app/main.js.LICENSE.txt +0 -15
- package/lib/esm-offline-tools-app/main.js.map +0 -1
- package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js +0 -1
- package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js.buildmanifest.json +0 -1518
- package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js.map +0 -1
- package/lib/esm-offline-tools-app/routes.json +0 -1
- /package/dist/{6031113e46945adf.js → 18821cd9b4faaa77.js} +0 -0
- /package/dist/{de6eff539629b20c.js → dba4329a5f923cfd.js} +0 -0
- /package/lib/{4e8f2e9f00a52bcc.js → 6976c18a7cf00d61.js} +0 -0
- /package/lib/{esm-offline-tools-app/6326.js.LICENSE.txt → esm-help-menu-app/326.js.LICENSE.txt} +0 -0
- /package/lib/{esm-offline-tools-app/5623.js.LICENSE.txt → esm-help-menu-app/623.js.LICENSE.txt} +0 -0
- /package/lib/{esm-offline-tools-app/5770.js.LICENSE.txt → esm-help-menu-app/660.js.LICENSE.txt} +0 -0
- /package/lib/{esm-offline-tools-app/3389.js.LICENSE.txt → esm-help-menu-app/770.js.LICENSE.txt} +0 -0
- /package/lib/{esm-offline-tools-app/9825.js.LICENSE.txt → esm-help-menu-app/932.js.LICENSE.txt} +0 -0
|
@@ -1625,7 +1625,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
1625
1625
|
\**********************************************************/
|
|
1626
1626
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1627
1627
|
|
|
1628
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ActivityIcon: () => (/* binding */ ActivityIcon),\n/* harmony export */ AddIcon: () => (/* binding */ AddIcon),\n/* harmony export */ AllergiesIcon: () => (/* binding */ AllergiesIcon),\n/* harmony export */ ArrowDownIcon: () => (/* binding */ ArrowDownIcon),\n/* harmony export */ ArrowLeftIcon: () => (/* binding */ ArrowLeftIcon),\n/* harmony export */ ArrowRightIcon: () => (/* binding */ ArrowRightIcon),\n/* harmony export */ ArrowUpIcon: () => (/* binding */ ArrowUpIcon),\n/* harmony export */ AttachmentIcon: () => (/* binding */ AttachmentIcon),\n/* harmony export */ BabyIcon: () => (/* binding */ BabyIcon),\n/* harmony export */ CalendarHeatMapIcon: () => (/* binding */ CalendarHeatMapIcon),\n/* harmony export */ CalendarIcon: () => (/* binding */ CalendarIcon),\n/* harmony export */ CaretDownIcon: () => (/* binding */ CaretDownIcon),\n/* harmony export */ CaretLeftIcon: () => (/* binding */ CaretLeftIcon),\n/* harmony export */ CaretRightIcon: () => (/* binding */ CaretRightIcon),\n/* harmony export */ CaretUpIcon: () => (/* binding */ CaretUpIcon),\n/* harmony export */ ChartAverageIcon: () => (/* binding */ ChartAverageIcon),\n/* harmony export */ CheckmarkFilledIcon: () => (/* binding */ CheckmarkFilledIcon),\n/* harmony export */ CheckmarkOutlineIcon: () => (/* binding */ CheckmarkOutlineIcon),\n/* harmony export */ ChemistryIcon: () => (/* binding */ ChemistryIcon),\n/* harmony export */ ChevronDownIcon: () => (/* binding */ ChevronDownIcon),\n/* harmony export */ ChevronLeftIcon: () => (/* binding */ ChevronLeftIcon),\n/* harmony export */ ChevronRightIcon: () => (/* binding */ ChevronRightIcon),\n/* harmony export */ ChevronUpIcon: () => (/* binding */ ChevronUpIcon),\n/* harmony export */ CloseFilledIcon: () => (/* binding */ CloseFilledIcon),\n/* harmony export */ CloseIcon: () => (/* binding */ CloseIcon),\n/* harmony export */ CloseOutlineIcon: () => (/* binding */ CloseOutlineIcon),\n/* harmony export */ ConditionsIcon: () => (/* binding */ ConditionsIcon),\n/* harmony export */ DocumentAttachmentIcon: () => (/* binding */ DocumentAttachmentIcon),\n/* harmony export */ DocumentIcon: () => (/* binding */ DocumentIcon),\n/* harmony export */ DownloadIcon: () => (/* binding */ DownloadIcon),\n/* harmony export */ DrugOrderIcon: () => (/* binding */ DrugOrderIcon),\n/* harmony export */ EditIcon: () => (/* binding */ EditIcon),\n/* harmony export */ EventScheduleIcon: () => (/* binding */ EventScheduleIcon),\n/* harmony export */ EventsIcon: () => (/* binding */ EventsIcon),\n/* harmony export */ GenderFemaleIcon: () => (/* binding */ GenderFemaleIcon),\n/* harmony export */ GenderMaleIcon: () => (/* binding */ GenderMaleIcon),\n/* harmony export */ GenderOtherIcon: () => (/* binding */ GenderOtherIcon),\n/* harmony export */ GenderUnknownIcon: () => (/* binding */ GenderUnknownIcon),\n/* harmony export */ GenericOrderTypeIcon: () => (/* binding */ GenericOrderTypeIcon),\n/* harmony export */ GroupAccessIcon: () => (/* binding */ GroupAccessIcon),\n/* harmony export */ GroupIcon: () => (/* binding */ GroupIcon),\n/* harmony export */ HospitalBedIcon: () => (/* binding */ HospitalBedIcon),\n/* harmony export */ Icon: () => (/* binding */ Icon),\n/* harmony export */ ImageMedicalIcon: () => (/* binding */ ImageMedicalIcon),\n/* harmony export */ InformationFilledIcon: () => (/* binding */ InformationFilledIcon),\n/* harmony export */ InformationIcon: () => (/* binding */ InformationIcon),\n/* harmony export */ InformationSquareIcon: () => (/* binding */ InformationSquareIcon),\n/* harmony export */ InventoryManagementIcon: () => (/* binding */ InventoryManagementIcon),\n/* harmony export */ LabOrderIcon: () => (/* binding */ LabOrderIcon),\n/* harmony export */ ListCheckedIcon: () => (/* binding */ ListCheckedIcon),\n/* harmony export */ LocationIcon: () => (/* binding */ LocationIcon),\n/* harmony export */ MaterialOrderIcon: () => (/* binding */ MaterialOrderIcon),\n/* harmony export */ MaximizeIcon: () => (/* binding */ MaximizeIcon),\n/* harmony export */ MaybeIcon: () => (/* binding */ MaybeIcon),\n/* harmony export */ MedicationIcon: () => (/* binding */ MedicationIcon),\n/* harmony export */ MessageQueueIcon: () => (/* binding */ MessageQueueIcon),\n/* harmony export */ MicroscopeIcon: () => (/* binding */ MicroscopeIcon),\n/* harmony export */ MoneyIcon: () => (/* binding */ MoneyIcon),\n/* harmony export */ MotherIcon: () => (/* binding */ MotherIcon),\n/* harmony export */ MovementIcon: () => (/* binding */ MovementIcon),\n/* harmony export */ OverflowMenuHorizontalIcon: () => (/* binding */ OverflowMenuHorizontalIcon),\n/* harmony export */ OverflowMenuVerticalIcon: () => (/* binding */ OverflowMenuVerticalIcon),\n/* harmony export */ PasswordIcon: () => (/* binding */ PasswordIcon),\n/* harmony export */ PedestrianFamilyIcon: () => (/* binding */ PedestrianFamilyIcon),\n/* harmony export */ PenIcon: () => (/* binding */ PenIcon),\n/* harmony export */ PrinterIcon: () => (/* binding */ PrinterIcon),\n/* harmony export */ ProcedureOrderIcon: () => (/* binding */ ProcedureOrderIcon),\n/* harmony export */ ProgramsIcon: () => (/* binding */ ProgramsIcon),\n/* harmony export */ RadiologyIcon: () => (/* binding */ RadiologyIcon),\n/* harmony export */ ReferralOrderIcon: () => (/* binding */ ReferralOrderIcon),\n/* harmony export */ RenewIcon: () => (/* binding */ RenewIcon),\n/* harmony export */ ReportIcon: () => (/* binding */ ReportIcon),\n/* harmony export */ ResetIcon: () => (/* binding */ ResetIcon),\n/* harmony export */ SaveIcon: () => (/* binding */ SaveIcon),\n/* harmony export */ SearchIcon: () => (/* binding */ SearchIcon),\n/* harmony export */ SettingsIcon: () => (/* binding */ SettingsIcon),\n/* harmony export */ ShoppingCartAddItemIcon: () => (/* binding */ ShoppingCartAddItemIcon),\n/* harmony export */ ShoppingCartArrowDownIcon: () => (/* binding */ ShoppingCartArrowDownIcon),\n/* harmony export */ ShoppingCartIcon: () => (/* binding */ ShoppingCartIcon),\n/* harmony export */ StickyNoteAddIcon: () => (/* binding */ StickyNoteAddIcon),\n/* harmony export */ SwitcherIcon: () => (/* binding */ SwitcherIcon),\n/* harmony export */ SyringeIcon: () => (/* binding */ SyringeIcon),\n/* harmony export */ TableIcon: () => (/* binding */ TableIcon),\n/* harmony export */ TableOfContentsIcon: () => (/* binding */ TableOfContentsIcon),\n/* harmony export */ TimeIcon: () => (/* binding */ TimeIcon),\n/* harmony export */ ToolsIcon: () => (/* binding */ ToolsIcon),\n/* harmony export */ TranslateIcon: () => (/* binding */ TranslateIcon),\n/* harmony export */ TrashCanIcon: () => (/* binding */ TrashCanIcon),\n/* harmony export */ TreeViewAltIcon: () => (/* binding */ TreeViewAltIcon),\n/* harmony export */ UserAvatarIcon: () => (/* binding */ UserAvatarIcon),\n/* harmony export */ UserFollowIcon: () => (/* binding */ UserFollowIcon),\n/* harmony export */ UserIcon: () => (/* binding */ UserIcon),\n/* harmony export */ UserXrayIcon: () => (/* binding */ UserXrayIcon),\n/* harmony export */ ViewIcon: () => (/* binding */ ViewIcon),\n/* harmony export */ ViewOffIcon: () => (/* binding */ ViewOffIcon),\n/* harmony export */ WarningIcon: () => (/* binding */ WarningIcon),\n/* harmony export */ iconIds: () => (/* binding */ iconIds)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ \"../../../node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @openmrs/esm-react-utils */ \"../../framework/esm-react-utils/dist/index.js\");\n/* harmony import */ var _icons_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./icons.module.scss */ \"../../framework/esm-styleguide/src/icons/icons.module.scss\");\n/** @category Icons */ function _object_without_properties(source, excluded) {\n if (source == null) return {};\n var target = _object_without_properties_loose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\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 return target;\n}\nfunction _object_without_properties_loose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}\n\n\n\n\nvar iconIds = [\n 'omrs-icon-activity',\n 'omrs-icon-add',\n 'omrs-icon-arrow-down',\n 'omrs-icon-arrow-left',\n 'omrs-icon-arrow-right',\n 'omrs-icon-arrow-up',\n 'omrs-icon-baby',\n 'omrs-icon-calendar-heat-map',\n 'omrs-icon-calendar',\n 'omrs-icon-caret-down',\n 'omrs-icon-caret-left',\n 'omrs-icon-caret-right',\n 'omrs-icon-caret-up',\n 'omrs-icon-chart-average',\n 'omrs-icon-checkmark-filled',\n 'omrs-icon-checkmark-outline',\n 'omrs-icon-chemistry',\n 'omrs-icon-chevron-down',\n 'omrs-icon-chevron-left',\n 'omrs-icon-chevron-right',\n 'omrs-icon-chevron-up',\n 'omrs-icon-close',\n 'omrs-icon-close-filled',\n 'omrs-icon-close-outline',\n 'omrs-icon-document',\n 'omrs-icon-document-attachment',\n 'omrs-icon-download',\n 'omrs-icon-drug-order',\n 'omrs-icon-edit',\n 'omrs-icon-event-schedule',\n 'omrs-icon-events',\n 'omrs-icon-gender-female',\n 'omrs-icon-gender-male',\n 'omrs-icon-gender-other',\n 'omrs-icon-gender-unknown',\n 'omrs-icon-generic-order-type',\n 'omrs-icon-group',\n 'omrs-icon-group-access',\n 'omrs-icon-hospital-bed',\n 'omrs-icon-image-medical',\n 'omrs-icon-information',\n 'omrs-icon-information-filled',\n 'omrs-icon-information-square',\n 'omrs-icon-inventory-management',\n 'omrs-icon-lab-order',\n 'omrs-icon-list-checked',\n 'omrs-icon-location',\n 'omrs-icon-material-order',\n 'omrs-icon-maximize',\n 'omrs-icon-medication',\n 'omrs-icon-message-queue',\n 'omrs-icon-microscope',\n 'omrs-icon-money',\n 'omrs-icon-mother',\n 'omrs-icon-movement',\n 'omrs-icon-overflow-menu--horizontal',\n 'omrs-icon-overflow-menu--vertical',\n 'omrs-icon-password',\n 'omrs-icon-pedestrian-family',\n 'omrs-icon-pen',\n 'omrs-icon-printer',\n 'omrs-icon-procedure-order',\n 'omrs-icon-programs',\n 'omrs-icon-renew',\n 'omrs-icon-referral-order',\n 'omrs-icon-report',\n 'omrs-icon-reset',\n 'omrs-icon-save',\n 'omrs-icon-search',\n 'omrs-icon-settings',\n 'omrs-icon-shopping-cart',\n 'omrs-icon-shopping-cart--arrow-down',\n 'omrs-icon-sticky-note-add',\n 'omrs-icon-switcher',\n 'omrs-icon-syringe',\n 'omrs-icon-table-of-contents',\n 'omrs-icon-table',\n 'omrs-icon-time',\n 'omrs-icon-tools',\n 'omrs-icon-translate',\n 'omrs-icon-trash-can',\n 'omrs-icon-tree-view--alt',\n 'omrs-icon-user-avatar',\n 'omrs-icon-user-follow',\n 'omrs-icon-user-xray',\n 'omrs-icon-user',\n 'omrs-icon-view-off',\n 'omrs-icon-view',\n 'omrs-icon-warning'\n];\n/**\n */ var ActivityIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ActivityIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-activity\",\n iconProps: props\n });\n}));\n/**\n */ var AddIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function AddIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-add\",\n iconProps: props\n });\n}));\n/**\n */ var ArrowDownIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ArrowDownIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-arrow-down\",\n iconProps: props\n });\n}));\n/**\n */ var ArrowLeftIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ArrowLeftIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-arrow-left\",\n iconProps: props\n });\n}));\n/**\n */ var ArrowRightIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ArrowRightIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-arrow-right\",\n iconProps: props\n });\n}));\n/**\n */ var ArrowUpIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ArrowUpIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-arrow-up\",\n iconProps: props\n });\n}));\n/**\n */ var BabyIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function BabyIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-baby\",\n iconProps: props\n });\n}));\n/**\n */ var CalendarHeatMapIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CalendarHeatMap(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-calendar-heat-map\",\n iconProps: props\n });\n}));\n/**\n */ var CalendarIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Calendar(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-calendar\",\n iconProps: props\n });\n}));\n/**\n */ var CaretDownIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CaretDownIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-caret-down\",\n iconProps: props\n });\n}));\n/**\n */ var CaretLeftIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CaretLeftIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-caret-left\",\n iconProps: props\n });\n}));\n/**\n */ var CaretRightIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CaretRightIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-caret-right\",\n iconProps: props\n });\n}));\n/**\n */ var CaretUpIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CaretUpIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-caret-up\",\n iconProps: props\n });\n}));\n/**\n */ var ChartAverageIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ChartAverageIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-chart-average\",\n iconProps: props\n });\n}));\n/**\n */ var CheckmarkFilledIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CheckmarkFilledIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-checkmark-filled\",\n iconProps: props\n });\n}));\n/**\n */ var CheckmarkOutlineIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CheckmarkOutlineIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-checkmark-outline\",\n iconProps: props\n });\n}));\n/**\n */ var ChemistryIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ChemistryIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-chemistry\",\n iconProps: props\n });\n}));\n/**\n */ var ChevronDownIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ChevronDownIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-chevron-down\",\n iconProps: props\n });\n}));\n/**\n */ var ChevronLeftIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ChevronLeftIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-chevron-left\",\n iconProps: props\n });\n}));\n/**\n */ var ChevronRightIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ChevronRightIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-chevron-right\",\n iconProps: props\n });\n}));\n/**\n */ var ChevronUpIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ChevronUpIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-chevron-up\",\n iconProps: props\n });\n}));\n/**\n */ var CloseIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CloseIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-close\",\n iconProps: props\n });\n}));\n/**\n */ var CloseFilledIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CloseFilledIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-close-filled\",\n iconProps: props\n });\n}));\n/**\n */ var CloseOutlineIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CloseOutlineIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-close-outline\",\n iconProps: props\n });\n}));\n/**\n */ var DocumentIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function DocumentIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-document\",\n iconProps: props\n });\n}));\n/**\n */ var DocumentAttachmentIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function DocumentAttachmentIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-document-attachment\",\n iconProps: props\n });\n}));\n/**\n */ var DownloadIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function DownloadIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-download\",\n iconProps: props\n });\n}));\n/**\n */ var DrugOrderIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function DrugOrderIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-drug-order\",\n iconProps: props\n });\n}));\n/**\n */ var EditIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function EditIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-edit\",\n iconProps: props\n });\n}));\n/**\n */ var EventScheduleIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function EventScheduleIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-event-schedule\",\n iconProps: props\n });\n}));\n/**\n */ var EventsIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function EventsIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-events\",\n iconProps: props\n });\n}));\n/**\n */ var GenderFemaleIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GenderFemaleIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-gender-female\",\n iconProps: props\n });\n}));\n/**\n */ var GenderMaleIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GenderMaleIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-gender-male\",\n iconProps: props\n });\n}));\n/**\n */ var GenderOtherIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GenderOtherIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-gender-other\",\n iconProps: props\n });\n}));\n/**\n */ var GenderUnknownIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GenderUnknownIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-gender-unknown\",\n iconProps: props\n });\n}));\n/**\n */ var GenericOrderTypeIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GenericOrderTypeIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-generic-order-type\",\n iconProps: props\n });\n}));\n/**\n */ var GroupIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GroupIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-group\",\n iconProps: props\n });\n}));\n/**\n */ var GroupAccessIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GroupAccessIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-group-access\",\n iconProps: props\n });\n}));\n/**\n */ var HospitalBedIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function HospitalBedIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-hospital-bed\",\n iconProps: props\n });\n}));\n/**\n */ var ImageMedicalIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ImageMedicalIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-image-medical\",\n iconProps: props\n });\n}));\n/**\n */ var InformationIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function InformationIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-information\",\n iconProps: props\n });\n}));\n/**\n */ var InformationFilledIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function InformationFilledIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-information-filled\",\n iconProps: props\n });\n}));\n/**\n */ var InformationSquareIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function InformationSquareIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-information-square\",\n iconProps: props\n });\n}));\n/**\n */ var InventoryManagementIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function InventoryManagementIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-inventory-management\",\n iconProps: props\n });\n}));\n/**\n */ var LabOrderIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function LabOrderIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-lab-order\",\n iconProps: props\n });\n}));\n/**\n */ var ListCheckedIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ListCheckedIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-list-checked\",\n iconProps: props\n });\n}));\n/**\n */ var LocationIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function LocationIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-location\",\n iconProps: props\n });\n}));\n/**\n */ var MaterialOrderIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MaterialOrderIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-material-order\",\n iconProps: props\n });\n}));\n/**\n */ var MaximizeIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MaximizeIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-maximize\",\n iconProps: props\n });\n}));\n/**\n */ var MedicationIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MedicationIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-medication\",\n iconProps: props\n });\n}));\n/**\n */ var MessageQueueIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MessageQueueIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-message-queue\",\n iconProps: props\n });\n}));\n/**\n */ var MicroscopeIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MicroscopeIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-microscope\",\n iconProps: props\n });\n}));\n/**\n * Billing\n */ var MoneyIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MoneyIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-money\",\n iconProps: props\n });\n}));\n/**\n */ var MotherIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MotherIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-mother\",\n iconProps: props\n });\n}));\n/**\n */ var MovementIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MovementIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-movement\",\n iconProps: props\n });\n}));\n/**\n */ var OverflowMenuHorizontalIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function OverflowMenuHorizontalIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-overflow-menu--horizontal\",\n iconProps: props\n });\n}));\n/**\n */ var OverflowMenuVerticalIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function OverflowMenuVerticalIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-overflow-menu--horizontal\",\n iconProps: props\n });\n}));\nvar PasswordIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function PasswordIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-password\",\n iconProps: props\n });\n}));\n/**\n */ var PedestrianFamilyIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function PedestrianFamilyIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-pedestrian-family\",\n iconProps: props\n });\n}));\n/**\n */ var PenIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function PenIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-pen\",\n iconProps: props\n });\n}));\n/**\n */ var PrinterIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function PrinterIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-printer\",\n iconProps: props\n });\n}));\n/**\n */ var ProcedureOrderIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ProcedureOrderIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-procedure-order\",\n iconProps: props\n });\n}));\n/**\n */ var ProgramsIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ProgramsIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-programs\",\n iconProps: props\n });\n}));\n/**\n */ var ReferralOrderIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ReferralOrderIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-referral-order\",\n iconProps: props\n });\n}));\n/**\n */ var RenewIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function RenewIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-renew\",\n iconProps: props\n });\n}));\n/**\n */ var ReportIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ReportIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-report\",\n iconProps: props\n });\n}));\n/**\n */ var ResetIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ResetIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-reset\",\n iconProps: props\n });\n}));\n/**\n */ var SaveIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function SaveIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-save\",\n iconProps: props\n });\n}));\n/**\n */ var SearchIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function SearchIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-search\",\n iconProps: props\n });\n}));\n/**\n */ var SettingsIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function SaveIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-settings\",\n iconProps: props\n });\n}));\n/**\n */ var SwitcherIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function SwitcherIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-switcher\",\n iconProps: props\n });\n}));\n/**\n * Order Basket, the UI to enter Orders for Medications, Referrals, Labs, Procedures and more\n */ var ShoppingCartIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ShoppingCartIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-shopping-cart\",\n iconProps: props\n });\n}));\n/**\n * Used as a button to add an item to the Order basket from a search\n */ var ShoppingCartArrowDownIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ShoppingCartArrowDownIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-shopping-cart--arrow-down\",\n iconProps: props\n });\n}));\n/**\n * Used as action button to open ward in-patient note workspace\n */ var StickyNoteAddIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function StickyNoteAddIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-sticky-note-add\",\n iconProps: props\n });\n}));\n/**\n */ var SyringeIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function SyringeIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-syringe\",\n iconProps: props\n });\n}));\n/**\n * Used as a button to add an item to the Order basket from a search\n */ var TableOfContentsIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function TableOfContentsIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-table-of-contents\",\n iconProps: props\n });\n}));\n/**\n */ var TableIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function TableIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-table\",\n iconProps: props\n });\n}));\n/**\n * Lab investigations\n */ var TimeIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function TimeIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-time\",\n iconProps: props\n });\n}));\n/**\n */ var ToolsIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ToolsIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-tools\",\n iconProps: props\n });\n}));\n/**\n */ var TranslateIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function TranslateIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-translate\",\n iconProps: props\n });\n}));\n/**\n */ var TrashCanIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function TrashCanIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-trash-can\",\n iconProps: props\n });\n}));\n/**\n */ var TreeViewAltIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function TreeViewAltIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-tree-view--alt\",\n iconProps: props\n });\n}));\n/**\n * User of OpenMRS e.g. My Account\n */ var UserAvatarIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function UserAvatarIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-user-avatar\",\n iconProps: props\n });\n}));\n/**\n */ var UserFollowIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function UserFollowIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-user-follow\",\n iconProps: props\n });\n}));\n/**\n * UserXray Icon\n *\n * `UserXrayIcon` is also used for imaging orders\n */ var UserXrayIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function UserXrayIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-user-xray\",\n iconProps: props\n });\n}));\n/**\n */ var UserIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function UserIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-user\",\n iconProps: props\n });\n}));\n/**\n */ var ViewOffIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ViewOffIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-view-off\",\n iconProps: props\n });\n}));\n/**\n */ var ViewIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ViewIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-view\",\n iconProps: props\n });\n}));\n/**\n */ var WarningIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function WarningIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-warning\",\n iconProps: props\n });\n}));\n// Icon aliases that are a little more aligned to specific use-cases\n// should all resolve to a defined React icon\n/**\n */ var AllergiesIcon = WarningIcon;\n/**\n *\n */ var AttachmentIcon = DocumentAttachmentIcon;\n/**\n * Conditions\n *\n * Note this is an alias for ListCheckedIcon\n */ var ConditionsIcon = ListCheckedIcon;\n/**\n *\n */ var RadiologyIcon = ImageMedicalIcon;\n/**\n * Used as a button to add an item to the Order basket from a search\n *\n * Note this is an alias for ShoppingCartArrowDownIcon\n */ var ShoppingCartAddItemIcon = ShoppingCartArrowDownIcon;\n/**\n * This is a utility component that takes an `icon` and renders it if the sprite for the icon\n * is available. The goal is to make it easier to conditionally render configuration-specified icons.\n *\n * @example\n * ```tsx\n * <MaybeIcon icon='omrs-icon-baby' className={styles.myIconStyles} />\n * ```\n */ var MaybeIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MaybeIcon(_param, ref) {\n var icon = _param.icon, fallback = _param.fallback, iconProps = _object_without_properties(_param, [\n \"icon\",\n \"fallback\"\n ]);\n var iconRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(document.getElementById(icon));\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n var container = document.getElementById('omrs-svgs-container');\n var callback = function(mutationList) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = mutationList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var mutation = _step.value;\n if (mutation.type === 'childList') {\n iconRef.current = document.getElementById(icon);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n var observer = new MutationObserver(callback);\n if (container) {\n observer.observe(container, {\n childList: true\n });\n }\n return function() {\n return observer.disconnect();\n };\n }, [\n icon\n ]);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.RenderIfValueIsTruthy, {\n value: iconRef.current,\n fallback: fallback\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: icon,\n iconProps: iconProps\n }));\n}));\n/**\n * This is a utility type for custom icons that use the svg-sprite-loader to bundle custom icons\n */ var Icon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Icon(param, ref) {\n var icon = param.icon, iconProps = param.iconProps;\n var _Object_assign = Object.assign({}, {\n fill: 'currentColor',\n size: 20\n }, iconProps), className = _Object_assign.className, fill = _Object_assign.fill, size = _Object_assign.size;\n if (size <= 0 || size > 72) {\n console.error(\"Invalid size '\".concat(size, \"' specified for \").concat(icon, \". Defaulting to 20.\"));\n size = 20;\n }\n var iconRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle)(ref, function() {\n return iconRef.current;\n });\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n if (iconRef.current) {\n if (fill !== 'currentColor') {\n iconRef.current.style.setProperty('--omrs-icon-fill', fill);\n }\n }\n }, []);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n ref: iconRef,\n className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('omrs-icon', _icons_module_scss__WEBPACK_IMPORTED_MODULE_3__[\"default\"].icon, className),\n height: size,\n width: size,\n viewBox: \"0 0 16 16\"\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"use\", {\n href: \"#\".concat(icon)\n }));\n}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL3NyYy9pY29ucy9pY29ucy50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ29FO0FBQ2pDO0FBQ1U7QUFDekI7QUFFakMsSUFBTVMsVUFBVTtJQUNyQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0QsQ0FBVTtBQVVYO0NBQ0MsR0FDTSxJQUFNQyw2QkFBZVIsMkNBQUlBLGVBQzlCRCxpREFBVUEsQ0FBMkIsU0FBU1MsYUFBYUMsS0FBSyxFQUFFQyxHQUFHO0lBQ25FLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQXFCQyxXQUFXSjs7QUFDOUQsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNSyx3QkFB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RUFBRXNIO1FBQy9DSyxRQUFRTjtRQUNSTyxPQUFPUDtRQUNQUSxTQUFRO3FCQUVSLDJEQUFDQztRQUFJQyxNQUFNLElBQVMsT0FBTC9IOztBQUdyQixJQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLXN0eWxlZ3VpZGUvc3JjL2ljb25zL2ljb25zLnRzeD81MTUwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAY2F0ZWdvcnkgSWNvbnMgKi9cbmltcG9ydCBSZWFjdCwgeyBmb3J3YXJkUmVmLCBtZW1vLCB1c2VFZmZlY3QsIHVzZUltcGVyYXRpdmVIYW5kbGUsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc05hbWVzLCB7IHR5cGUgQXJndW1lbnQgfSBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IFJlbmRlcklmVmFsdWVJc1RydXRoeSB9IGZyb20gJ0BvcGVubXJzL2VzbS1yZWFjdC11dGlscyc7XG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9pY29ucy5tb2R1bGUuc2Nzcyc7XG5cbmV4cG9ydCBjb25zdCBpY29uSWRzID0gW1xuICAnb21ycy1pY29uLWFjdGl2aXR5JyxcbiAgJ29tcnMtaWNvbi1hZGQnLFxuICAnb21ycy1pY29uLWFycm93LWRvd24nLFxuICAnb21ycy1pY29uLWFycm93LWxlZnQnLFxuICAnb21ycy1pY29uLWFycm93LXJpZ2h0JyxcbiAgJ29tcnMtaWNvbi1hcnJvdy11cCcsXG4gICdvbXJzLWljb24tYmFieScsXG4gICdvbXJzLWljb24tY2FsZW5kYXItaGVhdC1tYXAnLFxuICAnb21ycy1pY29uLWNhbGVuZGFyJyxcbiAgJ29tcnMtaWNvbi1jYXJldC1kb3duJyxcbiAgJ29tcnMtaWNvbi1jYXJldC1sZWZ0JyxcbiAgJ29tcnMtaWNvbi1jYXJldC1yaWdodCcsXG4gICdvbXJzLWljb24tY2FyZXQtdXAnLFxuICAnb21ycy1pY29uLWNoYXJ0LWF2ZXJhZ2UnLFxuICAnb21ycy1pY29uLWNoZWNrbWFyay1maWxsZWQnLFxuICAnb21ycy1pY29uLWNoZWNrbWFyay1vdXRsaW5lJyxcbiAgJ29tcnMtaWNvbi1jaGVtaXN0cnknLFxuICAnb21ycy1pY29uLWNoZXZyb24tZG93bicsXG4gICdvbXJzLWljb24tY2hldnJvbi1sZWZ0JyxcbiAgJ29tcnMtaWNvbi1jaGV2cm9uLXJpZ2h0JyxcbiAgJ29tcnMtaWNvbi1jaGV2cm9uLXVwJyxcbiAgJ29tcnMtaWNvbi1jbG9zZScsXG4gICdvbXJzLWljb24tY2xvc2UtZmlsbGVkJyxcbiAgJ29tcnMtaWNvbi1jbG9zZS1vdXRsaW5lJyxcbiAgJ29tcnMtaWNvbi1kb2N1bWVudCcsXG4gICdvbXJzLWljb24tZG9jdW1lbnQtYXR0YWNobWVudCcsXG4gICdvbXJzLWljb24tZG93bmxvYWQnLFxuICAnb21ycy1pY29uLWRydWctb3JkZXInLFxuICAnb21ycy1pY29uLWVkaXQnLFxuICAnb21ycy1pY29uLWV2ZW50LXNjaGVkdWxlJyxcbiAgJ29tcnMtaWNvbi1ldmVudHMnLFxuICAnb21ycy1pY29uLWdlbmRlci1mZW1hbGUnLFxuICAnb21ycy1pY29uLWdlbmRlci1tYWxlJyxcbiAgJ29tcnMtaWNvbi1nZW5kZXItb3RoZXInLFxuICAnb21ycy1pY29uLWdlbmRlci11bmtub3duJyxcbiAgJ29tcnMtaWNvbi1nZW5lcmljLW9yZGVyLXR5cGUnLFxuICAnb21ycy1pY29uLWdyb3VwJyxcbiAgJ29tcnMtaWNvbi1ncm91cC1hY2Nlc3MnLFxuICAnb21ycy1pY29uLWhvc3BpdGFsLWJlZCcsXG4gICdvbXJzLWljb24taW1hZ2UtbWVkaWNhbCcsXG4gICdvbXJzLWljb24taW5mb3JtYXRpb24nLFxuICAnb21ycy1pY29uLWluZm9ybWF0aW9uLWZpbGxlZCcsXG4gICdvbXJzLWljb24taW5mb3JtYXRpb24tc3F1YXJlJyxcbiAgJ29tcnMtaWNvbi1pbnZlbnRvcnktbWFuYWdlbWVudCcsXG4gICdvbXJzLWljb24tbGFiLW9yZGVyJyxcbiAgJ29tcnMtaWNvbi1saXN0LWNoZWNrZWQnLFxuICAnb21ycy1pY29uLWxvY2F0aW9uJyxcbiAgJ29tcnMtaWNvbi1tYXRlcmlhbC1vcmRlcicsXG4gICdvbXJzLWljb24tbWF4aW1pemUnLFxuICAnb21ycy1pY29uLW1lZGljYXRpb24nLFxuICAnb21ycy1pY29uLW1lc3NhZ2UtcXVldWUnLFxuICAnb21ycy1pY29uLW1pY3Jvc2NvcGUnLFxuICAnb21ycy1pY29uLW1vbmV5JyxcbiAgJ29tcnMtaWNvbi1tb3RoZXInLFxuICAnb21ycy1pY29uLW1vdmVtZW50JyxcbiAgJ29tcnMtaWNvbi1vdmVyZmxvdy1tZW51LS1ob3Jpem9udGFsJyxcbiAgJ29tcnMtaWNvbi1vdmVyZmxvdy1tZW51LS12ZXJ0aWNhbCcsXG4gICdvbXJzLWljb24tcGFzc3dvcmQnLFxuICAnb21ycy1pY29uLXBlZGVzdHJpYW4tZmFtaWx5JyxcbiAgJ29tcnMtaWNvbi1wZW4nLFxuICAnb21ycy1pY29uLXByaW50ZXInLFxuICAnb21ycy1pY29uLXByb2NlZHVyZS1vcmRlcicsXG4gICdvbXJzLWljb24tcHJvZ3JhbXMnLFxuICAnb21ycy1pY29uLXJlbmV3JyxcbiAgJ29tcnMtaWNvbi1yZWZlcnJhbC1vcmRlcicsXG4gICdvbXJzLWljb24tcmVwb3J0JyxcbiAgJ29tcnMtaWNvbi1yZXNldCcsXG4gICdvbXJzLWljb24tc2F2ZScsXG4gICdvbXJzLWljb24tc2VhcmNoJyxcbiAgJ29tcnMtaWNvbi1zZXR0aW5ncycsXG4gICdvbXJzLWljb24tc2hvcHBpbmctY2FydCcsXG4gICdvbXJzLWljb24tc2hvcHBpbmctY2FydC0tYXJyb3ctZG93bicsXG4gICdvbXJzLWljb24tc3RpY2t5LW5vdGUtYWRkJyxcbiAgJ29tcnMtaWNvbi1zd2l0Y2hlcicsXG4gICdvbXJzLWljb24tc3lyaW5nZScsXG4gICdvbXJzLWljb24tdGFibGUtb2YtY29udGVudHMnLFxuICAnb21ycy1pY29uLXRhYmxlJyxcbiAgJ29tcnMtaWNvbi10aW1lJyxcbiAgJ29tcnMtaWNvbi10b29scycsXG4gICdvbXJzLWljb24tdHJhbnNsYXRlJyxcbiAgJ29tcnMtaWNvbi10cmFzaC1jYW4nLFxuICAnb21ycy1pY29uLXRyZWUtdmlldy0tYWx0JyxcbiAgJ29tcnMtaWNvbi11c2VyLWF2YXRhcicsXG4gICdvbXJzLWljb24tdXNlci1mb2xsb3cnLFxuICAnb21ycy1pY29uLXVzZXIteHJheScsXG4gICdvbXJzLWljb24tdXNlcicsXG4gICdvbXJzLWljb24tdmlldy1vZmYnLFxuICAnb21ycy1pY29uLXZpZXcnLFxuICAnb21ycy1pY29uLXdhcm5pbmcnLFxuXSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgSWNvbklkID0gKHR5cGVvZiBpY29uSWRzKVtudW1iZXJdO1xuXG5leHBvcnQgdHlwZSBJY29uUHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IEFyZ3VtZW50O1xuICBmaWxsPzogc3RyaW5nO1xuICBzaXplPzogbnVtYmVyO1xufTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBBY3Rpdml0eUljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQWN0aXZpdHlJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tYWN0aXZpdHlcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IEFkZEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQWRkSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWFkZFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQXJyb3dEb3duSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBBcnJvd0Rvd25JY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tYXJyb3ctZG93blwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQXJyb3dMZWZ0SWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBBcnJvd0xlZnRJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tYXJyb3ctbGVmdFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQXJyb3dSaWdodEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQXJyb3dSaWdodEljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1hcnJvdy1yaWdodFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQXJyb3dVcEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQXJyb3dVcEljb24ocHJvcHM6IEljb25Qcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWFycm93LXVwXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBCYWJ5SWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBCYWJ5SWNvbihwcm9wczogSWNvblByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tYmFieVwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQ2FsZW5kYXJIZWF0TWFwSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBDYWxlbmRhckhlYXRNYXAocHJvcHM6IEljb25Qcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWNhbGVuZGFyLWhlYXQtbWFwXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBDYWxlbmRhckljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQ2FsZW5kYXIocHJvcHM6IEljb25Qcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWNhbGVuZGFyXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBDYXJldERvd25JY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIENhcmV0RG93bkljb24ocHJvcHM6IEljb25Qcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWNhcmV0LWRvd25cIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IENhcmV0TGVmdEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQ2FyZXRMZWZ0SWNvbihwcm9wczogSWNvblByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tY2FyZXQtbGVmdFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQ2FyZXRSaWdodEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQ2FyZXRSaWdodEljb24ocHJvcHM6IEljb25Qcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWNhcmV0LXJpZ2h0XCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBDYXJldFVwSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBDYXJldFVwSWNvbihwcm9wczogSWNvblByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tY2FyZXQtdXBcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IENoYXJ0QXZlcmFnZUljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQ2hhcnRBdmVyYWdlSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWNoYXJ0LWF2ZXJhZ2VcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya0ZpbGxlZEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQ2hlY2ttYXJrRmlsbGVkSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWNoZWNrbWFyay1maWxsZWRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IENoZWNrbWFya091dGxpbmVJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIENoZWNrbWFya091dGxpbmVJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tY2hlY2ttYXJrLW91dGxpbmVcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IENoZW1pc3RyeUljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQ2hlbWlzdHJ5SWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWNoZW1pc3RyeVwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQ2hldnJvbkRvd25JY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIENoZXZyb25Eb3duSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWNoZXZyb24tZG93blwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQ2hldnJvbkxlZnRJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIENoZXZyb25MZWZ0SWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWNoZXZyb24tbGVmdFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQ2hldnJvblJpZ2h0SWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBDaGV2cm9uUmlnaHRJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tY2hldnJvbi1yaWdodFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQ2hldnJvblVwSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBDaGV2cm9uVXBJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tY2hldnJvbi11cFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQ2xvc2VJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIENsb3NlSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWNsb3NlXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBDbG9zZUZpbGxlZEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQ2xvc2VGaWxsZWRJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tY2xvc2UtZmlsbGVkXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBDbG9zZU91dGxpbmVJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIENsb3NlT3V0bGluZUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1jbG9zZS1vdXRsaW5lXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBEb2N1bWVudEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gRG9jdW1lbnRJY29uKHByb3BzOiBJY29uUHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1kb2N1bWVudFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgRG9jdW1lbnRBdHRhY2htZW50SWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBEb2N1bWVudEF0dGFjaG1lbnRJY29uKHByb3BzOiBJY29uUHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1kb2N1bWVudC1hdHRhY2htZW50XCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBEb3dubG9hZEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gRG93bmxvYWRJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tZG93bmxvYWRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IERydWdPcmRlckljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gRHJ1Z09yZGVySWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWRydWctb3JkZXJcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IEVkaXRJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIEVkaXRJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tZWRpdFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgRXZlbnRTY2hlZHVsZUljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gRXZlbnRTY2hlZHVsZUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1ldmVudC1zY2hlZHVsZVwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgRXZlbnRzSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBFdmVudHNJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tZXZlbnRzXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5kZXJGZW1hbGVJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIEdlbmRlckZlbWFsZUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1nZW5kZXItZmVtYWxlXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcbi8qKlxuICovXG5leHBvcnQgY29uc3QgR2VuZGVyTWFsZUljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gR2VuZGVyTWFsZUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1nZW5kZXItbWFsZVwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmRlck90aGVySWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBHZW5kZXJPdGhlckljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1nZW5kZXItb3RoZXJcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5kZXJVbmtub3duSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBHZW5kZXJVbmtub3duSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWdlbmRlci11bmtub3duXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5lcmljT3JkZXJUeXBlSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBHZW5lcmljT3JkZXJUeXBlSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWdlbmVyaWMtb3JkZXItdHlwZVwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgR3JvdXBJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIEdyb3VwSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWdyb3VwXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBHcm91cEFjY2Vzc0ljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gR3JvdXBBY2Nlc3NJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tZ3JvdXAtYWNjZXNzXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBIb3NwaXRhbEJlZEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gSG9zcGl0YWxCZWRJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24taG9zcGl0YWwtYmVkXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBJbWFnZU1lZGljYWxJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIEltYWdlTWVkaWNhbEljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1pbWFnZS1tZWRpY2FsXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBJbmZvcm1hdGlvbkljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gSW5mb3JtYXRpb25JY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24taW5mb3JtYXRpb25cIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IEluZm9ybWF0aW9uRmlsbGVkSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBJbmZvcm1hdGlvbkZpbGxlZEljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1pbmZvcm1hdGlvbi1maWxsZWRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IEluZm9ybWF0aW9uU3F1YXJlSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBJbmZvcm1hdGlvblNxdWFyZUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1pbmZvcm1hdGlvbi1zcXVhcmVcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IEludmVudG9yeU1hbmFnZW1lbnRJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIEludmVudG9yeU1hbmFnZW1lbnRJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24taW52ZW50b3J5LW1hbmFnZW1lbnRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IExhYk9yZGVySWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBMYWJPcmRlckljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1sYWItb3JkZXJcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IExpc3RDaGVja2VkSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBMaXN0Q2hlY2tlZEljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1saXN0LWNoZWNrZWRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IExvY2F0aW9uSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBMb2NhdGlvbkljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1sb2NhdGlvblwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgTWF0ZXJpYWxPcmRlckljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gTWF0ZXJpYWxPcmRlckljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1tYXRlcmlhbC1vcmRlclwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgTWF4aW1pemVJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIE1heGltaXplSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLW1heGltaXplXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBNZWRpY2F0aW9uSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBNZWRpY2F0aW9uSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLW1lZGljYXRpb25cIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IE1lc3NhZ2VRdWV1ZUljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gTWVzc2FnZVF1ZXVlSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLW1lc3NhZ2UtcXVldWVcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IE1pY3Jvc2NvcGVJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIE1pY3Jvc2NvcGVJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tbWljcm9zY29wZVwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICogQmlsbGluZ1xuICovXG5leHBvcnQgY29uc3QgTW9uZXlJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIE1vbmV5SWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLW1vbmV5XCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBNb3RoZXJJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIE1vdGhlckljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1tb3RoZXJcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IE1vdmVtZW50SWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBNb3ZlbWVudEljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1tb3ZlbWVudFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgT3ZlcmZsb3dNZW51SG9yaXpvbnRhbEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gT3ZlcmZsb3dNZW51SG9yaXpvbnRhbEljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1vdmVyZmxvdy1tZW51LS1ob3Jpem9udGFsXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBPdmVyZmxvd01lbnVWZXJ0aWNhbEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gT3ZlcmZsb3dNZW51VmVydGljYWxJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tb3ZlcmZsb3ctbWVudS0taG9yaXpvbnRhbFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbmV4cG9ydCBjb25zdCBQYXNzd29yZEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gUGFzc3dvcmRJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tcGFzc3dvcmRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFBlZGVzdHJpYW5GYW1pbHlJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFBlZGVzdHJpYW5GYW1pbHlJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tcGVkZXN0cmlhbi1mYW1pbHlcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFBlbkljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gUGVuSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXBlblwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgUHJpbnRlckljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gUHJpbnRlckljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1wcmludGVyXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBQcm9jZWR1cmVPcmRlckljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gUHJvY2VkdXJlT3JkZXJJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tcHJvY2VkdXJlLW9yZGVyXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBQcm9ncmFtc0ljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gUHJvZ3JhbXNJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tcHJvZ3JhbXNcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFJlZmVycmFsT3JkZXJJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFJlZmVycmFsT3JkZXJJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tcmVmZXJyYWwtb3JkZXJcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFJlbmV3SWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBSZW5ld0ljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1yZW5ld1wiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgUmVwb3J0SWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBSZXBvcnRJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tcmVwb3J0XCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBSZXNldEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gUmVzZXRJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tcmVzZXRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFNhdmVJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFNhdmVJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tc2F2ZVwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgU2VhcmNoSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBTZWFyY2hJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tc2VhcmNoXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBTZXR0aW5nc0ljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gU2F2ZUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1zZXR0aW5nc1wiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgU3dpdGNoZXJJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFN3aXRjaGVySWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXN3aXRjaGVyXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKiBPcmRlciBCYXNrZXQsIHRoZSBVSSB0byBlbnRlciBPcmRlcnMgZm9yIE1lZGljYXRpb25zLCBSZWZlcnJhbHMsIExhYnMsIFByb2NlZHVyZXMgYW5kIG1vcmVcbiAqL1xuZXhwb3J0IGNvbnN0IFNob3BwaW5nQ2FydEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gU2hvcHBpbmdDYXJ0SWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXNob3BwaW5nLWNhcnRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqIFVzZWQgYXMgYSBidXR0b24gdG8gYWRkIGFuIGl0ZW0gdG8gdGhlIE9yZGVyIGJhc2tldCBmcm9tIGEgc2VhcmNoXG4gKi9cbmV4cG9ydCBjb25zdCBTaG9wcGluZ0NhcnRBcnJvd0Rvd25JY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFNob3BwaW5nQ2FydEFycm93RG93bkljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1zaG9wcGluZy1jYXJ0LS1hcnJvdy1kb3duXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKiBVc2VkIGFzIGFjdGlvbiBidXR0b24gdG8gb3BlbiB3YXJkIGluLXBhdGllbnQgbm90ZSB3b3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGNvbnN0IFN0aWNreU5vdGVBZGRJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFN0aWNreU5vdGVBZGRJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tc3RpY2t5LW5vdGUtYWRkXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBTeXJpbmdlSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBTeXJpbmdlSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXN5cmluZ2VcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqIFVzZWQgYXMgYSBidXR0b24gdG8gYWRkIGFuIGl0ZW0gdG8gdGhlIE9yZGVyIGJhc2tldCBmcm9tIGEgc2VhcmNoXG4gKi9cbmV4cG9ydCBjb25zdCBUYWJsZU9mQ29udGVudHNJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFRhYmxlT2ZDb250ZW50c0ljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi10YWJsZS1vZi1jb250ZW50c1wiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgVGFibGVJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFRhYmxlSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXRhYmxlXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKiBMYWIgaW52ZXN0aWdhdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IFRpbWVJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFRpbWVJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tdGltZVwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgVG9vbHNJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFRvb2xzSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXRvb2xzXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBUcmFuc2xhdGVJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFRyYW5zbGF0ZUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi10cmFuc2xhdGVcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFRyYXNoQ2FuSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBUcmFzaENhbkljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi10cmFzaC1jYW5cIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFRyZWVWaWV3QWx0SWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBUcmVlVmlld0FsdEljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi10cmVlLXZpZXctLWFsdFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICogVXNlciBvZiBPcGVuTVJTIGUuZy4gTXkgQWNjb3VudFxuICovXG5leHBvcnQgY29uc3QgVXNlckF2YXRhckljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gVXNlckF2YXRhckljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi11c2VyLWF2YXRhclwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgVXNlckZvbGxvd0ljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gVXNlckZvbGxvd0ljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi11c2VyLWZvbGxvd1wiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICogVXNlclhyYXkgSWNvblxuICpcbiAqIGBVc2VyWHJheUljb25gIGlzIGFsc28gdXNlZCBmb3IgaW1hZ2luZyBvcmRlcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFVzZXJYcmF5SWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBVc2VyWHJheUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi11c2VyLXhyYXlcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFVzZXJJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFVzZXJJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tdXNlclwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgVmlld09mZkljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gVmlld09mZkljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi12aWV3LW9mZlwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgVmlld0ljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gVmlld0ljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi12aWV3XCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBXYXJuaW5nSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBXYXJuaW5nSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXdhcm5pbmdcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vLyBJY29uIGFsaWFzZXMgdGhhdCBhcmUgYSBsaXR0bGUgbW9yZSBhbGlnbmVkIHRvIHNwZWNpZmljIHVzZS1jYXNlc1xuLy8gc2hvdWxkIGFsbCByZXNvbHZlIHRvIGEgZGVmaW5lZCBSZWFjdCBpY29uXG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQWxsZXJnaWVzSWNvbiA9IFdhcm5pbmdJY29uO1xuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBjb25zdCBBdHRhY2htZW50SWNvbiA9IERvY3VtZW50QXR0YWNobWVudEljb247XG5cbi8qKlxuICogQ29uZGl0aW9uc1xuICpcbiAqIE5vdGUgdGhpcyBpcyBhbiBhbGlhcyBmb3IgTGlzdENoZWNrZWRJY29uXG4gKi9cbmV4cG9ydCBjb25zdCBDb25kaXRpb25zSWNvbiA9IExpc3RDaGVja2VkSWNvbjtcblxuLyoqXG4gKlxuICovXG5leHBvcnQgY29uc3QgUmFkaW9sb2d5SWNvbiA9IEltYWdlTWVkaWNhbEljb247XG5cbi8qKlxuICogVXNlZCBhcyBhIGJ1dHRvbiB0byBhZGQgYW4gaXRlbSB0byB0aGUgT3JkZXIgYmFza2V0IGZyb20gYSBzZWFyY2hcbiAqXG4gKiBOb3RlIHRoaXMgaXMgYW4gYWxpYXMgZm9yIFNob3BwaW5nQ2FydEFycm93RG93bkljb25cbiAqL1xuZXhwb3J0IGNvbnN0IFNob3BwaW5nQ2FydEFkZEl0ZW1JY29uID0gU2hvcHBpbmdDYXJ0QXJyb3dEb3duSWNvbjtcblxuLyoqXG4gKiBUaGlzIGlzIGEgdXRpbGl0eSBjb21wb25lbnQgdGhhdCB0YWtlcyBhbiBgaWNvbmAgYW5kIHJlbmRlcnMgaXQgaWYgdGhlIHNwcml0ZSBmb3IgdGhlIGljb25cbiAqIGlzIGF2YWlsYWJsZS4gVGhlIGdvYWwgaXMgdG8gbWFrZSBpdCBlYXNpZXIgdG8gY29uZGl0aW9uYWxseSByZW5kZXIgY29uZmlndXJhdGlvbi1zcGVjaWZpZWQgaWNvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogICA8TWF5YmVJY29uIGljb249J29tcnMtaWNvbi1iYWJ5JyBjbGFzc05hbWU9e3N0eWxlcy5teUljb25TdHlsZXN9IC8+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IE1heWJlSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgeyBpY29uOiBJY29uSWQ7IGZhbGxiYWNrPzogUmVhY3QuUmVhY3ROb2RlIH0gJiBJY29uUHJvcHM+KGZ1bmN0aW9uIE1heWJlSWNvbihcbiAgICB7IGljb24sIGZhbGxiYWNrLCAuLi5pY29uUHJvcHMgfSxcbiAgICByZWYsXG4gICkge1xuICAgIGNvbnN0IGljb25SZWYgPSB1c2VSZWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWNvbikpO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvbXJzLXN2Z3MtY29udGFpbmVyJyk7XG4gICAgICBjb25zdCBjYWxsYmFjazogTXV0YXRpb25DYWxsYmFjayA9IChtdXRhdGlvbkxpc3QpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbkxpc3QpIHtcbiAgICAgICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gJ2NoaWxkTGlzdCcpIHtcbiAgICAgICAgICAgIGljb25SZWYuY3VycmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGljb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihjYWxsYmFjayk7XG4gICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgIG9ic2VydmVyLm9ic2VydmUoY29udGFpbmVyLCB7IGNoaWxkTGlzdDogdHJ1ZSB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9LCBbaWNvbl0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxSZW5kZXJJZlZhbHVlSXNUcnV0aHkgdmFsdWU9e2ljb25SZWYuY3VycmVudH0gZmFsbGJhY2s9e2ZhbGxiYWNrfT5cbiAgICAgICAgPEljb24gcmVmPXtyZWZ9IGljb249e2ljb259IGljb25Qcm9wcz17aWNvblByb3BzfSAvPlxuICAgICAgPC9SZW5kZXJJZlZhbHVlSXNUcnV0aHk+XG4gICAgKTtcbiAgfSksXG4pO1xuXG5leHBvcnQgdHlwZSBTdmdJY29uUHJvcHMgPSB7XG4gIGljb246IEljb25JZDtcbiAgaWNvblByb3BzOiBJY29uUHJvcHM7XG59O1xuXG4vKipcbiAqIFRoaXMgaXMgYSB1dGlsaXR5IHR5cGUgZm9yIGN1c3RvbSBpY29ucyB0aGF0IHVzZSB0aGUgc3ZnLXNwcml0ZS1sb2FkZXIgdG8gYnVuZGxlIGN1c3RvbSBpY29uc1xuICovXG5leHBvcnQgY29uc3QgSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgU3ZnSWNvblByb3BzPihmdW5jdGlvbiBJY29uKHsgaWNvbiwgaWNvblByb3BzIH0sIHJlZikge1xuICAgIGxldCB7IGNsYXNzTmFtZSwgZmlsbCwgc2l6ZSB9ID0gT2JqZWN0LmFzc2lnbih7fSwgeyBmaWxsOiAnY3VycmVudENvbG9yJywgc2l6ZTogMjAgfSwgaWNvblByb3BzKTtcbiAgICBpZiAoc2l6ZSA8PSAwIHx8IHNpemUgPiA3Mikge1xuICAgICAgY29uc29sZS5lcnJvcihgSW52YWxpZCBzaXplICcke3NpemV9JyBzcGVjaWZpZWQgZm9yICR7aWNvbn0uIERlZmF1bHRpbmcgdG8gMjAuYCk7XG4gICAgICBzaXplID0gMjA7XG4gICAgfVxuICAgIGNvbnN0IGljb25SZWYgPSB1c2VSZWY8U1ZHU1ZHRWxlbWVudD4obnVsbCk7XG5cbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gaWNvblJlZi5jdXJyZW50ISk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGljb25SZWYuY3VycmVudCkge1xuICAgICAgICBpZiAoZmlsbCAhPT0gJ2N1cnJlbnRDb2xvcicpIHtcbiAgICAgICAgICBpY29uUmVmLmN1cnJlbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tb21ycy1pY29uLWZpbGwnLCBmaWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8c3ZnXG4gICAgICAgIHJlZj17aWNvblJlZn1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKCdvbXJzLWljb24nLCBzdHlsZS5pY29uLCBjbGFzc05hbWUpfVxuICAgICAgICBoZWlnaHQ9e3NpemV9XG4gICAgICAgIHdpZHRoPXtzaXplfVxuICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgID5cbiAgICAgICAgPHVzZSBocmVmPXtgIyR7aWNvbn1gfSAvPlxuICAgICAgPC9zdmc+XG4gICAgKTtcbiAgfSksXG4pO1xuIl0sIm5hbWVzIjpbIlJlYWN0IiwiZm9yd2FyZFJlZiIsIm1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlUmVmIiwiY2xhc3NOYW1lcyIsIlJlbmRlcklmVmFsdWVJc1RydXRoeSIsInN0eWxlIiwiaWNvbklkcyIsIkFjdGl2aXR5SWNvbiIsInByb3BzIiwicmVmIiwiSWNvbiIsImljb24iLCJpY29uUHJvcHMiLCJBZGRJY29uIiwiQXJyb3dEb3duSWNvbiIsIkFycm93TGVmdEljb24iLCJBcnJvd1JpZ2h0SWNvbiIsIkFycm93VXBJY29uIiwiQmFieUljb24iLCJDYWxlbmRhckhlYXRNYXBJY29uIiwiQ2FsZW5kYXJIZWF0TWFwIiwiQ2FsZW5kYXJJY29uIiwiQ2FsZW5kYXIiLCJDYXJldERvd25JY29uIiwiQ2FyZXRMZWZ0SWNvbiIsIkNhcmV0UmlnaHRJY29uIiwiQ2FyZXRVcEljb24iLCJDaGFydEF2ZXJhZ2VJY29uIiwiQ2hlY2ttYXJrRmlsbGVkSWNvbiIsIkNoZWNrbWFya091dGxpbmVJY29uIiwiQ2hlbWlzdHJ5SWNvbiIsIkNoZXZyb25Eb3duSWNvbiIsIkNoZXZyb25MZWZ0SWNvbiIsIkNoZXZyb25SaWdodEljb24iLCJDaGV2cm9uVXBJY29uIiwiQ2xvc2VJY29uIiwiQ2xvc2VGaWxsZWRJY29uIiwiQ2xvc2VPdXRsaW5lSWNvbiIsIkRvY3VtZW50SWNvbiIsIkRvY3VtZW50QXR0YWNobWVudEljb24iLCJEb3dubG9hZEljb24iLCJEcnVnT3JkZXJJY29uIiwiRWRpdEljb24iLCJFdmVudFNjaGVkdWxlSWNvbiIsIkV2ZW50c0ljb24iLCJHZW5kZXJGZW1hbGVJY29uIiwiR2VuZGVyTWFsZUljb24iLCJHZW5kZXJPdGhlckljb24iLCJHZW5kZXJVbmtub3duSWNvbiIsIkdlbmVyaWNPcmRlclR5cGVJY29uIiwiR3JvdXBJY29uIiwiR3JvdXBBY2Nlc3NJY29uIiwiSG9zcGl0YWxCZWRJY29uIiwiSW1hZ2VNZWRpY2FsSWNvbiIsIkluZm9ybWF0aW9uSWNvbiIsIkluZm9ybWF0aW9uRmlsbGVkSWNvbiIsIkluZm9ybWF0aW9uU3F1YXJlSWNvbiIsIkludmVudG9yeU1hbmFnZW1lbnRJY29uIiwiTGFiT3JkZXJJY29uIiwiTGlzdENoZWNrZWRJY29uIiwiTG9jYXRpb25JY29uIiwiTWF0ZXJpYWxPcmRlckljb24iLCJNYXhpbWl6ZUljb24iLCJNZWRpY2F0aW9uSWNvbiIsIk1lc3NhZ2VRdWV1ZUljb24iLCJNaWNyb3Njb3BlSWNvbiIsIk1vbmV5SWNvbiIsIk1vdGhlckljb24iLCJNb3ZlbWVudEljb24iLCJPdmVyZmxvd01lbnVIb3Jpem9udGFsSWNvbiIsIk92ZXJmbG93TWVudVZlcnRpY2FsSWNvbiIsIlBhc3N3b3JkSWNvbiIsIlBlZGVzdHJpYW5GYW1pbHlJY29uIiwiUGVuSWNvbiIsIlByaW50ZXJJY29uIiwiUHJvY2VkdXJlT3JkZXJJY29uIiwiUHJvZ3JhbXNJY29uIiwiUmVmZXJyYWxPcmRlckljb24iLCJSZW5ld0ljb24iLCJSZXBvcnRJY29uIiwiUmVzZXRJY29uIiwiU2F2ZUljb24iLCJTZWFyY2hJY29uIiwiU2V0dGluZ3NJY29uIiwiU3dpdGNoZXJJY29uIiwiU2hvcHBpbmdDYXJ0SWNvbiIsIlNob3BwaW5nQ2FydEFycm93RG93bkljb24iLCJTdGlja3lOb3RlQWRkSWNvbiIsIlN5cmluZ2VJY29uIiwiVGFibGVPZkNvbnRlbnRzSWNvbiIsIlRhYmxlSWNvbiIsIlRpbWVJY29uIiwiVG9vbHNJY29uIiwiVHJhbnNsYXRlSWNvbiIsIlRyYXNoQ2FuSWNvbiIsIlRyZWVWaWV3QWx0SWNvbiIsIlVzZXJBdmF0YXJJY29uIiwiVXNlckZvbGxvd0ljb24iLCJVc2VyWHJheUljb24iLCJVc2VySWNvbiIsIlZpZXdPZmZJY29uIiwiVmlld0ljb24iLCJXYXJuaW5nSWNvbiIsIkFsbGVyZ2llc0ljb24iLCJBdHRhY2htZW50SWNvbiIsIkNvbmRpdGlvbnNJY29uIiwiUmFkaW9sb2d5SWNvbiIsIlNob3BwaW5nQ2FydEFkZEl0ZW1JY29uIiwiTWF5YmVJY29uIiwiZmFsbGJhY2siLCJpY29uUmVmIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImNvbnRhaW5lciIsImNhbGxiYWNrIiwibXV0YXRpb25MaXN0IiwibXV0YXRpb24iLCJ0eXBlIiwiY3VycmVudCIsIm9ic2VydmVyIiwiTXV0YXRpb25PYnNlcnZlciIsIm9ic2VydmUiLCJjaGlsZExpc3QiLCJkaXNjb25uZWN0IiwidmFsdWUiLCJPYmplY3QiLCJhc3NpZ24iLCJmaWxsIiwic2l6ZSIsImNsYXNzTmFtZSIsImNvbnNvbGUiLCJlcnJvciIsInNldFByb3BlcnR5Iiwic3ZnIiwiaGVpZ2h0Iiwid2lkdGgiLCJ2aWV3Qm94IiwidXNlIiwiaHJlZiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-styleguide/src/icons/icons.tsx\n");
|
|
1628
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ActivityIcon: () => (/* binding */ ActivityIcon),\n/* harmony export */ AddIcon: () => (/* binding */ AddIcon),\n/* harmony export */ AllergiesIcon: () => (/* binding */ AllergiesIcon),\n/* harmony export */ ArrowDownIcon: () => (/* binding */ ArrowDownIcon),\n/* harmony export */ ArrowLeftIcon: () => (/* binding */ ArrowLeftIcon),\n/* harmony export */ ArrowRightIcon: () => (/* binding */ ArrowRightIcon),\n/* harmony export */ ArrowUpIcon: () => (/* binding */ ArrowUpIcon),\n/* harmony export */ AttachmentIcon: () => (/* binding */ AttachmentIcon),\n/* harmony export */ BabyIcon: () => (/* binding */ BabyIcon),\n/* harmony export */ CalendarHeatMapIcon: () => (/* binding */ CalendarHeatMapIcon),\n/* harmony export */ CalendarIcon: () => (/* binding */ CalendarIcon),\n/* harmony export */ CaretDownIcon: () => (/* binding */ CaretDownIcon),\n/* harmony export */ CaretLeftIcon: () => (/* binding */ CaretLeftIcon),\n/* harmony export */ CaretRightIcon: () => (/* binding */ CaretRightIcon),\n/* harmony export */ CaretUpIcon: () => (/* binding */ CaretUpIcon),\n/* harmony export */ ChartAverageIcon: () => (/* binding */ ChartAverageIcon),\n/* harmony export */ CheckmarkFilledIcon: () => (/* binding */ CheckmarkFilledIcon),\n/* harmony export */ CheckmarkOutlineIcon: () => (/* binding */ CheckmarkOutlineIcon),\n/* harmony export */ ChemistryIcon: () => (/* binding */ ChemistryIcon),\n/* harmony export */ ChevronDownIcon: () => (/* binding */ ChevronDownIcon),\n/* harmony export */ ChevronLeftIcon: () => (/* binding */ ChevronLeftIcon),\n/* harmony export */ ChevronRightIcon: () => (/* binding */ ChevronRightIcon),\n/* harmony export */ ChevronUpIcon: () => (/* binding */ ChevronUpIcon),\n/* harmony export */ CloseFilledIcon: () => (/* binding */ CloseFilledIcon),\n/* harmony export */ CloseIcon: () => (/* binding */ CloseIcon),\n/* harmony export */ CloseOutlineIcon: () => (/* binding */ CloseOutlineIcon),\n/* harmony export */ ConditionsIcon: () => (/* binding */ ConditionsIcon),\n/* harmony export */ DocumentAttachmentIcon: () => (/* binding */ DocumentAttachmentIcon),\n/* harmony export */ DocumentIcon: () => (/* binding */ DocumentIcon),\n/* harmony export */ DownloadIcon: () => (/* binding */ DownloadIcon),\n/* harmony export */ DrugOrderIcon: () => (/* binding */ DrugOrderIcon),\n/* harmony export */ EditIcon: () => (/* binding */ EditIcon),\n/* harmony export */ EventScheduleIcon: () => (/* binding */ EventScheduleIcon),\n/* harmony export */ EventsIcon: () => (/* binding */ EventsIcon),\n/* harmony export */ GenderFemaleIcon: () => (/* binding */ GenderFemaleIcon),\n/* harmony export */ GenderMaleIcon: () => (/* binding */ GenderMaleIcon),\n/* harmony export */ GenderOtherIcon: () => (/* binding */ GenderOtherIcon),\n/* harmony export */ GenderUnknownIcon: () => (/* binding */ GenderUnknownIcon),\n/* harmony export */ GenericOrderTypeIcon: () => (/* binding */ GenericOrderTypeIcon),\n/* harmony export */ GroupAccessIcon: () => (/* binding */ GroupAccessIcon),\n/* harmony export */ GroupIcon: () => (/* binding */ GroupIcon),\n/* harmony export */ HospitalBedIcon: () => (/* binding */ HospitalBedIcon),\n/* harmony export */ Icon: () => (/* binding */ Icon),\n/* harmony export */ ImageMedicalIcon: () => (/* binding */ ImageMedicalIcon),\n/* harmony export */ InformationFilledIcon: () => (/* binding */ InformationFilledIcon),\n/* harmony export */ InformationIcon: () => (/* binding */ InformationIcon),\n/* harmony export */ InformationSquareIcon: () => (/* binding */ InformationSquareIcon),\n/* harmony export */ InventoryManagementIcon: () => (/* binding */ InventoryManagementIcon),\n/* harmony export */ LabOrderIcon: () => (/* binding */ LabOrderIcon),\n/* harmony export */ ListCheckedIcon: () => (/* binding */ ListCheckedIcon),\n/* harmony export */ LocationIcon: () => (/* binding */ LocationIcon),\n/* harmony export */ MaterialOrderIcon: () => (/* binding */ MaterialOrderIcon),\n/* harmony export */ MaximizeIcon: () => (/* binding */ MaximizeIcon),\n/* harmony export */ MaybeIcon: () => (/* binding */ MaybeIcon),\n/* harmony export */ MedicationIcon: () => (/* binding */ MedicationIcon),\n/* harmony export */ MessageQueueIcon: () => (/* binding */ MessageQueueIcon),\n/* harmony export */ MicroscopeIcon: () => (/* binding */ MicroscopeIcon),\n/* harmony export */ MoneyIcon: () => (/* binding */ MoneyIcon),\n/* harmony export */ MotherIcon: () => (/* binding */ MotherIcon),\n/* harmony export */ MovementIcon: () => (/* binding */ MovementIcon),\n/* harmony export */ OverflowMenuHorizontalIcon: () => (/* binding */ OverflowMenuHorizontalIcon),\n/* harmony export */ OverflowMenuVerticalIcon: () => (/* binding */ OverflowMenuVerticalIcon),\n/* harmony export */ PasswordIcon: () => (/* binding */ PasswordIcon),\n/* harmony export */ PedestrianFamilyIcon: () => (/* binding */ PedestrianFamilyIcon),\n/* harmony export */ PenIcon: () => (/* binding */ PenIcon),\n/* harmony export */ PrinterIcon: () => (/* binding */ PrinterIcon),\n/* harmony export */ ProcedureOrderIcon: () => (/* binding */ ProcedureOrderIcon),\n/* harmony export */ ProgramsIcon: () => (/* binding */ ProgramsIcon),\n/* harmony export */ RadiologyIcon: () => (/* binding */ RadiologyIcon),\n/* harmony export */ ReferralOrderIcon: () => (/* binding */ ReferralOrderIcon),\n/* harmony export */ RenewIcon: () => (/* binding */ RenewIcon),\n/* harmony export */ ReportIcon: () => (/* binding */ ReportIcon),\n/* harmony export */ ResetIcon: () => (/* binding */ ResetIcon),\n/* harmony export */ SaveIcon: () => (/* binding */ SaveIcon),\n/* harmony export */ SearchIcon: () => (/* binding */ SearchIcon),\n/* harmony export */ SettingsIcon: () => (/* binding */ SettingsIcon),\n/* harmony export */ ShoppingCartAddItemIcon: () => (/* binding */ ShoppingCartAddItemIcon),\n/* harmony export */ ShoppingCartArrowDownIcon: () => (/* binding */ ShoppingCartArrowDownIcon),\n/* harmony export */ ShoppingCartIcon: () => (/* binding */ ShoppingCartIcon),\n/* harmony export */ StickyNoteAddIcon: () => (/* binding */ StickyNoteAddIcon),\n/* harmony export */ SwitcherIcon: () => (/* binding */ SwitcherIcon),\n/* harmony export */ SyringeIcon: () => (/* binding */ SyringeIcon),\n/* harmony export */ TableIcon: () => (/* binding */ TableIcon),\n/* harmony export */ TableOfContentsIcon: () => (/* binding */ TableOfContentsIcon),\n/* harmony export */ TimeIcon: () => (/* binding */ TimeIcon),\n/* harmony export */ ToolsIcon: () => (/* binding */ ToolsIcon),\n/* harmony export */ TranslateIcon: () => (/* binding */ TranslateIcon),\n/* harmony export */ TrashCanIcon: () => (/* binding */ TrashCanIcon),\n/* harmony export */ TreeViewAltIcon: () => (/* binding */ TreeViewAltIcon),\n/* harmony export */ UserAvatarIcon: () => (/* binding */ UserAvatarIcon),\n/* harmony export */ UserFollowIcon: () => (/* binding */ UserFollowIcon),\n/* harmony export */ UserIcon: () => (/* binding */ UserIcon),\n/* harmony export */ UserXrayIcon: () => (/* binding */ UserXrayIcon),\n/* harmony export */ ViewIcon: () => (/* binding */ ViewIcon),\n/* harmony export */ ViewOffIcon: () => (/* binding */ ViewOffIcon),\n/* harmony export */ WarningIcon: () => (/* binding */ WarningIcon),\n/* harmony export */ iconIds: () => (/* binding */ iconIds)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ \"../../../node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @openmrs/esm-react-utils */ \"../../framework/esm-react-utils/dist/index.js\");\n/* harmony import */ var _icons_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./icons.module.scss */ \"../../framework/esm-styleguide/src/icons/icons.module.scss\");\n/** @category Icons */ function _object_without_properties(source, excluded) {\n if (source == null) return {};\n var target = _object_without_properties_loose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\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 return target;\n}\nfunction _object_without_properties_loose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}\n\n\n\n\nvar iconIds = [\n 'omrs-icon-activity',\n 'omrs-icon-add',\n 'omrs-icon-arrow-down',\n 'omrs-icon-arrow-left',\n 'omrs-icon-arrow-right',\n 'omrs-icon-arrow-up',\n 'omrs-icon-baby',\n 'omrs-icon-calendar-heat-map',\n 'omrs-icon-calendar',\n 'omrs-icon-caret-down',\n 'omrs-icon-caret-left',\n 'omrs-icon-caret-right',\n 'omrs-icon-caret-up',\n 'omrs-icon-chart-average',\n 'omrs-icon-checkmark-filled',\n 'omrs-icon-checkmark-outline',\n 'omrs-icon-chemistry',\n 'omrs-icon-chevron-down',\n 'omrs-icon-chevron-left',\n 'omrs-icon-chevron-right',\n 'omrs-icon-chevron-up',\n 'omrs-icon-close',\n 'omrs-icon-close-filled',\n 'omrs-icon-close-outline',\n 'omrs-icon-document',\n 'omrs-icon-document-attachment',\n 'omrs-icon-download',\n 'omrs-icon-drug-order',\n 'omrs-icon-edit',\n 'omrs-icon-event-schedule',\n 'omrs-icon-events',\n 'omrs-icon-gender-female',\n 'omrs-icon-gender-male',\n 'omrs-icon-gender-other',\n 'omrs-icon-gender-unknown',\n 'omrs-icon-generic-order-type',\n 'omrs-icon-group',\n 'omrs-icon-group-access',\n 'omrs-icon-hospital-bed',\n 'omrs-icon-image-medical',\n 'omrs-icon-information',\n 'omrs-icon-information-filled',\n 'omrs-icon-information-square',\n 'omrs-icon-inventory-management',\n 'omrs-icon-lab-order',\n 'omrs-icon-list-checked',\n 'omrs-icon-location',\n 'omrs-icon-material-order',\n 'omrs-icon-maximize',\n 'omrs-icon-medication',\n 'omrs-icon-message-queue',\n 'omrs-icon-microscope',\n 'omrs-icon-money',\n 'omrs-icon-mother',\n 'omrs-icon-movement',\n 'omrs-icon-overflow-menu--horizontal',\n 'omrs-icon-overflow-menu--vertical',\n 'omrs-icon-password',\n 'omrs-icon-pedestrian-family',\n 'omrs-icon-pen',\n 'omrs-icon-printer',\n 'omrs-icon-procedure-order',\n 'omrs-icon-programs',\n 'omrs-icon-renew',\n 'omrs-icon-referral-order',\n 'omrs-icon-report',\n 'omrs-icon-reset',\n 'omrs-icon-save',\n 'omrs-icon-search',\n 'omrs-icon-settings',\n 'omrs-icon-shopping-cart',\n 'omrs-icon-shopping-cart--arrow-down',\n 'omrs-icon-sticky-note-add',\n 'omrs-icon-switcher',\n 'omrs-icon-syringe',\n 'omrs-icon-table-of-contents',\n 'omrs-icon-table',\n 'omrs-icon-time',\n 'omrs-icon-tools',\n 'omrs-icon-translate',\n 'omrs-icon-trash-can',\n 'omrs-icon-tree-view--alt',\n 'omrs-icon-user-avatar',\n 'omrs-icon-user-follow',\n 'omrs-icon-user-xray',\n 'omrs-icon-user',\n 'omrs-icon-view-off',\n 'omrs-icon-view',\n 'omrs-icon-warning'\n];\n/**\n */ var ActivityIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ActivityIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-activity\",\n iconProps: props\n });\n}));\n/**\n */ var AddIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function AddIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-add\",\n iconProps: props\n });\n}));\n/**\n */ var ArrowDownIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ArrowDownIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-arrow-down\",\n iconProps: props\n });\n}));\n/**\n */ var ArrowLeftIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ArrowLeftIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-arrow-left\",\n iconProps: props\n });\n}));\n/**\n */ var ArrowRightIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ArrowRightIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-arrow-right\",\n iconProps: props\n });\n}));\n/**\n */ var ArrowUpIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ArrowUpIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-arrow-up\",\n iconProps: props\n });\n}));\n/**\n */ var BabyIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function BabyIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-baby\",\n iconProps: props\n });\n}));\n/**\n */ var CalendarHeatMapIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CalendarHeatMap(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-calendar-heat-map\",\n iconProps: props\n });\n}));\n/**\n */ var CalendarIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Calendar(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-calendar\",\n iconProps: props\n });\n}));\n/**\n */ var CaretDownIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CaretDownIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-caret-down\",\n iconProps: props\n });\n}));\n/**\n */ var CaretLeftIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CaretLeftIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-caret-left\",\n iconProps: props\n });\n}));\n/**\n */ var CaretRightIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CaretRightIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-caret-right\",\n iconProps: props\n });\n}));\n/**\n */ var CaretUpIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CaretUpIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-caret-up\",\n iconProps: props\n });\n}));\n/**\n */ var ChartAverageIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ChartAverageIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-chart-average\",\n iconProps: props\n });\n}));\n/**\n */ var CheckmarkFilledIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CheckmarkFilledIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-checkmark-filled\",\n iconProps: props\n });\n}));\n/**\n */ var CheckmarkOutlineIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CheckmarkOutlineIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-checkmark-outline\",\n iconProps: props\n });\n}));\n/**\n */ var ChemistryIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ChemistryIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-chemistry\",\n iconProps: props\n });\n}));\n/**\n */ var ChevronDownIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ChevronDownIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-chevron-down\",\n iconProps: props\n });\n}));\n/**\n */ var ChevronLeftIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ChevronLeftIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-chevron-left\",\n iconProps: props\n });\n}));\n/**\n */ var ChevronRightIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ChevronRightIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-chevron-right\",\n iconProps: props\n });\n}));\n/**\n */ var ChevronUpIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ChevronUpIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-chevron-up\",\n iconProps: props\n });\n}));\n/**\n */ var CloseIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CloseIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-close\",\n iconProps: props\n });\n}));\n/**\n */ var CloseFilledIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CloseFilledIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-close-filled\",\n iconProps: props\n });\n}));\n/**\n */ var CloseOutlineIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CloseOutlineIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-close-outline\",\n iconProps: props\n });\n}));\n/**\n */ var DocumentIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function DocumentIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-document\",\n iconProps: props\n });\n}));\n/**\n */ var DocumentAttachmentIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function DocumentAttachmentIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-document-attachment\",\n iconProps: props\n });\n}));\n/**\n */ var DownloadIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function DownloadIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-download\",\n iconProps: props\n });\n}));\n/**\n */ var DrugOrderIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function DrugOrderIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-drug-order\",\n iconProps: props\n });\n}));\n/**\n */ var EditIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function EditIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-edit\",\n iconProps: props\n });\n}));\n/**\n */ var EventScheduleIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function EventScheduleIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-event-schedule\",\n iconProps: props\n });\n}));\n/**\n */ var EventsIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function EventsIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-events\",\n iconProps: props\n });\n}));\n/**\n */ var GenderFemaleIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GenderFemaleIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-gender-female\",\n iconProps: props\n });\n}));\n/**\n */ var GenderMaleIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GenderMaleIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-gender-male\",\n iconProps: props\n });\n}));\n/**\n */ var GenderOtherIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GenderOtherIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-gender-other\",\n iconProps: props\n });\n}));\n/**\n */ var GenderUnknownIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GenderUnknownIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-gender-unknown\",\n iconProps: props\n });\n}));\n/**\n */ var GenericOrderTypeIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GenericOrderTypeIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-generic-order-type\",\n iconProps: props\n });\n}));\n/**\n */ var GroupIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GroupIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-group\",\n iconProps: props\n });\n}));\n/**\n */ var GroupAccessIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GroupAccessIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-group-access\",\n iconProps: props\n });\n}));\n/**\n */ var HospitalBedIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function HospitalBedIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-hospital-bed\",\n iconProps: props\n });\n}));\n/**\n */ var ImageMedicalIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ImageMedicalIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-image-medical\",\n iconProps: props\n });\n}));\n/**\n */ var InformationIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function InformationIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-information\",\n iconProps: props\n });\n}));\n/**\n */ var InformationFilledIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function InformationFilledIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-information-filled\",\n iconProps: props\n });\n}));\n/**\n */ var InformationSquareIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function InformationSquareIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-information-square\",\n iconProps: props\n });\n}));\n/**\n */ var InventoryManagementIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function InventoryManagementIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-inventory-management\",\n iconProps: props\n });\n}));\n/**\n */ var LabOrderIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function LabOrderIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-lab-order\",\n iconProps: props\n });\n}));\n/**\n */ var ListCheckedIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ListCheckedIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-list-checked\",\n iconProps: props\n });\n}));\n/**\n */ var LocationIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function LocationIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-location\",\n iconProps: props\n });\n}));\n/**\n */ var MaterialOrderIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MaterialOrderIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-material-order\",\n iconProps: props\n });\n}));\n/**\n */ var MaximizeIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MaximizeIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-maximize\",\n iconProps: props\n });\n}));\n/**\n */ var MedicationIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MedicationIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-medication\",\n iconProps: props\n });\n}));\n/**\n */ var MessageQueueIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MessageQueueIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-message-queue\",\n iconProps: props\n });\n}));\n/**\n */ var MicroscopeIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MicroscopeIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-microscope\",\n iconProps: props\n });\n}));\n/**\n * Billing\n */ var MoneyIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MoneyIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-money\",\n iconProps: props\n });\n}));\n/**\n */ var MotherIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MotherIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-mother\",\n iconProps: props\n });\n}));\n/**\n */ var MovementIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MovementIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-movement\",\n iconProps: props\n });\n}));\n/**\n */ var OverflowMenuHorizontalIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function OverflowMenuHorizontalIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-overflow-menu--horizontal\",\n iconProps: props\n });\n}));\n/**\n */ var OverflowMenuVerticalIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function OverflowMenuVerticalIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-overflow-menu--horizontal\",\n iconProps: props\n });\n}));\nvar PasswordIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function PasswordIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-password\",\n iconProps: props\n });\n}));\n/**\n */ var PedestrianFamilyIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function PedestrianFamilyIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-pedestrian-family\",\n iconProps: props\n });\n}));\n/**\n */ var PenIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function PenIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-pen\",\n iconProps: props\n });\n}));\n/**\n */ var PrinterIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function PrinterIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-printer\",\n iconProps: props\n });\n}));\n/**\n */ var ProcedureOrderIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ProcedureOrderIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-procedure-order\",\n iconProps: props\n });\n}));\n/**\n */ var ProgramsIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ProgramsIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-programs\",\n iconProps: props\n });\n}));\n/**\n */ var ReferralOrderIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ReferralOrderIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-referral-order\",\n iconProps: props\n });\n}));\n/**\n */ var RenewIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function RenewIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-renew\",\n iconProps: props\n });\n}));\n/**\n */ var ReportIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ReportIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-report\",\n iconProps: props\n });\n}));\n/**\n */ var ResetIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ResetIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-reset\",\n iconProps: props\n });\n}));\n/**\n */ var SaveIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function SaveIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-save\",\n iconProps: props\n });\n}));\n/**\n */ var SearchIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function SearchIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-search\",\n iconProps: props\n });\n}));\n/**\n */ var SettingsIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function SaveIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-settings\",\n iconProps: props\n });\n}));\n/**\n */ var SwitcherIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function SwitcherIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-switcher\",\n iconProps: props\n });\n}));\n/**\n * Order Basket, the UI to enter Orders for Medications, Referrals, Labs, Procedures and more\n */ var ShoppingCartIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ShoppingCartIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-shopping-cart\",\n iconProps: props\n });\n}));\n/**\n * Used as a button to add an item to the Order basket from a search\n */ var ShoppingCartArrowDownIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ShoppingCartArrowDownIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-shopping-cart--arrow-down\",\n iconProps: props\n });\n}));\n/**\n * Used as action button to open ward in-patient note workspace\n */ var StickyNoteAddIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function StickyNoteAddIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-sticky-note-add\",\n iconProps: props\n });\n}));\n/**\n */ var SyringeIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function SyringeIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-syringe\",\n iconProps: props\n });\n}));\n/**\n * Used as a button to add an item to the Order basket from a search\n */ var TableOfContentsIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function TableOfContentsIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-table-of-contents\",\n iconProps: props\n });\n}));\n/**\n */ var TableIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function TableIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-table\",\n iconProps: props\n });\n}));\n/**\n * Lab investigations\n */ var TimeIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function TimeIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-time\",\n iconProps: props\n });\n}));\n/**\n */ var ToolsIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ToolsIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-tools\",\n iconProps: props\n });\n}));\n/**\n */ var TranslateIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function TranslateIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-translate\",\n iconProps: props\n });\n}));\n/**\n */ var TrashCanIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function TrashCanIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-trash-can\",\n iconProps: props\n });\n}));\n/**\n */ var TreeViewAltIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function TreeViewAltIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-tree-view--alt\",\n iconProps: props\n });\n}));\n/**\n * User of OpenMRS e.g. My Account\n */ var UserAvatarIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function UserAvatarIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-user-avatar\",\n iconProps: props\n });\n}));\n/**\n */ var UserFollowIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function UserFollowIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-user-follow\",\n iconProps: props\n });\n}));\n/**\n * UserXray Icon\n *\n * `UserXrayIcon` is also used for imaging orders\n */ var UserXrayIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function UserXrayIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-user-xray\",\n iconProps: props\n });\n}));\n/**\n */ var UserIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function UserIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-user\",\n iconProps: props\n });\n}));\n/**\n */ var ViewOffIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ViewOffIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-view-off\",\n iconProps: props\n });\n}));\n/**\n */ var ViewIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ViewIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-view\",\n iconProps: props\n });\n}));\n/**\n */ var WarningIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function WarningIcon(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: \"omrs-icon-warning\",\n iconProps: props\n });\n}));\n// Icon aliases that are a little more aligned to specific use-cases\n// should all resolve to a defined React icon\n/**\n */ var AllergiesIcon = WarningIcon;\n/**\n *\n */ var AttachmentIcon = DocumentAttachmentIcon;\n/**\n * Conditions\n *\n * Note this is an alias for ListCheckedIcon\n */ var ConditionsIcon = ListCheckedIcon;\n/**\n *\n */ var RadiologyIcon = ImageMedicalIcon;\n/**\n * Used as a button to add an item to the Order basket from a search\n *\n * Note this is an alias for ShoppingCartArrowDownIcon\n */ var ShoppingCartAddItemIcon = ShoppingCartArrowDownIcon;\n/**\n * This is a utility component that takes an `icon` and renders it if the sprite for the icon\n * is available. The goal is to make it easier to conditionally render configuration-specified icons.\n *\n * @example\n * ```tsx\n * <MaybeIcon icon='omrs-icon-baby' className={styles.myIconStyles} />\n * ```\n */ var MaybeIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MaybeIcon(_param, ref) {\n var icon = _param.icon, fallback = _param.fallback, iconProps = _object_without_properties(_param, [\n \"icon\",\n \"fallback\"\n ]);\n var iconRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(document.getElementById(icon));\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n var container = document.getElementById('omrs-svgs-container');\n var callback = function(mutationList) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = mutationList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var mutation = _step.value;\n if (mutation.type === 'childList') {\n iconRef.current = document.getElementById(icon);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n var observer = new MutationObserver(callback);\n if (container) {\n observer.observe(container, {\n childList: true\n });\n }\n return function() {\n return observer.disconnect();\n };\n }, [\n icon\n ]);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.RenderIfValueIsTruthy, {\n value: iconRef.current,\n fallback: fallback\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Icon, {\n ref: ref,\n icon: icon,\n iconProps: iconProps\n }));\n}));\n/**\n * This is a utility type for custom icons that use the svg-sprite-loader to bundle custom icons\n */ var Icon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Icon(param, ref) {\n var icon = param.icon, iconProps = param.iconProps;\n var _Object_assign = Object.assign({}, {\n fill: 'currentColor',\n size: 20\n }, iconProps), className = _Object_assign.className, fill = _Object_assign.fill, size = _Object_assign.size;\n if (size <= 0 || size > 72) {\n console.error(\"Invalid size '\".concat(size, \"' specified for \").concat(icon, \". Defaulting to 20.\"));\n size = 20;\n }\n var iconRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle)(ref, function() {\n return iconRef.current;\n });\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n if (iconRef.current) {\n if (fill !== 'currentColor') {\n iconRef.current.style.setProperty('--omrs-icon-fill', fill);\n }\n }\n }, []);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n ref: iconRef,\n className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('omrs-icon', _icons_module_scss__WEBPACK_IMPORTED_MODULE_3__[\"default\"].icon, className),\n height: size,\n width: size,\n viewBox: \"0 0 16 16\"\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"use\", {\n href: \"#\".concat(icon)\n }));\n}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL3NyYy9pY29ucy9pY29ucy50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ29FO0FBQ2pDO0FBQ1U7QUFDekI7QUFFakMsSUFBTVMsVUFBVTtJQUNyQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0QsQ0FBVTtBQVVYO0NBQ0MsR0FDTSxJQUFNQyw2QkFBZVIsMkNBQUlBLGVBQzlCRCxpREFBVUEsQ0FBMkIsU0FBU1MsYUFBYUMsS0FBSyxFQUFFQyxHQUFHO0lBQ25FLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQXFCQyxXQUFXSjs7QUFDOUQsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNSyx3QkFBVWQsMkNBQUlBLGVBQ3pCRCxpREFBVUEsQ0FBMkIsU0FBU2UsUUFBUUwsS0FBSyxFQUFFQyxHQUFHO0lBQzlELHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQWdCQyxXQUFXSjs7QUFDekQsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNTSw4QkFBZ0JmLDJDQUFJQSxlQUMvQkQsaURBQVVBLENBQTJCLFNBQVNnQixjQUFjTixLQUFLLEVBQUVDLEdBQUc7SUFDcEUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBdUJDLFdBQVdKOztBQUNoRSxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1PLDhCQUFnQmhCLDJDQUFJQSxlQUMvQkQsaURBQVVBLENBQTJCLFNBQVNpQixjQUFjUCxLQUFLLEVBQUVDLEdBQUc7SUFDcEUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBdUJDLFdBQVdKOztBQUNoRSxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1RLCtCQUFpQmpCLDJDQUFJQSxlQUNoQ0QsaURBQVVBLENBQTJCLFNBQVNrQixlQUFlUixLQUFLLEVBQUVDLEdBQUc7SUFDckUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBd0JDLFdBQVdKOztBQUNqRSxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1TLDRCQUFjbEIsMkNBQUlBLGVBQzdCRCxpREFBVUEsQ0FBMkIsU0FBU21CLFlBQVlULEtBQWdCLEVBQUVDLEdBQUc7SUFDN0UscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBcUJDLFdBQVdKOztBQUM5RCxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1VLHlCQUFXbkIsMkNBQUlBLGVBQzFCRCxpREFBVUEsQ0FBMkIsU0FBU29CLFNBQVNWLEtBQWdCLEVBQUVDLEdBQUc7SUFDMUUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBaUJDLFdBQVdKOztBQUMxRCxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1XLG9DQUFzQnBCLDJDQUFJQSxlQUNyQ0QsaURBQVVBLENBQTJCLFNBQVNzQixnQkFBZ0JaLEtBQWdCLEVBQUVDLEdBQUc7SUFDakYscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBOEJDLFdBQVdKOztBQUN2RSxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1hLDZCQUFldEIsMkNBQUlBLGVBQzlCRCxpREFBVUEsQ0FBMkIsU0FBU3dCLFNBQVNkLEtBQWdCLEVBQUVDLEdBQUc7SUFDMUUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBcUJDLFdBQVdKOztBQUM5RCxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1lLDhCQUFnQnhCLDJDQUFJQSxlQUMvQkQsaURBQVVBLENBQTJCLFNBQVN5QixjQUFjZixLQUFnQixFQUFFQyxHQUFHO0lBQy9FLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQXVCQyxXQUFXSjs7QUFDaEUsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNZ0IsOEJBQWdCekIsMkNBQUlBLGVBQy9CRCxpREFBVUEsQ0FBMkIsU0FBUzBCLGNBQWNoQixLQUFnQixFQUFFQyxHQUFHO0lBQy9FLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQXVCQyxXQUFXSjs7QUFDaEUsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNaUIsK0JBQWlCMUIsMkNBQUlBLGVBQ2hDRCxpREFBVUEsQ0FBMkIsU0FBUzJCLGVBQWVqQixLQUFnQixFQUFFQyxHQUFHO0lBQ2hGLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQXdCQyxXQUFXSjs7QUFDakUsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNa0IsNEJBQWMzQiwyQ0FBSUEsZUFDN0JELGlEQUFVQSxDQUEyQixTQUFTNEIsWUFBWWxCLEtBQWdCLEVBQUVDLEdBQUc7SUFDN0UscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBcUJDLFdBQVdKOztBQUM5RCxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1tQixpQ0FBbUI1QiwyQ0FBSUEsZUFDbENELGlEQUFVQSxDQUEyQixTQUFTNkIsaUJBQWlCbkIsS0FBSyxFQUFFQyxHQUFHO0lBQ3ZFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQTBCQyxXQUFXSjs7QUFDbkUsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNb0Isb0NBQXNCN0IsMkNBQUlBLGVBQ3JDRCxpREFBVUEsQ0FBMkIsU0FBUzhCLG9CQUFvQnBCLEtBQUssRUFBRUMsR0FBRztJQUMxRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUE2QkMsV0FBV0o7O0FBQ3RFLElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTXFCLHFDQUF1QjlCLDJDQUFJQSxlQUN0Q0QsaURBQVVBLENBQTJCLFNBQVMrQixxQkFBcUJyQixLQUFLLEVBQUVDLEdBQUc7SUFDM0UscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBOEJDLFdBQVdKOztBQUN2RSxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1zQiw4QkFBZ0IvQiwyQ0FBSUEsZUFDL0JELGlEQUFVQSxDQUEyQixTQUFTZ0MsY0FBY3RCLEtBQUssRUFBRUMsR0FBRztJQUNwRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUFzQkMsV0FBV0o7O0FBQy9ELElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTXVCLGdDQUFrQmhDLDJDQUFJQSxlQUNqQ0QsaURBQVVBLENBQTJCLFNBQVNpQyxnQkFBZ0J2QixLQUFLLEVBQUVDLEdBQUc7SUFDdEUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBeUJDLFdBQVdKOztBQUNsRSxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU13QixnQ0FBa0JqQywyQ0FBSUEsZUFDakNELGlEQUFVQSxDQUEyQixTQUFTa0MsZ0JBQWdCeEIsS0FBSyxFQUFFQyxHQUFHO0lBQ3RFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQXlCQyxXQUFXSjs7QUFDbEUsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNeUIsaUNBQW1CbEMsMkNBQUlBLGVBQ2xDRCxpREFBVUEsQ0FBMkIsU0FBU21DLGlCQUFpQnpCLEtBQUssRUFBRUMsR0FBRztJQUN2RSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUEwQkMsV0FBV0o7O0FBQ25FLElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTTBCLDhCQUFnQm5DLDJDQUFJQSxlQUMvQkQsaURBQVVBLENBQTJCLFNBQVNvQyxjQUFjMUIsS0FBSyxFQUFFQyxHQUFHO0lBQ3BFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQXVCQyxXQUFXSjs7QUFDaEUsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNMkIsMEJBQVlwQywyQ0FBSUEsZUFDM0JELGlEQUFVQSxDQUEyQixTQUFTcUMsVUFBVTNCLEtBQUssRUFBRUMsR0FBRztJQUNoRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUFrQkMsV0FBV0o7O0FBQzNELElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTTRCLGdDQUFrQnJDLDJDQUFJQSxlQUNqQ0QsaURBQVVBLENBQTJCLFNBQVNzQyxnQkFBZ0I1QixLQUFLLEVBQUVDLEdBQUc7SUFDdEUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBeUJDLFdBQVdKOztBQUNsRSxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU02QixpQ0FBbUJ0QywyQ0FBSUEsZUFDbENELGlEQUFVQSxDQUEyQixTQUFTdUMsaUJBQWlCN0IsS0FBSyxFQUFFQyxHQUFHO0lBQ3ZFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQTBCQyxXQUFXSjs7QUFDbkUsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNOEIsNkJBQWV2QywyQ0FBSUEsZUFDOUJELGlEQUFVQSxDQUEyQixTQUFTd0MsYUFBYTlCLEtBQWdCLEVBQUVDLEdBQUc7SUFDOUUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBcUJDLFdBQVdKOztBQUM5RCxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU0rQix1Q0FBeUJ4QywyQ0FBSUEsZUFDeENELGlEQUFVQSxDQUEyQixTQUFTeUMsdUJBQXVCL0IsS0FBZ0IsRUFBRUMsR0FBRztJQUN4RixxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUFnQ0MsV0FBV0o7O0FBQ3pFLElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTWdDLDZCQUFlekMsMkNBQUlBLGVBQzlCRCxpREFBVUEsQ0FBMkIsU0FBUzBDLGFBQWFoQyxLQUFLLEVBQUVDLEdBQUc7SUFDbkUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBcUJDLFdBQVdKOztBQUM5RCxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1pQyw4QkFBZ0IxQywyQ0FBSUEsZUFDL0JELGlEQUFVQSxDQUEyQixTQUFTMkMsY0FBY2pDLEtBQUssRUFBRUMsR0FBRztJQUNwRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUF1QkMsV0FBV0o7O0FBQ2hFLElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTWtDLHlCQUFXM0MsMkNBQUlBLGVBQzFCRCxpREFBVUEsQ0FBMkIsU0FBUzRDLFNBQVNsQyxLQUFLLEVBQUVDLEdBQUc7SUFDL0QscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBaUJDLFdBQVdKOztBQUMxRCxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1tQyxrQ0FBb0I1QywyQ0FBSUEsZUFDbkNELGlEQUFVQSxDQUEyQixTQUFTNkMsa0JBQWtCbkMsS0FBSyxFQUFFQyxHQUFHO0lBQ3hFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQTJCQyxXQUFXSjs7QUFDcEUsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNb0MsMkJBQWE3QywyQ0FBSUEsZUFDNUJELGlEQUFVQSxDQUEyQixTQUFTOEMsV0FBV3BDLEtBQUssRUFBRUMsR0FBRztJQUNqRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUFtQkMsV0FBV0o7O0FBQzVELElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTXFDLGlDQUFtQjlDLDJDQUFJQSxlQUNsQ0QsaURBQVVBLENBQTJCLFNBQVMrQyxpQkFBaUJyQyxLQUFLLEVBQUVDLEdBQUc7SUFDdkUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBMEJDLFdBQVdKOztBQUNuRSxJQUNBO0FBQ0Y7Q0FDQyxHQUNNLElBQU1zQywrQkFBaUIvQywyQ0FBSUEsZUFDaENELGlEQUFVQSxDQUEyQixTQUFTZ0QsZUFBZXRDLEtBQUssRUFBRUMsR0FBRztJQUNyRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUF3QkMsV0FBV0o7O0FBQ2pFLElBQ0E7QUFDRjtDQUNDLEdBQ00sSUFBTXVDLGdDQUFrQmhELDJDQUFJQSxlQUNqQ0QsaURBQVVBLENBQTJCLFNBQVNpRCxnQkFBZ0J2QyxLQUFLLEVBQUVDLEdBQUc7SUFDdEUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBeUJDLFdBQVdKOztBQUNsRSxJQUNBO0FBQ0Y7Q0FDQyxHQUNNLElBQU13QyxrQ0FBb0JqRCwyQ0FBSUEsZUFDbkNELGlEQUFVQSxDQUEyQixTQUFTa0Qsa0JBQWtCeEMsS0FBSyxFQUFFQyxHQUFHO0lBQ3hFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQTJCQyxXQUFXSjs7QUFDcEUsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNeUMscUNBQXVCbEQsMkNBQUlBLGVBQ3RDRCxpREFBVUEsQ0FBMkIsU0FBU21ELHFCQUFxQnpDLEtBQUssRUFBRUMsR0FBRztJQUMzRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUErQkMsV0FBV0o7O0FBQ3hFLElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTTBDLDBCQUFZbkQsMkNBQUlBLGVBQzNCRCxpREFBVUEsQ0FBMkIsU0FBU29ELFVBQVUxQyxLQUFLLEVBQUVDLEdBQUc7SUFDaEUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBa0JDLFdBQVdKOztBQUMzRCxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU0yQyxnQ0FBa0JwRCwyQ0FBSUEsZUFDakNELGlEQUFVQSxDQUEyQixTQUFTcUQsZ0JBQWdCM0MsS0FBSyxFQUFFQyxHQUFHO0lBQ3RFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQXlCQyxXQUFXSjs7QUFDbEUsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNNEMsZ0NBQWtCckQsMkNBQUlBLGVBQ2pDRCxpREFBVUEsQ0FBMkIsU0FBU3NELGdCQUFnQjVDLEtBQUssRUFBRUMsR0FBRztJQUN0RSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUF5QkMsV0FBV0o7O0FBQ2xFLElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTTZDLGlDQUFtQnRELDJDQUFJQSxlQUNsQ0QsaURBQVVBLENBQTJCLFNBQVN1RCxpQkFBaUI3QyxLQUFLLEVBQUVDLEdBQUc7SUFDdkUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBMEJDLFdBQVdKOztBQUNuRSxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU04QyxnQ0FBa0J2RCwyQ0FBSUEsZUFDakNELGlEQUFVQSxDQUEyQixTQUFTd0QsZ0JBQWdCOUMsS0FBSyxFQUFFQyxHQUFHO0lBQ3RFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQXdCQyxXQUFXSjs7QUFDakUsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNK0Msc0NBQXdCeEQsMkNBQUlBLGVBQ3ZDRCxpREFBVUEsQ0FBMkIsU0FBU3lELHNCQUFzQi9DLEtBQUssRUFBRUMsR0FBRztJQUM1RSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUErQkMsV0FBV0o7O0FBQ3hFLElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTWdELHNDQUF3QnpELDJDQUFJQSxlQUN2Q0QsaURBQVVBLENBQTJCLFNBQVMwRCxzQkFBc0JoRCxLQUFLLEVBQUVDLEdBQUc7SUFDNUUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBK0JDLFdBQVdKOztBQUN4RSxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1pRCx3Q0FBMEIxRCwyQ0FBSUEsZUFDekNELGlEQUFVQSxDQUEyQixTQUFTMkQsd0JBQXdCakQsS0FBSyxFQUFFQyxHQUFHO0lBQzlFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQWlDQyxXQUFXSjs7QUFDMUUsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNa0QsNkJBQWUzRCwyQ0FBSUEsZUFDOUJELGlEQUFVQSxDQUEyQixTQUFTNEQsYUFBYWxELEtBQUssRUFBRUMsR0FBRztJQUNuRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUFzQkMsV0FBV0o7O0FBQy9ELElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTW1ELGdDQUFrQjVELDJDQUFJQSxlQUNqQ0QsaURBQVVBLENBQTJCLFNBQVM2RCxnQkFBZ0JuRCxLQUFLLEVBQUVDLEdBQUc7SUFDdEUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBeUJDLFdBQVdKOztBQUNsRSxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1vRCw2QkFBZTdELDJDQUFJQSxlQUM5QkQsaURBQVVBLENBQTJCLFNBQVM4RCxhQUFhcEQsS0FBSyxFQUFFQyxHQUFHO0lBQ25FLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQXFCQyxXQUFXSjs7QUFDOUQsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNcUQsa0NBQW9COUQsMkNBQUlBLGVBQ25DRCxpREFBVUEsQ0FBMkIsU0FBUytELGtCQUFrQnJELEtBQUssRUFBRUMsR0FBRztJQUN4RSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUEyQkMsV0FBV0o7O0FBQ3BFLElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTXNELDZCQUFlL0QsMkNBQUlBLGVBQzlCRCxpREFBVUEsQ0FBMkIsU0FBU2dFLGFBQWF0RCxLQUFLLEVBQUVDLEdBQUc7SUFDbkUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBcUJDLFdBQVdKOztBQUM5RCxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU11RCwrQkFBaUJoRSwyQ0FBSUEsZUFDaENELGlEQUFVQSxDQUEyQixTQUFTaUUsZUFBZXZELEtBQUssRUFBRUMsR0FBRztJQUNyRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUF1QkMsV0FBV0o7O0FBQ2hFLElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTXdELGlDQUFtQmpFLDJDQUFJQSxlQUNsQ0QsaURBQVVBLENBQTJCLFNBQVNrRSxpQkFBaUJ4RCxLQUFLLEVBQUVDLEdBQUc7SUFDdkUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBMEJDLFdBQVdKOztBQUNuRSxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU15RCwrQkFBaUJsRSwyQ0FBSUEsZUFDaENELGlEQUFVQSxDQUEyQixTQUFTbUUsZUFBZXpELEtBQUssRUFBRUMsR0FBRztJQUNyRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUF1QkMsV0FBV0o7O0FBQ2hFLElBQ0E7QUFFRjs7Q0FFQyxHQUNNLElBQU0wRCwwQkFBWW5FLDJDQUFJQSxlQUMzQkQsaURBQVVBLENBQTJCLFNBQVNvRSxVQUFVMUQsS0FBSyxFQUFFQyxHQUFHO0lBQ2hFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQWtCQyxXQUFXSjs7QUFDM0QsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNMkQsMkJBQWFwRSwyQ0FBSUEsZUFDNUJELGlEQUFVQSxDQUEyQixTQUFTcUUsV0FBVzNELEtBQUssRUFBRUMsR0FBRztJQUNqRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUFtQkMsV0FBV0o7O0FBQzVELElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTTRELDZCQUFlckUsMkNBQUlBLGVBQzlCRCxpREFBVUEsQ0FBMkIsU0FBU3NFLGFBQWE1RCxLQUFLLEVBQUVDLEdBQUc7SUFDbkUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBcUJDLFdBQVdKOztBQUM5RCxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU02RCwyQ0FBNkJ0RSwyQ0FBSUEsZUFDNUNELGlEQUFVQSxDQUEyQixTQUFTdUUsMkJBQTJCN0QsS0FBSyxFQUFFQyxHQUFHO0lBQ2pGLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQXNDQyxXQUFXSjs7QUFDL0UsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNOEQseUNBQTJCdkUsMkNBQUlBLGVBQzFDRCxpREFBVUEsQ0FBMkIsU0FBU3dFLHlCQUF5QjlELEtBQUssRUFBRUMsR0FBRztJQUMvRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUFzQ0MsV0FBV0o7O0FBQy9FLElBQ0E7QUFFSyxJQUFNK0QsNkJBQWV4RSwyQ0FBSUEsZUFDOUJELGlEQUFVQSxDQUEyQixTQUFTeUUsYUFBYS9ELEtBQUssRUFBRUMsR0FBRztJQUNuRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUFxQkMsV0FBV0o7O0FBQzlELElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTWdFLHFDQUF1QnpFLDJDQUFJQSxlQUN0Q0QsaURBQVVBLENBQTJCLFNBQVMwRSxxQkFBcUJoRSxLQUFLLEVBQUVDLEdBQUc7SUFDM0UscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBOEJDLFdBQVdKOztBQUN2RSxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1pRSx3QkFBVTFFLDJDQUFJQSxlQUN6QkQsaURBQVVBLENBQTJCLFNBQVMyRSxRQUFRakUsS0FBSyxFQUFFQyxHQUFHO0lBQzlELHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQWdCQyxXQUFXSjs7QUFDekQsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNa0UsNEJBQWMzRSwyQ0FBSUEsZUFDN0JELGlEQUFVQSxDQUEyQixTQUFTNEUsWUFBWWxFLEtBQUssRUFBRUMsR0FBRztJQUNsRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUFvQkMsV0FBV0o7O0FBQzdELElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTW1FLG1DQUFxQjVFLDJDQUFJQSxlQUNwQ0QsaURBQVVBLENBQTJCLFNBQVM2RSxtQkFBbUJuRSxLQUFLLEVBQUVDLEdBQUc7SUFDekUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBNEJDLFdBQVdKOztBQUNyRSxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1vRSw2QkFBZTdFLDJDQUFJQSxlQUM5QkQsaURBQVVBLENBQTJCLFNBQVM4RSxhQUFhcEUsS0FBSyxFQUFFQyxHQUFHO0lBQ25FLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQXFCQyxXQUFXSjs7QUFDOUQsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNcUUsa0NBQW9COUUsMkNBQUlBLGVBQ25DRCxpREFBVUEsQ0FBMkIsU0FBUytFLGtCQUFrQnJFLEtBQUssRUFBRUMsR0FBRztJQUN4RSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUEyQkMsV0FBV0o7O0FBQ3BFLElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTXNFLDBCQUFZL0UsMkNBQUlBLGVBQzNCRCxpREFBVUEsQ0FBMkIsU0FBU2dGLFVBQVV0RSxLQUFLLEVBQUVDLEdBQUc7SUFDaEUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBa0JDLFdBQVdKOztBQUMzRCxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU11RSwyQkFBYWhGLDJDQUFJQSxlQUM1QkQsaURBQVVBLENBQTJCLFNBQVNpRixXQUFXdkUsS0FBSyxFQUFFQyxHQUFHO0lBQ2pFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQW1CQyxXQUFXSjs7QUFDNUQsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNd0UsMEJBQVlqRiwyQ0FBSUEsZUFDM0JELGlEQUFVQSxDQUEyQixTQUFTa0YsVUFBVXhFLEtBQUssRUFBRUMsR0FBRztJQUNoRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUFrQkMsV0FBV0o7O0FBQzNELElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTXlFLHlCQUFXbEYsMkNBQUlBLGVBQzFCRCxpREFBVUEsQ0FBMkIsU0FBU21GLFNBQVN6RSxLQUFLLEVBQUVDLEdBQUc7SUFDL0QscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBaUJDLFdBQVdKOztBQUMxRCxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU0wRSwyQkFBYW5GLDJDQUFJQSxlQUM1QkQsaURBQVVBLENBQTJCLFNBQVNvRixXQUFXMUUsS0FBSyxFQUFFQyxHQUFHO0lBQ2pFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQW1CQyxXQUFXSjs7QUFDNUQsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNMkUsNkJBQWVwRiwyQ0FBSUEsZUFDOUJELGlEQUFVQSxDQUEyQixTQUFTbUYsU0FBU3pFLEtBQUssRUFBRUMsR0FBRztJQUMvRCxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUFxQkMsV0FBV0o7O0FBQzlELElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTTRFLDZCQUFlckYsMkNBQUlBLGVBQzlCRCxpREFBVUEsQ0FBMkIsU0FBU3NGLGFBQWE1RSxLQUFLLEVBQUVDLEdBQUc7SUFDbkUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBcUJDLFdBQVdKOztBQUM5RCxJQUNBO0FBRUY7O0NBRUMsR0FDTSxJQUFNNkUsaUNBQW1CdEYsMkNBQUlBLGVBQ2xDRCxpREFBVUEsQ0FBMkIsU0FBU3VGLGlCQUFpQjdFLEtBQUssRUFBRUMsR0FBRztJQUN2RSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUEwQkMsV0FBV0o7O0FBQ25FLElBQ0E7QUFFRjs7Q0FFQyxHQUNNLElBQU04RSwwQ0FBNEJ2RiwyQ0FBSUEsZUFDM0NELGlEQUFVQSxDQUEyQixTQUFTd0YsMEJBQTBCOUUsS0FBSyxFQUFFQyxHQUFHO0lBQ2hGLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQXNDQyxXQUFXSjs7QUFDL0UsSUFDQTtBQUVGOztDQUVDLEdBQ00sSUFBTStFLGtDQUFvQnhGLDJDQUFJQSxlQUNuQ0QsaURBQVVBLENBQTJCLFNBQVN5RixrQkFBa0IvRSxLQUFLLEVBQUVDLEdBQUc7SUFDeEUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBNEJDLFdBQVdKOztBQUNyRSxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1nRiw0QkFBY3pGLDJDQUFJQSxlQUM3QkQsaURBQVVBLENBQTJCLFNBQVMwRixZQUFZaEYsS0FBSyxFQUFFQyxHQUFHO0lBQ2xFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQW9CQyxXQUFXSjs7QUFDN0QsSUFDQTtBQUVGOztDQUVDLEdBQ00sSUFBTWlGLG9DQUFzQjFGLDJDQUFJQSxlQUNyQ0QsaURBQVVBLENBQTJCLFNBQVMyRixvQkFBb0JqRixLQUFLLEVBQUVDLEdBQUc7SUFDMUUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBOEJDLFdBQVdKOztBQUN2RSxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1rRiwwQkFBWTNGLDJDQUFJQSxlQUMzQkQsaURBQVVBLENBQTJCLFNBQVM0RixVQUFVbEYsS0FBSyxFQUFFQyxHQUFHO0lBQ2hFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQWtCQyxXQUFXSjs7QUFDM0QsSUFDQTtBQUVGOztDQUVDLEdBQ00sSUFBTW1GLHlCQUFXNUYsMkNBQUlBLGVBQzFCRCxpREFBVUEsQ0FBMkIsU0FBUzZGLFNBQVNuRixLQUFLLEVBQUVDLEdBQUc7SUFDL0QscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBaUJDLFdBQVdKOztBQUMxRCxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1vRiwwQkFBWTdGLDJDQUFJQSxlQUMzQkQsaURBQVVBLENBQTJCLFNBQVM4RixVQUFVcEYsS0FBSyxFQUFFQyxHQUFHO0lBQ2hFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQWtCQyxXQUFXSjs7QUFDM0QsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNcUYsOEJBQWdCOUYsMkNBQUlBLGVBQy9CRCxpREFBVUEsQ0FBMkIsU0FBUytGLGNBQWNyRixLQUFLLEVBQUVDLEdBQUc7SUFDcEUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBc0JDLFdBQVdKOztBQUMvRCxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU1zRiw2QkFBZS9GLDJDQUFJQSxlQUM5QkQsaURBQVVBLENBQTJCLFNBQVNnRyxhQUFhdEYsS0FBSyxFQUFFQyxHQUFHO0lBQ25FLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQXNCQyxXQUFXSjs7QUFDL0QsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNdUYsZ0NBQWtCaEcsMkNBQUlBLGVBQ2pDRCxpREFBVUEsQ0FBMkIsU0FBU2lHLGdCQUFnQnZGLEtBQUssRUFBRUMsR0FBRztJQUN0RSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUEyQkMsV0FBV0o7O0FBQ3BFLElBQ0E7QUFFRjs7Q0FFQyxHQUNNLElBQU13RiwrQkFBaUJqRywyQ0FBSUEsZUFDaENELGlEQUFVQSxDQUEyQixTQUFTa0csZUFBZXhGLEtBQUssRUFBRUMsR0FBRztJQUNyRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUF3QkMsV0FBV0o7O0FBQ2pFLElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTXlGLCtCQUFpQmxHLDJDQUFJQSxlQUNoQ0QsaURBQVVBLENBQTJCLFNBQVNtRyxlQUFlekYsS0FBSyxFQUFFQyxHQUFHO0lBQ3JFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQXdCQyxXQUFXSjs7QUFDakUsSUFDQTtBQUVGOzs7O0NBSUMsR0FDTSxJQUFNMEYsNkJBQWVuRywyQ0FBSUEsZUFDOUJELGlEQUFVQSxDQUEyQixTQUFTb0csYUFBYTFGLEtBQUssRUFBRUMsR0FBRztJQUNuRSxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUFzQkMsV0FBV0o7O0FBQy9ELElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTTJGLHlCQUFXcEcsMkNBQUlBLGVBQzFCRCxpREFBVUEsQ0FBMkIsU0FBU3FHLFNBQVMzRixLQUFLLEVBQUVDLEdBQUc7SUFDL0QscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBaUJDLFdBQVdKOztBQUMxRCxJQUNBO0FBRUY7Q0FDQyxHQUNNLElBQU00Riw0QkFBY3JHLDJDQUFJQSxlQUM3QkQsaURBQVVBLENBQTJCLFNBQVNzRyxZQUFZNUYsS0FBSyxFQUFFQyxHQUFHO0lBQ2xFLHFCQUFPLDJEQUFDQztRQUFLRCxLQUFLQTtRQUFLRSxNQUFLO1FBQXFCQyxXQUFXSjs7QUFDOUQsSUFDQTtBQUVGO0NBQ0MsR0FDTSxJQUFNNkYseUJBQVd0RywyQ0FBSUEsZUFDMUJELGlEQUFVQSxDQUEyQixTQUFTdUcsU0FBUzdGLEtBQUssRUFBRUMsR0FBRztJQUMvRCxxQkFBTywyREFBQ0M7UUFBS0QsS0FBS0E7UUFBS0UsTUFBSztRQUFpQkMsV0FBV0o7O0FBQzFELElBQ0E7QUFFRjtDQUNDLEdBQ00sSUFBTThGLDRCQUFjdkcsMkNBQUlBLGVBQzdCRCxpREFBVUEsQ0FBMkIsU0FBU3dHLFlBQVk5RixLQUFLLEVBQUVDLEdBQUc7SUFDbEUscUJBQU8sMkRBQUNDO1FBQUtELEtBQUtBO1FBQUtFLE1BQUs7UUFBb0JDLFdBQVdKOztBQUM3RCxJQUNBO0FBRUYsb0VBQW9FO0FBQ3BFLDZDQUE2QztBQUU3QztDQUNDLEdBQ00sSUFBTStGLGdCQUFnQkQsWUFBWTtBQUV6Qzs7Q0FFQyxHQUNNLElBQU1FLGlCQUFpQmpFLHVCQUF1QjtBQUVyRDs7OztDQUlDLEdBQ00sSUFBTWtFLGlCQUFpQjlDLGdCQUFnQjtBQUU5Qzs7Q0FFQyxHQUNNLElBQU0rQyxnQkFBZ0JyRCxpQkFBaUI7QUFFOUM7Ozs7Q0FJQyxHQUNNLElBQU1zRCwwQkFBMEJyQiwwQkFBMEI7QUFFakU7Ozs7Ozs7O0NBUUMsR0FDTSxJQUFNc0IsMEJBQVk3RywyQ0FBSUEsZUFDM0JELGlEQUFVQSxDQUEwRSxTQUFTOEcsVUFDM0YsUUFDQW5HLEdBQUc7UUFEREUsT0FBRixPQUFFQSxNQUFNa0csV0FBUixPQUFRQSxVQUFhakcsdUNBQXJCO1FBQUVEO1FBQU1rRzs7SUFHUixJQUFNQyxVQUFVNUcsNkNBQU1BLENBQUM2RyxTQUFTQyxjQUFjLENBQUNyRztJQUUvQ1gsZ0RBQVNBLENBQUM7UUFDUixJQUFNaUgsWUFBWUYsU0FBU0MsY0FBYyxDQUFDO1FBQzFDLElBQU1FLFdBQTZCLFNBQUNDO2dCQUM3Qjs7Z0JBQUwsUUFBSyxZQUFrQkEsaUNBQWxCLHdHQUFnQztvQkFBaEMsSUFBTUMsV0FBTjtvQkFDSCxJQUFJQSxTQUFTQyxJQUFJLEtBQUssYUFBYTt3QkFDakNQLFFBQVFRLE9BQU8sR0FBR1AsU0FBU0MsY0FBYyxDQUFDckc7b0JBQzVDO2dCQUNGOztnQkFKSztnQkFBQTs7O3lCQUFBO3dCQUFBOzs7d0JBQUE7OEJBQUE7Ozs7UUFLUDtRQUVBLElBQU00RyxXQUFXLElBQUlDLGlCQUFpQk47UUFDdEMsSUFBSUQsV0FBVztZQUNiTSxTQUFTRSxPQUFPLENBQUNSLFdBQVc7Z0JBQUVTLFdBQVc7WUFBSztRQUNoRDtRQUVBLE9BQU87bUJBQU1ILFNBQVNJLFVBQVU7O0lBQ2xDLEdBQUc7UUFBQ2hIO0tBQUs7SUFFVCxxQkFDRSwyREFBQ1AsMkVBQXFCQTtRQUFDd0gsT0FBT2QsUUFBUVEsT0FBTztRQUFFVCxVQUFVQTtxQkFDdkQsMkRBQUNuRztRQUFLRCxLQUFLQTtRQUFLRSxNQUFNQTtRQUFnQkMsV0FBV0E7O0FBR3ZELElBQ0E7QUFPRjs7Q0FFQyxHQUNNLElBQU1GLHFCQUFPWCwyQ0FBSUEsZUFDdEJELGlEQUFVQSxDQUE4QixTQUFTWSxLQUFLLEtBQW1CLEVBQUVELEdBQUc7UUFBdEJFLE9BQUYsTUFBRUEsTUFBTUMsWUFBUixNQUFRQTtJQUM1RCxJQUFnQ2lILGlCQUFBQSxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHO1FBQUVDLE1BQU07UUFBZ0JDLE1BQU07SUFBRyxHQUFHcEgsWUFBaEZxSCxZQUEwQkosZUFBMUJJLFdBQVdGLE9BQWVGLGVBQWZFLE1BQU1DLE9BQVNILGVBQVRHO0lBQ3ZCLElBQUlBLFFBQVEsS0FBS0EsT0FBTyxJQUFJO1FBQzFCRSxRQUFRQyxLQUFLLENBQUMsaUJBQXdDeEgsT0FBdkJxSCxNQUFLLG9CQUF1QixPQUFMckgsTUFBSztRQUMzRHFILE9BQU87SUFDVDtJQUNBLElBQU1sQixVQUFVNUcsNkNBQU1BLENBQWdCO0lBRXRDRCwwREFBbUJBLENBQUNRLEtBQUs7ZUFBTXFHLFFBQVFRLE9BQU87O0lBRTlDdEgsZ0RBQVNBLENBQUM7UUFDUixJQUFJOEcsUUFBUVEsT0FBTyxFQUFFO1lBQ25CLElBQUlTLFNBQVMsZ0JBQWdCO2dCQUMzQmpCLFFBQVFRLE9BQU8sQ0FBQ2pILEtBQUssQ0FBQytILFdBQVcsQ0FBQyxvQkFBb0JMO1lBQ3hEO1FBQ0Y7SUFDRixHQUFHLEVBQUU7SUFFTCxxQkFDRSwyREFBQ007UUFDQzVILEtBQUtxRztRQUNMbUIsV0FBVzlILGlEQUFVQSxDQUFDLGFBQWFFLDBEQUFLQSxDQUFDTSxJQUFJLEVBQUVzSDtRQUMvQ0ssUUFBUU47UUFDUk8sT0FBT1A7UUFDUFEsU0FBUTtxQkFFUiwyREFBQ0M7UUFBSUMsTUFBTSxJQUFTLE9BQUwvSDs7QUFHckIsSUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL3NyYy9pY29ucy9pY29ucy50c3g/NTE1MCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGNhdGVnb3J5IEljb25zICovXG5pbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiwgbWVtbywgdXNlRWZmZWN0LCB1c2VJbXBlcmF0aXZlSGFuZGxlLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NOYW1lcywgeyB0eXBlIEFyZ3VtZW50IH0gZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBSZW5kZXJJZlZhbHVlSXNUcnV0aHkgfSBmcm9tICdAb3Blbm1ycy9lc20tcmVhY3QtdXRpbHMnO1xuaW1wb3J0IHN0eWxlIGZyb20gJy4vaWNvbnMubW9kdWxlLnNjc3MnO1xuXG5leHBvcnQgY29uc3QgaWNvbklkcyA9IFtcbiAgJ29tcnMtaWNvbi1hY3Rpdml0eScsXG4gICdvbXJzLWljb24tYWRkJyxcbiAgJ29tcnMtaWNvbi1hcnJvdy1kb3duJyxcbiAgJ29tcnMtaWNvbi1hcnJvdy1sZWZ0JyxcbiAgJ29tcnMtaWNvbi1hcnJvdy1yaWdodCcsXG4gICdvbXJzLWljb24tYXJyb3ctdXAnLFxuICAnb21ycy1pY29uLWJhYnknLFxuICAnb21ycy1pY29uLWNhbGVuZGFyLWhlYXQtbWFwJyxcbiAgJ29tcnMtaWNvbi1jYWxlbmRhcicsXG4gICdvbXJzLWljb24tY2FyZXQtZG93bicsXG4gICdvbXJzLWljb24tY2FyZXQtbGVmdCcsXG4gICdvbXJzLWljb24tY2FyZXQtcmlnaHQnLFxuICAnb21ycy1pY29uLWNhcmV0LXVwJyxcbiAgJ29tcnMtaWNvbi1jaGFydC1hdmVyYWdlJyxcbiAgJ29tcnMtaWNvbi1jaGVja21hcmstZmlsbGVkJyxcbiAgJ29tcnMtaWNvbi1jaGVja21hcmstb3V0bGluZScsXG4gICdvbXJzLWljb24tY2hlbWlzdHJ5JyxcbiAgJ29tcnMtaWNvbi1jaGV2cm9uLWRvd24nLFxuICAnb21ycy1pY29uLWNoZXZyb24tbGVmdCcsXG4gICdvbXJzLWljb24tY2hldnJvbi1yaWdodCcsXG4gICdvbXJzLWljb24tY2hldnJvbi11cCcsXG4gICdvbXJzLWljb24tY2xvc2UnLFxuICAnb21ycy1pY29uLWNsb3NlLWZpbGxlZCcsXG4gICdvbXJzLWljb24tY2xvc2Utb3V0bGluZScsXG4gICdvbXJzLWljb24tZG9jdW1lbnQnLFxuICAnb21ycy1pY29uLWRvY3VtZW50LWF0dGFjaG1lbnQnLFxuICAnb21ycy1pY29uLWRvd25sb2FkJyxcbiAgJ29tcnMtaWNvbi1kcnVnLW9yZGVyJyxcbiAgJ29tcnMtaWNvbi1lZGl0JyxcbiAgJ29tcnMtaWNvbi1ldmVudC1zY2hlZHVsZScsXG4gICdvbXJzLWljb24tZXZlbnRzJyxcbiAgJ29tcnMtaWNvbi1nZW5kZXItZmVtYWxlJyxcbiAgJ29tcnMtaWNvbi1nZW5kZXItbWFsZScsXG4gICdvbXJzLWljb24tZ2VuZGVyLW90aGVyJyxcbiAgJ29tcnMtaWNvbi1nZW5kZXItdW5rbm93bicsXG4gICdvbXJzLWljb24tZ2VuZXJpYy1vcmRlci10eXBlJyxcbiAgJ29tcnMtaWNvbi1ncm91cCcsXG4gICdvbXJzLWljb24tZ3JvdXAtYWNjZXNzJyxcbiAgJ29tcnMtaWNvbi1ob3NwaXRhbC1iZWQnLFxuICAnb21ycy1pY29uLWltYWdlLW1lZGljYWwnLFxuICAnb21ycy1pY29uLWluZm9ybWF0aW9uJyxcbiAgJ29tcnMtaWNvbi1pbmZvcm1hdGlvbi1maWxsZWQnLFxuICAnb21ycy1pY29uLWluZm9ybWF0aW9uLXNxdWFyZScsXG4gICdvbXJzLWljb24taW52ZW50b3J5LW1hbmFnZW1lbnQnLFxuICAnb21ycy1pY29uLWxhYi1vcmRlcicsXG4gICdvbXJzLWljb24tbGlzdC1jaGVja2VkJyxcbiAgJ29tcnMtaWNvbi1sb2NhdGlvbicsXG4gICdvbXJzLWljb24tbWF0ZXJpYWwtb3JkZXInLFxuICAnb21ycy1pY29uLW1heGltaXplJyxcbiAgJ29tcnMtaWNvbi1tZWRpY2F0aW9uJyxcbiAgJ29tcnMtaWNvbi1tZXNzYWdlLXF1ZXVlJyxcbiAgJ29tcnMtaWNvbi1taWNyb3Njb3BlJyxcbiAgJ29tcnMtaWNvbi1tb25leScsXG4gICdvbXJzLWljb24tbW90aGVyJyxcbiAgJ29tcnMtaWNvbi1tb3ZlbWVudCcsXG4gICdvbXJzLWljb24tb3ZlcmZsb3ctbWVudS0taG9yaXpvbnRhbCcsXG4gICdvbXJzLWljb24tb3ZlcmZsb3ctbWVudS0tdmVydGljYWwnLFxuICAnb21ycy1pY29uLXBhc3N3b3JkJyxcbiAgJ29tcnMtaWNvbi1wZWRlc3RyaWFuLWZhbWlseScsXG4gICdvbXJzLWljb24tcGVuJyxcbiAgJ29tcnMtaWNvbi1wcmludGVyJyxcbiAgJ29tcnMtaWNvbi1wcm9jZWR1cmUtb3JkZXInLFxuICAnb21ycy1pY29uLXByb2dyYW1zJyxcbiAgJ29tcnMtaWNvbi1yZW5ldycsXG4gICdvbXJzLWljb24tcmVmZXJyYWwtb3JkZXInLFxuICAnb21ycy1pY29uLXJlcG9ydCcsXG4gICdvbXJzLWljb24tcmVzZXQnLFxuICAnb21ycy1pY29uLXNhdmUnLFxuICAnb21ycy1pY29uLXNlYXJjaCcsXG4gICdvbXJzLWljb24tc2V0dGluZ3MnLFxuICAnb21ycy1pY29uLXNob3BwaW5nLWNhcnQnLFxuICAnb21ycy1pY29uLXNob3BwaW5nLWNhcnQtLWFycm93LWRvd24nLFxuICAnb21ycy1pY29uLXN0aWNreS1ub3RlLWFkZCcsXG4gICdvbXJzLWljb24tc3dpdGNoZXInLFxuICAnb21ycy1pY29uLXN5cmluZ2UnLFxuICAnb21ycy1pY29uLXRhYmxlLW9mLWNvbnRlbnRzJyxcbiAgJ29tcnMtaWNvbi10YWJsZScsXG4gICdvbXJzLWljb24tdGltZScsXG4gICdvbXJzLWljb24tdG9vbHMnLFxuICAnb21ycy1pY29uLXRyYW5zbGF0ZScsXG4gICdvbXJzLWljb24tdHJhc2gtY2FuJyxcbiAgJ29tcnMtaWNvbi10cmVlLXZpZXctLWFsdCcsXG4gICdvbXJzLWljb24tdXNlci1hdmF0YXInLFxuICAnb21ycy1pY29uLXVzZXItZm9sbG93JyxcbiAgJ29tcnMtaWNvbi11c2VyLXhyYXknLFxuICAnb21ycy1pY29uLXVzZXInLFxuICAnb21ycy1pY29uLXZpZXctb2ZmJyxcbiAgJ29tcnMtaWNvbi12aWV3JyxcbiAgJ29tcnMtaWNvbi13YXJuaW5nJyxcbl0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEljb25JZCA9ICh0eXBlb2YgaWNvbklkcylbbnVtYmVyXTtcblxuZXhwb3J0IHR5cGUgSWNvblByb3BzID0ge1xuICBjbGFzc05hbWU/OiBBcmd1bWVudDtcbiAgZmlsbD86IHN0cmluZztcbiAgc2l6ZT86IG51bWJlcjtcbn07XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQWN0aXZpdHlJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIEFjdGl2aXR5SWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWFjdGl2aXR5XCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBBZGRJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIEFkZEljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1hZGRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IEFycm93RG93bkljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQXJyb3dEb3duSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWFycm93LWRvd25cIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IEFycm93TGVmdEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQXJyb3dMZWZ0SWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWFycm93LWxlZnRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IEFycm93UmlnaHRJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIEFycm93UmlnaHRJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tYXJyb3ctcmlnaHRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IEFycm93VXBJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIEFycm93VXBJY29uKHByb3BzOiBJY29uUHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1hcnJvdy11cFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQmFieUljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQmFieUljb24ocHJvcHM6IEljb25Qcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWJhYnlcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IENhbGVuZGFySGVhdE1hcEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQ2FsZW5kYXJIZWF0TWFwKHByb3BzOiBJY29uUHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1jYWxlbmRhci1oZWF0LW1hcFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQ2FsZW5kYXJJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIENhbGVuZGFyKHByb3BzOiBJY29uUHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1jYWxlbmRhclwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQ2FyZXREb3duSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBDYXJldERvd25JY29uKHByb3BzOiBJY29uUHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1jYXJldC1kb3duXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBDYXJldExlZnRJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIENhcmV0TGVmdEljb24ocHJvcHM6IEljb25Qcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWNhcmV0LWxlZnRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IENhcmV0UmlnaHRJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIENhcmV0UmlnaHRJY29uKHByb3BzOiBJY29uUHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1jYXJldC1yaWdodFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQ2FyZXRVcEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQ2FyZXRVcEljb24ocHJvcHM6IEljb25Qcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWNhcmV0LXVwXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBDaGFydEF2ZXJhZ2VJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIENoYXJ0QXZlcmFnZUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1jaGFydC1hdmVyYWdlXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBDaGVja21hcmtGaWxsZWRJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIENoZWNrbWFya0ZpbGxlZEljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1jaGVja21hcmstZmlsbGVkXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBDaGVja21hcmtPdXRsaW5lSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBDaGVja21hcmtPdXRsaW5lSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWNoZWNrbWFyay1vdXRsaW5lXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBDaGVtaXN0cnlJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIENoZW1pc3RyeUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1jaGVtaXN0cnlcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IENoZXZyb25Eb3duSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBDaGV2cm9uRG93bkljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1jaGV2cm9uLWRvd25cIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IENoZXZyb25MZWZ0SWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBDaGV2cm9uTGVmdEljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1jaGV2cm9uLWxlZnRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IENoZXZyb25SaWdodEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQ2hldnJvblJpZ2h0SWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWNoZXZyb24tcmlnaHRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IENoZXZyb25VcEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gQ2hldnJvblVwSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWNoZXZyb24tdXBcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IENsb3NlSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBDbG9zZUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1jbG9zZVwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQ2xvc2VGaWxsZWRJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIENsb3NlRmlsbGVkSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWNsb3NlLWZpbGxlZFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgQ2xvc2VPdXRsaW5lSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBDbG9zZU91dGxpbmVJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tY2xvc2Utb3V0bGluZVwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgRG9jdW1lbnRJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIERvY3VtZW50SWNvbihwcm9wczogSWNvblByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tZG9jdW1lbnRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IERvY3VtZW50QXR0YWNobWVudEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gRG9jdW1lbnRBdHRhY2htZW50SWNvbihwcm9wczogSWNvblByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tZG9jdW1lbnQtYXR0YWNobWVudFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgRG93bmxvYWRJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIERvd25sb2FkSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWRvd25sb2FkXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBEcnVnT3JkZXJJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIERydWdPcmRlckljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1kcnVnLW9yZGVyXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBFZGl0SWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBFZGl0SWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWVkaXRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IEV2ZW50U2NoZWR1bGVJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIEV2ZW50U2NoZWR1bGVJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tZXZlbnQtc2NoZWR1bGVcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IEV2ZW50c0ljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gRXZlbnRzSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWV2ZW50c1wiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgR2VuZGVyRmVtYWxlSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBHZW5kZXJGZW1hbGVJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tZ2VuZGVyLWZlbWFsZVwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmRlck1hbGVJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIEdlbmRlck1hbGVJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tZ2VuZGVyLW1hbGVcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5kZXJPdGhlckljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gR2VuZGVyT3RoZXJJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tZ2VuZGVyLW90aGVyXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcbi8qKlxuICovXG5leHBvcnQgY29uc3QgR2VuZGVyVW5rbm93bkljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gR2VuZGVyVW5rbm93bkljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1nZW5kZXItdW5rbm93blwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgR2VuZXJpY09yZGVyVHlwZUljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gR2VuZXJpY09yZGVyVHlwZUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1nZW5lcmljLW9yZGVyLXR5cGVcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IEdyb3VwSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBHcm91cEljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1ncm91cFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgR3JvdXBBY2Nlc3NJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIEdyb3VwQWNjZXNzSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWdyb3VwLWFjY2Vzc1wiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgSG9zcGl0YWxCZWRJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIEhvc3BpdGFsQmVkSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWhvc3BpdGFsLWJlZFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgSW1hZ2VNZWRpY2FsSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBJbWFnZU1lZGljYWxJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24taW1hZ2UtbWVkaWNhbFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgSW5mb3JtYXRpb25JY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIEluZm9ybWF0aW9uSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWluZm9ybWF0aW9uXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBJbmZvcm1hdGlvbkZpbGxlZEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gSW5mb3JtYXRpb25GaWxsZWRJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24taW5mb3JtYXRpb24tZmlsbGVkXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBJbmZvcm1hdGlvblNxdWFyZUljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gSW5mb3JtYXRpb25TcXVhcmVJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24taW5mb3JtYXRpb24tc3F1YXJlXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBJbnZlbnRvcnlNYW5hZ2VtZW50SWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBJbnZlbnRvcnlNYW5hZ2VtZW50SWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLWludmVudG9yeS1tYW5hZ2VtZW50XCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBMYWJPcmRlckljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gTGFiT3JkZXJJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tbGFiLW9yZGVyXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBMaXN0Q2hlY2tlZEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gTGlzdENoZWNrZWRJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tbGlzdC1jaGVja2VkXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBMb2NhdGlvbkljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gTG9jYXRpb25JY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tbG9jYXRpb25cIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IE1hdGVyaWFsT3JkZXJJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIE1hdGVyaWFsT3JkZXJJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tbWF0ZXJpYWwtb3JkZXJcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IE1heGltaXplSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBNYXhpbWl6ZUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1tYXhpbWl6ZVwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgTWVkaWNhdGlvbkljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gTWVkaWNhdGlvbkljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1tZWRpY2F0aW9uXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlUXVldWVJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIE1lc3NhZ2VRdWV1ZUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1tZXNzYWdlLXF1ZXVlXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBNaWNyb3Njb3BlSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBNaWNyb3Njb3BlSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLW1pY3Jvc2NvcGVcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqIEJpbGxpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IE1vbmV5SWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBNb25leUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1tb25leVwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgTW90aGVySWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBNb3RoZXJJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tbW90aGVyXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBNb3ZlbWVudEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gTW92ZW1lbnRJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tbW92ZW1lbnRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IE92ZXJmbG93TWVudUhvcml6b250YWxJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIE92ZXJmbG93TWVudUhvcml6b250YWxJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tb3ZlcmZsb3ctbWVudS0taG9yaXpvbnRhbFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgT3ZlcmZsb3dNZW51VmVydGljYWxJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIE92ZXJmbG93TWVudVZlcnRpY2FsSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLW92ZXJmbG93LW1lbnUtLWhvcml6b250YWxcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgUGFzc3dvcmRJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFBhc3N3b3JkSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXBhc3N3b3JkXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBQZWRlc3RyaWFuRmFtaWx5SWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBQZWRlc3RyaWFuRmFtaWx5SWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXBlZGVzdHJpYW4tZmFtaWx5XCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBQZW5JY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFBlbkljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1wZW5cIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFByaW50ZXJJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFByaW50ZXJJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tcHJpbnRlclwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgUHJvY2VkdXJlT3JkZXJJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFByb2NlZHVyZU9yZGVySWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXByb2NlZHVyZS1vcmRlclwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgUHJvZ3JhbXNJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFByb2dyYW1zSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXByb2dyYW1zXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBSZWZlcnJhbE9yZGVySWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBSZWZlcnJhbE9yZGVySWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXJlZmVycmFsLW9yZGVyXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBSZW5ld0ljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gUmVuZXdJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tcmVuZXdcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFJlcG9ydEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gUmVwb3J0SWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXJlcG9ydFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgUmVzZXRJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFJlc2V0SWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXJlc2V0XCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBTYXZlSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBTYXZlSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXNhdmVcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFNlYXJjaEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gU2VhcmNoSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXNlYXJjaFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgU2V0dGluZ3NJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFNhdmVJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tc2V0dGluZ3NcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFN3aXRjaGVySWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBTd2l0Y2hlckljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1zd2l0Y2hlclwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICogT3JkZXIgQmFza2V0LCB0aGUgVUkgdG8gZW50ZXIgT3JkZXJzIGZvciBNZWRpY2F0aW9ucywgUmVmZXJyYWxzLCBMYWJzLCBQcm9jZWR1cmVzIGFuZCBtb3JlXG4gKi9cbmV4cG9ydCBjb25zdCBTaG9wcGluZ0NhcnRJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFNob3BwaW5nQ2FydEljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1zaG9wcGluZy1jYXJ0XCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKiBVc2VkIGFzIGEgYnV0dG9uIHRvIGFkZCBhbiBpdGVtIHRvIHRoZSBPcmRlciBiYXNrZXQgZnJvbSBhIHNlYXJjaFxuICovXG5leHBvcnQgY29uc3QgU2hvcHBpbmdDYXJ0QXJyb3dEb3duSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBTaG9wcGluZ0NhcnRBcnJvd0Rvd25JY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tc2hvcHBpbmctY2FydC0tYXJyb3ctZG93blwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICogVXNlZCBhcyBhY3Rpb24gYnV0dG9uIHRvIG9wZW4gd2FyZCBpbi1wYXRpZW50IG5vdGUgd29ya3NwYWNlXG4gKi9cbmV4cG9ydCBjb25zdCBTdGlja3lOb3RlQWRkSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBTdGlja3lOb3RlQWRkSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXN0aWNreS1ub3RlLWFkZFwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgU3lyaW5nZUljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gU3lyaW5nZUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi1zeXJpbmdlXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKiBVc2VkIGFzIGEgYnV0dG9uIHRvIGFkZCBhbiBpdGVtIHRvIHRoZSBPcmRlciBiYXNrZXQgZnJvbSBhIHNlYXJjaFxuICovXG5leHBvcnQgY29uc3QgVGFibGVPZkNvbnRlbnRzSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBUYWJsZU9mQ29udGVudHNJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tdGFibGUtb2YtY29udGVudHNcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFRhYmxlSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBUYWJsZUljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi10YWJsZVwiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICogTGFiIGludmVzdGlnYXRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBUaW1lSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBUaW1lSWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXRpbWVcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFRvb2xzSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBUb29sc0ljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi10b29sc1wiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgVHJhbnNsYXRlSWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBUcmFuc2xhdGVJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tdHJhbnNsYXRlXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBUcmFzaENhbkljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gVHJhc2hDYW5JY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tdHJhc2gtY2FuXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBUcmVlVmlld0FsdEljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gVHJlZVZpZXdBbHRJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tdHJlZS12aWV3LS1hbHRcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqIFVzZXIgb2YgT3Blbk1SUyBlLmcuIE15IEFjY291bnRcbiAqL1xuZXhwb3J0IGNvbnN0IFVzZXJBdmF0YXJJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFVzZXJBdmF0YXJJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tdXNlci1hdmF0YXJcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFVzZXJGb2xsb3dJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFVzZXJGb2xsb3dJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tdXNlci1mb2xsb3dcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqIFVzZXJYcmF5IEljb25cbiAqXG4gKiBgVXNlclhyYXlJY29uYCBpcyBhbHNvIHVzZWQgZm9yIGltYWdpbmcgb3JkZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBVc2VyWHJheUljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gVXNlclhyYXlJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tdXNlci14cmF5XCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKi9cbmV4cG9ydCBjb25zdCBVc2VySWNvbiA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgSWNvblByb3BzPihmdW5jdGlvbiBVc2VySWNvbihwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxJY29uIHJlZj17cmVmfSBpY29uPVwib21ycy1pY29uLXVzZXJcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFZpZXdPZmZJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFZpZXdPZmZJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tdmlldy1vZmZcIiBpY29uUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IFZpZXdJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBJY29uUHJvcHM+KGZ1bmN0aW9uIFZpZXdJY29uKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPEljb24gcmVmPXtyZWZ9IGljb249XCJvbXJzLWljb24tdmlld1wiIGljb25Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8qKlxuICovXG5leHBvcnQgY29uc3QgV2FybmluZ0ljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Qcm9wcz4oZnVuY3Rpb24gV2FybmluZ0ljb24ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8SWNvbiByZWY9e3JlZn0gaWNvbj1cIm9tcnMtaWNvbi13YXJuaW5nXCIgaWNvblByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLy8gSWNvbiBhbGlhc2VzIHRoYXQgYXJlIGEgbGl0dGxlIG1vcmUgYWxpZ25lZCB0byBzcGVjaWZpYyB1c2UtY2FzZXNcbi8vIHNob3VsZCBhbGwgcmVzb2x2ZSB0byBhIGRlZmluZWQgUmVhY3QgaWNvblxuXG4vKipcbiAqL1xuZXhwb3J0IGNvbnN0IEFsbGVyZ2llc0ljb24gPSBXYXJuaW5nSWNvbjtcblxuLyoqXG4gKlxuICovXG5leHBvcnQgY29uc3QgQXR0YWNobWVudEljb24gPSBEb2N1bWVudEF0dGFjaG1lbnRJY29uO1xuXG4vKipcbiAqIENvbmRpdGlvbnNcbiAqXG4gKiBOb3RlIHRoaXMgaXMgYW4gYWxpYXMgZm9yIExpc3RDaGVja2VkSWNvblxuICovXG5leHBvcnQgY29uc3QgQ29uZGl0aW9uc0ljb24gPSBMaXN0Q2hlY2tlZEljb247XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGNvbnN0IFJhZGlvbG9neUljb24gPSBJbWFnZU1lZGljYWxJY29uO1xuXG4vKipcbiAqIFVzZWQgYXMgYSBidXR0b24gdG8gYWRkIGFuIGl0ZW0gdG8gdGhlIE9yZGVyIGJhc2tldCBmcm9tIGEgc2VhcmNoXG4gKlxuICogTm90ZSB0aGlzIGlzIGFuIGFsaWFzIGZvciBTaG9wcGluZ0NhcnRBcnJvd0Rvd25JY29uXG4gKi9cbmV4cG9ydCBjb25zdCBTaG9wcGluZ0NhcnRBZGRJdGVtSWNvbiA9IFNob3BwaW5nQ2FydEFycm93RG93bkljb247XG5cbi8qKlxuICogVGhpcyBpcyBhIHV0aWxpdHkgY29tcG9uZW50IHRoYXQgdGFrZXMgYW4gYGljb25gIGFuZCByZW5kZXJzIGl0IGlmIHRoZSBzcHJpdGUgZm9yIHRoZSBpY29uXG4gKiBpcyBhdmFpbGFibGUuIFRoZSBnb2FsIGlzIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGNvbmRpdGlvbmFsbHkgcmVuZGVyIGNvbmZpZ3VyYXRpb24tc3BlY2lmaWVkIGljb25zLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqICAgPE1heWJlSWNvbiBpY29uPSdvbXJzLWljb24tYmFieScgY2xhc3NOYW1lPXtzdHlsZXMubXlJY29uU3R5bGVzfSAvPlxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBNYXliZUljb24gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIHsgaWNvbjogc3RyaW5nOyBmYWxsYmFjaz86IFJlYWN0LlJlYWN0Tm9kZSB9ICYgSWNvblByb3BzPihmdW5jdGlvbiBNYXliZUljb24oXG4gICAgeyBpY29uLCBmYWxsYmFjaywgLi4uaWNvblByb3BzIH0sXG4gICAgcmVmLFxuICApIHtcbiAgICBjb25zdCBpY29uUmVmID0gdXNlUmVmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGljb24pKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb21ycy1zdmdzLWNvbnRhaW5lcicpO1xuICAgICAgY29uc3QgY2FsbGJhY2s6IE11dGF0aW9uQ2FsbGJhY2sgPSAobXV0YXRpb25MaXN0KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25MaXN0KSB7XG4gICAgICAgICAgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgICBpY29uUmVmLmN1cnJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpY29uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spO1xuICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGNvbnRhaW5lciwgeyBjaGlsZExpc3Q6IHRydWUgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfSwgW2ljb25dKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8UmVuZGVySWZWYWx1ZUlzVHJ1dGh5IHZhbHVlPXtpY29uUmVmLmN1cnJlbnR9IGZhbGxiYWNrPXtmYWxsYmFja30+XG4gICAgICAgIDxJY29uIHJlZj17cmVmfSBpY29uPXtpY29uIGFzIEljb25JZH0gaWNvblByb3BzPXtpY29uUHJvcHN9IC8+XG4gICAgICA8L1JlbmRlcklmVmFsdWVJc1RydXRoeT5cbiAgICApO1xuICB9KSxcbik7XG5cbmV4cG9ydCB0eXBlIFN2Z0ljb25Qcm9wcyA9IHtcbiAgaWNvbjogSWNvbklkO1xuICBpY29uUHJvcHM6IEljb25Qcm9wcztcbn07XG5cbi8qKlxuICogVGhpcyBpcyBhIHV0aWxpdHkgdHlwZSBmb3IgY3VzdG9tIGljb25zIHRoYXQgdXNlIHRoZSBzdmctc3ByaXRlLWxvYWRlciB0byBidW5kbGUgY3VzdG9tIGljb25zXG4gKi9cbmV4cG9ydCBjb25zdCBJY29uID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBTdmdJY29uUHJvcHM+KGZ1bmN0aW9uIEljb24oeyBpY29uLCBpY29uUHJvcHMgfSwgcmVmKSB7XG4gICAgbGV0IHsgY2xhc3NOYW1lLCBmaWxsLCBzaXplIH0gPSBPYmplY3QuYXNzaWduKHt9LCB7IGZpbGw6ICdjdXJyZW50Q29sb3InLCBzaXplOiAyMCB9LCBpY29uUHJvcHMpO1xuICAgIGlmIChzaXplIDw9IDAgfHwgc2l6ZSA+IDcyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIHNpemUgJyR7c2l6ZX0nIHNwZWNpZmllZCBmb3IgJHtpY29ufS4gRGVmYXVsdGluZyB0byAyMC5gKTtcbiAgICAgIHNpemUgPSAyMDtcbiAgICB9XG4gICAgY29uc3QgaWNvblJlZiA9IHVzZVJlZjxTVkdTVkdFbGVtZW50PihudWxsKTtcblxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiBpY29uUmVmLmN1cnJlbnQhKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaWNvblJlZi5jdXJyZW50KSB7XG4gICAgICAgIGlmIChmaWxsICE9PSAnY3VycmVudENvbG9yJykge1xuICAgICAgICAgIGljb25SZWYuY3VycmVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1vbXJzLWljb24tZmlsbCcsIGZpbGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxzdmdcbiAgICAgICAgcmVmPXtpY29uUmVmfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ29tcnMtaWNvbicsIHN0eWxlLmljb24sIGNsYXNzTmFtZSl9XG4gICAgICAgIGhlaWdodD17c2l6ZX1cbiAgICAgICAgd2lkdGg9e3NpemV9XG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgPlxuICAgICAgICA8dXNlIGhyZWY9e2AjJHtpY29ufWB9IC8+XG4gICAgICA8L3N2Zz5cbiAgICApO1xuICB9KSxcbik7XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJmb3J3YXJkUmVmIiwibWVtbyIsInVzZUVmZmVjdCIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJ1c2VSZWYiLCJjbGFzc05hbWVzIiwiUmVuZGVySWZWYWx1ZUlzVHJ1dGh5Iiwic3R5bGUiLCJpY29uSWRzIiwiQWN0aXZpdHlJY29uIiwicHJvcHMiLCJyZWYiLCJJY29uIiwiaWNvbiIsImljb25Qcm9wcyIsIkFkZEljb24iLCJBcnJvd0Rvd25JY29uIiwiQXJyb3dMZWZ0SWNvbiIsIkFycm93UmlnaHRJY29uIiwiQXJyb3dVcEljb24iLCJCYWJ5SWNvbiIsIkNhbGVuZGFySGVhdE1hcEljb24iLCJDYWxlbmRhckhlYXRNYXAiLCJDYWxlbmRhckljb24iLCJDYWxlbmRhciIsIkNhcmV0RG93bkljb24iLCJDYXJldExlZnRJY29uIiwiQ2FyZXRSaWdodEljb24iLCJDYXJldFVwSWNvbiIsIkNoYXJ0QXZlcmFnZUljb24iLCJDaGVja21hcmtGaWxsZWRJY29uIiwiQ2hlY2ttYXJrT3V0bGluZUljb24iLCJDaGVtaXN0cnlJY29uIiwiQ2hldnJvbkRvd25JY29uIiwiQ2hldnJvbkxlZnRJY29uIiwiQ2hldnJvblJpZ2h0SWNvbiIsIkNoZXZyb25VcEljb24iLCJDbG9zZUljb24iLCJDbG9zZUZpbGxlZEljb24iLCJDbG9zZU91dGxpbmVJY29uIiwiRG9jdW1lbnRJY29uIiwiRG9jdW1lbnRBdHRhY2htZW50SWNvbiIsIkRvd25sb2FkSWNvbiIsIkRydWdPcmRlckljb24iLCJFZGl0SWNvbiIsIkV2ZW50U2NoZWR1bGVJY29uIiwiRXZlbnRzSWNvbiIsIkdlbmRlckZlbWFsZUljb24iLCJHZW5kZXJNYWxlSWNvbiIsIkdlbmRlck90aGVySWNvbiIsIkdlbmRlclVua25vd25JY29uIiwiR2VuZXJpY09yZGVyVHlwZUljb24iLCJHcm91cEljb24iLCJHcm91cEFjY2Vzc0ljb24iLCJIb3NwaXRhbEJlZEljb24iLCJJbWFnZU1lZGljYWxJY29uIiwiSW5mb3JtYXRpb25JY29uIiwiSW5mb3JtYXRpb25GaWxsZWRJY29uIiwiSW5mb3JtYXRpb25TcXVhcmVJY29uIiwiSW52ZW50b3J5TWFuYWdlbWVudEljb24iLCJMYWJPcmRlckljb24iLCJMaXN0Q2hlY2tlZEljb24iLCJMb2NhdGlvbkljb24iLCJNYXRlcmlhbE9yZGVySWNvbiIsIk1heGltaXplSWNvbiIsIk1lZGljYXRpb25JY29uIiwiTWVzc2FnZVF1ZXVlSWNvbiIsIk1pY3Jvc2NvcGVJY29uIiwiTW9uZXlJY29uIiwiTW90aGVySWNvbiIsIk1vdmVtZW50SWNvbiIsIk92ZXJmbG93TWVudUhvcml6b250YWxJY29uIiwiT3ZlcmZsb3dNZW51VmVydGljYWxJY29uIiwiUGFzc3dvcmRJY29uIiwiUGVkZXN0cmlhbkZhbWlseUljb24iLCJQZW5JY29uIiwiUHJpbnRlckljb24iLCJQcm9jZWR1cmVPcmRlckljb24iLCJQcm9ncmFtc0ljb24iLCJSZWZlcnJhbE9yZGVySWNvbiIsIlJlbmV3SWNvbiIsIlJlcG9ydEljb24iLCJSZXNldEljb24iLCJTYXZlSWNvbiIsIlNlYXJjaEljb24iLCJTZXR0aW5nc0ljb24iLCJTd2l0Y2hlckljb24iLCJTaG9wcGluZ0NhcnRJY29uIiwiU2hvcHBpbmdDYXJ0QXJyb3dEb3duSWNvbiIsIlN0aWNreU5vdGVBZGRJY29uIiwiU3lyaW5nZUljb24iLCJUYWJsZU9mQ29udGVudHNJY29uIiwiVGFibGVJY29uIiwiVGltZUljb24iLCJUb29sc0ljb24iLCJUcmFuc2xhdGVJY29uIiwiVHJhc2hDYW5JY29uIiwiVHJlZVZpZXdBbHRJY29uIiwiVXNlckF2YXRhckljb24iLCJVc2VyRm9sbG93SWNvbiIsIlVzZXJYcmF5SWNvbiIsIlVzZXJJY29uIiwiVmlld09mZkljb24iLCJWaWV3SWNvbiIsIldhcm5pbmdJY29uIiwiQWxsZXJnaWVzSWNvbiIsIkF0dGFjaG1lbnRJY29uIiwiQ29uZGl0aW9uc0ljb24iLCJSYWRpb2xvZ3lJY29uIiwiU2hvcHBpbmdDYXJ0QWRkSXRlbUljb24iLCJNYXliZUljb24iLCJmYWxsYmFjayIsImljb25SZWYiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiY29udGFpbmVyIiwiY2FsbGJhY2siLCJtdXRhdGlvbkxpc3QiLCJtdXRhdGlvbiIsInR5cGUiLCJjdXJyZW50Iiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwib2JzZXJ2ZSIsImNoaWxkTGlzdCIsImRpc2Nvbm5lY3QiLCJ2YWx1ZSIsIk9iamVjdCIsImFzc2lnbiIsImZpbGwiLCJzaXplIiwiY2xhc3NOYW1lIiwiY29uc29sZSIsImVycm9yIiwic2V0UHJvcGVydHkiLCJzdmciLCJoZWlnaHQiLCJ3aWR0aCIsInZpZXdCb3giLCJ1c2UiLCJocmVmIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../framework/esm-styleguide/src/icons/icons.tsx\n");
|
|
1629
1629
|
|
|
1630
1630
|
/***/ }),
|
|
1631
1631
|
|
|
@@ -1975,7 +1975,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
1975
1975
|
\********************************************************************/
|
|
1976
1976
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1977
1977
|
|
|
1978
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppointmentsAltPictogram: () => (/* binding */ AppointmentsAltPictogram),\n/* harmony export */ AppointmentsPictogram: () => (/* binding */ AppointmentsPictogram),\n/* harmony export */ Assessment1Pictogram: () => (/* binding */ Assessment1Pictogram),\n/* harmony export */ Assessment2Pictogram: () => (/* binding */ Assessment2Pictogram),\n/* harmony export */ BloodBankPictogram: () => (/* binding */ BloodBankPictogram),\n/* harmony export */ CardiologyPictogram: () => (/* binding */ CardiologyPictogram),\n/* harmony export */ CtScanPictogram: () => (/* binding */ CtScanPictogram),\n/* harmony export */ DentistryPictogram: () => (/* binding */ DentistryPictogram),\n/* harmony export */ EmergencyDepartmentPictogram: () => (/* binding */ EmergencyDepartmentPictogram),\n/* harmony export */ FacilityPictogram: () => (/* binding */ FacilityPictogram),\n/* harmony export */ GeriatricsPictogram: () => (/* binding */ GeriatricsPictogram),\n/* harmony export */ GynaecologyPictogram: () => (/* binding */ GynaecologyPictogram),\n/* harmony export */ HomePictogram: () => (/* binding */ HomePictogram),\n/* harmony export */ InPatientPictogram: () => (/* binding */ InPatientPictogram),\n/* harmony export */ LaboratoryPictogram: () => (/* binding */ LaboratoryPictogram),\n/* harmony export */ Labs2Pictogram: () => (/* binding */ Labs2Pictogram),\n/* harmony export */ MaybePictogram: () => (/* binding */ MaybePictogram),\n/* harmony export */ ObstetricsPictogram: () => (/* binding */ ObstetricsPictogram),\n/* harmony export */ PatientListsPictogram: () => (/* binding */ PatientListsPictogram),\n/* harmony export */ PatientSearchPictogram: () => (/* binding */ PatientSearchPictogram),\n/* harmony export */ PatientsPictogram: () => (/* binding */ PatientsPictogram),\n/* harmony export */ PaymentsDeskPictogram: () => (/* binding */ PaymentsDeskPictogram),\n/* harmony export */ Pharmacy2Pictogram: () => (/* binding */ Pharmacy2Pictogram),\n/* harmony export */ PharmacyPictogram: () => (/* binding */ PharmacyPictogram),\n/* harmony export */ Pictogram: () => (/* binding */ Pictogram),\n/* harmony export */ RegistrationPictogram: () => (/* binding */ RegistrationPictogram),\n/* harmony export */ ServiceQueuesPictogram: () => (/* binding */ ServiceQueuesPictogram),\n/* harmony export */ StockManagementPictogram: () => (/* binding */ StockManagementPictogram),\n/* harmony export */ TransferPictogram: () => (/* binding */ TransferPictogram),\n/* harmony export */ TriagePictogram: () => (/* binding */ TriagePictogram),\n/* harmony export */ XrayPictogram: () => (/* binding */ XrayPictogram),\n/* harmony export */ pictogramIds: () => (/* binding */ pictogramIds)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ \"../../../node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @openmrs/esm-react-utils */ \"../../framework/esm-react-utils/dist/index.js\");\n/* harmony import */ var _pictograms_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pictograms.module.scss */ \"../../framework/esm-styleguide/src/pictograms/pictograms.module.scss\");\n/** @category Pictograms */ function _object_without_properties(source, excluded) {\n if (source == null) return {};\n var target = _object_without_properties_loose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\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 return target;\n}\nfunction _object_without_properties_loose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}\n\n\n\n\nvar pictogramIds = [\n 'omrs-pict-appointments',\n 'omrs-pict-assessment-1',\n 'omrs-pict-assessment-2',\n 'omrs-pict-blood-bank',\n 'omrs-pict-cardiology',\n 'omrs-pict-ct-scan',\n 'omrs-pict-dentistry',\n 'omrs-pict-emergency-department',\n 'omrs-pict-facility',\n 'omrs-pict-geriatrics',\n 'omrs-pict-gynaecology',\n 'omrs-pict-in-patient',\n 'omrs-pict-laboratory',\n 'omrs-pict-labs-2',\n 'omrs-pict-obstetrics',\n 'omrs-pict-patient-search',\n 'omrs-pict-patients',\n 'omrs-pict-payments-desk',\n 'omrs-pict-pharmacy',\n 'omrs-pict-pharmacy-2',\n 'omrs-pict-registration',\n 'omrs-pict-service-queues',\n 'omrs-pict-stock-management',\n 'omrs-pict-transfer',\n 'omrs-pict-triage',\n 'omrs-pict-x-ray'\n];\nvar AppointmentsPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function AppointmentsPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-appointments\",\n pictogramProps: props\n });\n}));\n/**\n * @deprecated use AppointmentsPictogram instead\n */ var AppointmentsAltPictogram = AppointmentsPictogram;\nvar Assessment1Pictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Assessment1Pictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-assessment-1\",\n pictogramProps: props\n });\n}));\nvar Assessment2Pictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Assessment2Pictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-assessment-2\",\n pictogramProps: props\n });\n}));\nvar BloodBankPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function BloodBankPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-blood-bank\",\n pictogramProps: props\n });\n}));\nvar CardiologyPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CardiologyPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-cardiology\",\n pictogramProps: props\n });\n}));\nvar CtScanPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CtScanPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-ct-scan\",\n pictogramProps: props\n });\n}));\nvar DentistryPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function DentistryPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-dentistry\",\n pictogramProps: props\n });\n}));\nvar EmergencyDepartmentPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function EmergencyDepartmentPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-emergency-department\",\n pictogramProps: props\n });\n}));\nvar FacilityPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function FacilityPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-facility\",\n pictogramProps: props\n });\n}));\nvar GeriatricsPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GeriatricsPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-geriatrics\",\n pictogramProps: props\n });\n}));\nvar GynaecologyPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GynaecologyPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-gynaecology\",\n pictogramProps: props\n });\n}));\nvar InPatientPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function InPatientPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-in-patient\",\n pictogramProps: props\n });\n}));\nvar LaboratoryPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function LaboratoryPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-laboratory\",\n pictogramProps: props\n });\n}));\nvar Labs2Pictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Labs2Pictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-labs-2\",\n pictogramProps: props\n });\n}));\nvar ObstetricsPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ObstetricsPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-obstetrics\",\n pictogramProps: props\n });\n}));\nvar PatientSearchPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function PatientSearchPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-patient-search\",\n pictogramProps: props\n });\n}));\nvar PatientsPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function PatientsPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-patients\",\n pictogramProps: props\n });\n}));\nvar PaymentsDeskPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function PaymentsDeskPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-payments-desk\",\n pictogramProps: props\n });\n}));\nvar PharmacyPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function PharmacyPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-pharmacy\",\n pictogramProps: props\n });\n}));\nvar Pharmacy2Pictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Pharmacy2Pictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-pharmacy-2\",\n pictogramProps: props\n });\n}));\nvar RegistrationPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function RegistrationPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-registration\",\n pictogramProps: props\n });\n}));\nvar ServiceQueuesPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ServiceQueuesPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-service-queues\",\n pictogramProps: props\n });\n}));\nvar StockManagementPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function StockManagementPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-stock-management\",\n pictogramProps: props\n });\n}));\nvar TransferPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function TransferPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-transfer\",\n pictogramProps: props\n });\n}));\nvar TriagePictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function TriagePictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-triage\",\n pictogramProps: props\n });\n}));\nvar XrayPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function XrayPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-x-ray\",\n pictogramProps: props\n });\n}));\n// Pictogram aliases that are a little more aligned to specific use-cases\n// should all resolve to a defined React icon\nvar HomePictogram = FacilityPictogram;\nvar PatientListsPictogram = PatientsPictogram;\n/**\n * This is a utility component that takes an `pictogram` and render it if the sprite for the pictogram\n * is available. The goal is to make it easier to conditionally render configuration-specified pictograms.\n *\n * @example\n * ```tsx\n * <MaybePictogram pictogram='omrs-icon-baby' className={styles.myPictogramStyles} />\n * ```\n */ var MaybePictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MaybeIcon(_param, ref) {\n var pictogram = _param.pictogram, fallback = _param.fallback, pictogramProps = _object_without_properties(_param, [\n \"pictogram\",\n \"fallback\"\n ]);\n var iconRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(document.getElementById(pictogram));\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n var container = document.getElementById('omrs-svgs-container');\n var callback = function(mutationList) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = mutationList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var mutation = _step.value;\n if (mutation.type === 'childList') {\n iconRef.current = document.getElementById(pictogram);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n var observer = new MutationObserver(callback);\n if (container) {\n observer.observe(container, {\n childList: true\n });\n }\n return function() {\n return observer.disconnect();\n };\n }, [\n pictogram\n ]);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.RenderIfValueIsTruthy, {\n value: iconRef.current,\n fallback: fallback\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: pictogram,\n pictogramProps: pictogramProps\n }));\n}));\n/**\n * This is a utility type for custom pictograms. Please maintain alphabetical order when adding new pictograms for readability.\n */ var Pictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Pictogram(param, ref) {\n var pictogram = param.pictogram, pictogramProps = param.pictogramProps;\n var _Object_assign = Object.assign({}, {\n size: 92\n }, pictogramProps), className = _Object_assign.className, size = _Object_assign.size;\n if (size <= 26 || size > 144) {\n console.error(\"Invalid size '\".concat(size, \"' specified for \").concat(pictogram, \". Defaulting to 92.\"));\n size = 92;\n }\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n ref: ref,\n className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(_pictograms_module_scss__WEBPACK_IMPORTED_MODULE_3__[\"default\"].pictogram, className),\n height: size,\n width: size\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"use\", {\n href: \"#\".concat(pictogram)\n }));\n}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL3NyYy9waWN0b2dyYW1zL3BpY3RvZ3JhbXMudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUJBQXlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDMEM7QUFDWjtBQUNVO0FBQ3BCO0FBRXRDLElBQU1RLGVBQWU7SUFDMUI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNELENBQVU7QUFTSixJQUFNQyxzQ0FBd0JQLDJDQUFJQSxlQUN2Q0QsaURBQVVBLENBQWdDLFNBQVNRLHNCQUFzQkMsS0FBSyxFQUFFQyxHQUFHO0lBQ2pGLHFCQUFPLDJEQUFDQztRQUFVRCxLQUFLQTtRQUFLRSxXQUFVO1FBQXlCQyxnQkFBZ0JKOztBQUNqRixJQUNBO0FBRUY7O0NBRUMsR0FDTSxJQUFNSywyQkFBMkJOLHNCQUFzQjtBQUV2RCxJQUFNTyxxQ0FBdUJkLDJDQUFJQSxlQUN0Q0QsaURBQVVBLENBQWdDLFNBQVNlLHFCQUFxQk4sS0FBSyxFQUFFQyxHQUFHO0lBQ2hGLHFCQUFPLDJEQUFDQztRQUFVRCxLQUFLQTtRQUFLRSxXQUFVO1FBQXlCQyxnQkFBZ0JKOztBQUNqRixJQUNBO0FBRUssSUFBTU8scUNBQXVCZiwyQ0FBSUEsZUFDdENELGlEQUFVQSxDQUFnQyxTQUFTZ0IscUJBQXFCUCxLQUFLLEVBQUVDLEdBQUc7SUFDaEYscUJBQU8sMkRBQUNDO1FBQVVELEtBQUtBO1FBQUtFLFdBQVU7UUFBeUJDLGdCQUFnQko7O0FBQ2pGLElBQ0E7QUFFSyxJQUFNUSxtQ0FBcUJoQiwyQ0FBSUEsZUFDcENELGlEQUFVQSxDQUFnQyxTQUFTaUIsbUJBQW1CUixLQUFLLEVBQUVD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QUNoRWtELE9BQU87SUFDVDtJQUVBLHFCQUNFLDJEQUFDSTtRQUFJeEQsS0FBS0E7UUFBS3FELFdBQVczRCxpREFBVUEsQ0FBQ0UsK0RBQUtBLENBQUNNLFNBQVMsRUFBRW1EO1FBQVlJLFFBQVFMO1FBQU1NLE9BQU9OO3FCQUNyRiwyREFBQ087UUFBSUMsTUFBTSxJQUFjLE9BQVYxRDs7QUFHckIsSUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL3NyYy9waWN0b2dyYW1zL3BpY3RvZ3JhbXMudHN4PzUwN2IiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBjYXRlZ29yeSBQaWN0b2dyYW1zICovXG5pbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiwgbWVtbywgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NOYW1lcywgeyB0eXBlIEFyZ3VtZW50IH0gZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBSZW5kZXJJZlZhbHVlSXNUcnV0aHkgfSBmcm9tICdAb3Blbm1ycy9lc20tcmVhY3QtdXRpbHMnO1xuaW1wb3J0IHN0eWxlIGZyb20gJy4vcGljdG9ncmFtcy5tb2R1bGUuc2Nzcyc7XG5cbmV4cG9ydCBjb25zdCBwaWN0b2dyYW1JZHMgPSBbXG4gICdvbXJzLXBpY3QtYXBwb2ludG1lbnRzJyxcbiAgJ29tcnMtcGljdC1hc3Nlc3NtZW50LTEnLFxuICAnb21ycy1waWN0LWFzc2Vzc21lbnQtMicsXG4gICdvbXJzLXBpY3QtYmxvb2QtYmFuaycsXG4gICdvbXJzLXBpY3QtY2FyZGlvbG9neScsXG4gICdvbXJzLXBpY3QtY3Qtc2NhbicsXG4gICdvbXJzLXBpY3QtZGVudGlzdHJ5JyxcbiAgJ29tcnMtcGljdC1lbWVyZ2VuY3ktZGVwYXJ0bWVudCcsXG4gICdvbXJzLXBpY3QtZmFjaWxpdHknLFxuICAnb21ycy1waWN0LWdlcmlhdHJpY3MnLFxuICAnb21ycy1waWN0LWd5bmFlY29sb2d5JyxcbiAgJ29tcnMtcGljdC1pbi1wYXRpZW50JyxcbiAgJ29tcnMtcGljdC1sYWJvcmF0b3J5JyxcbiAgJ29tcnMtcGljdC1sYWJzLTInLFxuICAnb21ycy1waWN0LW9ic3RldHJpY3MnLFxuICAnb21ycy1waWN0LXBhdGllbnQtc2VhcmNoJyxcbiAgJ29tcnMtcGljdC1wYXRpZW50cycsXG4gICdvbXJzLXBpY3QtcGF5bWVudHMtZGVzaycsXG4gICdvbXJzLXBpY3QtcGhhcm1hY3knLFxuICAnb21ycy1waWN0LXBoYXJtYWN5LTInLFxuICAnb21ycy1waWN0LXJlZ2lzdHJhdGlvbicsXG4gICdvbXJzLXBpY3Qtc2VydmljZS1xdWV1ZXMnLFxuICAnb21ycy1waWN0LXN0b2NrLW1hbmFnZW1lbnQnLFxuICAnb21ycy1waWN0LXRyYW5zZmVyJyxcbiAgJ29tcnMtcGljdC10cmlhZ2UnLFxuICAnb21ycy1waWN0LXgtcmF5Jyxcbl0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFBpY3RvZ3JhbUlkID0gKHR5cGVvZiBwaWN0b2dyYW1JZHMpW251bWJlcl07XG5cbmV4cG9ydCB0eXBlIFBpY3RvZ3JhbVByb3BzID0ge1xuICBjbGFzc05hbWU/OiBBcmd1bWVudDtcbiAgc2l6ZT86IG51bWJlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBBcHBvaW50bWVudHNQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBBcHBvaW50bWVudHNQaWN0b2dyYW0ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09XCJvbXJzLXBpY3QtYXBwb2ludG1lbnRzXCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSBBcHBvaW50bWVudHNQaWN0b2dyYW0gaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgQXBwb2ludG1lbnRzQWx0UGljdG9ncmFtID0gQXBwb2ludG1lbnRzUGljdG9ncmFtO1xuXG5leHBvcnQgY29uc3QgQXNzZXNzbWVudDFQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBBc3Nlc3NtZW50MVBpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1hc3Nlc3NtZW50LTFcIiBwaWN0b2dyYW1Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbmV4cG9ydCBjb25zdCBBc3Nlc3NtZW50MlBpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIEFzc2Vzc21lbnQyUGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LWFzc2Vzc21lbnQtMlwiIHBpY3RvZ3JhbVByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuZXhwb3J0IGNvbnN0IEJsb29kQmFua1BpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIEJsb29kQmFua1BpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1ibG9vZC1iYW5rXCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgQ2FyZGlvbG9neVBpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIENhcmRpb2xvZ3lQaWN0b2dyYW0ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09XCJvbXJzLXBpY3QtY2FyZGlvbG9neVwiIHBpY3RvZ3JhbVByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuZXhwb3J0IGNvbnN0IEN0U2NhblBpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIEN0U2NhblBpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1jdC1zY2FuXCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgRGVudGlzdHJ5UGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gRGVudGlzdHJ5UGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LWRlbnRpc3RyeVwiIHBpY3RvZ3JhbVByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuZXhwb3J0IGNvbnN0IEVtZXJnZW5jeURlcGFydG1lbnRQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBFbWVyZ2VuY3lEZXBhcnRtZW50UGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LWVtZXJnZW5jeS1kZXBhcnRtZW50XCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgRmFjaWxpdHlQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBGYWNpbGl0eVBpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1mYWNpbGl0eVwiIHBpY3RvZ3JhbVByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuZXhwb3J0IGNvbnN0IEdlcmlhdHJpY3NQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBHZXJpYXRyaWNzUGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LWdlcmlhdHJpY3NcIiBwaWN0b2dyYW1Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbmV4cG9ydCBjb25zdCBHeW5hZWNvbG9neVBpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIEd5bmFlY29sb2d5UGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LWd5bmFlY29sb2d5XCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgSW5QYXRpZW50UGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gSW5QYXRpZW50UGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LWluLXBhdGllbnRcIiBwaWN0b2dyYW1Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbmV4cG9ydCBjb25zdCBMYWJvcmF0b3J5UGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gTGFib3JhdG9yeVBpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1sYWJvcmF0b3J5XCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgTGFiczJQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBMYWJzMlBpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1sYWJzLTJcIiBwaWN0b2dyYW1Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbmV4cG9ydCBjb25zdCBPYnN0ZXRyaWNzUGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gT2JzdGV0cmljc1BpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1vYnN0ZXRyaWNzXCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgUGF0aWVudFNlYXJjaFBpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIFBhdGllbnRTZWFyY2hQaWN0b2dyYW0ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09XCJvbXJzLXBpY3QtcGF0aWVudC1zZWFyY2hcIiBwaWN0b2dyYW1Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbmV4cG9ydCBjb25zdCBQYXRpZW50c1BpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIFBhdGllbnRzUGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LXBhdGllbnRzXCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgUGF5bWVudHNEZXNrUGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gUGF5bWVudHNEZXNrUGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LXBheW1lbnRzLWRlc2tcIiBwaWN0b2dyYW1Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbmV4cG9ydCBjb25zdCBQaGFybWFjeVBpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIFBoYXJtYWN5UGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LXBoYXJtYWN5XCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgUGhhcm1hY3kyUGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gUGhhcm1hY3kyUGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LXBoYXJtYWN5LTJcIiBwaWN0b2dyYW1Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbmV4cG9ydCBjb25zdCBSZWdpc3RyYXRpb25QaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBSZWdpc3RyYXRpb25QaWN0b2dyYW0ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09XCJvbXJzLXBpY3QtcmVnaXN0cmF0aW9uXCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgU2VydmljZVF1ZXVlc1BpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIFNlcnZpY2VRdWV1ZXNQaWN0b2dyYW0ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09XCJvbXJzLXBpY3Qtc2VydmljZS1xdWV1ZXNcIiBwaWN0b2dyYW1Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbmV4cG9ydCBjb25zdCBTdG9ja01hbmFnZW1lbnRQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBTdG9ja01hbmFnZW1lbnRQaWN0b2dyYW0ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09XCJvbXJzLXBpY3Qtc3RvY2stbWFuYWdlbWVudFwiIHBpY3RvZ3JhbVByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuZXhwb3J0IGNvbnN0IFRyYW5zZmVyUGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gVHJhbnNmZXJQaWN0b2dyYW0ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09XCJvbXJzLXBpY3QtdHJhbnNmZXJcIiBwaWN0b2dyYW1Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbmV4cG9ydCBjb25zdCBUcmlhZ2VQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBUcmlhZ2VQaWN0b2dyYW0ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09XCJvbXJzLXBpY3QtdHJpYWdlXCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgWHJheVBpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIFhyYXlQaWN0b2dyYW0ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09XCJvbXJzLXBpY3QteC1yYXlcIiBwaWN0b2dyYW1Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbi8vIFBpY3RvZ3JhbSBhbGlhc2VzIHRoYXQgYXJlIGEgbGl0dGxlIG1vcmUgYWxpZ25lZCB0byBzcGVjaWZpYyB1c2UtY2FzZXNcbi8vIHNob3VsZCBhbGwgcmVzb2x2ZSB0byBhIGRlZmluZWQgUmVhY3QgaWNvblxuXG5leHBvcnQgY29uc3QgSG9tZVBpY3RvZ3JhbSA9IEZhY2lsaXR5UGljdG9ncmFtO1xuXG5leHBvcnQgY29uc3QgUGF0aWVudExpc3RzUGljdG9ncmFtID0gUGF0aWVudHNQaWN0b2dyYW07XG5cbi8qKlxuICogVGhpcyBpcyBhIHV0aWxpdHkgY29tcG9uZW50IHRoYXQgdGFrZXMgYW4gYHBpY3RvZ3JhbWAgYW5kIHJlbmRlciBpdCBpZiB0aGUgc3ByaXRlIGZvciB0aGUgcGljdG9ncmFtXG4gKiBpcyBhdmFpbGFibGUuIFRoZSBnb2FsIGlzIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGNvbmRpdGlvbmFsbHkgcmVuZGVyIGNvbmZpZ3VyYXRpb24tc3BlY2lmaWVkIHBpY3RvZ3JhbXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogICA8TWF5YmVQaWN0b2dyYW0gcGljdG9ncmFtPSdvbXJzLWljb24tYmFieScgY2xhc3NOYW1lPXtzdHlsZXMubXlQaWN0b2dyYW1TdHlsZXN9IC8+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IE1heWJlUGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCB7IHBpY3RvZ3JhbTogUGljdG9ncmFtSWQ7IGZhbGxiYWNrPzogUmVhY3QuUmVhY3ROb2RlIH0gJiBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gTWF5YmVJY29uKFxuICAgIHsgcGljdG9ncmFtLCBmYWxsYmFjaywgLi4ucGljdG9ncmFtUHJvcHMgfSxcbiAgICByZWYsXG4gICkge1xuICAgIGNvbnN0IGljb25SZWYgPSB1c2VSZWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocGljdG9ncmFtKSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29tcnMtc3Zncy1jb250YWluZXInKTtcbiAgICAgIGNvbnN0IGNhbGxiYWNrOiBNdXRhdGlvbkNhbGxiYWNrID0gKG11dGF0aW9uTGlzdCkgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9uTGlzdCkge1xuICAgICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnY2hpbGRMaXN0Jykge1xuICAgICAgICAgICAgaWNvblJlZi5jdXJyZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocGljdG9ncmFtKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spO1xuICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGNvbnRhaW5lciwgeyBjaGlsZExpc3Q6IHRydWUgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfSwgW3BpY3RvZ3JhbV0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxSZW5kZXJJZlZhbHVlSXNUcnV0aHkgdmFsdWU9e2ljb25SZWYuY3VycmVudH0gZmFsbGJhY2s9e2ZhbGxiYWNrfT5cbiAgICAgICAgPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPXtwaWN0b2dyYW19IHBpY3RvZ3JhbVByb3BzPXtwaWN0b2dyYW1Qcm9wc30gLz5cbiAgICAgIDwvUmVuZGVySWZWYWx1ZUlzVHJ1dGh5PlxuICAgICk7XG4gIH0pLFxuKTtcblxuZXhwb3J0IHR5cGUgU3ZnUGljdG9ncmFtUHJvcHMgPSB7XG4gIC8qKiB0aGUgaWQgb2YgdGhlIHBpY3RvZ3JhbSAgKi9cbiAgcGljdG9ncmFtOiBQaWN0b2dyYW1JZDtcbiAgLyoqIHByb3BlcnRpZXMgd2hlbiB1c2luZyB0aGUgcGljdG9ncmFtICAqL1xuICBwaWN0b2dyYW1Qcm9wczogUGljdG9ncmFtUHJvcHM7XG59O1xuXG4vKipcbiAqIFRoaXMgaXMgYSB1dGlsaXR5IHR5cGUgZm9yIGN1c3RvbSBwaWN0b2dyYW1zLiBQbGVhc2UgbWFpbnRhaW4gYWxwaGFiZXRpY2FsIG9yZGVyIHdoZW4gYWRkaW5nIG5ldyBwaWN0b2dyYW1zIGZvciByZWFkYWJpbGl0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgU3ZnUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIFBpY3RvZ3JhbSh7IHBpY3RvZ3JhbSwgcGljdG9ncmFtUHJvcHMgfSwgcmVmKSB7XG4gICAgbGV0IHsgY2xhc3NOYW1lLCBzaXplIH0gPSBPYmplY3QuYXNzaWduKHt9LCB7IHNpemU6IDkyIH0sIHBpY3RvZ3JhbVByb3BzKTtcbiAgICBpZiAoc2l6ZSA8PSAyNiB8fCBzaXplID4gMTQ0KSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIHNpemUgJyR7c2l6ZX0nIHNwZWNpZmllZCBmb3IgJHtwaWN0b2dyYW19LiBEZWZhdWx0aW5nIHRvIDkyLmApO1xuICAgICAgc2l6ZSA9IDkyO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8c3ZnIHJlZj17cmVmfSBjbGFzc05hbWU9e2NsYXNzTmFtZXMoc3R5bGUucGljdG9ncmFtLCBjbGFzc05hbWUpfSBoZWlnaHQ9e3NpemV9IHdpZHRoPXtzaXplfT5cbiAgICAgICAgPHVzZSBocmVmPXtgIyR7cGljdG9ncmFtfWB9IC8+XG4gICAgICA8L3N2Zz5cbiAgICApO1xuICB9KSxcbik7XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJmb3J3YXJkUmVmIiwibWVtbyIsInVzZUVmZmVjdCIsInVzZVJlZiIsImNsYXNzTmFtZXMiLCJSZW5kZXJJZlZhbHVlSXNUcnV0aHkiLCJzdHlsZSIsInBpY3RvZ3JhbUlkcyIsIkFwcG9pbnRtZW50c1BpY3RvZ3JhbSIsInByb3BzIiwicmVmIiwiUGljdG9ncmFtIiwicGljdG9ncmFtIiwicGljdG9ncmFtUHJvcHMiLCJBcHBvaW50bWVudHNBbHRQaWN0b2dyYW0iLCJBc3Nlc3NtZW50MVBpY3RvZ3JhbSIsIkFzc2Vzc21lbnQyUGljdG9ncmFtIiwiQmxvb2RCYW5rUGljdG9ncmFtIiwiQ2FyZGlvbG9neVBpY3RvZ3JhbSIsIkN0U2NhblBpY3RvZ3JhbSIsIkRlbnRpc3RyeVBpY3RvZ3JhbSIsIkVtZXJnZW5jeURlcGFydG1lbnRQaWN0b2dyYW0iLCJGYWNpbGl0eVBpY3RvZ3JhbSIsIkdlcmlhdHJpY3NQaWN0b2dyYW0iLCJHeW5hZWNvbG9neVBpY3RvZ3JhbSIsIkluUGF0aWVudFBpY3RvZ3JhbSIsIkxhYm9yYXRvcnlQaWN0b2dyYW0iLCJMYWJzMlBpY3RvZ3JhbSIsIk9ic3RldHJpY3NQaWN0b2dyYW0iLCJQYXRpZW50U2VhcmNoUGljdG9ncmFtIiwiUGF0aWVudHNQaWN0b2dyYW0iLCJQYXltZW50c0Rlc2tQaWN0b2dyYW0iLCJQaGFybWFjeVBpY3RvZ3JhbSIsIlBoYXJtYWN5MlBpY3RvZ3JhbSIsIlJlZ2lzdHJhdGlvblBpY3RvZ3JhbSIsIlNlcnZpY2VRdWV1ZXNQaWN0b2dyYW0iLCJTdG9ja01hbmFnZW1lbnRQaWN0b2dyYW0iLCJUcmFuc2ZlclBpY3RvZ3JhbSIsIlRyaWFnZVBpY3RvZ3JhbSIsIlhyYXlQaWN0b2dyYW0iLCJIb21lUGljdG9ncmFtIiwiUGF0aWVudExpc3RzUGljdG9ncmFtIiwiTWF5YmVQaWN0b2dyYW0iLCJNYXliZUljb24iLCJmYWxsYmFjayIsImljb25SZWYiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiY29udGFpbmVyIiwiY2FsbGJhY2siLCJtdXRhdGlvbkxpc3QiLCJtdXRhdGlvbiIsInR5cGUiLCJjdXJyZW50Iiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwib2JzZXJ2ZSIsImNoaWxkTGlzdCIsImRpc2Nvbm5lY3QiLCJ2YWx1ZSIsIk9iamVjdCIsImFzc2lnbiIsInNpemUiLCJjbGFzc05hbWUiLCJjb25zb2xlIiwiZXJyb3IiLCJzdmciLCJoZWlnaHQiLCJ3aWR0aCIsInVzZSIsImhyZWYiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-styleguide/src/pictograms/pictograms.tsx\n");
|
|
1978
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AppointmentsAltPictogram: () => (/* binding */ AppointmentsAltPictogram),\n/* harmony export */ AppointmentsPictogram: () => (/* binding */ AppointmentsPictogram),\n/* harmony export */ Assessment1Pictogram: () => (/* binding */ Assessment1Pictogram),\n/* harmony export */ Assessment2Pictogram: () => (/* binding */ Assessment2Pictogram),\n/* harmony export */ BloodBankPictogram: () => (/* binding */ BloodBankPictogram),\n/* harmony export */ CardiologyPictogram: () => (/* binding */ CardiologyPictogram),\n/* harmony export */ CtScanPictogram: () => (/* binding */ CtScanPictogram),\n/* harmony export */ DentistryPictogram: () => (/* binding */ DentistryPictogram),\n/* harmony export */ EmergencyDepartmentPictogram: () => (/* binding */ EmergencyDepartmentPictogram),\n/* harmony export */ FacilityPictogram: () => (/* binding */ FacilityPictogram),\n/* harmony export */ GeriatricsPictogram: () => (/* binding */ GeriatricsPictogram),\n/* harmony export */ GynaecologyPictogram: () => (/* binding */ GynaecologyPictogram),\n/* harmony export */ HomePictogram: () => (/* binding */ HomePictogram),\n/* harmony export */ InPatientPictogram: () => (/* binding */ InPatientPictogram),\n/* harmony export */ LaboratoryPictogram: () => (/* binding */ LaboratoryPictogram),\n/* harmony export */ Labs2Pictogram: () => (/* binding */ Labs2Pictogram),\n/* harmony export */ MaybePictogram: () => (/* binding */ MaybePictogram),\n/* harmony export */ ObstetricsPictogram: () => (/* binding */ ObstetricsPictogram),\n/* harmony export */ PatientListsPictogram: () => (/* binding */ PatientListsPictogram),\n/* harmony export */ PatientSearchPictogram: () => (/* binding */ PatientSearchPictogram),\n/* harmony export */ PatientsPictogram: () => (/* binding */ PatientsPictogram),\n/* harmony export */ PaymentsDeskPictogram: () => (/* binding */ PaymentsDeskPictogram),\n/* harmony export */ Pharmacy2Pictogram: () => (/* binding */ Pharmacy2Pictogram),\n/* harmony export */ PharmacyPictogram: () => (/* binding */ PharmacyPictogram),\n/* harmony export */ Pictogram: () => (/* binding */ Pictogram),\n/* harmony export */ RegistrationPictogram: () => (/* binding */ RegistrationPictogram),\n/* harmony export */ ServiceQueuesPictogram: () => (/* binding */ ServiceQueuesPictogram),\n/* harmony export */ StockManagementPictogram: () => (/* binding */ StockManagementPictogram),\n/* harmony export */ TransferPictogram: () => (/* binding */ TransferPictogram),\n/* harmony export */ TriagePictogram: () => (/* binding */ TriagePictogram),\n/* harmony export */ XrayPictogram: () => (/* binding */ XrayPictogram),\n/* harmony export */ pictogramIds: () => (/* binding */ pictogramIds)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ \"../../../node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @openmrs/esm-react-utils */ \"../../framework/esm-react-utils/dist/index.js\");\n/* harmony import */ var _pictograms_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pictograms.module.scss */ \"../../framework/esm-styleguide/src/pictograms/pictograms.module.scss\");\n/** @category Pictograms */ function _object_without_properties(source, excluded) {\n if (source == null) return {};\n var target = _object_without_properties_loose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\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 return target;\n}\nfunction _object_without_properties_loose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}\n\n\n\n\nvar pictogramIds = [\n 'omrs-pict-appointments',\n 'omrs-pict-assessment-1',\n 'omrs-pict-assessment-2',\n 'omrs-pict-blood-bank',\n 'omrs-pict-cardiology',\n 'omrs-pict-ct-scan',\n 'omrs-pict-dentistry',\n 'omrs-pict-emergency-department',\n 'omrs-pict-facility',\n 'omrs-pict-geriatrics',\n 'omrs-pict-gynaecology',\n 'omrs-pict-in-patient',\n 'omrs-pict-laboratory',\n 'omrs-pict-labs-2',\n 'omrs-pict-obstetrics',\n 'omrs-pict-patient-search',\n 'omrs-pict-patients',\n 'omrs-pict-payments-desk',\n 'omrs-pict-pharmacy',\n 'omrs-pict-pharmacy-2',\n 'omrs-pict-registration',\n 'omrs-pict-service-queues',\n 'omrs-pict-stock-management',\n 'omrs-pict-transfer',\n 'omrs-pict-triage',\n 'omrs-pict-x-ray'\n];\nvar AppointmentsPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function AppointmentsPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-appointments\",\n pictogramProps: props\n });\n}));\n/**\n * @deprecated use AppointmentsPictogram instead\n */ var AppointmentsAltPictogram = AppointmentsPictogram;\nvar Assessment1Pictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Assessment1Pictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-assessment-1\",\n pictogramProps: props\n });\n}));\nvar Assessment2Pictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Assessment2Pictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-assessment-2\",\n pictogramProps: props\n });\n}));\nvar BloodBankPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function BloodBankPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-blood-bank\",\n pictogramProps: props\n });\n}));\nvar CardiologyPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CardiologyPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-cardiology\",\n pictogramProps: props\n });\n}));\nvar CtScanPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function CtScanPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-ct-scan\",\n pictogramProps: props\n });\n}));\nvar DentistryPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function DentistryPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-dentistry\",\n pictogramProps: props\n });\n}));\nvar EmergencyDepartmentPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function EmergencyDepartmentPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-emergency-department\",\n pictogramProps: props\n });\n}));\nvar FacilityPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function FacilityPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-facility\",\n pictogramProps: props\n });\n}));\nvar GeriatricsPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GeriatricsPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-geriatrics\",\n pictogramProps: props\n });\n}));\nvar GynaecologyPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function GynaecologyPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-gynaecology\",\n pictogramProps: props\n });\n}));\nvar InPatientPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function InPatientPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-in-patient\",\n pictogramProps: props\n });\n}));\nvar LaboratoryPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function LaboratoryPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-laboratory\",\n pictogramProps: props\n });\n}));\nvar Labs2Pictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Labs2Pictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-labs-2\",\n pictogramProps: props\n });\n}));\nvar ObstetricsPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ObstetricsPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-obstetrics\",\n pictogramProps: props\n });\n}));\nvar PatientSearchPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function PatientSearchPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-patient-search\",\n pictogramProps: props\n });\n}));\nvar PatientsPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function PatientsPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-patients\",\n pictogramProps: props\n });\n}));\nvar PaymentsDeskPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function PaymentsDeskPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-payments-desk\",\n pictogramProps: props\n });\n}));\nvar PharmacyPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function PharmacyPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-pharmacy\",\n pictogramProps: props\n });\n}));\nvar Pharmacy2Pictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Pharmacy2Pictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-pharmacy-2\",\n pictogramProps: props\n });\n}));\nvar RegistrationPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function RegistrationPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-registration\",\n pictogramProps: props\n });\n}));\nvar ServiceQueuesPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ServiceQueuesPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-service-queues\",\n pictogramProps: props\n });\n}));\nvar StockManagementPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function StockManagementPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-stock-management\",\n pictogramProps: props\n });\n}));\nvar TransferPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function TransferPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-transfer\",\n pictogramProps: props\n });\n}));\nvar TriagePictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function TriagePictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-triage\",\n pictogramProps: props\n });\n}));\nvar XrayPictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function XrayPictogram(props, ref) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: \"omrs-pict-x-ray\",\n pictogramProps: props\n });\n}));\n// Pictogram aliases that are a little more aligned to specific use-cases\n// should all resolve to a defined React icon\nvar HomePictogram = FacilityPictogram;\nvar PatientListsPictogram = PatientsPictogram;\n/**\n * This is a utility component that takes an `pictogram` and render it if the sprite for the pictogram\n * is available. The goal is to make it easier to conditionally render configuration-specified pictograms.\n *\n * @example\n * ```tsx\n * <MaybePictogram pictogram='omrs-icon-baby' className={styles.myPictogramStyles} />\n * ```\n */ var MaybePictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function MaybeIcon(_param, ref) {\n var pictogram = _param.pictogram, fallback = _param.fallback, pictogramProps = _object_without_properties(_param, [\n \"pictogram\",\n \"fallback\"\n ]);\n var iconRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(document.getElementById(pictogram));\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n var container = document.getElementById('omrs-svgs-container');\n var callback = function(mutationList) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = mutationList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var mutation = _step.value;\n if (mutation.type === 'childList') {\n iconRef.current = document.getElementById(pictogram);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n var observer = new MutationObserver(callback);\n if (container) {\n observer.observe(container, {\n childList: true\n });\n }\n return function() {\n return observer.disconnect();\n };\n }, [\n pictogram\n ]);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.RenderIfValueIsTruthy, {\n value: iconRef.current,\n fallback: fallback\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Pictogram, {\n ref: ref,\n pictogram: pictogram,\n pictogramProps: pictogramProps\n }));\n}));\n/**\n * This is a utility type for custom pictograms. Please maintain alphabetical order when adding new pictograms for readability.\n */ var Pictogram = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Pictogram(param, ref) {\n var pictogram = param.pictogram, pictogramProps = param.pictogramProps;\n var _Object_assign = Object.assign({}, {\n size: 92\n }, pictogramProps), className = _Object_assign.className, size = _Object_assign.size;\n if (size <= 26 || size > 144) {\n console.error(\"Invalid size '\".concat(size, \"' specified for \").concat(pictogram, \". Defaulting to 92.\"));\n size = 92;\n }\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"svg\", {\n ref: ref,\n className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(_pictograms_module_scss__WEBPACK_IMPORTED_MODULE_3__[\"default\"].pictogram, className),\n height: size,\n width: size\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"use\", {\n href: \"#\".concat(pictogram)\n }));\n}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL3NyYy9waWN0b2dyYW1zL3BpY3RvZ3JhbXMudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUJBQXlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDMEM7QUFDWjtBQUNVO0FBQ3BCO0FBRXRDLElBQU1RLGVBQWU7SUFDMUI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNELENBQVU7QUFTSixJQUFNQyxzQ0FBd0JQLDJDQUFJQSxlQUN2Q0QsaURBQVVBLENBQWdDLFNBQVNRLHNCQUFzQkMsS0FBSyxFQUFFQyxHQUFHO0lBQ2pGLHFCQUFPLDJEQUFDQztRQUFVRCxLQUFLQTtRQUFLRSxXQUFVO1FBQXlCQyxnQkFBZ0JKOztBQUNqRixJQUNBO0FBRUY7O0NBRUMsR0FDTSxJQUFNSywyQkFBMkJOLHNCQUFzQjtBQUV2RCxJQUFNTyxxQ0FBdUJkLDJDQUFJQSxlQUN0Q0QsaURBQVVBLENBQWdDLFNBQVNlLHFCQUFxQk4sS0FBSyxFQUFFQyxHQUFHO0lBQ2hGLHFCQUFPLDJEQUFDQztRQUFVRCxLQUFLQTtRQUFLRSxXQUFVO1FBQXlCQyxnQkFBZ0JKOztBQUNqRixJQUNBO0FBRUssSUFBTU8scUNBQXVCZiwyQ0FBSUEsZUFDdENELGlEQUFVQSxDQUFnQyxTQUFTZ0IscUJBQXFCUCxLQUFLLEVBQUVDLEdBQUc7SUFDaEYscUJBQU8sMkRBQUNDO1FBQVVELEtBQUtBO1FBQUtFLFdBQVU7UUFBeUJDLGdCQUFnQko7O0FBQ2pGLElBQ0E7QUFFSyxJQUFNUSxtQ0FBcUJoQiwyQ0FBSUEsZUFDcENELGlEQUFVQSxDQUFnQyxTQUFTaUIsbUJBQW1CUixLQUFLLEVBQUVD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UUFDaEVrRCxPQUFPO0lBQ1Q7SUFFQSxxQkFDRSwyREFBQ0k7UUFBSXhELEtBQUtBO1FBQUtxRCxXQUFXM0QsaURBQVVBLENBQUNFLCtEQUFLQSxDQUFDTSxTQUFTLEVBQUVtRDtRQUFZSSxRQUFRTDtRQUFNTSxPQUFPTjtxQkFDckYsMkRBQUNPO1FBQUlDLE1BQU0sSUFBYyxPQUFWMUQ7O0FBR3JCLElBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tc3R5bGVndWlkZS9zcmMvcGljdG9ncmFtcy9waWN0b2dyYW1zLnRzeD81MDdiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAY2F0ZWdvcnkgUGljdG9ncmFtcyAqL1xuaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIG1lbW8sIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzTmFtZXMsIHsgdHlwZSBBcmd1bWVudCB9IGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgUmVuZGVySWZWYWx1ZUlzVHJ1dGh5IH0gZnJvbSAnQG9wZW5tcnMvZXNtLXJlYWN0LXV0aWxzJztcbmltcG9ydCBzdHlsZSBmcm9tICcuL3BpY3RvZ3JhbXMubW9kdWxlLnNjc3MnO1xuXG5leHBvcnQgY29uc3QgcGljdG9ncmFtSWRzID0gW1xuICAnb21ycy1waWN0LWFwcG9pbnRtZW50cycsXG4gICdvbXJzLXBpY3QtYXNzZXNzbWVudC0xJyxcbiAgJ29tcnMtcGljdC1hc3Nlc3NtZW50LTInLFxuICAnb21ycy1waWN0LWJsb29kLWJhbmsnLFxuICAnb21ycy1waWN0LWNhcmRpb2xvZ3knLFxuICAnb21ycy1waWN0LWN0LXNjYW4nLFxuICAnb21ycy1waWN0LWRlbnRpc3RyeScsXG4gICdvbXJzLXBpY3QtZW1lcmdlbmN5LWRlcGFydG1lbnQnLFxuICAnb21ycy1waWN0LWZhY2lsaXR5JyxcbiAgJ29tcnMtcGljdC1nZXJpYXRyaWNzJyxcbiAgJ29tcnMtcGljdC1neW5hZWNvbG9neScsXG4gICdvbXJzLXBpY3QtaW4tcGF0aWVudCcsXG4gICdvbXJzLXBpY3QtbGFib3JhdG9yeScsXG4gICdvbXJzLXBpY3QtbGFicy0yJyxcbiAgJ29tcnMtcGljdC1vYnN0ZXRyaWNzJyxcbiAgJ29tcnMtcGljdC1wYXRpZW50LXNlYXJjaCcsXG4gICdvbXJzLXBpY3QtcGF0aWVudHMnLFxuICAnb21ycy1waWN0LXBheW1lbnRzLWRlc2snLFxuICAnb21ycy1waWN0LXBoYXJtYWN5JyxcbiAgJ29tcnMtcGljdC1waGFybWFjeS0yJyxcbiAgJ29tcnMtcGljdC1yZWdpc3RyYXRpb24nLFxuICAnb21ycy1waWN0LXNlcnZpY2UtcXVldWVzJyxcbiAgJ29tcnMtcGljdC1zdG9jay1tYW5hZ2VtZW50JyxcbiAgJ29tcnMtcGljdC10cmFuc2ZlcicsXG4gICdvbXJzLXBpY3QtdHJpYWdlJyxcbiAgJ29tcnMtcGljdC14LXJheScsXG5dIGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBQaWN0b2dyYW1JZCA9ICh0eXBlb2YgcGljdG9ncmFtSWRzKVtudW1iZXJdO1xuXG5leHBvcnQgdHlwZSBQaWN0b2dyYW1Qcm9wcyA9IHtcbiAgY2xhc3NOYW1lPzogQXJndW1lbnQ7XG4gIHNpemU/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgY29uc3QgQXBwb2ludG1lbnRzUGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gQXBwb2ludG1lbnRzUGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LWFwcG9pbnRtZW50c1wiIHBpY3RvZ3JhbVByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgQXBwb2ludG1lbnRzUGljdG9ncmFtIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IEFwcG9pbnRtZW50c0FsdFBpY3RvZ3JhbSA9IEFwcG9pbnRtZW50c1BpY3RvZ3JhbTtcblxuZXhwb3J0IGNvbnN0IEFzc2Vzc21lbnQxUGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gQXNzZXNzbWVudDFQaWN0b2dyYW0ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09XCJvbXJzLXBpY3QtYXNzZXNzbWVudC0xXCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgQXNzZXNzbWVudDJQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBBc3Nlc3NtZW50MlBpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1hc3Nlc3NtZW50LTJcIiBwaWN0b2dyYW1Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbmV4cG9ydCBjb25zdCBCbG9vZEJhbmtQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBCbG9vZEJhbmtQaWN0b2dyYW0ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09XCJvbXJzLXBpY3QtYmxvb2QtYmFua1wiIHBpY3RvZ3JhbVByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuZXhwb3J0IGNvbnN0IENhcmRpb2xvZ3lQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBDYXJkaW9sb2d5UGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LWNhcmRpb2xvZ3lcIiBwaWN0b2dyYW1Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbmV4cG9ydCBjb25zdCBDdFNjYW5QaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBDdFNjYW5QaWN0b2dyYW0ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09XCJvbXJzLXBpY3QtY3Qtc2NhblwiIHBpY3RvZ3JhbVByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuZXhwb3J0IGNvbnN0IERlbnRpc3RyeVBpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIERlbnRpc3RyeVBpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1kZW50aXN0cnlcIiBwaWN0b2dyYW1Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbmV4cG9ydCBjb25zdCBFbWVyZ2VuY3lEZXBhcnRtZW50UGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gRW1lcmdlbmN5RGVwYXJ0bWVudFBpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1lbWVyZ2VuY3ktZGVwYXJ0bWVudFwiIHBpY3RvZ3JhbVByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuZXhwb3J0IGNvbnN0IEZhY2lsaXR5UGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gRmFjaWxpdHlQaWN0b2dyYW0ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09XCJvbXJzLXBpY3QtZmFjaWxpdHlcIiBwaWN0b2dyYW1Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbmV4cG9ydCBjb25zdCBHZXJpYXRyaWNzUGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gR2VyaWF0cmljc1BpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1nZXJpYXRyaWNzXCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgR3luYWVjb2xvZ3lQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBHeW5hZWNvbG9neVBpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1neW5hZWNvbG9neVwiIHBpY3RvZ3JhbVByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuZXhwb3J0IGNvbnN0IEluUGF0aWVudFBpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIEluUGF0aWVudFBpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1pbi1wYXRpZW50XCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgTGFib3JhdG9yeVBpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIExhYm9yYXRvcnlQaWN0b2dyYW0ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09XCJvbXJzLXBpY3QtbGFib3JhdG9yeVwiIHBpY3RvZ3JhbVByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuZXhwb3J0IGNvbnN0IExhYnMyUGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gTGFiczJQaWN0b2dyYW0ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09XCJvbXJzLXBpY3QtbGFicy0yXCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgT2JzdGV0cmljc1BpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIE9ic3RldHJpY3NQaWN0b2dyYW0ocHJvcHMsIHJlZikge1xuICAgIHJldHVybiA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09XCJvbXJzLXBpY3Qtb2JzdGV0cmljc1wiIHBpY3RvZ3JhbVByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuZXhwb3J0IGNvbnN0IFBhdGllbnRTZWFyY2hQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBQYXRpZW50U2VhcmNoUGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LXBhdGllbnQtc2VhcmNoXCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgUGF0aWVudHNQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBQYXRpZW50c1BpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1wYXRpZW50c1wiIHBpY3RvZ3JhbVByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuZXhwb3J0IGNvbnN0IFBheW1lbnRzRGVza1BpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIFBheW1lbnRzRGVza1BpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1wYXltZW50cy1kZXNrXCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgUGhhcm1hY3lQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBQaGFybWFjeVBpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1waGFybWFjeVwiIHBpY3RvZ3JhbVByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuZXhwb3J0IGNvbnN0IFBoYXJtYWN5MlBpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIFBoYXJtYWN5MlBpY3RvZ3JhbShwcm9wcywgcmVmKSB7XG4gICAgcmV0dXJuIDxQaWN0b2dyYW0gcmVmPXtyZWZ9IHBpY3RvZ3JhbT1cIm9tcnMtcGljdC1waGFybWFjeS0yXCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgUmVnaXN0cmF0aW9uUGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gUmVnaXN0cmF0aW9uUGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LXJlZ2lzdHJhdGlvblwiIHBpY3RvZ3JhbVByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuZXhwb3J0IGNvbnN0IFNlcnZpY2VRdWV1ZXNQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBTZXJ2aWNlUXVldWVzUGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LXNlcnZpY2UtcXVldWVzXCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgU3RvY2tNYW5hZ2VtZW50UGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gU3RvY2tNYW5hZ2VtZW50UGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LXN0b2NrLW1hbmFnZW1lbnRcIiBwaWN0b2dyYW1Qcm9wcz17cHJvcHN9IC8+O1xuICB9KSxcbik7XG5cbmV4cG9ydCBjb25zdCBUcmFuc2ZlclBpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgUGljdG9ncmFtUHJvcHM+KGZ1bmN0aW9uIFRyYW5zZmVyUGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LXRyYW5zZmVyXCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG5leHBvcnQgY29uc3QgVHJpYWdlUGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gVHJpYWdlUGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LXRyaWFnZVwiIHBpY3RvZ3JhbVByb3BzPXtwcm9wc30gLz47XG4gIH0pLFxuKTtcblxuZXhwb3J0IGNvbnN0IFhyYXlQaWN0b2dyYW0gPSBtZW1vKFxuICBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBYcmF5UGljdG9ncmFtKHByb3BzLCByZWYpIHtcbiAgICByZXR1cm4gPFBpY3RvZ3JhbSByZWY9e3JlZn0gcGljdG9ncmFtPVwib21ycy1waWN0LXgtcmF5XCIgcGljdG9ncmFtUHJvcHM9e3Byb3BzfSAvPjtcbiAgfSksXG4pO1xuXG4vLyBQaWN0b2dyYW0gYWxpYXNlcyB0aGF0IGFyZSBhIGxpdHRsZSBtb3JlIGFsaWduZWQgdG8gc3BlY2lmaWMgdXNlLWNhc2VzXG4vLyBzaG91bGQgYWxsIHJlc29sdmUgdG8gYSBkZWZpbmVkIFJlYWN0IGljb25cblxuZXhwb3J0IGNvbnN0IEhvbWVQaWN0b2dyYW0gPSBGYWNpbGl0eVBpY3RvZ3JhbTtcblxuZXhwb3J0IGNvbnN0IFBhdGllbnRMaXN0c1BpY3RvZ3JhbSA9IFBhdGllbnRzUGljdG9ncmFtO1xuXG4vKipcbiAqIFRoaXMgaXMgYSB1dGlsaXR5IGNvbXBvbmVudCB0aGF0IHRha2VzIGFuIGBwaWN0b2dyYW1gIGFuZCByZW5kZXIgaXQgaWYgdGhlIHNwcml0ZSBmb3IgdGhlIHBpY3RvZ3JhbVxuICogaXMgYXZhaWxhYmxlLiBUaGUgZ29hbCBpcyB0byBtYWtlIGl0IGVhc2llciB0byBjb25kaXRpb25hbGx5IHJlbmRlciBjb25maWd1cmF0aW9uLXNwZWNpZmllZCBwaWN0b2dyYW1zLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqICAgPE1heWJlUGljdG9ncmFtIHBpY3RvZ3JhbT0nb21ycy1pY29uLWJhYnknIGNsYXNzTmFtZT17c3R5bGVzLm15UGljdG9ncmFtU3R5bGVzfSAvPlxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBNYXliZVBpY3RvZ3JhbSA9IG1lbW8oXG4gIGZvcndhcmRSZWY8U1ZHU1ZHRWxlbWVudCwgeyBwaWN0b2dyYW06IHN0cmluZzsgZmFsbGJhY2s/OiBSZWFjdC5SZWFjdE5vZGUgfSAmIFBpY3RvZ3JhbVByb3BzPihmdW5jdGlvbiBNYXliZUljb24oXG4gICAgeyBwaWN0b2dyYW0sIGZhbGxiYWNrLCAuLi5waWN0b2dyYW1Qcm9wcyB9LFxuICAgIHJlZixcbiAgKSB7XG4gICAgY29uc3QgaWNvblJlZiA9IHVzZVJlZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwaWN0b2dyYW0pKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb21ycy1zdmdzLWNvbnRhaW5lcicpO1xuICAgICAgY29uc3QgY2FsbGJhY2s6IE11dGF0aW9uQ2FsbGJhY2sgPSAobXV0YXRpb25MaXN0KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25MaXN0KSB7XG4gICAgICAgICAgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgICBpY29uUmVmLmN1cnJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwaWN0b2dyYW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihjYWxsYmFjayk7XG4gICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgIG9ic2VydmVyLm9ic2VydmUoY29udGFpbmVyLCB7IGNoaWxkTGlzdDogdHJ1ZSB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9LCBbcGljdG9ncmFtXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFJlbmRlcklmVmFsdWVJc1RydXRoeSB2YWx1ZT17aWNvblJlZi5jdXJyZW50fSBmYWxsYmFjaz17ZmFsbGJhY2t9PlxuICAgICAgICA8UGljdG9ncmFtIHJlZj17cmVmfSBwaWN0b2dyYW09e3BpY3RvZ3JhbSBhcyBQaWN0b2dyYW1JZH0gcGljdG9ncmFtUHJvcHM9e3BpY3RvZ3JhbVByb3BzfSAvPlxuICAgICAgPC9SZW5kZXJJZlZhbHVlSXNUcnV0aHk+XG4gICAgKTtcbiAgfSksXG4pO1xuXG5leHBvcnQgdHlwZSBTdmdQaWN0b2dyYW1Qcm9wcyA9IHtcbiAgLyoqIHRoZSBpZCBvZiB0aGUgcGljdG9ncmFtICAqL1xuICBwaWN0b2dyYW06IFBpY3RvZ3JhbUlkO1xuICAvKiogcHJvcGVydGllcyB3aGVuIHVzaW5nIHRoZSBwaWN0b2dyYW0gICovXG4gIHBpY3RvZ3JhbVByb3BzOiBQaWN0b2dyYW1Qcm9wcztcbn07XG5cbi8qKlxuICogVGhpcyBpcyBhIHV0aWxpdHkgdHlwZSBmb3IgY3VzdG9tIHBpY3RvZ3JhbXMuIFBsZWFzZSBtYWludGFpbiBhbHBoYWJldGljYWwgb3JkZXIgd2hlbiBhZGRpbmcgbmV3IHBpY3RvZ3JhbXMgZm9yIHJlYWRhYmlsaXR5LlxuICovXG5leHBvcnQgY29uc3QgUGljdG9ncmFtID0gbWVtbyhcbiAgZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBTdmdQaWN0b2dyYW1Qcm9wcz4oZnVuY3Rpb24gUGljdG9ncmFtKHsgcGljdG9ncmFtLCBwaWN0b2dyYW1Qcm9wcyB9LCByZWYpIHtcbiAgICBsZXQgeyBjbGFzc05hbWUsIHNpemUgfSA9IE9iamVjdC5hc3NpZ24oe30sIHsgc2l6ZTogOTIgfSwgcGljdG9ncmFtUHJvcHMpO1xuICAgIGlmIChzaXplIDw9IDI2IHx8IHNpemUgPiAxNDQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgc2l6ZSAnJHtzaXplfScgc3BlY2lmaWVkIGZvciAke3BpY3RvZ3JhbX0uIERlZmF1bHRpbmcgdG8gOTIuYCk7XG4gICAgICBzaXplID0gOTI7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxzdmcgcmVmPXtyZWZ9IGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhzdHlsZS5waWN0b2dyYW0sIGNsYXNzTmFtZSl9IGhlaWdodD17c2l6ZX0gd2lkdGg9e3NpemV9PlxuICAgICAgICA8dXNlIGhyZWY9e2AjJHtwaWN0b2dyYW19YH0gLz5cbiAgICAgIDwvc3ZnPlxuICAgICk7XG4gIH0pLFxuKTtcbiJdLCJuYW1lcyI6WyJSZWFjdCIsImZvcndhcmRSZWYiLCJtZW1vIiwidXNlRWZmZWN0IiwidXNlUmVmIiwiY2xhc3NOYW1lcyIsIlJlbmRlcklmVmFsdWVJc1RydXRoeSIsInN0eWxlIiwicGljdG9ncmFtSWRzIiwiQXBwb2ludG1lbnRzUGljdG9ncmFtIiwicHJvcHMiLCJyZWYiLCJQaWN0b2dyYW0iLCJwaWN0b2dyYW0iLCJwaWN0b2dyYW1Qcm9wcyIsIkFwcG9pbnRtZW50c0FsdFBpY3RvZ3JhbSIsIkFzc2Vzc21lbnQxUGljdG9ncmFtIiwiQXNzZXNzbWVudDJQaWN0b2dyYW0iLCJCbG9vZEJhbmtQaWN0b2dyYW0iLCJDYXJkaW9sb2d5UGljdG9ncmFtIiwiQ3RTY2FuUGljdG9ncmFtIiwiRGVudGlzdHJ5UGljdG9ncmFtIiwiRW1lcmdlbmN5RGVwYXJ0bWVudFBpY3RvZ3JhbSIsIkZhY2lsaXR5UGljdG9ncmFtIiwiR2VyaWF0cmljc1BpY3RvZ3JhbSIsIkd5bmFlY29sb2d5UGljdG9ncmFtIiwiSW5QYXRpZW50UGljdG9ncmFtIiwiTGFib3JhdG9yeVBpY3RvZ3JhbSIsIkxhYnMyUGljdG9ncmFtIiwiT2JzdGV0cmljc1BpY3RvZ3JhbSIsIlBhdGllbnRTZWFyY2hQaWN0b2dyYW0iLCJQYXRpZW50c1BpY3RvZ3JhbSIsIlBheW1lbnRzRGVza1BpY3RvZ3JhbSIsIlBoYXJtYWN5UGljdG9ncmFtIiwiUGhhcm1hY3kyUGljdG9ncmFtIiwiUmVnaXN0cmF0aW9uUGljdG9ncmFtIiwiU2VydmljZVF1ZXVlc1BpY3RvZ3JhbSIsIlN0b2NrTWFuYWdlbWVudFBpY3RvZ3JhbSIsIlRyYW5zZmVyUGljdG9ncmFtIiwiVHJpYWdlUGljdG9ncmFtIiwiWHJheVBpY3RvZ3JhbSIsIkhvbWVQaWN0b2dyYW0iLCJQYXRpZW50TGlzdHNQaWN0b2dyYW0iLCJNYXliZVBpY3RvZ3JhbSIsIk1heWJlSWNvbiIsImZhbGxiYWNrIiwiaWNvblJlZiIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJjb250YWluZXIiLCJjYWxsYmFjayIsIm11dGF0aW9uTGlzdCIsIm11dGF0aW9uIiwidHlwZSIsImN1cnJlbnQiLCJvYnNlcnZlciIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJvYnNlcnZlIiwiY2hpbGRMaXN0IiwiZGlzY29ubmVjdCIsInZhbHVlIiwiT2JqZWN0IiwiYXNzaWduIiwic2l6ZSIsImNsYXNzTmFtZSIsImNvbnNvbGUiLCJlcnJvciIsInN2ZyIsImhlaWdodCIsIndpZHRoIiwidXNlIiwiaHJlZiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-styleguide/src/pictograms/pictograms.tsx\n");
|
|
1979
1979
|
|
|
1980
1980
|
/***/ }),
|
|
1981
1981
|
|
|
@@ -2195,7 +2195,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2195
2195
|
\*******************************************************************/
|
|
2196
2196
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2197
2197
|
|
|
2198
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ canCloseWorkspaceWithoutPrompting: () => (/* binding */ canCloseWorkspaceWithoutPrompting),\n/* harmony export */ cancelPrompt: () => (/* binding */ cancelPrompt),\n/* harmony export */ changeWorkspaceContext: () => (/* binding */ changeWorkspaceContext),\n/* harmony export */ closeAllWorkspaces: () => (/* binding */ closeAllWorkspaces),\n/* harmony export */ closeWorkspace: () => (/* binding */ closeWorkspace),\n/* harmony export */ getPromptBeforeClosingFcn: () => (/* binding */ getPromptBeforeClosingFcn),\n/* harmony export */ getWorkspaceGroupStore: () => (/* binding */ getWorkspaceGroupStore),\n/* harmony export */ getWorkspaceStore: () => (/* binding */ getWorkspaceStore),\n/* harmony export */ launchWorkspace: () => (/* binding */ launchWorkspace),\n/* harmony export */ launchWorkspaceGroup: () => (/* binding */ launchWorkspaceGroup),\n/* harmony export */ navigateAndLaunchWorkspace: () => (/* binding */ navigateAndLaunchWorkspace),\n/* harmony export */ promptBeforeClosing: () => (/* binding */ promptBeforeClosing),\n/* harmony export */ resetWorkspaceStore: () => (/* binding */ resetWorkspaceStore),\n/* harmony export */ showWorkspacePrompts: () => (/* binding */ showWorkspacePrompts),\n/* harmony export */ updateWorkspaceWindowState: () => (/* binding */ updateWorkspaceWindowState),\n/* harmony export */ useWorkspaces: () => (/* binding */ useWorkspaces),\n/* harmony export */ workspaceStore: () => (/* binding */ workspaceStore)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _openmrs_esm_extensions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @openmrs/esm-extensions */ \"../../framework/esm-extensions/dist/index.js\");\n/* harmony import */ var _openmrs_esm_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @openmrs/esm-navigation */ \"../../framework/esm-navigation/dist/index.js\");\n/* harmony import */ var _openmrs_esm_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @openmrs/esm-state */ \"../../framework/esm-state/dist/index.js\");\n/* harmony import */ var _openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @openmrs/esm-translations */ \"../../framework/esm-translations/dist/index.js\");\n/* harmony import */ var _openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @openmrs/esm-react-utils */ \"../../framework/esm-react-utils/dist/index.js\");\n/** @module @category Workspace */ function _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];\n return arr2;\n}\nfunction _array_without_holes(arr) {\n if (Array.isArray(arr)) return _array_like_to_array(arr);\n}\nfunction _define_property(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 return obj;\n}\nfunction _iterable_to_array(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _non_iterable_spread() {\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}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n 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 return target;\n}\nfunction _to_consumable_array(arr) {\n return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();\n}\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(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(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\n}\n\n\n\n\n\n\n/**\n *\n * @param name Name of the workspace\n * @param ignoreChanges If set to true, the \"unsaved changes\" modal will never be shown, even if the `promptBeforeClosing` function returns true. The user will not be prompted before closing.\n * @returns true if the workspace can be closed.\n */ function canCloseWorkspaceWithoutPrompting(name) {\n var ignoreChanges = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n if (ignoreChanges) {\n return true;\n }\n var promptBeforeFn = getPromptBeforeClosingFcn(name);\n return !promptBeforeFn || !promptBeforeFn();\n}\n/**\n * Closes a workspace group and performs cleanup operations.\n *\n * @param groupName - The name of the workspace group to close\n * @param onWorkspaceCloseup - Optional callback function to execute after closing the workspace group\n * @returns void, or exits early if the current workspace group name doesn't match the provided group name\n *\n * @remarks\n * This function performs the following operations:\n * - Validates if the provided group name matches the current workspace group\n * - Closes all workspaces associated with the group\n * - Clears the workspace group store state\n * - Executes cleanup function if defined in the workspace group\n * - Updates the main workspace store to remove the workspace group\n * - Calls the optional closeup callback if provided\n */ function closeWorkspaceGroup(groupName, onWorkspaceCloseup) {\n var _store_getState;\n var store = getWorkspaceStore();\n var currentWorkspaceGroup = (_store_getState = store.getState()) === null || _store_getState === void 0 ? void 0 : _store_getState.workspaceGroup;\n var currentGroupName = currentWorkspaceGroup === null || currentWorkspaceGroup === void 0 ? void 0 : currentWorkspaceGroup.name;\n if (!currentGroupName || groupName !== currentGroupName) {\n return;\n }\n var filter = currentGroupName ? function(workspace) {\n return workspace.currentWorkspaceGroup === currentGroupName;\n } : function() {\n return true;\n };\n closeAllWorkspaces(function() {\n // Clearing the workspace group and respective store if the new workspace is not part of the current group, which is handled in the `launchWorkspace` function.\n var workspaceGroupStore = getWorkspaceGroupStore(groupName);\n if (workspaceGroupStore) {\n workspaceGroupStore.setState({}, true);\n var unsubscribe = workspaceGroupStore.subscribe(function() {});\n unsubscribe();\n }\n if (typeof (currentWorkspaceGroup === null || currentWorkspaceGroup === void 0 ? void 0 : currentWorkspaceGroup.cleanup) === 'function') {\n currentWorkspaceGroup.cleanup();\n }\n store.setState(function(prev) {\n return _object_spread_props(_object_spread({}, prev), {\n workspaceGroup: undefined\n });\n });\n if (typeof onWorkspaceCloseup === 'function') {\n onWorkspaceCloseup();\n }\n }, filter);\n}\n/**\n * Launches a workspace group with the specified name and configuration.\n * If there are any open workspaces, it will first close them before launching the new workspace group.\n *\n * @param groupName - The name of the workspace group to launch\n * @param args - Configuration object for launching the workspace group\n * @param args.state - The initial state for the workspace group\n * @param args.onWorkspaceGroupLaunch - Optional callback function to be executed after the workspace group is launched\n * @param args.workspaceGroupCleanup - Optional cleanup function to be executed when the workspace group is closed\n *\n * @example\n * launchWorkspaceGroup(\"myGroup\", {\n * state: initialState,\n * onWorkspaceGroupLaunch: () => console.log(\"Workspace group launched\"),\n * workspaceGroupCleanup: () => console.log(\"Cleaning up workspace group\")\n * });\n */ function launchWorkspaceGroup(groupName, args) {\n var workspaceGroupRegistration = (0,_openmrs_esm_extensions__WEBPACK_IMPORTED_MODULE_1__.getWorkspaceGroupRegistration)(groupName);\n var state = args.state, onWorkspaceGroupLaunch = args.onWorkspaceGroupLaunch, workspaceGroupCleanup = args.workspaceGroupCleanup, workspaceToLaunch = args.workspaceToLaunch;\n var store = getWorkspaceStore();\n if (store.getState().openWorkspaces.length) {\n var workspaceGroup = store.getState().workspaceGroup;\n if (workspaceGroup) {\n closeWorkspaceGroup(workspaceGroup === null || workspaceGroup === void 0 ? void 0 : workspaceGroup.name, function() {\n launchWorkspaceGroup(groupName, args);\n });\n } else {\n closeAllWorkspaces(function() {\n launchWorkspaceGroup(groupName, args);\n });\n }\n } else {\n store.setState(function(prev) {\n return _object_spread_props(_object_spread({}, prev), {\n workspaceGroup: {\n name: groupName,\n members: workspaceGroupRegistration.members,\n cleanup: workspaceGroupCleanup\n }\n });\n });\n getWorkspaceGroupStore(groupName, state);\n onWorkspaceGroupLaunch === null || onWorkspaceGroupLaunch === void 0 ? void 0 : onWorkspaceGroupLaunch();\n if (workspaceToLaunch) {\n var _workspaceToLaunch_additionalProps;\n launchWorkspace(workspaceToLaunch.name, (_workspaceToLaunch_additionalProps = workspaceToLaunch.additionalProps) !== null && _workspaceToLaunch_additionalProps !== void 0 ? _workspaceToLaunch_additionalProps : {});\n }\n }\n}\nfunction promptBeforeLaunchingWorkspace(workspace, newWorkspaceDetails) {\n var name = newWorkspaceDetails.name, additionalProps = newWorkspaceDetails.additionalProps;\n var newWorkspaceRegistration = (0,_openmrs_esm_extensions__WEBPACK_IMPORTED_MODULE_1__.getWorkspaceRegistration)(name);\n var proceed = function() {\n closeWorkspace(workspace.name, {\n ignoreChanges: true,\n // Calling the launchWorkspace again, since one of the `if` case\n // might resolve, but we need to check all the cases before launching the form.\n onWorkspaceClose: function() {\n return launchWorkspace(name, additionalProps);\n },\n // If the new workspace is of the same sidebar group, then we don't need to clear the workspace group store.\n closeWorkspaceGroup: false\n });\n };\n if (!canCloseWorkspaceWithoutPrompting(workspace.name)) {\n var _workspace_title;\n showWorkspacePrompts('closing-workspace-launching-new-workspace', proceed, (_workspace_title = workspace.title) !== null && _workspace_title !== void 0 ? _workspace_title : workspace.name);\n } else {\n proceed();\n }\n}\n/**\n * This launches a workspace by its name. The workspace must have been registered.\n * Workspaces should be registered in the `routes.json` file.\n *\n * For the workspace to appear, there must be either a `<WorkspaceOverlay />` or\n * a `<WorkspaceWindow />` component rendered.\n *\n * The behavior of this function is as follows:\n *\n * - If no workspaces are open, or if no other workspaces with the same type are open,\n * it will be opened and focused.\n * - If a workspace with the same name is already open, it will be displayed/focused,\n * if it was not already.\n * - If a workspace is launched and a workspace which cannot be hidden is already open,\n * a confirmation modal will pop up warning about closing the currently open workspace.\n * - If another workspace with the same type is open, the workspace will be brought to\n * the front and then a confirmation modal will pop up warning about closing the opened\n * workspace\n *\n * Note that this function just manipulates the workspace store. The UI logic is handled\n * by the components that display workspaces.\n *\n * Additional props can be passed to the workspace component being launched. Passing a\n * prop named `workspaceTitle` will override the title of the workspace.\n *\n * @param name The name of the workspace to launch\n * @param additionalProps Props to pass to the workspace component being launched. Passing\n * a prop named `workspaceTitle` will override the title of the workspace.\n */ function launchWorkspace(name, additionalProps) {\n var _currentWorkspaceGroup_members, _store_getState_workspaceGroup;\n var store = getWorkspaceStore();\n var workspace = (0,_openmrs_esm_extensions__WEBPACK_IMPORTED_MODULE_1__.getWorkspaceRegistration)(name);\n var currentWorkspaceGroup = store.getState().workspaceGroup;\n if (currentWorkspaceGroup && !((_currentWorkspaceGroup_members = currentWorkspaceGroup.members) === null || _currentWorkspaceGroup_members === void 0 ? void 0 : _currentWorkspaceGroup_members.includes(name))) {\n closeWorkspaceGroup(currentWorkspaceGroup.name, function() {\n launchWorkspace(name, additionalProps);\n });\n return;\n }\n var currentGroupName = (_store_getState_workspaceGroup = store.getState().workspaceGroup) === null || _store_getState_workspaceGroup === void 0 ? void 0 : _store_getState_workspaceGroup.name;\n var newWorkspace = _object_spread_props(_object_spread({}, workspace), {\n title: getWorkspaceTitle(workspace, additionalProps),\n closeWorkspace: function() {\n var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n return closeWorkspace(name, options);\n },\n closeWorkspaceWithSavedChanges: function(options) {\n return closeWorkspace(name, _object_spread({\n ignoreChanges: true\n }, options));\n },\n promptBeforeClosing: function(testFcn) {\n return promptBeforeClosing(name, testFcn);\n },\n setTitle: function(title, titleNode) {\n newWorkspace.title = title;\n newWorkspace.titleNode = titleNode;\n store.setState(function(state) {\n var openWorkspaces = state.openWorkspaces.map(function(w) {\n return w.name === name ? newWorkspace : w;\n });\n return _object_spread_props(_object_spread({}, state), {\n openWorkspaces: openWorkspaces\n });\n });\n },\n currentWorkspaceGroup: currentGroupName,\n additionalProps: additionalProps !== null && additionalProps !== void 0 ? additionalProps : {}\n });\n if (currentGroupName) {\n getWorkspaceGroupStore(currentGroupName, additionalProps);\n }\n function updateStoreWithNewWorkspace(workspaceToBeAdded, restOfTheWorkspaces) {\n store.setState(function(state) {\n var openWorkspaces = [\n workspaceToBeAdded\n ].concat(_to_consumable_array(restOfTheWorkspaces !== null && restOfTheWorkspaces !== void 0 ? restOfTheWorkspaces : state.openWorkspaces));\n var workspaceWindowState = getUpdatedWorkspaceWindowState(workspaceToBeAdded);\n return _object_spread_props(_object_spread({}, state), {\n openWorkspaces: openWorkspaces,\n workspaceWindowState: workspaceWindowState\n });\n });\n }\n var openWorkspaces = store.getState().openWorkspaces;\n var workspaceIndexInOpenWorkspaces = openWorkspaces.findIndex(function(w) {\n return w.name === name;\n });\n var isWorkspaceAlreadyOpen = workspaceIndexInOpenWorkspaces >= 0;\n var openedWorkspaceWithSameType = openWorkspaces.find(function(w) {\n return w.type == newWorkspace.type;\n });\n if (openWorkspaces.length === 0) {\n updateStoreWithNewWorkspace(newWorkspace);\n } else if (!openWorkspaces[0].canHide && workspaceIndexInOpenWorkspaces !== 0) {\n promptBeforeLaunchingWorkspace(openWorkspaces[0], {\n name: name,\n additionalProps: additionalProps\n });\n } else if (isWorkspaceAlreadyOpen) {\n var openWorkspace = openWorkspaces[workspaceIndexInOpenWorkspaces];\n // Only update the title if it hasn't been set by `setTitle`\n if (openWorkspace.title === getWorkspaceTitle(openWorkspace, openWorkspace.additionalProps)) {\n openWorkspace.title = getWorkspaceTitle(newWorkspace, newWorkspace.additionalProps);\n }\n openWorkspace.additionalProps = newWorkspace.additionalProps;\n var restOfTheWorkspaces = openWorkspaces.filter(function(w) {\n return w.name != name;\n });\n updateStoreWithNewWorkspace(openWorkspaces[workspaceIndexInOpenWorkspaces], restOfTheWorkspaces);\n } else if (openedWorkspaceWithSameType) {\n var restOfTheWorkspaces1 = store.getState().openWorkspaces.filter(function(w) {\n return w.type != newWorkspace.type;\n });\n updateStoreWithNewWorkspace(openedWorkspaceWithSameType, restOfTheWorkspaces1);\n promptBeforeLaunchingWorkspace(openedWorkspaceWithSameType, {\n name: name,\n additionalProps: additionalProps\n });\n } else {\n updateStoreWithNewWorkspace(newWorkspace);\n }\n}\n/**\n * Use this function to navigate to a new page and launch a workspace on that page.\n *\n * @param options.targetUrl: The URL to navigate to. Will be passed to [[navigate]].\n * @param options.contextKey: The context key used by the target page.\n * @param options.workspaceName: The name of the workspace to launch.\n * @param options.additionalProps: Additional props to pass to the workspace component being launched.\n */ function navigateAndLaunchWorkspace(param) {\n var targetUrl = param.targetUrl, contextKey = param.contextKey, workspaceName = param.workspaceName, additionalProps = param.additionalProps;\n changeWorkspaceContext(contextKey);\n launchWorkspace(workspaceName, additionalProps);\n (0,_openmrs_esm_navigation__WEBPACK_IMPORTED_MODULE_2__.navigate)({\n to: targetUrl\n });\n}\nvar promptBeforeClosingFcns = {};\nfunction promptBeforeClosing(workspaceName, testFcn) {\n promptBeforeClosingFcns[workspaceName] = testFcn;\n}\nfunction getPromptBeforeClosingFcn(workspaceName) {\n return promptBeforeClosingFcns[workspaceName];\n}\nfunction cancelPrompt() {\n var store = getWorkspaceStore();\n var state = store.getState();\n store.setState(_object_spread_props(_object_spread({}, state), {\n prompt: null\n }));\n}\nvar defaultOptions = {\n ignoreChanges: false,\n onWorkspaceClose: function() {},\n closeWorkspaceGroup: true\n};\n/**\n * Function to close an opened workspace\n * @param name Workspace registration name\n * @param options Options to close workspace\n */ function closeWorkspace(name) {\n var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n options = _object_spread({}, defaultOptions, options);\n var store = getWorkspaceStore();\n var updateStoreWithClosedWorkspace = function() {\n var _store_getState_workspaceGroup, _options_onWorkspaceClose;\n var state = store.getState();\n var workspaceToBeClosed = state.openWorkspaces.find(function(w) {\n return w.name === name;\n });\n var newOpenWorkspaces = state.openWorkspaces.filter(function(w) {\n return w.name != name;\n });\n var workspaceGroupName = (_store_getState_workspaceGroup = store.getState().workspaceGroup) === null || _store_getState_workspaceGroup === void 0 ? void 0 : _store_getState_workspaceGroup.name;\n if (workspaceGroupName && options.closeWorkspaceGroup) {\n closeWorkspaceGroup(workspaceGroupName);\n }\n // ensure closed workspace will not prompt\n promptBeforeClosing(name, function() {\n return false;\n });\n store.setState(function(prev) {\n return _object_spread_props(_object_spread({}, prev), {\n prompt: null,\n openWorkspaces: newOpenWorkspaces,\n workspaceWindowState: getUpdatedWorkspaceWindowState(newOpenWorkspaces === null || newOpenWorkspaces === void 0 ? void 0 : newOpenWorkspaces[0])\n });\n });\n options === null || options === void 0 ? void 0 : (_options_onWorkspaceClose = options.onWorkspaceClose) === null || _options_onWorkspaceClose === void 0 ? void 0 : _options_onWorkspaceClose.call(options);\n };\n if (!canCloseWorkspaceWithoutPrompting(name, options === null || options === void 0 ? void 0 : options.ignoreChanges)) {\n var _getWorkspaceRegistration_title;\n var currentName = (_getWorkspaceRegistration_title = (0,_openmrs_esm_extensions__WEBPACK_IMPORTED_MODULE_1__.getWorkspaceRegistration)(name).title) !== null && _getWorkspaceRegistration_title !== void 0 ? _getWorkspaceRegistration_title : name;\n showWorkspacePrompts('closing-workspace', updateStoreWithClosedWorkspace, currentName);\n return false;\n } else {\n updateStoreWithClosedWorkspace();\n return true;\n }\n}\n/**\n * The set of workspaces is specific to a particular page. This function\n * should be used when transitioning to a new page. If the current\n * workspace data is for a different page, the workspace state is cleared.\n *\n * This is called by the workspace components when they mount.\n * @internal\n *\n * @param contextKey An arbitrary key to identify the current page\n */ function changeWorkspaceContext(contextKey) {\n var store = getWorkspaceStore();\n var state = store.getState();\n if (state.context != contextKey) {\n store.setState({\n context: contextKey,\n openWorkspaces: [],\n prompt: null\n });\n }\n}\nvar initialState = {\n context: '',\n openWorkspaces: [],\n prompt: null,\n workspaceWindowState: 'normal',\n workspaceGroup: undefined\n};\nvar workspaceStore = (0,_openmrs_esm_state__WEBPACK_IMPORTED_MODULE_3__.createGlobalStore)('workspace', initialState);\nfunction getWorkspaceStore() {\n return workspaceStore;\n}\nfunction updateWorkspaceWindowState(value) {\n var store = getWorkspaceStore();\n var state = store.getState();\n store.setState(_object_spread_props(_object_spread({}, state), {\n workspaceWindowState: value\n }));\n}\nfunction getUpdatedWorkspaceWindowState(workspaceAtTop) {\n var _workspaceAtTop_preferredWindowSize;\n return (_workspaceAtTop_preferredWindowSize = workspaceAtTop === null || workspaceAtTop === void 0 ? void 0 : workspaceAtTop.preferredWindowSize) !== null && _workspaceAtTop_preferredWindowSize !== void 0 ? _workspaceAtTop_preferredWindowSize : 'normal';\n}\nfunction closeAllWorkspaces() {\n var onClosingWorkspaces = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : function() {}, filter = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : function() {\n return true;\n };\n var store = getWorkspaceStore();\n var canCloseAllWorkspaces = store.getState().openWorkspaces.filter(filter).every(function(param) {\n var name = param.name;\n return canCloseWorkspaceWithoutPrompting(name);\n });\n var updateWorkspaceStore = function() {\n resetWorkspaceStore();\n onClosingWorkspaces === null || onClosingWorkspaces === void 0 ? void 0 : onClosingWorkspaces();\n };\n if (!canCloseAllWorkspaces) {\n showWorkspacePrompts('closing-all-workspaces', updateWorkspaceStore);\n } else {\n updateWorkspaceStore();\n }\n}\nfunction useWorkspaces() {\n var _useStore = (0,_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_5__.useStore)(workspaceStore), workspaceWindowState = _useStore.workspaceWindowState, openWorkspaces = _useStore.openWorkspaces, prompt = _useStore.prompt, workspaceGroup = _useStore.workspaceGroup;\n var memoisedResults = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function() {\n return {\n active: openWorkspaces.length > 0,\n prompt: prompt,\n workspaceWindowState: workspaceWindowState,\n workspaces: openWorkspaces,\n workspaceGroup: workspaceGroup\n };\n }, [\n openWorkspaces,\n workspaceWindowState,\n prompt,\n workspaceGroup\n ]);\n return memoisedResults;\n}\n/**\n * Sets the current prompt according to the prompt type.\n * @param promptType Determines the text and behavior of the prompt\n * @param onConfirmation Function to be called after the user confirms to close the workspace\n * @param workspaceTitle Workspace title to be shown in the prompt\n * @returns\n */ function showWorkspacePrompts(promptType) {\n var onConfirmation = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : function() {}, workspaceTitle = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : '';\n var store = getWorkspaceStore();\n var prompt;\n switch(promptType){\n case 'closing-workspace':\n {\n prompt = {\n title: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('unsavedChangesTitleText', 'Unsaved changes'),\n body: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('unsavedChangesInOpenedWorkspace', \"You may have unsaved changes in the opened workspace. Do you want to discard these changes?\"),\n onConfirm: function() {\n onConfirmation === null || onConfirmation === void 0 ? void 0 : onConfirmation();\n },\n confirmText: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('discard', 'Discard')\n };\n break;\n }\n case 'closing-all-workspaces':\n {\n var workspacesNotClosed = store.getState().openWorkspaces.filter(function(param) {\n var name = param.name;\n return !canCloseWorkspaceWithoutPrompting(name);\n }).map(function(param, indx) {\n var title = param.title;\n return \"\".concat(indx + 1, \". \").concat(title);\n });\n prompt = {\n title: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('closingAllWorkspacesPromptTitle', 'You have unsaved changes'),\n body: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('closingAllWorkspacesPromptBody', 'There may be unsaved changes in the following workspaces. Do you want to discard changes in the following workspaces? {{workspaceNames}}', {\n workspaceNames: workspacesNotClosed.join(',')\n }),\n onConfirm: function() {\n onConfirmation === null || onConfirmation === void 0 ? void 0 : onConfirmation();\n },\n confirmText: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('closeAllOpenedWorkspaces', 'Discard changes in {{count}} workspaces', {\n count: workspacesNotClosed.length\n })\n };\n break;\n }\n case 'closing-workspace-launching-new-workspace':\n {\n prompt = {\n title: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('unsavedChangesTitleText', 'Unsaved changes'),\n body: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('unsavedChangesInWorkspace', 'There may be unsaved changes in \"{{workspaceName}}\". Please save them before opening another workspace.', {\n workspaceName: workspaceTitle\n }),\n onConfirm: function() {\n store.setState(function(state) {\n return _object_spread_props(_object_spread({}, state), {\n prompt: null\n });\n });\n onConfirmation === null || onConfirmation === void 0 ? void 0 : onConfirmation();\n },\n confirmText: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('openAnyway', 'Open anyway')\n };\n break;\n }\n default:\n {\n console.error('Workspace system trying to open unknown prompt type \"'.concat(promptType, '\" in function \"showWorkspacePrompts\"'));\n onConfirmation === null || onConfirmation === void 0 ? void 0 : onConfirmation();\n return;\n }\n }\n store.setState(function(state) {\n return _object_spread_props(_object_spread({}, state), {\n prompt: prompt\n });\n });\n}\nfunction getWorkspaceTitle(workspace, additionalProps) {\n var _additionalProps_workspaceTitle;\n return (_additionalProps_workspaceTitle = additionalProps === null || additionalProps === void 0 ? void 0 : additionalProps['workspaceTitle']) !== null && _additionalProps_workspaceTitle !== void 0 ? _additionalProps_workspaceTitle : workspace.title;\n}\nfunction resetWorkspaceStore() {\n getWorkspaceStore().setState(initialState);\n}\n/**\n * The workspace group store is a store that is specific to the workspace group.\n * If the workspace has its own sidebar, the store will be created.\n * This store can be used to store data that is specific to the workspace group.\n * The store will be same for all the workspaces with same group name.\n *\n * For workspaces launched without a group, the store will be undefined.\n *\n * The store will be cleared when all the workspaces with the store's group name are closed.\n */ function getWorkspaceGroupStore(workspaceGroupName) {\n var additionalProps = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (!workspaceGroupName || workspaceGroupName === 'default') {\n return undefined;\n }\n var store = (0,_openmrs_esm_state__WEBPACK_IMPORTED_MODULE_3__.getGlobalStore)(workspaceGroupName, {});\n if (additionalProps) {\n store.setState(function(prev) {\n return _object_spread({}, prev, additionalProps);\n });\n }\n return store;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL3NyYy93b3Jrc3BhY2VzL3dvcmtzcGFjZXMudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0NBQWdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNnQjtBQUtmO0FBRWtCO0FBQ29CO0FBQ1I7QUFDWDtBQTBHcEQ7Ozs7O0NBS0MsR0FDTSxTQUFTUSxrQ0FBa0NDLElBQVk7UUFBRUMsZ0JBQUFBLGlFQUF5QjtJQUN2RixJQUFJQSxlQUFlO1FBQ2pCLE9BQU87SUFDVDtJQUNBLElBQU1DLGlCQUFpQkMsMEJBQTBCSDtJQUNqRCxPQUFPLENBQUNFLGtCQUFrQixDQUFDQTtBQUM3QjtBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Q0FlQyxHQUNELFNBQVNFLG9CQUFvQkMsU0FBaUIsRUFBRUMsa0JBQStCO1FBRS9DQztJQUQ5QixJQUFNQSxRQUFRQztJQUNkLElBQU1DLHlCQUF3QkYsa0JBQUFBLE1BQU1HLFFBQVEsZ0JBQWRILHNDQUFBQSxnQkFBa0JJLGNBQWM7SUFDOUQsSUFBTUMsbUJBQW1CSCxrQ0FBQUEsNENBQUFBLHNCQUF1QlQsSUFBSTtJQUNwRCxJQUFJLENBQUNZLG9CQUFvQlAsY0FBY08sa0JBQWtCO1FBQ3ZEO0lBQ0Y7SUFDQSxJQUFNQyxTQUFnREQsbUJBQ2xELFNBQUNFO2VBQWNBLFVBQVVMLHFCQUFxQixLQUFLRztRQUNuRDtlQUFNOztJQUVWRyxtQkFBbUI7UUFDakIsK0pBQStKO1FBQy9KLElBQU1DLHNCQUFzQkMsdUJBQXVCWjtRQUNuRCxJQUFJVyxxQkFBcUI7WUFDdkJBLG9CQUFvQkUsUUFBUSxDQUFDLENBQUMsR0FBRztZQUNqQyxJQUFNQyxjQUFjSCxvQkFBb0JJLFNBQVMsQ0FBQyxZQUFPO1lBQ3pERDtRQUNGO1FBRUEsSUFBSSxRQUFPVixrQ0FBQUEsNENB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ZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLXN0eWxlZ3VpZGUvc3JjL3dvcmtzcGFjZXMvd29ya3NwYWNlcy50cz9jMTVlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBjYXRlZ29yeSBXb3Jrc3BhY2UgKi9cbmltcG9ydCB7IHVzZU1lbW8sIHR5cGUgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtcbiAgZ2V0V29ya3NwYWNlR3JvdXBSZWdpc3RyYXRpb24sXG4gIGdldFdvcmtzcGFjZVJlZ2lzdHJhdGlvbixcbiAgdHlwZSBXb3Jrc3BhY2VSZWdpc3RyYXRpb24sXG59IGZyb20gJ0BvcGVubXJzL2VzbS1leHRlbnNpb25zJztcbmltcG9ydCB7IHR5cGUgV29ya3NwYWNlV2luZG93U3RhdGUgfSBmcm9tICdAb3Blbm1ycy9lc20tZ2xvYmFscyc7XG5pbXBvcnQgeyBuYXZpZ2F0ZSB9IGZyb20gJ0BvcGVubXJzL2VzbS1uYXZpZ2F0aW9uJztcbmltcG9ydCB7IGdldEdsb2JhbFN0b3JlLCBjcmVhdGVHbG9iYWxTdG9yZSB9IGZyb20gJ0BvcGVubXJzL2VzbS1zdGF0ZSc7XG5pbXBvcnQgeyBnZXRDb3JlVHJhbnNsYXRpb24gfSBmcm9tICdAb3Blbm1ycy9lc20tdHJhbnNsYXRpb25zJztcbmltcG9ydCB7IHVzZVN0b3JlIH0gZnJvbSAnQG9wZW5tcnMvZXNtLXJlYWN0LXV0aWxzJztcbmltcG9ydCB0eXBlIHsgU3RvcmVBcGkgfSBmcm9tICd6dXN0YW5kL3ZhbmlsbGEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENsb3NlV29ya3NwYWNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNsb3NlIHRoZSB3b3Jrc3BhY2UgaWdub3JpbmcgYWxsIHRoZSBjaGFuZ2VzIHByZXNlbnQgaW4gdGhlIHdvcmtzcGFjZS5cbiAgICpcbiAgICogSWYgaWdub3JlQ2hhbmdlcyBpcyB0cnVlLCB0aGUgdXNlciB3aWxsIG5vdCBiZSBwcm9tcHRlZCB0byBzYXZlIGNoYW5nZXMgYmVmb3JlIGNsb3NpbmdcbiAgICogZXZlbiBpZiB0aGUgYHRlc3RGY25gIHBhc3NlZCB0byBgcHJvbXB0QmVmb3JlQ2xvc2luZ2AgcmV0dXJucyBgdHJ1ZWAuXG4gICAqL1xuICBpZ25vcmVDaGFuZ2VzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHRha2UgYW4gYWN0aW9uIGFmdGVyIHRoZSB3b3Jrc3BhY2UgaXMgY2xvc2VkLCB5b3UgY2FuIHBhc3MgeW91ciBmdW5jdGlvbiBhc1xuICAgKiBgb25Xb3Jrc3BhY2VDbG9zZWAuIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgb25seSBhZnRlciB0aGUgd29ya3NwYWNlIGlzIGNsb3NlZCwgZ2l2ZW5cbiAgICogdGhhdCB0aGUgdXNlciBtaWdodCBiZSBzaG93biBhIHByb21wdC5cbiAgICogQHJldHVybnMgdm9pZFxuICAgKi9cbiAgb25Xb3Jrc3BhY2VDbG9zZT86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIHRoZSB3b3Jrc3BhY2UgZ3JvdXAgc2hvdWxkIGJlIGNsb3NlZCBhbmQgc3RvcmUgdG8gYmVcbiAgICogY2xlYXJlZCB3aGVuIHRoaXMgd29ya3NwYWNlIGlzIGNsb3NlZC5cbiAgICogRGVmYXVsdHMgdG8gdHJ1ZSBleGNlcHQgd2hlbiBvcGVuaW5nIGEgbmV3IHdvcmtzcGFjZSBvZiB0aGUgc2FtZSBncm91cC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgY2xvc2VXb3Jrc3BhY2VHcm91cD86IGJvb2xlYW47XG59XG5cbi8qKiBUaGUgZGVmYXVsdCBwYXJhbWV0ZXJzIHJlY2VpdmVkIGJ5IGFsbCB3b3Jrc3BhY2VzICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmF1bHRXb3Jrc3BhY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBDYWxsIHRoaXMgZnVuY3Rpb24gdG8gY2xvc2UgdGhlIHdvcmtzcGFjZS4gVGhpcyBmdW5jdGlvbiB3aWxsIHByb21wdCB0aGUgdXNlclxuICAgKiBpZiB0aGVyZSBhcmUgYW55IHVuc2F2ZWQgY2hhbmdlcyB0byB3b3Jrc3BhY2UuXG4gICAqXG4gICAqIFlvdSBjYW4gcGFzcyBgb25Xb3Jrc3BhY2VDbG9zZWAgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBmaW5hbGx5XG4gICAqIGNsb3NlZCwgZ2l2ZW4gdGhlIHVzZXIgZm9yY2VmdWxseSBjbG9zZXMgdGhlIHdvcmtzcGFjZS5cbiAgICovXG4gIGNsb3NlV29ya3NwYWNlKGNsb3NlV29ya3NwYWNlT3B0aW9ucz86IENsb3NlV29ya3NwYWNlT3B0aW9ucyk6IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsIHRoaXMgd2l0aCBhIG5vLWFyZ3MgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRydWUgaWYgdGhlIHVzZXIgc2hvdWxkIGJlIHByb21wdGVkIGJlZm9yZVxuICAgKiB0aGlzIHdvcmtzcGFjZSBpcyBjbG9zZWQ7IGUuZy4gaWYgdGhlcmUgaXMgdW5zYXZlZCBkYXRhLlxuICAgKi9cbiAgcHJvbXB0QmVmb3JlQ2xvc2luZyh0ZXN0RmNuOiAoKSA9PiBib29sZWFuKTogdm9pZDtcbiAgLyoqXG4gICAqIENhbGwgdGhpcyBmdW5jdGlvbiB0byBjbG9zZSB0aGUgd29ya3NwYWNlIGFmdGVyIHRoZSBmb3JtIGlzIHNhdmVkLiBUaGlzIGZ1bmN0aW9uXG4gICAqIHdpbGwgZGlyZWN0bHkgY2xvc2UgdGhlIHdvcmtzcGFjZSB3aXRob3V0IGFueSBwcm9tcHRcbiAgICovXG4gIGNsb3NlV29ya3NwYWNlV2l0aFNhdmVkQ2hhbmdlcyhjbG9zZVdvcmtzcGFjZU9wdGlvbnM/OiBDbG9zZVdvcmtzcGFjZU9wdGlvbnMpOiB2b2lkO1xuICAvKipcbiAgICogVXNlIHRoaXMgdG8gc2V0IHRoZSB3b3Jrc3BhY2UgdGl0bGUgaWYgaXQgbmVlZHMgdG8gYmUgc2V0IGR5bmFtaWNhbGx5LlxuICAgKlxuICAgKiBXb3Jrc3BhY2UgdGl0bGVzIGdlbmVyYWxseSBhcmUgc2V0IGluIHRoZSB3b3Jrc3BhY2UgZGVjbGFyYXRpb24gaW4gdGhlIHJvdXRlcy5qc29uIGZpbGUuIFRoZXkgY2FuIGFsc29cbiAgICogYmUgc2V0IGJ5IHRoZSB3b3Jrc3BhY2UgbGF1bmNoZXIgYnkgcGFzc2luZyBgd29ya3NwYWNlVGl0bGVgIGluIHRoZSBgYWRkaXRpb25hbFByb3BzYFxuICAgKiBwYXJhbWV0ZXIgb2YgdGhlIGBsYXVuY2hXb3Jrc3BhY2VgIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWZ1bCB3aGVuIHRoZSB3b3Jrc3BhY2VcbiAgICogdGl0bGUgbmVlZHMgdG8gYmUgc2V0IGR5bmFtaWNhbGx5LlxuICAgKlxuICAgKiBAcGFyYW0gdGl0bGUgVGhlIHRpdGxlIHRvIHNldC4gSWYgdXNpbmcgdGl0bGVOb2RlLCBzZXQgdGhpcyB0byBhIGh1bWFuLXJlYWRhYmxlIHN0cmluZ1xuICAgKiAgICAgICAgd2hpY2ggd2lsbCBpZGVudGlmeSB0aGUgd29ya3NwYWNlIGluIG5vdGlmaWNhdGlvbnMgYW5kIG90aGVyIHBsYWNlcy5cbiAgICogQHBhcmFtIHRpdGxlTm9kZSBBIFJlYWN0IG9iamVjdCB0byBwdXQgaW4gdGhlIHdvcmtzcGFjZSBoZWFkZXIgaW4gcGxhY2Ugb2YgdGhlIHRpdGxlLiBUaGlzXG4gICAqICAgICAgICBpcyB1c2VmdWwgZm9yIGRpc3BsYXlpbmcgY3VzdG9tIGVsZW1lbnRzIGluIHRoZSBoZWFkZXIuIE5vdGUgdGhhdCBjdXN0b20gaGVhZGVyXG4gICAqICAgICAgICBlbGVtZW50cyBjYW4gYWxzbyBiZSBhdHRhY2hlZCB0byB0aGUgd29ya3NwYWNlIGhlYWRlciBleHRlbnNpb24gc2xvdHMuXG4gICAqL1xuICBzZXRUaXRsZSh0aXRsZTogc3RyaW5nLCB0aXRsZU5vZGU/OiBSZWFjdE5vZGUpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZVdpbmRvd1NpemUge1xuICBzaXplOiBXb3Jrc3BhY2VXaW5kb3dTdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VXaW5kb3dTaXplUHJvdmlkZXJQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZVdpbmRvd1NpemVDb250ZXh0IHtcbiAgd2luZG93U2l6ZTogV29ya3NwYWNlV2luZG93U2l6ZTtcbiAgdXBkYXRlV2luZG93U2l6ZT8odmFsdWU6IFdvcmtzcGFjZVdpbmRvd1N0YXRlKTogYW55O1xuICBhY3RpdmU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvbXB0IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgYm9keTogc3RyaW5nO1xuICAvKiogRGVmYXVsdHMgdG8gXCJDb25maXJtXCIgKi9cbiAgY29uZmlybVRleHQ/OiBzdHJpbmc7XG4gIG9uQ29uZmlybSgpOiB2b2lkO1xuICAvKiogRGVmYXVsdHMgdG8gXCJDYW5jZWxcIiAqL1xuICBjYW5jZWxUZXh0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZVN0b3JlU3RhdGUge1xuICBjb250ZXh0OiBzdHJpbmcgfCBudWxsO1xuICBvcGVuV29ya3NwYWNlczogQXJyYXk8T3BlbldvcmtzcGFjZT47XG4gIHByb21wdDogUHJvbXB0IHwgbnVsbDtcbiAgd29ya3NwYWNlV2luZG93U3RhdGU6IFdvcmtzcGFjZVdpbmRvd1N0YXRlO1xuICB3b3Jrc3BhY2VHcm91cD86IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgbWVtYmVyczogQXJyYXk8c3RyaW5nPjtcbiAgICBjbGVhbnVwPygpOiB2b2lkO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5Xb3Jrc3BhY2UgZXh0ZW5kcyBXb3Jrc3BhY2VSZWdpc3RyYXRpb24sIERlZmF1bHRXb3Jrc3BhY2VQcm9wcyB7XG4gIGFkZGl0aW9uYWxQcm9wczogb2JqZWN0O1xuICBjdXJyZW50V29ya3NwYWNlR3JvdXA/OiBzdHJpbmc7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIHdvcmtzcGFjZVxuICogQHBhcmFtIGlnbm9yZUNoYW5nZXMgSWYgc2V0IHRvIHRydWUsIHRoZSBcInVuc2F2ZWQgY2hhbmdlc1wiIG1vZGFsIHdpbGwgbmV2ZXIgYmUgc2hvd24sIGV2ZW4gaWYgdGhlIGBwcm9tcHRCZWZvcmVDbG9zaW5nYCBmdW5jdGlvbiByZXR1cm5zIHRydWUuIFRoZSB1c2VyIHdpbGwgbm90IGJlIHByb21wdGVkIGJlZm9yZSBjbG9zaW5nLlxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgd29ya3NwYWNlIGNhbiBiZSBjbG9zZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYW5DbG9zZVdvcmtzcGFjZVdpdGhvdXRQcm9tcHRpbmcobmFtZTogc3RyaW5nLCBpZ25vcmVDaGFuZ2VzOiBib29sZWFuID0gZmFsc2UpIHtcbiAgaWYgKGlnbm9yZUNoYW5nZXMpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBjb25zdCBwcm9tcHRCZWZvcmVGbiA9IGdldFByb21wdEJlZm9yZUNsb3NpbmdGY24obmFtZSk7XG4gIHJldHVybiAhcHJvbXB0QmVmb3JlRm4gfHwgIXByb21wdEJlZm9yZUZuKCk7XG59XG5cbi8qKlxuICogQ2xvc2VzIGEgd29ya3NwYWNlIGdyb3VwIGFuZCBwZXJmb3JtcyBjbGVhbnVwIG9wZXJhdGlvbnMuXG4gKlxuICogQHBhcmFtIGdyb3VwTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UgZ3JvdXAgdG8gY2xvc2VcbiAqIEBwYXJhbSBvbldvcmtzcGFjZUNsb3NldXAgLSBPcHRpb25hbCBjYWxsYmFjayBmdW5jdGlvbiB0byBleGVjdXRlIGFmdGVyIGNsb3NpbmcgdGhlIHdvcmtzcGFjZSBncm91cFxuICogQHJldHVybnMgdm9pZCwgb3IgZXhpdHMgZWFybHkgaWYgdGhlIGN1cnJlbnQgd29ya3NwYWNlIGdyb3VwIG5hbWUgZG9lc24ndCBtYXRjaCB0aGUgcHJvdmlkZWQgZ3JvdXAgbmFtZVxuICpcbiAqIEByZW1hcmtzXG4gKiBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIHRoZSBmb2xsb3dpbmcgb3BlcmF0aW9uczpcbiAqIC0gVmFsaWRhdGVzIGlmIHRoZSBwcm92aWRlZCBncm91cCBuYW1lIG1hdGNoZXMgdGhlIGN1cnJlbnQgd29ya3NwYWNlIGdyb3VwXG4gKiAtIENsb3NlcyBhbGwgd29ya3NwYWNlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdyb3VwXG4gKiAtIENsZWFycyB0aGUgd29ya3NwYWNlIGdyb3VwIHN0b3JlIHN0YXRlXG4gKiAtIEV4ZWN1dGVzIGNsZWFudXAgZnVuY3Rpb24gaWYgZGVmaW5lZCBpbiB0aGUgd29ya3NwYWNlIGdyb3VwXG4gKiAtIFVwZGF0ZXMgdGhlIG1haW4gd29ya3NwYWNlIHN0b3JlIHRvIHJlbW92ZSB0aGUgd29ya3NwYWNlIGdyb3VwXG4gKiAtIENhbGxzIHRoZSBvcHRpb25hbCBjbG9zZXVwIGNhbGxiYWNrIGlmIHByb3ZpZGVkXG4gKi9cbmZ1bmN0aW9uIGNsb3NlV29ya3NwYWNlR3JvdXAoZ3JvdXBOYW1lOiBzdHJpbmcsIG9uV29ya3NwYWNlQ2xvc2V1cD86ICgpID0+IHZvaWQpIHtcbiAgY29uc3Qgc3RvcmUgPSBnZXRXb3Jrc3BhY2VTdG9yZSgpO1xuICBjb25zdCBjdXJyZW50V29ya3NwYWNlR3JvdXAgPSBzdG9yZS5nZXRTdGF0ZSgpPy53b3Jrc3BhY2VHcm91cDtcbiAgY29uc3QgY3VycmVudEdyb3VwTmFtZSA9IGN1cnJlbnRXb3Jrc3BhY2VHcm91cD8ubmFtZTtcbiAgaWYgKCFjdXJyZW50R3JvdXBOYW1lIHx8IGdyb3VwTmFtZSAhPT0gY3VycmVudEdyb3VwTmFtZSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBmaWx0ZXI6ICh3b3Jrc3BhY2U6IE9wZW5Xb3Jrc3BhY2UpID0+IGJvb2xlYW4gPSBjdXJyZW50R3JvdXBOYW1lXG4gICAgPyAod29ya3NwYWNlKSA9PiB3b3Jrc3BhY2UuY3VycmVudFdvcmtzcGFjZUdyb3VwID09PSBjdXJyZW50R3JvdXBOYW1lXG4gICAgOiAoKSA9PiB0cnVlO1xuXG4gIGNsb3NlQWxsV29ya3NwYWNlcygoKSA9PiB7XG4gICAgLy8gQ2xlYXJpbmcgdGhlIHdvcmtzcGFjZSBncm91cCBhbmQgcmVzcGVjdGl2ZSBzdG9yZSBpZiB0aGUgbmV3IHdvcmtzcGFjZSBpcyBub3QgcGFydCBvZiB0aGUgY3VycmVudCBncm91cCwgd2hpY2ggaXMgaGFuZGxlZCBpbiB0aGUgYGxhdW5jaFdvcmtzcGFjZWAgZnVuY3Rpb24uXG4gICAgY29uc3Qgd29ya3NwYWNlR3JvdXBTdG9yZSA9IGdldFdvcmtzcGFjZUdyb3VwU3RvcmUoZ3JvdXBOYW1lKTtcbiAgICBpZiAod29ya3NwYWNlR3JvdXBTdG9yZSkge1xuICAgICAgd29ya3NwYWNlR3JvdXBTdG9yZS5zZXRTdGF0ZSh7fSwgdHJ1ZSk7XG4gICAgICBjb25zdCB1bnN1YnNjcmliZSA9IHdvcmtzcGFjZUdyb3VwU3RvcmUuc3Vic2NyaWJlKCgpID0+IHt9KTtcbiAgICAgIHVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjdXJyZW50V29ya3NwYWNlR3JvdXA/LmNsZWFudXAgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGN1cnJlbnRXb3Jrc3BhY2VHcm91cC5jbGVhbnVwKCk7XG4gICAgfVxuXG4gICAgc3RvcmUuc2V0U3RhdGUoKHByZXYpID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgd29ya3NwYWNlR3JvdXA6IHVuZGVmaW5lZCxcbiAgICB9KSk7XG5cbiAgICBpZiAodHlwZW9mIG9uV29ya3NwYWNlQ2xvc2V1cCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgb25Xb3Jrc3BhY2VDbG9zZXVwKCk7XG4gICAgfVxuICB9LCBmaWx0ZXIpO1xufVxuXG5pbnRlcmZhY2UgTGF1bmNoV29ya3NwYWNlR3JvdXBBcmcge1xuICBzdGF0ZTogUmVjb3JkPHN0cmluZyB8IHN5bWJvbCB8IG51bWJlciwgYW55PjtcbiAgb25Xb3Jrc3BhY2VHcm91cExhdW5jaD8oKTogdm9pZDtcbiAgd29ya3NwYWNlR3JvdXBDbGVhbnVwPygpOiB2b2lkO1xuICB3b3Jrc3BhY2VUb0xhdW5jaD86IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgYWRkaXRpb25hbFByb3BzPzogUmVjb3JkPHN0cmluZyB8IHN5bWJvbCB8IG51bWJlciwgYW55PjtcbiAgfTtcbn1cblxuLyoqXG4gKiBMYXVuY2hlcyBhIHdvcmtzcGFjZSBncm91cCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSBhbmQgY29uZmlndXJhdGlvbi5cbiAqIElmIHRoZXJlIGFyZSBhbnkgb3BlbiB3b3Jrc3BhY2VzLCBpdCB3aWxsIGZpcnN0IGNsb3NlIHRoZW0gYmVmb3JlIGxhdW5jaGluZyB0aGUgbmV3IHdvcmtzcGFjZSBncm91cC5cbiAqXG4gKiBAcGFyYW0gZ3JvdXBOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZSBncm91cCB0byBsYXVuY2hcbiAqIEBwYXJhbSBhcmdzIC0gQ29uZmlndXJhdGlvbiBvYmplY3QgZm9yIGxhdW5jaGluZyB0aGUgd29ya3NwYWNlIGdyb3VwXG4gKiBAcGFyYW0gYXJncy5zdGF0ZSAtIFRoZSBpbml0aWFsIHN0YXRlIGZvciB0aGUgd29ya3NwYWNlIGdyb3VwXG4gKiBAcGFyYW0gYXJncy5vbldvcmtzcGFjZUdyb3VwTGF1bmNoIC0gT3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIHdvcmtzcGFjZSBncm91cCBpcyBsYXVuY2hlZFxuICogQHBhcmFtIGFyZ3Mud29ya3NwYWNlR3JvdXBDbGVhbnVwIC0gT3B0aW9uYWwgY2xlYW51cCBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCB3aGVuIHRoZSB3b3Jrc3BhY2UgZ3JvdXAgaXMgY2xvc2VkXG4gKlxuICogQGV4YW1wbGVcbiAqIGxhdW5jaFdvcmtzcGFjZUdyb3VwKFwibXlHcm91cFwiLCB7XG4gKiAgIHN0YXRlOiBpbml0aWFsU3RhdGUsXG4gKiAgIG9uV29ya3NwYWNlR3JvdXBMYXVuY2g6ICgpID0+IGNvbnNvbGUubG9nKFwiV29ya3NwYWNlIGdyb3VwIGxhdW5jaGVkXCIpLFxuICogICB3b3Jrc3BhY2VHcm91cENsZWFudXA6ICgpID0+IGNvbnNvbGUubG9nKFwiQ2xlYW5pbmcgdXAgd29ya3NwYWNlIGdyb3VwXCIpXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxhdW5jaFdvcmtzcGFjZUdyb3VwKGdyb3VwTmFtZTogc3RyaW5nLCBhcmdzOiBMYXVuY2hXb3Jrc3BhY2VHcm91cEFyZykge1xuICBjb25zdCB3b3Jrc3BhY2VHcm91cFJlZ2lzdHJhdGlvbiA9IGdldFdvcmtzcGFjZUdyb3VwUmVnaXN0cmF0aW9uKGdyb3VwTmFtZSk7XG4gIGNvbnN0IHsgc3RhdGUsIG9uV29ya3NwYWNlR3JvdXBMYXVuY2gsIHdvcmtzcGFjZUdyb3VwQ2xlYW51cCwgd29ya3NwYWNlVG9MYXVuY2ggfSA9IGFyZ3M7XG4gIGNvbnN0IHN0b3JlID0gZ2V0V29ya3NwYWNlU3RvcmUoKTtcbiAgaWYgKHN0b3JlLmdldFN0YXRlKCkub3BlbldvcmtzcGFjZXMubGVuZ3RoKSB7XG4gICAgY29uc3Qgd29ya3NwYWNlR3JvdXAgPSBzdG9yZS5nZXRTdGF0ZSgpLndvcmtzcGFjZUdyb3VwO1xuICAgIGlmICh3b3Jrc3BhY2VHcm91cCkge1xuICAgICAgY2xvc2VXb3Jrc3BhY2VHcm91cCh3b3Jrc3BhY2VHcm91cD8ubmFtZSwgKCkgPT4ge1xuICAgICAgICBsYXVuY2hXb3Jrc3BhY2VHcm91cChncm91cE5hbWUsIGFyZ3MpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNsb3NlQWxsV29ya3NwYWNlcygoKSA9PiB7XG4gICAgICAgIGxhdW5jaFdvcmtzcGFjZUdyb3VwKGdyb3VwTmFtZSwgYXJncyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3RvcmUuc2V0U3RhdGUoKHByZXYpID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgd29ya3NwYWNlR3JvdXA6IHtcbiAgICAgICAgbmFtZTogZ3JvdXBOYW1lLFxuICAgICAgICBtZW1iZXJzOiB3b3Jrc3BhY2VHcm91cFJlZ2lzdHJhdGlvbi5tZW1iZXJzLFxuICAgICAgICBjbGVhbnVwOiB3b3Jrc3BhY2VHcm91cENsZWFudXAsXG4gICAgICB9LFxuICAgIH0pKTtcbiAgICBnZXRXb3Jrc3BhY2VHcm91cFN0b3JlKGdyb3VwTmFtZSwgc3RhdGUpO1xuICAgIG9uV29ya3NwYWNlR3JvdXBMYXVuY2g/LigpO1xuICAgIGlmICh3b3Jrc3BhY2VUb0xhdW5jaCkge1xuICAgICAgbGF1bmNoV29ya3NwYWNlKHdvcmtzcGFjZVRvTGF1bmNoLm5hbWUsIHdvcmtzcGFjZVRvTGF1bmNoLmFkZGl0aW9uYWxQcm9wcyA/PyB7fSk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHByb21wdEJlZm9yZUxhdW5jaGluZ1dvcmtzcGFjZShcbiAgd29ya3NwYWNlOiBPcGVuV29ya3NwYWNlLFxuICBuZXdXb3Jrc3BhY2VEZXRhaWxzOiB7IG5hbWU6IHN0cmluZzsgYWRkaXRpb25hbFByb3BzPzogb2JqZWN0IH0sXG4pIHtcbiAgY29uc3QgeyBuYW1lLCBhZGRpdGlvbmFsUHJvcHMgfSA9IG5ld1dvcmtzcGFjZURldGFpbHM7XG4gIGNvbnN0IG5ld1dvcmtzcGFjZVJlZ2lzdHJhdGlvbiA9IGdldFdvcmtzcGFjZVJlZ2lzdHJhdGlvbihuYW1lKTtcblxuICBjb25zdCBwcm9jZWVkID0gKCkgPT4ge1xuICAgIGNsb3NlV29ya3NwYWNlKHdvcmtzcGFjZS5uYW1lLCB7XG4gICAgICBpZ25vcmVDaGFuZ2VzOiB0cnVlLFxuICAgICAgLy8gQ2FsbGluZyB0aGUgbGF1bmNoV29ya3NwYWNlIGFnYWluLCBzaW5jZSBvbmUgb2YgdGhlIGBpZmAgY2FzZVxuICAgICAgLy8gbWlnaHQgcmVzb2x2ZSwgYnV0IHdlIG5lZWQgdG8gY2hlY2sgYWxsIHRoZSBjYXNlcyBiZWZvcmUgbGF1bmNoaW5nIHRoZSBmb3JtLlxuICAgICAgb25Xb3Jrc3BhY2VDbG9zZTogKCkgPT4gbGF1bmNoV29ya3NwYWNlKG5hbWUsIGFkZGl0aW9uYWxQcm9wcyksXG4gICAgICAvLyBJZiB0aGUgbmV3IHdvcmtzcGFjZSBpcyBvZiB0aGUgc2FtZSBzaWRlYmFyIGdyb3VwLCB0aGVuIHdlIGRvbid0IG5lZWQgdG8gY2xlYXIgdGhlIHdvcmtzcGFjZSBncm91cCBzdG9yZS5cbiAgICAgIGNsb3NlV29ya3NwYWNlR3JvdXA6IGZhbHNlLFxuICAgIH0pO1xuICB9O1xuXG4gIGlmICghY2FuQ2xvc2VXb3Jrc3BhY2VXaXRob3V0UHJvbXB0aW5nKHdvcmtzcGFjZS5uYW1lKSkge1xuICAgIHNob3dXb3Jrc3BhY2VQcm9tcHRzKCdjbG9zaW5nLXdvcmtzcGFjZS1sYXVuY2hpbmctbmV3LXdvcmtzcGFjZScsIHByb2NlZWQsIHdvcmtzcGFjZS50aXRsZSA/PyB3b3Jrc3BhY2UubmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgcHJvY2VlZCgpO1xuICB9XG59XG5cbi8qKlxuICogVGhpcyBsYXVuY2hlcyBhIHdvcmtzcGFjZSBieSBpdHMgbmFtZS4gVGhlIHdvcmtzcGFjZSBtdXN0IGhhdmUgYmVlbiByZWdpc3RlcmVkLlxuICogV29ya3NwYWNlcyBzaG91bGQgYmUgcmVnaXN0ZXJlZCBpbiB0aGUgYHJvdXRlcy5qc29uYCBmaWxlLlxuICpcbiAqIEZvciB0aGUgd29ya3NwYWNlIHRvIGFwcGVhciwgdGhlcmUgbXVzdCBiZSBlaXRoZXIgYSBgPFdvcmtzcGFjZU92ZXJsYXkgLz5gIG9yXG4gKiBhIGA8V29ya3NwYWNlV2luZG93IC8+YCBjb21wb25lbnQgcmVuZGVyZWQuXG4gKlxuICogVGhlIGJlaGF2aW9yIG9mIHRoaXMgZnVuY3Rpb24gaXMgYXMgZm9sbG93czpcbiAqXG4gKiAtIElmIG5vIHdvcmtzcGFjZXMgYXJlIG9wZW4sIG9yIGlmIG5vIG90aGVyIHdvcmtzcGFjZXMgd2l0aCB0aGUgc2FtZSB0eXBlIGFyZSBvcGVuLFxuICogICBpdCB3aWxsIGJlIG9wZW5lZCBhbmQgZm9jdXNlZC5cbiAqIC0gSWYgYSB3b3Jrc3BhY2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGlzIGFscmVhZHkgb3BlbiwgaXQgd2lsbCBiZSBkaXNwbGF5ZWQvZm9jdXNlZCxcbiAqICAgaWYgaXQgd2FzIG5vdCBhbHJlYWR5LlxuICogLSBJZiBhIHdvcmtzcGFjZSBpcyBsYXVuY2hlZCBhbmQgYSB3b3Jrc3BhY2Ugd2hpY2ggY2Fubm90IGJlIGhpZGRlbiBpcyBhbHJlYWR5IG9wZW4sXG4gKiAgYSBjb25maXJtYXRpb24gbW9kYWwgd2lsbCBwb3AgdXAgd2FybmluZyBhYm91dCBjbG9zaW5nIHRoZSBjdXJyZW50bHkgb3BlbiB3b3Jrc3BhY2UuXG4gKiAtIElmIGFub3RoZXIgd29ya3NwYWNlIHdpdGggdGhlIHNhbWUgdHlwZSBpcyBvcGVuLCB0aGUgd29ya3NwYWNlIHdpbGwgYmUgYnJvdWdodCB0b1xuICogICB0aGUgZnJvbnQgYW5kIHRoZW4gYSBjb25maXJtYXRpb24gbW9kYWwgd2lsbCBwb3AgdXAgd2FybmluZyBhYm91dCBjbG9zaW5nIHRoZSBvcGVuZWRcbiAqICAgd29ya3NwYWNlXG4gKlxuICogTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24ganVzdCBtYW5pcHVsYXRlcyB0aGUgd29ya3NwYWNlIHN0b3JlLiBUaGUgVUkgbG9naWMgaXMgaGFuZGxlZFxuICogYnkgdGhlIGNvbXBvbmVudHMgdGhhdCBkaXNwbGF5IHdvcmtzcGFjZXMuXG4gKlxuICogQWRkaXRpb25hbCBwcm9wcyBjYW4gYmUgcGFzc2VkIHRvIHRoZSB3b3Jrc3BhY2UgY29tcG9uZW50IGJlaW5nIGxhdW5jaGVkLiBQYXNzaW5nIGFcbiAqIHByb3AgbmFtZWQgYHdvcmtzcGFjZVRpdGxlYCB3aWxsIG92ZXJyaWRlIHRoZSB0aXRsZSBvZiB0aGUgd29ya3NwYWNlLlxuICpcbiAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UgdG8gbGF1bmNoXG4gKiBAcGFyYW0gYWRkaXRpb25hbFByb3BzIFByb3BzIHRvIHBhc3MgdG8gdGhlIHdvcmtzcGFjZSBjb21wb25lbnQgYmVpbmcgbGF1bmNoZWQuIFBhc3NpbmdcbiAqICAgICAgICAgIGEgcHJvcCBuYW1lZCBgd29ya3NwYWNlVGl0bGVgIHdpbGwgb3ZlcnJpZGUgdGhlIHRpdGxlIG9mIHRoZSB3b3Jrc3BhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsYXVuY2hXb3Jrc3BhY2U8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0V29ya3NwYWNlUHJvcHMgfCBvYmplY3QgPSBEZWZhdWx0V29ya3NwYWNlUHJvcHMgJiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuPihuYW1lOiBzdHJpbmcsIGFkZGl0aW9uYWxQcm9wcz86IE9taXQ8VCwga2V5b2YgRGVmYXVsdFdvcmtzcGFjZVByb3BzPiAmIHsgd29ya3NwYWNlVGl0bGU/OiBzdHJpbmcgfSkge1xuICBjb25zdCBzdG9yZSA9IGdldFdvcmtzcGFjZVN0b3JlKCk7XG4gIGNvbnN0IHdvcmtzcGFjZSA9IGdldFdvcmtzcGFjZVJlZ2lzdHJhdGlvbihuYW1lKTtcbiAgY29uc3QgY3VycmVudFdvcmtzcGFjZUdyb3VwID0gc3RvcmUuZ2V0U3RhdGUoKS53b3Jrc3BhY2VHcm91cDtcblxuICBpZiAoY3VycmVudFdvcmtzcGFjZUdyb3VwICYmICFjdXJyZW50V29ya3NwYWNlR3JvdXAubWVtYmVycz8uaW5jbHVkZXMobmFtZSkpIHtcbiAgICBjbG9zZVdvcmtzcGFjZUdyb3VwKGN1cnJlbnRXb3Jrc3BhY2VHcm91cC5uYW1lLCAoKSA9PiB7XG4gICAgICBsYXVuY2hXb3Jrc3BhY2UobmFtZSwgYWRkaXRpb25hbFByb3BzKTtcbiAgICB9KTtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgY3VycmVudEdyb3VwTmFtZSA9IHN0b3JlLmdldFN0YXRlKCkud29ya3NwYWNlR3JvdXA/Lm5hbWU7XG4gIGNvbnN0IG5ld1dvcmtzcGFjZTogT3BlbldvcmtzcGFjZSA9IHtcbiAgICAuLi53b3Jrc3BhY2UsXG4gICAgdGl0bGU6IGdldFdvcmtzcGFjZVRpdGxlKHdvcmtzcGFjZSwgYWRkaXRpb25hbFByb3BzKSxcbiAgICBjbG9zZVdvcmtzcGFjZTogKG9wdGlvbnM6IENsb3NlV29ya3NwYWNlT3B0aW9ucyA9IHt9KSA9PiBjbG9zZVdvcmtzcGFjZShuYW1lLCBvcHRpb25zKSxcbiAgICBjbG9zZVdvcmtzcGFjZVdpdGhTYXZlZENoYW5nZXM6IChvcHRpb25zOiBDbG9zZVdvcmtzcGFjZU9wdGlvbnMpID0+XG4gICAgICBjbG9zZVdvcmtzcGFjZShuYW1lLCB7IGlnbm9yZUNoYW5nZXM6IHRydWUsIC4uLm9wdGlvbnMgfSksXG4gICAgcHJvbXB0QmVmb3JlQ2xvc2luZzogKHRlc3RGY24pID0+IHByb21wdEJlZm9yZUNsb3NpbmcobmFtZSwgdGVzdEZjbiksXG4gICAgc2V0VGl0bGU6ICh0aXRsZTogc3RyaW5nLCB0aXRsZU5vZGU6IFJlYWN0Tm9kZSkgPT4ge1xuICAgICAgbmV3V29ya3NwYWNlLnRpdGxlID0gdGl0bGU7XG4gICAgICBuZXdXb3Jrc3BhY2UudGl0bGVOb2RlID0gdGl0bGVOb2RlO1xuICAgICAgc3RvcmUuc2V0U3RhdGUoKHN0YXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IG9wZW5Xb3Jrc3BhY2VzID0gc3RhdGUub3BlbldvcmtzcGFjZXMubWFwKCh3KSA9PiAody5uYW1lID09PSBuYW1lID8gbmV3V29ya3NwYWNlIDogdykpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIG9wZW5Xb3Jrc3BhY2VzLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBjdXJyZW50V29ya3NwYWNlR3JvdXA6IGN1cnJlbnRHcm91cE5hbWUsXG4gICAgYWRkaXRpb25hbFByb3BzOiBhZGRpdGlvbmFsUHJvcHMgPz8ge30sXG4gIH07XG5cbiAgaWYgKGN1cnJlbnRHcm91cE5hbWUpIHtcbiAgICBnZXRXb3Jrc3BhY2VHcm91cFN0b3JlKGN1cnJlbnRHcm91cE5hbWUsIGFkZGl0aW9uYWxQcm9wcyk7XG4gIH1cbiAgZnVuY3Rpb24gdXBkYXRlU3RvcmVXaXRoTmV3V29ya3NwYWNlKHdvcmtzcGFjZVRvQmVBZGRlZDogT3BlbldvcmtzcGFjZSwgcmVzdE9mVGhlV29ya3NwYWNlcz86IEFycmF5PE9wZW5Xb3Jrc3BhY2U+KSB7XG4gICAgc3RvcmUuc2V0U3RhdGUoKHN0YXRlKSA9PiB7XG4gICAgICBjb25zdCBvcGVuV29ya3NwYWNlcyA9IFt3b3Jrc3BhY2VUb0JlQWRkZWQsIC4uLihyZXN0T2ZUaGVXb3Jrc3BhY2VzID8/IHN0YXRlLm9wZW5Xb3Jrc3BhY2VzKV07XG4gICAgICBsZXQgd29ya3NwYWNlV2luZG93U3RhdGUgPSBnZXRVcGRhdGVkV29ya3NwYWNlV2luZG93U3RhdGUod29ya3NwYWNlVG9CZUFkZGVkKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG9wZW5Xb3Jrc3BhY2VzLFxuICAgICAgICB3b3Jrc3BhY2VXaW5kb3dTdGF0ZSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBvcGVuV29ya3NwYWNlcyA9IHN0b3JlLmdldFN0YXRlKCkub3BlbldvcmtzcGFjZXM7XG4gIGNvbnN0IHdvcmtzcGFjZUluZGV4SW5PcGVuV29ya3NwYWNlcyA9IG9wZW5Xb3Jrc3BhY2VzLmZpbmRJbmRleCgodykgPT4gdy5uYW1lID09PSBuYW1lKTtcbiAgY29uc3QgaXNXb3Jrc3BhY2VBbHJlYWR5T3BlbiA9IHdvcmtzcGFjZUluZGV4SW5PcGVuV29ya3NwYWNlcyA+PSAwO1xuICBjb25zdCBvcGVuZWRXb3Jrc3BhY2VXaXRoU2FtZVR5cGUgPSBvcGVuV29ya3NwYWNlcy5maW5kKCh3KSA9PiB3LnR5cGUgPT0gbmV3V29ya3NwYWNlLnR5cGUpO1xuXG4gIGlmIChvcGVuV29ya3NwYWNlcy5sZW5ndGggPT09IDApIHtcbiAgICB1cGRhdGVTdG9yZVdpdGhOZXdXb3Jrc3BhY2UobmV3V29ya3NwYWNlKTtcbiAgfSBlbHNlIGlmICghb3BlbldvcmtzcGFjZXNbMF0uY2FuSGlkZSAmJiB3b3Jrc3BhY2VJbmRleEluT3BlbldvcmtzcGFjZXMgIT09IDApIHtcbiAgICBwcm9tcHRCZWZvcmVMYXVuY2hpbmdXb3Jrc3BhY2Uob3BlbldvcmtzcGFjZXNbMF0sIHtcbiAgICAgIG5hbWUsXG4gICAgICBhZGRpdGlvbmFsUHJvcHMsXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoaXNXb3Jrc3BhY2VBbHJlYWR5T3Blbikge1xuICAgIGNvbnN0IG9wZW5Xb3Jrc3BhY2UgPSBvcGVuV29ya3NwYWNlc1t3b3Jrc3BhY2VJbmRleEluT3BlbldvcmtzcGFjZXNdO1xuICAgIC8vIE9ubHkgdXBkYXRlIHRoZSB0aXRsZSBpZiBpdCBoYXNuJ3QgYmVlbiBzZXQgYnkgYHNldFRpdGxlYFxuICAgIGlmIChvcGVuV29ya3NwYWNlLnRpdGxlID09PSBnZXRXb3Jrc3BhY2VUaXRsZShvcGVuV29ya3NwYWNlLCBvcGVuV29ya3NwYWNlLmFkZGl0aW9uYWxQcm9wcykpIHtcbiAgICAgIG9wZW5Xb3Jrc3BhY2UudGl0bGUgPSBnZXRXb3Jrc3BhY2VUaXRsZShuZXdXb3Jrc3BhY2UsIG5ld1dvcmtzcGFjZS5hZGRpdGlvbmFsUHJvcHMpO1xuICAgIH1cbiAgICBvcGVuV29ya3NwYWNlLmFkZGl0aW9uYWxQcm9wcyA9IG5ld1dvcmtzcGFjZS5hZGRpdGlvbmFsUHJvcHM7XG4gICAgY29uc3QgcmVzdE9mVGhlV29ya3NwYWNlcyA9IG9wZW5Xb3Jrc3BhY2VzLmZpbHRlcigodykgPT4gdy5uYW1lICE9IG5hbWUpO1xuICAgIHVwZGF0ZVN0b3JlV2l0aE5ld1dvcmtzcGFjZShvcGVuV29ya3NwYWNlc1t3b3Jrc3BhY2VJbmRleEluT3BlbldvcmtzcGFjZXNdLCByZXN0T2ZUaGVXb3Jrc3BhY2VzKTtcbiAgfSBlbHNlIGlmIChvcGVuZWRXb3Jrc3BhY2VXaXRoU2FtZVR5cGUpIHtcbiAgICBjb25zdCByZXN0T2ZUaGVXb3Jrc3BhY2VzID0gc3RvcmUuZ2V0U3RhdGUoKS5vcGVuV29ya3NwYWNlcy5maWx0ZXIoKHcpID0+IHcudHlwZSAhPSBuZXdXb3Jrc3BhY2UudHlwZSk7XG4gICAgdXBkYXRlU3RvcmVXaXRoTmV3V29ya3NwYWNlKG9wZW5lZFdvcmtzcGFjZVdpdGhTYW1lVHlwZSwgcmVzdE9mVGhlV29ya3NwYWNlcyk7XG4gICAgcHJvbXB0QmVmb3JlTGF1bmNoaW5nV29ya3NwYWNlKG9wZW5lZFdvcmtzcGFjZVdpdGhTYW1lVHlwZSwge1xuICAgICAgbmFtZSxcbiAgICAgIGFkZGl0aW9uYWxQcm9wcyxcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICB1cGRhdGVTdG9yZVdpdGhOZXdXb3Jrc3BhY2UobmV3V29ya3NwYWNlKTtcbiAgfVxufVxuXG4vKipcbiAqIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIG5hdmlnYXRlIHRvIGEgbmV3IHBhZ2UgYW5kIGxhdW5jaCBhIHdvcmtzcGFjZSBvbiB0aGF0IHBhZ2UuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMudGFyZ2V0VXJsOiBUaGUgVVJMIHRvIG5hdmlnYXRlIHRvLiBXaWxsIGJlIHBhc3NlZCB0byBbW25hdmlnYXRlXV0uXG4gKiBAcGFyYW0gb3B0aW9ucy5jb250ZXh0S2V5OiBUaGUgY29udGV4dCBrZXkgdXNlZCBieSB0aGUgdGFyZ2V0IHBhZ2UuXG4gKiBAcGFyYW0gb3B0aW9ucy53b3Jrc3BhY2VOYW1lOiBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlIHRvIGxhdW5jaC5cbiAqIEBwYXJhbSBvcHRpb25zLmFkZGl0aW9uYWxQcm9wczogQWRkaXRpb25hbCBwcm9wcyB0byBwYXNzIHRvIHRoZSB3b3Jrc3BhY2UgY29tcG9uZW50IGJlaW5nIGxhdW5jaGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbmF2aWdhdGVBbmRMYXVuY2hXb3Jrc3BhY2Uoe1xuICB0YXJnZXRVcmwsXG4gIGNvbnRleHRLZXksXG4gIHdvcmtzcGFjZU5hbWUsXG4gIGFkZGl0aW9uYWxQcm9wcyxcbn06IHtcbiAgdGFyZ2V0VXJsOiBzdHJpbmc7XG4gIGNvbnRleHRLZXk6IHN0cmluZztcbiAgd29ya3NwYWNlTmFtZTogc3RyaW5nO1xuICBhZGRpdGlvbmFsUHJvcHM/OiBvYmplY3Q7XG59KSB7XG4gIGNoYW5nZVdvcmtzcGFjZUNvbnRleHQoY29udGV4dEtleSk7XG4gIGxhdW5jaFdvcmtzcGFjZSh3b3Jrc3BhY2VOYW1lLCBhZGRpdGlvbmFsUHJvcHMpO1xuICBuYXZpZ2F0ZSh7IHRvOiB0YXJnZXRVcmwgfSk7XG59XG5cbmNvbnN0IHByb21wdEJlZm9yZUNsb3NpbmdGY25zID0ge307XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9tcHRCZWZvcmVDbG9zaW5nKHdvcmtzcGFjZU5hbWU6IHN0cmluZywgdGVzdEZjbjogKCkgPT4gYm9vbGVhbikge1xuICBwcm9tcHRCZWZvcmVDbG9zaW5nRmNuc1t3b3Jrc3BhY2VOYW1lXSA9IHRlc3RGY247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9tcHRCZWZvcmVDbG9zaW5nRmNuKHdvcmtzcGFjZU5hbWU6IHN0cmluZykge1xuICByZXR1cm4gcHJvbXB0QmVmb3JlQ2xvc2luZ0ZjbnNbd29ya3NwYWNlTmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYW5jZWxQcm9tcHQoKSB7XG4gIGNvbnN0IHN0b3JlID0gZ2V0V29ya3NwYWNlU3RvcmUoKTtcbiAgY29uc3Qgc3RhdGUgPSBzdG9yZS5nZXRTdGF0ZSgpO1xuICBzdG9yZS5zZXRTdGF0ZSh7IC4uLnN0YXRlLCBwcm9tcHQ6IG51bGwgfSk7XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBDbG9zZVdvcmtzcGFjZU9wdGlvbnMgPSB7XG4gIGlnbm9yZUNoYW5nZXM6IGZhbHNlLFxuICBvbldvcmtzcGFjZUNsb3NlOiAoKSA9PiB7fSxcbiAgY2xvc2VXb3Jrc3BhY2VHcm91cDogdHJ1ZSxcbn07XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gY2xvc2UgYW4gb3BlbmVkIHdvcmtzcGFjZVxuICogQHBhcmFtIG5hbWUgV29ya3NwYWNlIHJlZ2lzdHJhdGlvbiBuYW1lXG4gKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIHRvIGNsb3NlIHdvcmtzcGFjZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvc2VXb3Jrc3BhY2UobmFtZTogc3RyaW5nLCBvcHRpb25zOiBDbG9zZVdvcmtzcGFjZU9wdGlvbnMgPSB7fSk6IGJvb2xlYW4ge1xuICBvcHRpb25zID0geyAuLi5kZWZhdWx0T3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICBjb25zdCBzdG9yZSA9IGdldFdvcmtzcGFjZVN0b3JlKCk7XG5cbiAgY29uc3QgdXBkYXRlU3RvcmVXaXRoQ2xvc2VkV29ya3NwYWNlID0gKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gc3RvcmUuZ2V0U3RhdGUoKTtcbiAgICBjb25zdCB3b3Jrc3BhY2VUb0JlQ2xvc2VkID0gc3RhdGUub3BlbldvcmtzcGFjZXMuZmluZCgodykgPT4gdy5uYW1lID09PSBuYW1lKTtcbiAgICBjb25zdCBuZXdPcGVuV29ya3NwYWNlcyA9IHN0YXRlLm9wZW5Xb3Jrc3BhY2VzLmZpbHRlcigodykgPT4gdy5uYW1lICE9IG5hbWUpO1xuXG4gICAgY29uc3Qgd29ya3NwYWNlR3JvdXBOYW1lID0gc3RvcmUuZ2V0U3RhdGUoKS53b3Jrc3BhY2VHcm91cD8ubmFtZTtcblxuICAgIGlmICh3b3Jrc3BhY2VHcm91cE5hbWUgJiYgb3B0aW9ucy5jbG9zZVdvcmtzcGFjZUdyb3VwKSB7XG4gICAgICBjbG9zZVdvcmtzcGFjZUdyb3VwKHdvcmtzcGFjZUdyb3VwTmFtZSk7XG4gICAgfVxuXG4gICAgLy8gZW5zdXJlIGNsb3NlZCB3b3Jrc3BhY2Ugd2lsbCBub3QgcHJvbXB0XG4gICAgcHJvbXB0QmVmb3JlQ2xvc2luZyhuYW1lLCAoKSA9PiBmYWxzZSk7XG4gICAgc3RvcmUuc2V0U3RhdGUoKHByZXYpID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgcHJvbXB0OiBudWxsLFxuICAgICAgb3BlbldvcmtzcGFjZXM6IG5ld09wZW5Xb3Jrc3BhY2VzLFxuICAgICAgd29ya3NwYWNlV2luZG93U3RhdGU6IGdldFVwZGF0ZWRXb3Jrc3BhY2VXaW5kb3dTdGF0ZShuZXdPcGVuV29ya3NwYWNlcz8uWzBdKSxcbiAgICB9KSk7XG5cbiAgICBvcHRpb25zPy5vbldvcmtzcGFjZUNsb3NlPy4oKTtcbiAgfTtcblxuICBpZiAoIWNhbkNsb3NlV29ya3NwYWNlV2l0aG91dFByb21wdGluZyhuYW1lLCBvcHRpb25zPy5pZ25vcmVDaGFuZ2VzKSkge1xuICAgIGNvbnN0IGN1cnJlbnROYW1lID0gZ2V0V29ya3NwYWNlUmVnaXN0cmF0aW9uKG5hbWUpLnRpdGxlID8/IG5hbWU7XG4gICAgc2hvd1dvcmtzcGFjZVByb21wdHMoJ2Nsb3Npbmctd29ya3NwYWNlJywgdXBkYXRlU3RvcmVXaXRoQ2xvc2VkV29ya3NwYWNlLCBjdXJyZW50TmFtZSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGVsc2Uge1xuICAgIHVwZGF0ZVN0b3JlV2l0aENsb3NlZFdvcmtzcGFjZSgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8qKlxuICogVGhlIHNldCBvZiB3b3Jrc3BhY2VzIGlzIHNwZWNpZmljIHRvIGEgcGFydGljdWxhciBwYWdlLiBUaGlzIGZ1bmN0aW9uXG4gKiBzaG91bGQgYmUgdXNlZCB3aGVuIHRyYW5zaXRpb25pbmcgdG8gYSBuZXcgcGFnZS4gSWYgdGhlIGN1cnJlbnRcbiAqIHdvcmtzcGFjZSBkYXRhIGlzIGZvciBhIGRpZmZlcmVudCBwYWdlLCB0aGUgd29ya3NwYWNlIHN0YXRlIGlzIGNsZWFyZWQuXG4gKlxuICogVGhpcyBpcyBjYWxsZWQgYnkgdGhlIHdvcmtzcGFjZSBjb21wb25lbnRzIHdoZW4gdGhleSBtb3VudC5cbiAqIEBpbnRlcm5hbFxuICpcbiAqIEBwYXJhbSBjb250ZXh0S2V5IEFuIGFyYml0cmFyeSBrZXkgdG8gaWRlbnRpZnkgdGhlIGN1cnJlbnQgcGFnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlV29ya3NwYWNlQ29udGV4dChjb250ZXh0S2V5OiBzdHJpbmcgfCBudWxsKSB7XG4gIGNvbnN0IHN0b3JlID0gZ2V0V29ya3NwYWNlU3RvcmUoKTtcbiAgY29uc3Qgc3RhdGUgPSBzdG9yZS5nZXRTdGF0ZSgpO1xuICBpZiAoc3RhdGUuY29udGV4dCAhPSBjb250ZXh0S2V5KSB7XG4gICAgc3RvcmUuc2V0U3RhdGUoeyBjb250ZXh0OiBjb250ZXh0S2V5LCBvcGVuV29ya3NwYWNlczogW10sIHByb21wdDogbnVsbCB9KTtcbiAgfVxufVxuXG5jb25zdCBpbml0aWFsU3RhdGU6IFdvcmtzcGFjZVN0b3JlU3RhdGUgPSB7XG4gIGNvbnRleHQ6ICcnLFxuICBvcGVuV29ya3NwYWNlczogW10sXG4gIHByb21wdDogbnVsbCxcbiAgd29ya3NwYWNlV2luZG93U3RhdGU6ICdub3JtYWwnLFxuICB3b3Jrc3BhY2VHcm91cDogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGNvbnN0IHdvcmtzcGFjZVN0b3JlID0gY3JlYXRlR2xvYmFsU3RvcmUoJ3dvcmtzcGFjZScsIGluaXRpYWxTdGF0ZSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXb3Jrc3BhY2VTdG9yZSgpIHtcbiAgcmV0dXJuIHdvcmtzcGFjZVN0b3JlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlV29ya3NwYWNlV2luZG93U3RhdGUodmFsdWU6IFdvcmtzcGFjZVdpbmRvd1N0YXRlKSB7XG4gIGNvbnN0IHN0b3JlID0gZ2V0V29ya3NwYWNlU3RvcmUoKTtcbiAgY29uc3Qgc3RhdGUgPSBzdG9yZS5nZXRTdGF0ZSgpO1xuICBzdG9yZS5zZXRTdGF0ZSh7IC4uLnN0YXRlLCB3b3Jrc3BhY2VXaW5kb3dTdGF0ZTogdmFsdWUgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFVwZGF0ZWRXb3Jrc3BhY2VXaW5kb3dTdGF0ZSh3b3Jrc3BhY2VBdFRvcDogT3BlbldvcmtzcGFjZSkge1xuICByZXR1cm4gd29ya3NwYWNlQXRUb3A/LnByZWZlcnJlZFdpbmRvd1NpemUgPz8gJ25vcm1hbCc7XG59XG5leHBvcnQgZnVuY3Rpb24gY2xvc2VBbGxXb3Jrc3BhY2VzKFxuICBvbkNsb3NpbmdXb3Jrc3BhY2VzOiAoKSA9PiB2b2lkID0gKCkgPT4ge30sXG4gIGZpbHRlcjogKHdvcmtzcGFjZTogT3BlbldvcmtzcGFjZSkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWUsXG4pIHtcbiAgY29uc3Qgc3RvcmUgPSBnZXRXb3Jrc3BhY2VTdG9yZSgpO1xuXG4gIGNvbnN0IGNhbkNsb3NlQWxsV29ya3NwYWNlcyA9IHN0b3JlXG4gICAgLmdldFN0YXRlKClcbiAgICAub3BlbldvcmtzcGFjZXMuZmlsdGVyKGZpbHRlcilcbiAgICAuZXZlcnkoKHsgbmFtZSB9KSA9PiB7XG4gICAgICByZXR1cm4gY2FuQ2xvc2VXb3Jrc3BhY2VXaXRob3V0UHJvbXB0aW5nKG5hbWUpO1xuICAgIH0pO1xuXG4gIGNvbnN0IHVwZGF0ZVdvcmtzcGFjZVN0b3JlID0gKCkgPT4ge1xuICAgIHJlc2V0V29ya3NwYWNlU3RvcmUoKTtcbiAgICBvbkNsb3NpbmdXb3Jrc3BhY2VzPy4oKTtcbiAgfTtcblxuICBpZiAoIWNhbkNsb3NlQWxsV29ya3NwYWNlcykge1xuICAgIHNob3dXb3Jrc3BhY2VQcm9tcHRzKCdjbG9zaW5nLWFsbC13b3Jrc3BhY2VzJywgdXBkYXRlV29ya3NwYWNlU3RvcmUpO1xuICB9IGVsc2Uge1xuICAgIHVwZGF0ZVdvcmtzcGFjZVN0b3JlKCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VzSW5mbyB7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbiAgcHJvbXB0OiBQcm9tcHQgfCBudWxsO1xuICB3b3Jrc3BhY2VXaW5kb3dTdGF0ZTogV29ya3NwYWNlV2luZG93U3RhdGU7XG4gIHdvcmtzcGFjZXM6IEFycmF5PE9wZW5Xb3Jrc3BhY2U+O1xuICB3b3Jrc3BhY2VHcm91cD86IFdvcmtzcGFjZVN0b3JlU3RhdGVbJ3dvcmtzcGFjZUdyb3VwJ107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VXb3Jrc3BhY2VzKCk6IFdvcmtzcGFjZXNJbmZvIHtcbiAgY29uc3QgeyB3b3Jrc3BhY2VXaW5kb3dTdGF0ZSwgb3BlbldvcmtzcGFjZXMsIHByb21wdCwgd29ya3NwYWNlR3JvdXAgfSA9IHVzZVN0b3JlKHdvcmtzcGFjZVN0b3JlKTtcbiAgY29uc3QgbWVtb2lzZWRSZXN1bHRzOiBXb3Jrc3BhY2VzSW5mbyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBhY3RpdmU6IG9wZW5Xb3Jrc3BhY2VzLmxlbmd0aCA+IDAsXG4gICAgICBwcm9tcHQsXG4gICAgICB3b3Jrc3BhY2VXaW5kb3dTdGF0ZSxcbiAgICAgIHdvcmtzcGFjZXM6IG9wZW5Xb3Jrc3BhY2VzLFxuICAgICAgd29ya3NwYWNlR3JvdXAsXG4gICAgfTtcbiAgfSwgW29wZW5Xb3Jrc3BhY2VzLCB3b3Jrc3BhY2VXaW5kb3dTdGF0ZSwgcHJvbXB0LCB3b3Jrc3BhY2VHcm91cF0pO1xuICByZXR1cm4gbWVtb2lzZWRSZXN1bHRzO1xufVxuXG50eXBlIFByb21wdFR5cGUgPSAnY2xvc2luZy13b3Jrc3BhY2UnIHwgJ2Nsb3NpbmctYWxsLXdvcmtzcGFjZXMnIHwgJ2Nsb3Npbmctd29ya3NwYWNlLWxhdW5jaGluZy1uZXctd29ya3NwYWNlJztcblxuLyoqXG4gKiBTZXRzIHRoZSBjdXJyZW50IHByb21wdCBhY2NvcmRpbmcgdG8gdGhlIHByb21wdCB0eXBlLlxuICogQHBhcmFtIHByb21wdFR5cGUgRGV0ZXJtaW5lcyB0aGUgdGV4dCBhbmQgYmVoYXZpb3Igb2YgdGhlIHByb21wdFxuICogQHBhcmFtIG9uQ29uZmlybWF0aW9uIEZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBhZnRlciB0aGUgdXNlciBjb25maXJtcyB0byBjbG9zZSB0aGUgd29ya3NwYWNlXG4gKiBAcGFyYW0gd29ya3NwYWNlVGl0bGUgV29ya3NwYWNlIHRpdGxlIHRvIGJlIHNob3duIGluIHRoZSBwcm9tcHRcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaG93V29ya3NwYWNlUHJvbXB0cyhcbiAgcHJvbXB0VHlwZTogUHJvbXB0VHlwZSxcbiAgb25Db25maXJtYXRpb246ICgpID0+IHZvaWQgPSAoKSA9PiB7fSxcbiAgd29ya3NwYWNlVGl0bGU6IHN0cmluZyA9ICcnLFxuKSB7XG4gIGNvbnN0IHN0b3JlID0gZ2V0V29ya3NwYWNlU3RvcmUoKTtcblxuICBsZXQgcHJvbXB0OiBQcm9tcHQ7XG4gIHN3aXRjaCAocHJvbXB0VHlwZSkge1xuICAgIGNhc2UgJ2Nsb3Npbmctd29ya3NwYWNlJzoge1xuICAgICAgcHJvbXB0ID0ge1xuICAgICAgICB0aXRsZTogZ2V0Q29yZVRyYW5zbGF0aW9uKCd1bnNhdmVkQ2hhbmdlc1RpdGxlVGV4dCcsICdVbnNhdmVkIGNoYW5nZXMnKSxcbiAgICAgICAgYm9keTogZ2V0Q29yZVRyYW5zbGF0aW9uKFxuICAgICAgICAgICd1bnNhdmVkQ2hhbmdlc0luT3BlbmVkV29ya3NwYWNlJyxcbiAgICAgICAgICBgWW91IG1heSBoYXZlIHVuc2F2ZWQgY2hhbmdlcyBpbiB0aGUgb3BlbmVkIHdvcmtzcGFjZS4gRG8geW91IHdhbnQgdG8gZGlzY2FyZCB0aGVzZSBjaGFuZ2VzP2AsXG4gICAgICAgICksXG4gICAgICAgIG9uQ29uZmlybTogKCkgPT4ge1xuICAgICAgICAgIG9uQ29uZmlybWF0aW9uPy4oKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29uZmlybVRleHQ6IGdldENvcmVUcmFuc2xhdGlvbignZGlzY2FyZCcsICdEaXNjYXJkJyksXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2FzZSAnY2xvc2luZy1hbGwtd29ya3NwYWNlcyc6IHtcbiAgICAgIGNvbnN0IHdvcmtzcGFjZXNOb3RDbG9zZWQgPSBzdG9yZVxuICAgICAgICAuZ2V0U3RhdGUoKVxuICAgICAgICAub3BlbldvcmtzcGFjZXMuZmlsdGVyKCh7IG5hbWUgfSkgPT4gIWNhbkNsb3NlV29ya3NwYWNlV2l0aG91dFByb21wdGluZyhuYW1lKSlcbiAgICAgICAgLm1hcCgoeyB0aXRsZSB9LCBpbmR4KSA9PiBgJHtpbmR4ICsgMX0uICR7dGl0bGV9YCk7XG5cbiAgICAgIHByb21wdCA9IHtcbiAgICAgICAgdGl0bGU6IGdldENvcmVUcmFuc2xhdGlvbignY2xvc2luZ0FsbFdvcmtzcGFjZXNQcm9tcHRUaXRsZScsICdZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMnKSxcbiAgICAgICAgYm9keTogZ2V0Q29yZVRyYW5zbGF0aW9uKFxuICAgICAgICAgICdjbG9zaW5nQWxsV29ya3NwYWNlc1Byb21wdEJvZHknLFxuICAgICAgICAgICdUaGVyZSBtYXkgYmUgdW5zYXZlZCBjaGFuZ2VzIGluIHRoZSBmb2xsb3dpbmcgd29ya3NwYWNlcy4gRG8geW91IHdhbnQgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHRoZSBmb2xsb3dpbmcgd29ya3NwYWNlcz8ge3t3b3Jrc3BhY2VOYW1lc319JyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB3b3Jrc3BhY2VOYW1lczogd29ya3NwYWNlc05vdENsb3NlZC5qb2luKCcsJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgKSxcbiAgICAgICAgb25Db25maXJtOiAoKSA9PiB7XG4gICAgICAgICAgb25Db25maXJtYXRpb24/LigpO1xuICAgICAgICB9LFxuICAgICAgICBjb25maXJtVGV4dDogZ2V0Q29yZVRyYW5zbGF0aW9uKCdjbG9zZUFsbE9wZW5lZFdvcmtzcGFjZXMnLCAnRGlzY2FyZCBjaGFuZ2VzIGluIHt7Y291bnR9fSB3b3Jrc3BhY2VzJywge1xuICAgICAgICAgIGNvdW50OiB3b3Jrc3BhY2VzTm90Q2xvc2VkLmxlbmd0aCxcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgJ2Nsb3Npbmctd29ya3NwYWNlLWxhdW5jaGluZy1uZXctd29ya3NwYWNlJzoge1xuICAgICAgcHJvbXB0ID0ge1xuICAgICAgICB0aXRsZTogZ2V0Q29yZVRyYW5zbGF0aW9uKCd1bnNhdmVkQ2hhbmdlc1RpdGxlVGV4dCcsICdVbnNhdmVkIGNoYW5nZXMnKSxcbiAgICAgICAgYm9keTogZ2V0Q29yZVRyYW5zbGF0aW9uKFxuICAgICAgICAgICd1bnNhdmVkQ2hhbmdlc0luV29ya3NwYWNlJyxcbiAgICAgICAgICAnVGhlcmUgbWF5IGJlIHVuc2F2ZWQgY2hhbmdlcyBpbiBcInt7d29ya3NwYWNlTmFtZX19XCIuIFBsZWFzZSBzYXZlIHRoZW0gYmVmb3JlIG9wZW5pbmcgYW5vdGhlciB3b3Jrc3BhY2UuJyxcbiAgICAgICAgICB7IHdvcmtzcGFjZU5hbWU6IHdvcmtzcGFjZVRpdGxlIH0sXG4gICAgICAgICksXG4gICAgICAgIG9uQ29uZmlybTogKCkgPT4ge1xuICAgICAgICAgIHN0b3JlLnNldFN0YXRlKChzdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgcHJvbXB0OiBudWxsLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICBvbkNvbmZpcm1hdGlvbj8uKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbmZpcm1UZXh0OiBnZXRDb3JlVHJhbnNsYXRpb24oJ29wZW5Bbnl3YXknLCAnT3BlbiBhbnl3YXknKSxcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFdvcmtzcGFjZSBzeXN0ZW0gdHJ5aW5nIHRvIG9wZW4gdW5rbm93biBwcm9tcHQgdHlwZSBcIiR7cHJvbXB0VHlwZX1cIiBpbiBmdW5jdGlvbiBcInNob3dXb3Jrc3BhY2VQcm9tcHRzXCJgLFxuICAgICAgKTtcbiAgICAgIG9uQ29uZmlybWF0aW9uPy4oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgc3RvcmUuc2V0U3RhdGUoKHN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgcHJvbXB0IH0pKTtcbn1cblxuZnVuY3Rpb24gZ2V0V29ya3NwYWNlVGl0bGUod29ya3NwYWNlOiBXb3Jrc3BhY2VSZWdpc3RyYXRpb24sIGFkZGl0aW9uYWxQcm9wcz86IG9iamVjdCkge1xuICByZXR1cm4gYWRkaXRpb25hbFByb3BzPy5bJ3dvcmtzcGFjZVRpdGxlJ10gPz8gd29ya3NwYWNlLnRpdGxlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRXb3Jrc3BhY2VTdG9yZSgpIHtcbiAgZ2V0V29ya3NwYWNlU3RvcmUoKS5zZXRTdGF0ZShpbml0aWFsU3RhdGUpO1xufVxuXG4vKipcbiAqIFRoZSB3b3Jrc3BhY2UgZ3JvdXAgc3RvcmUgaXMgYSBzdG9yZSB0aGF0IGlzIHNwZWNpZmljIHRvIHRoZSB3b3Jrc3BhY2UgZ3JvdXAuXG4gKiBJZiB0aGUgd29ya3NwYWNlIGhhcyBpdHMgb3duIHNpZGViYXIsIHRoZSBzdG9yZSB3aWxsIGJlIGNyZWF0ZWQuXG4gKiBUaGlzIHN0b3JlIGNhbiBiZSB1c2VkIHRvIHN0b3JlIGRhdGEgdGhhdCBpcyBzcGVjaWZpYyB0byB0aGUgd29ya3NwYWNlIGdyb3VwLlxuICogVGhlIHN0b3JlIHdpbGwgYmUgc2FtZSBmb3IgYWxsIHRoZSB3b3Jrc3BhY2VzIHdpdGggc2FtZSBncm91cCBuYW1lLlxuICpcbiAqIEZvciB3b3Jrc3BhY2VzIGxhdW5jaGVkIHdpdGhvdXQgYSBncm91cCwgdGhlIHN0b3JlIHdpbGwgYmUgdW5kZWZpbmVkLlxuICpcbiAqIFRoZSBzdG9yZSB3aWxsIGJlIGNsZWFyZWQgd2hlbiBhbGwgdGhlIHdvcmtzcGFjZXMgd2l0aCB0aGUgc3RvcmUncyBncm91cCBuYW1lIGFyZSBjbG9zZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRXb3Jrc3BhY2VHcm91cFN0b3JlKFxuICB3b3Jrc3BhY2VHcm91cE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgYWRkaXRpb25hbFByb3BzOiBvYmplY3QgPSB7fSxcbik6IFN0b3JlQXBpPG9iamVjdD4gfCB1bmRlZmluZWQge1xuICBpZiAoIXdvcmtzcGFjZUdyb3VwTmFtZSB8fCB3b3Jrc3BhY2VHcm91cE5hbWUgPT09ICdkZWZhdWx0Jykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3Qgc3RvcmUgPSBnZXRHbG9iYWxTdG9yZTxvYmplY3Q+KHdvcmtzcGFjZUdyb3VwTmFtZSwge30pO1xuICBpZiAoYWRkaXRpb25hbFByb3BzKSB7XG4gICAgc3RvcmUuc2V0U3RhdGUoKHByZXYpID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgLi4uYWRkaXRpb25hbFByb3BzLFxuICAgIH0pKTtcbiAgfVxuICByZXR1cm4gc3RvcmU7XG59XG4iXSwibmFtZXMiOlsidXNlTWVtbyIsImdldFdvcmtzcGFjZUdyb3VwUmVnaXN0cmF0aW9uIiwiZ2V0V29ya3NwYWNlUmVnaXN0cmF0aW9uIiwibmF2aWdhdGUiLCJnZXRHbG9iYWxTdG9yZSIsImNyZWF0ZUdsb2JhbFN0b3JlIiwiZ2V0Q29yZVRyYW5zbGF0aW9uIiwidXNlU3RvcmUiLCJjYW5DbG9zZVdvcmtzcGFjZVdpdGhvdXRQcm9tcHRpbmciLCJuYW1lIiwiaWdub3JlQ2hhbmdlcyIsInByb21wdEJlZm9yZUZuIiwiZ2V0UHJvbXB0QmVmb3JlQ2xvc2luZ0ZjbiIsImNsb3NlV29ya3NwYWNlR3JvdXAiLCJncm91cE5hbWUiLCJvbldvcmtzcGFjZUNsb3NldXAiLCJzdG9yZSIsImdldFdvcmtzcGFjZVN0b3JlIiwiY3VycmVudFdvcmtzcGFjZUdyb3VwIiwiZ2V0U3RhdGUiLCJ3b3Jrc3BhY2VHcm91cCIsImN1cnJlbnRHcm91cE5hbWUiLCJmaWx0ZXIiLCJ3b3Jrc3BhY2UiLCJjbG9zZUFsbFdvcmtzcGFjZXMiLCJ3b3Jrc3BhY2VHcm91cFN0b3JlIiwiZ2V0V29ya3NwYWNlR3JvdXBTdG9yZSIsInNldFN0YXRlIiwidW5zdWJzY3JpYmUiLCJzdWJzY3JpYmUiLCJjbGVhbnVwIiwicHJldiIsInVuZGVmaW5lZCIsImxhdW5jaFdvcmtzcGFjZUdyb3VwIiwiYXJncyIsIndvcmtzcGFjZUdyb3VwUmVnaXN0cmF0aW9uIiwic3RhdGUiLCJvbldvcmtzcGFjZUdyb3VwTGF1bmNoIiwid29ya3NwYWNlR3JvdXBDbGVhbnVwIiwid29ya3NwYWNlVG9MYXVuY2giLCJvcGVuV29ya3NwYWNlcyIsImxlbmd0aCIsIm1lbWJlcnMiLCJsYXVuY2hXb3Jrc3BhY2UiLCJhZGRpdGlvbmFsUHJvcHMiLCJwcm9tcHRCZWZvcmVMYXVuY2hpbmdXb3Jrc3BhY2UiLCJuZXdXb3Jrc3BhY2VEZXRhaWxzIiwibmV3V29ya3NwYWNlUmVnaXN0cmF0aW9uIiwicHJvY2VlZCIsImNsb3NlV29ya3NwYWNlIiwib25Xb3Jrc3BhY2VDbG9zZSIsInNob3dXb3Jrc3BhY2VQcm9tcHRzIiwidGl0bGUiLCJpbmNsdWRlcyIsIm5ld1dvcmtzcGFjZSIsImdldFdvcmtzcGFjZVRpdGxlIiwib3B0aW9ucyIsImNsb3NlV29ya3NwYWNlV2l0aFNhdmVkQ2hhbmdlcyIsInByb21wdEJlZm9yZUNsb3NpbmciLCJ0ZXN0RmNuIiwic2V0VGl0bGUiLCJ0aXRsZU5vZGUiLCJtYXAiLCJ3IiwidXBkYXRlU3RvcmVXaXRoTmV3V29ya3NwYWNlIiwid29ya3NwYWNlVG9CZUFkZGVkIiwicmVzdE9mVGhlV29ya3NwYWNlcyIsIndvcmtzcGFjZVdpbmRvd1N0YXRlIiwiZ2V0VXBkYXRlZFdvcmtzcGFjZVdpbmRvd1N0YXRlIiwid29ya3NwYWNlSW5kZXhJbk9wZW5Xb3Jrc3BhY2VzIiwiZmluZEluZGV4IiwiaXNXb3Jrc3BhY2VBbHJlYWR5T3BlbiIsIm9wZW5lZFdvcmtzcGFjZVdpdGhTYW1lVHlwZSIsImZpbmQiLCJ0eXBlIiwiY2FuSGlkZSIsIm9wZW5Xb3Jrc3BhY2UiLCJuYXZpZ2F0ZUFuZExhdW5jaFdvcmtzcGFjZSIsInRhcmdldFVybCIsImNvbnRleHRLZXkiLCJ3b3Jrc3BhY2VOYW1lIiwiY2hhbmdlV29ya3NwYWNlQ29udGV4dCIsInRvIiwicHJvbXB0QmVmb3JlQ2xvc2luZ0ZjbnMiLCJjYW5jZWxQcm9tcHQiLCJwcm9tcHQiLCJkZWZhdWx0T3B0aW9ucyIsInVwZGF0ZVN0b3JlV2l0aENsb3NlZFdvcmtzcGFjZSIsIndvcmtzcGFjZVRvQmVDbG9zZWQiLCJuZXdPcGVuV29ya3NwYWNlcyIsIndvcmtzcGFjZUdyb3VwTmFtZSIsImN1cnJlbnROYW1lIiwiY29udGV4dCIsImluaXRpYWxTdGF0ZSIsIndvcmtzcGFjZVN0b3JlIiwidXBkYXRlV29ya3NwYWNlV2luZG93U3RhdGUiLCJ2YWx1ZSIsIndvcmtzcGFjZUF0VG9wIiwicHJlZmVycmVkV2luZG93U2l6ZSIsIm9uQ2xvc2luZ1dvcmtzcGFjZXMiLCJjYW5DbG9zZUFsbFdvcmtzcGFjZXMiLCJldmVyeSIsInVwZGF0ZVdvcmtzcGFjZVN0b3JlIiwicmVzZXRXb3Jrc3BhY2VTdG9yZSIsInVzZVdvcmtzcGFjZXMiLCJtZW1vaXNlZFJlc3VsdHMiLCJhY3RpdmUiLCJ3b3Jrc3BhY2VzIiwicHJvbXB0VHlwZSIsIm9uQ29uZmlybWF0aW9uIiwid29ya3NwYWNlVGl0bGUiLCJib2R5Iiwib25Db25maXJtIiwiY29uZmlybVRleHQiLCJ3b3Jrc3BhY2VzTm90Q2xvc2VkIiwiaW5keCIsIndvcmtzcGFjZU5hbWVzIiwiam9pbiIsImNvdW50IiwiY29uc29sZSIsImVycm9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../framework/esm-styleguide/src/workspaces/workspaces.ts\n");
|
|
2198
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ canCloseWorkspaceWithoutPrompting: () => (/* binding */ canCloseWorkspaceWithoutPrompting),\n/* harmony export */ cancelPrompt: () => (/* binding */ cancelPrompt),\n/* harmony export */ changeWorkspaceContext: () => (/* binding */ changeWorkspaceContext),\n/* harmony export */ closeAllWorkspaces: () => (/* binding */ closeAllWorkspaces),\n/* harmony export */ closeWorkspace: () => (/* binding */ closeWorkspace),\n/* harmony export */ getPromptBeforeClosingFcn: () => (/* binding */ getPromptBeforeClosingFcn),\n/* harmony export */ getWorkspaceGroupStore: () => (/* binding */ getWorkspaceGroupStore),\n/* harmony export */ getWorkspaceStore: () => (/* binding */ getWorkspaceStore),\n/* harmony export */ launchWorkspace: () => (/* binding */ launchWorkspace),\n/* harmony export */ launchWorkspaceGroup: () => (/* binding */ launchWorkspaceGroup),\n/* harmony export */ navigateAndLaunchWorkspace: () => (/* binding */ navigateAndLaunchWorkspace),\n/* harmony export */ promptBeforeClosing: () => (/* binding */ promptBeforeClosing),\n/* harmony export */ resetWorkspaceStore: () => (/* binding */ resetWorkspaceStore),\n/* harmony export */ showWorkspacePrompts: () => (/* binding */ showWorkspacePrompts),\n/* harmony export */ updateWorkspaceWindowState: () => (/* binding */ updateWorkspaceWindowState),\n/* harmony export */ useWorkspaces: () => (/* binding */ useWorkspaces),\n/* harmony export */ workspaceStore: () => (/* binding */ workspaceStore)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _openmrs_esm_extensions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @openmrs/esm-extensions */ \"../../framework/esm-extensions/dist/index.js\");\n/* harmony import */ var _openmrs_esm_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @openmrs/esm-navigation */ \"../../framework/esm-navigation/dist/index.js\");\n/* harmony import */ var _openmrs_esm_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @openmrs/esm-state */ \"../../framework/esm-state/dist/index.js\");\n/* harmony import */ var _openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @openmrs/esm-translations */ \"../../framework/esm-translations/dist/index.js\");\n/* harmony import */ var _openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @openmrs/esm-react-utils */ \"../../framework/esm-react-utils/dist/index.js\");\n/** @module @category Workspace */ function _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];\n return arr2;\n}\nfunction _array_without_holes(arr) {\n if (Array.isArray(arr)) return _array_like_to_array(arr);\n}\nfunction _define_property(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 return obj;\n}\nfunction _iterable_to_array(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _non_iterable_spread() {\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}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n 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 return target;\n}\nfunction _to_consumable_array(arr) {\n return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();\n}\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(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(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\n}\n\n\n\n\n\n\n/**\n *\n * @param name Name of the workspace\n * @param ignoreChanges If set to true, the \"unsaved changes\" modal will never be shown, even if the `promptBeforeClosing` function returns true. The user will not be prompted before closing.\n * @returns true if the workspace can be closed.\n */ function canCloseWorkspaceWithoutPrompting(name) {\n var ignoreChanges = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n if (ignoreChanges) {\n return true;\n }\n var promptBeforeFn = getPromptBeforeClosingFcn(name);\n return !promptBeforeFn || !promptBeforeFn();\n}\n/**\n * Closes a workspace group and performs cleanup operations.\n *\n * @param groupName - The name of the workspace group to close\n * @param onWorkspaceCloseup - Optional callback function to execute after closing the workspace group\n * @returns void, or exits early if the current workspace group name doesn't match the provided group name\n *\n * @remarks\n * This function performs the following operations:\n * - Validates if the provided group name matches the current workspace group\n * - Closes all workspaces associated with the group\n * - Clears the workspace group store state\n * - Executes cleanup function if defined in the workspace group\n * - Updates the main workspace store to remove the workspace group\n * - Calls the optional closeup callback if provided\n */ function closeWorkspaceGroup(groupName, onWorkspaceCloseup) {\n var _store_getState;\n var store = getWorkspaceStore();\n var currentWorkspaceGroup = (_store_getState = store.getState()) === null || _store_getState === void 0 ? void 0 : _store_getState.workspaceGroup;\n var currentGroupName = currentWorkspaceGroup === null || currentWorkspaceGroup === void 0 ? void 0 : currentWorkspaceGroup.name;\n if (!currentGroupName || groupName !== currentGroupName) {\n return;\n }\n var filter = currentGroupName ? function(workspace) {\n return workspace.currentWorkspaceGroup === currentGroupName;\n } : function() {\n return true;\n };\n closeAllWorkspaces(function() {\n // Clearing the workspace group and respective store if the new workspace is not part of the current group, which is handled in the `launchWorkspace` function.\n var workspaceGroupStore = getWorkspaceGroupStore(groupName);\n if (workspaceGroupStore) {\n workspaceGroupStore.setState({}, true);\n var unsubscribe = workspaceGroupStore.subscribe(function() {});\n unsubscribe();\n }\n if (typeof (currentWorkspaceGroup === null || currentWorkspaceGroup === void 0 ? void 0 : currentWorkspaceGroup.cleanup) === 'function') {\n currentWorkspaceGroup.cleanup();\n }\n store.setState(function(prev) {\n return _object_spread_props(_object_spread({}, prev), {\n workspaceGroup: undefined\n });\n });\n if (typeof onWorkspaceCloseup === 'function') {\n onWorkspaceCloseup();\n }\n }, filter);\n}\n/**\n * Launches a workspace group with the specified name and configuration.\n * If there are any open workspaces, it will first close them before launching the new workspace group.\n *\n * @param groupName - The name of the workspace group to launch\n * @param args - Configuration object for launching the workspace group\n * @param args.state - The initial state for the workspace group\n * @param args.onWorkspaceGroupLaunch - Optional callback function to be executed after the workspace group is launched\n * @param args.workspaceGroupCleanup - Optional cleanup function to be executed when the workspace group is closed\n *\n * @example\n * launchWorkspaceGroup(\"myGroup\", {\n * state: initialState,\n * onWorkspaceGroupLaunch: () => console.log(\"Workspace group launched\"),\n * workspaceGroupCleanup: () => console.log(\"Cleaning up workspace group\")\n * });\n */ function launchWorkspaceGroup(groupName, args) {\n var workspaceGroupRegistration = (0,_openmrs_esm_extensions__WEBPACK_IMPORTED_MODULE_1__.getWorkspaceGroupRegistration)(groupName);\n var state = args.state, onWorkspaceGroupLaunch = args.onWorkspaceGroupLaunch, workspaceGroupCleanup = args.workspaceGroupCleanup, workspaceToLaunch = args.workspaceToLaunch;\n var store = getWorkspaceStore();\n if (store.getState().openWorkspaces.length) {\n var workspaceGroup = store.getState().workspaceGroup;\n if (workspaceGroup) {\n closeWorkspaceGroup(workspaceGroup === null || workspaceGroup === void 0 ? void 0 : workspaceGroup.name, function() {\n launchWorkspaceGroup(groupName, args);\n });\n } else {\n closeAllWorkspaces(function() {\n launchWorkspaceGroup(groupName, args);\n });\n }\n } else {\n store.setState(function(prev) {\n return _object_spread_props(_object_spread({}, prev), {\n workspaceGroup: {\n name: groupName,\n members: workspaceGroupRegistration.members,\n cleanup: workspaceGroupCleanup\n }\n });\n });\n getWorkspaceGroupStore(groupName, state);\n onWorkspaceGroupLaunch === null || onWorkspaceGroupLaunch === void 0 ? void 0 : onWorkspaceGroupLaunch();\n if (workspaceToLaunch) {\n var _workspaceToLaunch_additionalProps;\n launchWorkspace(workspaceToLaunch.name, (_workspaceToLaunch_additionalProps = workspaceToLaunch.additionalProps) !== null && _workspaceToLaunch_additionalProps !== void 0 ? _workspaceToLaunch_additionalProps : {});\n }\n }\n}\nfunction promptBeforeLaunchingWorkspace(workspace, newWorkspaceDetails) {\n var name = newWorkspaceDetails.name, additionalProps = newWorkspaceDetails.additionalProps;\n var newWorkspaceRegistration = (0,_openmrs_esm_extensions__WEBPACK_IMPORTED_MODULE_1__.getWorkspaceRegistration)(name);\n var proceed = function() {\n closeWorkspace(workspace.name, {\n ignoreChanges: true,\n // Calling the launchWorkspace again, since one of the `if` case\n // might resolve, but we need to check all the cases before launching the form.\n onWorkspaceClose: function() {\n return launchWorkspace(name, additionalProps);\n },\n // If the new workspace is of the same sidebar group, then we don't need to clear the workspace group store.\n closeWorkspaceGroup: false\n });\n };\n if (!canCloseWorkspaceWithoutPrompting(workspace.name)) {\n var _workspace_title;\n showWorkspacePrompts('closing-workspace-launching-new-workspace', proceed, (_workspace_title = workspace.title) !== null && _workspace_title !== void 0 ? _workspace_title : workspace.name);\n } else {\n proceed();\n }\n}\n/**\n * This launches a workspace by its name. The workspace must have been registered.\n * Workspaces should be registered in the `routes.json` file.\n *\n * For the workspace to appear, there must be either a `<WorkspaceOverlay />` or\n * a `<WorkspaceWindow />` component rendered.\n *\n * The behavior of this function is as follows:\n *\n * - If no workspaces are open, or if no other workspaces with the same type are open,\n * it will be opened and focused.\n * - If a workspace with the same name is already open, it will be displayed/focused,\n * if it was not already.\n * - If a workspace is launched and a workspace which cannot be hidden is already open,\n * a confirmation modal will pop up warning about closing the currently open workspace.\n * - If another workspace with the same type is open, the workspace will be brought to\n * the front and then a confirmation modal will pop up warning about closing the opened\n * workspace\n *\n * Note that this function just manipulates the workspace store. The UI logic is handled\n * by the components that display workspaces.\n *\n * Additional props can be passed to the workspace component being launched. Passing a\n * prop named `workspaceTitle` will override the title of the workspace.\n *\n * @param name The name of the workspace to launch\n * @param additionalProps Props to pass to the workspace component being launched. Passing\n * a prop named `workspaceTitle` will override the title of the workspace.\n */ function launchWorkspace(name, additionalProps) {\n var _currentWorkspaceGroup_members, _store_getState_workspaceGroup;\n var store = getWorkspaceStore();\n var workspace = (0,_openmrs_esm_extensions__WEBPACK_IMPORTED_MODULE_1__.getWorkspaceRegistration)(name);\n var currentWorkspaceGroup = store.getState().workspaceGroup;\n if (currentWorkspaceGroup && !((_currentWorkspaceGroup_members = currentWorkspaceGroup.members) === null || _currentWorkspaceGroup_members === void 0 ? void 0 : _currentWorkspaceGroup_members.includes(name))) {\n closeWorkspaceGroup(currentWorkspaceGroup.name, function() {\n launchWorkspace(name, additionalProps);\n });\n return;\n }\n var currentGroupName = (_store_getState_workspaceGroup = store.getState().workspaceGroup) === null || _store_getState_workspaceGroup === void 0 ? void 0 : _store_getState_workspaceGroup.name;\n var newWorkspace = _object_spread_props(_object_spread({}, workspace), {\n title: getWorkspaceTitle(workspace, additionalProps),\n closeWorkspace: function() {\n var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n return closeWorkspace(name, options);\n },\n closeWorkspaceWithSavedChanges: function(options) {\n return closeWorkspace(name, _object_spread({\n ignoreChanges: true\n }, options));\n },\n promptBeforeClosing: function(testFcn) {\n return promptBeforeClosing(name, testFcn);\n },\n setTitle: function(title, titleNode) {\n newWorkspace.title = title;\n newWorkspace.titleNode = titleNode;\n store.setState(function(state) {\n var openWorkspaces = state.openWorkspaces.map(function(w) {\n return w.name === name ? newWorkspace : w;\n });\n return _object_spread_props(_object_spread({}, state), {\n openWorkspaces: openWorkspaces\n });\n });\n },\n currentWorkspaceGroup: currentGroupName,\n additionalProps: additionalProps !== null && additionalProps !== void 0 ? additionalProps : {}\n });\n if (currentGroupName) {\n getWorkspaceGroupStore(currentGroupName, additionalProps);\n }\n function updateStoreWithNewWorkspace(workspaceToBeAdded, restOfTheWorkspaces) {\n store.setState(function(state) {\n var openWorkspaces = [\n workspaceToBeAdded\n ].concat(_to_consumable_array(restOfTheWorkspaces !== null && restOfTheWorkspaces !== void 0 ? restOfTheWorkspaces : state.openWorkspaces));\n var workspaceWindowState = getUpdatedWorkspaceWindowState(workspaceToBeAdded);\n return _object_spread_props(_object_spread({}, state), {\n openWorkspaces: openWorkspaces,\n workspaceWindowState: workspaceWindowState\n });\n });\n }\n var openWorkspaces = store.getState().openWorkspaces;\n var workspaceIndexInOpenWorkspaces = openWorkspaces.findIndex(function(w) {\n return w.name === name;\n });\n var isWorkspaceAlreadyOpen = workspaceIndexInOpenWorkspaces >= 0;\n var openedWorkspaceWithSameType = openWorkspaces.find(function(w) {\n return w.type == newWorkspace.type;\n });\n if (openWorkspaces.length === 0) {\n updateStoreWithNewWorkspace(newWorkspace);\n } else if (!openWorkspaces[0].canHide && workspaceIndexInOpenWorkspaces !== 0) {\n promptBeforeLaunchingWorkspace(openWorkspaces[0], {\n name: name,\n additionalProps: additionalProps\n });\n } else if (isWorkspaceAlreadyOpen) {\n var openWorkspace = openWorkspaces[workspaceIndexInOpenWorkspaces];\n // Only update the title if it hasn't been set by `setTitle`\n if (openWorkspace.title === getWorkspaceTitle(openWorkspace, openWorkspace.additionalProps)) {\n openWorkspace.title = getWorkspaceTitle(newWorkspace, newWorkspace.additionalProps);\n }\n openWorkspace.additionalProps = newWorkspace.additionalProps;\n var restOfTheWorkspaces = openWorkspaces.filter(function(w) {\n return w.name != name;\n });\n updateStoreWithNewWorkspace(openWorkspaces[workspaceIndexInOpenWorkspaces], restOfTheWorkspaces);\n } else if (openedWorkspaceWithSameType) {\n var restOfTheWorkspaces1 = store.getState().openWorkspaces.filter(function(w) {\n return w.type != newWorkspace.type;\n });\n updateStoreWithNewWorkspace(openedWorkspaceWithSameType, restOfTheWorkspaces1);\n promptBeforeLaunchingWorkspace(openedWorkspaceWithSameType, {\n name: name,\n additionalProps: additionalProps\n });\n } else {\n updateStoreWithNewWorkspace(newWorkspace);\n }\n}\n/**\n * Use this function to navigate to a new page and launch a workspace on that page.\n *\n * @param options.targetUrl: The URL to navigate to. Will be passed to [[navigate]].\n * @param options.contextKey: The context key used by the target page.\n * @param options.workspaceName: The name of the workspace to launch.\n * @param options.additionalProps: Additional props to pass to the workspace component being launched.\n */ function navigateAndLaunchWorkspace(param) {\n var targetUrl = param.targetUrl, contextKey = param.contextKey, workspaceName = param.workspaceName, additionalProps = param.additionalProps;\n changeWorkspaceContext(contextKey);\n launchWorkspace(workspaceName, additionalProps);\n (0,_openmrs_esm_navigation__WEBPACK_IMPORTED_MODULE_2__.navigate)({\n to: targetUrl\n });\n}\nvar promptBeforeClosingFcns = {};\nfunction promptBeforeClosing(workspaceName, testFcn) {\n promptBeforeClosingFcns[workspaceName] = testFcn;\n}\nfunction getPromptBeforeClosingFcn(workspaceName) {\n return promptBeforeClosingFcns[workspaceName];\n}\nfunction cancelPrompt() {\n var store = getWorkspaceStore();\n var state = store.getState();\n store.setState(_object_spread_props(_object_spread({}, state), {\n prompt: null\n }));\n}\nvar defaultOptions = {\n ignoreChanges: false,\n onWorkspaceClose: function() {},\n closeWorkspaceGroup: true\n};\n/**\n * Function to close an opened workspace\n * @param name Workspace registration name\n * @param options Options to close workspace\n */ function closeWorkspace(name) {\n var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n options = _object_spread({}, defaultOptions, options);\n var store = getWorkspaceStore();\n var updateStoreWithClosedWorkspace = function() {\n var _store_getState_workspaceGroup, _options_onWorkspaceClose;\n var state = store.getState();\n var workspaceToBeClosed = state.openWorkspaces.find(function(w) {\n return w.name === name;\n });\n var newOpenWorkspaces = state.openWorkspaces.filter(function(w) {\n return w.name != name;\n });\n var workspaceGroupName = (_store_getState_workspaceGroup = store.getState().workspaceGroup) === null || _store_getState_workspaceGroup === void 0 ? void 0 : _store_getState_workspaceGroup.name;\n if (workspaceGroupName && options.closeWorkspaceGroup) {\n closeWorkspaceGroup(workspaceGroupName);\n }\n // ensure closed workspace will not prompt\n promptBeforeClosing(name, function() {\n return false;\n });\n store.setState(function(prev) {\n return _object_spread_props(_object_spread({}, prev), {\n prompt: null,\n openWorkspaces: newOpenWorkspaces,\n workspaceWindowState: getUpdatedWorkspaceWindowState(newOpenWorkspaces === null || newOpenWorkspaces === void 0 ? void 0 : newOpenWorkspaces[0])\n });\n });\n options === null || options === void 0 ? void 0 : (_options_onWorkspaceClose = options.onWorkspaceClose) === null || _options_onWorkspaceClose === void 0 ? void 0 : _options_onWorkspaceClose.call(options);\n };\n if (!canCloseWorkspaceWithoutPrompting(name, options === null || options === void 0 ? void 0 : options.ignoreChanges)) {\n var _getWorkspaceRegistration_title;\n var currentName = (_getWorkspaceRegistration_title = (0,_openmrs_esm_extensions__WEBPACK_IMPORTED_MODULE_1__.getWorkspaceRegistration)(name).title) !== null && _getWorkspaceRegistration_title !== void 0 ? _getWorkspaceRegistration_title : name;\n showWorkspacePrompts('closing-workspace', updateStoreWithClosedWorkspace, currentName);\n return false;\n } else {\n updateStoreWithClosedWorkspace();\n return true;\n }\n}\n/**\n * The set of workspaces is specific to a particular page. This function\n * should be used when transitioning to a new page. If the current\n * workspace data is for a different page, the workspace state is cleared.\n *\n * This is called by the workspace components when they mount.\n * @internal\n *\n * @param contextKey An arbitrary key to identify the current page\n */ function changeWorkspaceContext(contextKey) {\n var store = getWorkspaceStore();\n var state = store.getState();\n if (state.context != contextKey) {\n store.setState({\n context: contextKey,\n openWorkspaces: [],\n prompt: null\n });\n }\n}\nvar initialState = {\n context: '',\n openWorkspaces: [],\n prompt: null,\n workspaceWindowState: 'normal',\n workspaceGroup: undefined\n};\nvar workspaceStore = (0,_openmrs_esm_state__WEBPACK_IMPORTED_MODULE_3__.createGlobalStore)('workspace', initialState);\nfunction getWorkspaceStore() {\n return workspaceStore;\n}\nfunction updateWorkspaceWindowState(value) {\n var store = getWorkspaceStore();\n var state = store.getState();\n store.setState(_object_spread_props(_object_spread({}, state), {\n workspaceWindowState: value\n }));\n}\nfunction getUpdatedWorkspaceWindowState(workspaceAtTop) {\n var _workspaceAtTop_preferredWindowSize;\n return (_workspaceAtTop_preferredWindowSize = workspaceAtTop === null || workspaceAtTop === void 0 ? void 0 : workspaceAtTop.preferredWindowSize) !== null && _workspaceAtTop_preferredWindowSize !== void 0 ? _workspaceAtTop_preferredWindowSize : 'normal';\n}\nfunction closeAllWorkspaces() {\n var onClosingWorkspaces = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : function() {}, filter = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : function() {\n return true;\n };\n var store = getWorkspaceStore();\n var canCloseAllWorkspaces = store.getState().openWorkspaces.filter(filter).every(function(param) {\n var name = param.name;\n return canCloseWorkspaceWithoutPrompting(name);\n });\n var updateWorkspaceStore = function() {\n resetWorkspaceStore();\n onClosingWorkspaces === null || onClosingWorkspaces === void 0 ? void 0 : onClosingWorkspaces();\n };\n if (!canCloseAllWorkspaces) {\n showWorkspacePrompts('closing-all-workspaces', updateWorkspaceStore);\n } else {\n updateWorkspaceStore();\n }\n}\nfunction useWorkspaces() {\n var _useStore = (0,_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_5__.useStore)(workspaceStore), workspaceWindowState = _useStore.workspaceWindowState, openWorkspaces = _useStore.openWorkspaces, prompt = _useStore.prompt, workspaceGroup = _useStore.workspaceGroup;\n var memoisedResults = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function() {\n return {\n active: openWorkspaces.length > 0,\n prompt: prompt,\n workspaceWindowState: workspaceWindowState,\n workspaces: openWorkspaces,\n workspaceGroup: workspaceGroup\n };\n }, [\n openWorkspaces,\n workspaceWindowState,\n prompt,\n workspaceGroup\n ]);\n return memoisedResults;\n}\n/**\n * Sets the current prompt according to the prompt type.\n * @param promptType Determines the text and behavior of the prompt\n * @param onConfirmation Function to be called after the user confirms to close the workspace\n * @param workspaceTitle Workspace title to be shown in the prompt\n * @returns\n */ function showWorkspacePrompts(promptType) {\n var onConfirmation = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : function() {}, workspaceTitle = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : '';\n var store = getWorkspaceStore();\n var prompt;\n switch(promptType){\n case 'closing-workspace':\n {\n prompt = {\n title: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('unsavedChangesTitleText', 'Unsaved changes'),\n body: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('unsavedChangesInOpenedWorkspace', \"You may have unsaved changes in the opened workspace. Do you want to discard these changes?\"),\n onConfirm: function() {\n onConfirmation === null || onConfirmation === void 0 ? void 0 : onConfirmation();\n },\n confirmText: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('discard', 'Discard')\n };\n break;\n }\n case 'closing-all-workspaces':\n {\n var workspacesNotClosed = store.getState().openWorkspaces.filter(function(param) {\n var name = param.name;\n return !canCloseWorkspaceWithoutPrompting(name);\n }).map(function(param, indx) {\n var title = param.title;\n return \"\".concat(indx + 1, \". \").concat(title);\n });\n prompt = {\n title: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('closingAllWorkspacesPromptTitle', 'You have unsaved changes'),\n body: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('closingAllWorkspacesPromptBody', 'There may be unsaved changes in the following workspaces. Do you want to discard changes in the following workspaces? {{workspaceNames}}', {\n workspaceNames: workspacesNotClosed.join(',')\n }),\n onConfirm: function() {\n onConfirmation === null || onConfirmation === void 0 ? void 0 : onConfirmation();\n },\n confirmText: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('closeAllOpenedWorkspaces', 'Discard changes in {{count}} workspaces', {\n count: workspacesNotClosed.length\n })\n };\n break;\n }\n case 'closing-workspace-launching-new-workspace':\n {\n prompt = {\n title: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('unsavedChangesTitleText', 'Unsaved changes'),\n body: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('unsavedChangesInWorkspace', 'There may be unsaved changes in \"{{workspaceName}}\". Please save them before opening another workspace.', {\n workspaceName: workspaceTitle\n }),\n onConfirm: function() {\n store.setState(function(state) {\n return _object_spread_props(_object_spread({}, state), {\n prompt: null\n });\n });\n onConfirmation === null || onConfirmation === void 0 ? void 0 : onConfirmation();\n },\n confirmText: (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_4__.getCoreTranslation)('openAnyway', 'Open anyway')\n };\n break;\n }\n default:\n {\n console.error('Workspace system trying to open unknown prompt type \"'.concat(promptType, '\" in function \"showWorkspacePrompts\"'));\n onConfirmation === null || onConfirmation === void 0 ? void 0 : onConfirmation();\n return;\n }\n }\n store.setState(function(state) {\n return _object_spread_props(_object_spread({}, state), {\n prompt: prompt\n });\n });\n}\nfunction getWorkspaceTitle(workspace, additionalProps) {\n var _additionalProps_workspaceTitle;\n return (_additionalProps_workspaceTitle = additionalProps === null || additionalProps === void 0 ? void 0 : additionalProps['workspaceTitle']) !== null && _additionalProps_workspaceTitle !== void 0 ? _additionalProps_workspaceTitle : workspace.title;\n}\nfunction resetWorkspaceStore() {\n getWorkspaceStore().setState(initialState);\n}\n/**\n * The workspace group store is a store that is specific to the workspace group.\n * If the workspace has its own sidebar, the store will be created.\n * This store can be used to store data that is specific to the workspace group.\n * The store will be same for all the workspaces with same group name.\n *\n * For workspaces launched without a group, the store will be undefined.\n *\n * The store will be cleared when all the workspaces with the store's group name are closed.\n */ function getWorkspaceGroupStore(workspaceGroupName) {\n var additionalProps = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (!workspaceGroupName || workspaceGroupName === 'default') {\n return undefined;\n }\n var store = (0,_openmrs_esm_state__WEBPACK_IMPORTED_MODULE_3__.getGlobalStore)(workspaceGroupName, {});\n if (additionalProps) {\n store.setState(function(prev) {\n return _object_spread({}, prev, additionalProps);\n });\n }\n return store;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL3NyYy93b3Jrc3BhY2VzL3dvcmtzcGFjZXMudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0NBQWdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNnQjtBQU1mO0FBRWtCO0FBQ29CO0FBQ1I7QUFDWDtBQXlHcEQ7Ozs7O0NBS0MsR0FDTSxTQUFTUSxrQ0FBa0NDLElBQVk7UUFBRUMsZ0JBQUFBLGlFQUF5QjtJQUN2RixJQUFJQSxlQUFlO1FBQ2pCLE9BQU87SUFDVDtJQUNBLElBQU1DLGlCQUFpQkMsMEJBQTBCSDtJQUNqRCxPQUFPLENBQUNFLGtCQUFrQixDQUFDQTtBQUM3QjtBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Q0FlQyxHQUNELFNBQVNFLG9CQUFvQkMsU0FBaUIsRUFBRUMsa0JBQStCO1FBRS9DQztJQUQ5QixJQUFNQSxRQUFRQztJQUNkLElBQU1DLHlCQUF3QkYsa0JBQUFBLE1BQU1HLFFBQVEsZ0JBQWRILHNDQUFBQSxnQkFBa0JJLGNBQWM7SUFDOUQsSUFBTUMsbUJBQW1CSCxrQ0FBQUEsNENBQUFBLHNCQUF1QlQsSUFBSTtJQUNwRCxJQUFJLENBQUNZLG9CQUFvQlAsY0FBY08sa0JBQWtCO1FBQ3ZEO0lBQ0Y7SUFDQSxJQUFNQyxTQUFnREQsbUJBQ2xELFNBQUNFO2VBQWNBLFVBQVVMLHFCQUFxQixLQUFLRztRQUNuRDtlQUFNOztJQUVWRyxtQkFBbUI7UUFDakIsK0pBQStKO1FBQy9KLElBQU1DLHNCQUFzQkMsdUJBQXVCWjtRQUNuRCxJQUFJVyxxQkFBcUI7WUFDdkJBLG9CQUFvQkUsUUFBUSxDQUFDLENBQUMsR0FBRztZQUNqQyxJQUFNQyxjQUFjSCxvQkFBb0JJLFNBQVMsQ0FBQyxZQUFPO1lBQ3pERDtRQUNGO1FBRUEsSUFBSSxRQUFPVixrQ0FBQUEsNENB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ZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLXN0eWxlZ3VpZGUvc3JjL3dvcmtzcGFjZXMvd29ya3NwYWNlcy50cz9jMTVlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBjYXRlZ29yeSBXb3Jrc3BhY2UgKi9cbmltcG9ydCB7IHVzZU1lbW8sIHR5cGUgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBTdG9yZUFwaSB9IGZyb20gJ3p1c3RhbmQvdmFuaWxsYSc7XG5pbXBvcnQge1xuICBnZXRXb3Jrc3BhY2VHcm91cFJlZ2lzdHJhdGlvbixcbiAgZ2V0V29ya3NwYWNlUmVnaXN0cmF0aW9uLFxuICB0eXBlIFdvcmtzcGFjZVJlZ2lzdHJhdGlvbixcbn0gZnJvbSAnQG9wZW5tcnMvZXNtLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgdHlwZSBXb3Jrc3BhY2VXaW5kb3dTdGF0ZSB9IGZyb20gJ0BvcGVubXJzL2VzbS1nbG9iYWxzJztcbmltcG9ydCB7IG5hdmlnYXRlIH0gZnJvbSAnQG9wZW5tcnMvZXNtLW5hdmlnYXRpb24nO1xuaW1wb3J0IHsgZ2V0R2xvYmFsU3RvcmUsIGNyZWF0ZUdsb2JhbFN0b3JlIH0gZnJvbSAnQG9wZW5tcnMvZXNtLXN0YXRlJztcbmltcG9ydCB7IGdldENvcmVUcmFuc2xhdGlvbiB9IGZyb20gJ0BvcGVubXJzL2VzbS10cmFuc2xhdGlvbnMnO1xuaW1wb3J0IHsgdXNlU3RvcmUgfSBmcm9tICdAb3Blbm1ycy9lc20tcmVhY3QtdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENsb3NlV29ya3NwYWNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNsb3NlIHRoZSB3b3Jrc3BhY2UgaWdub3JpbmcgYWxsIHRoZSBjaGFuZ2VzIHByZXNlbnQgaW4gdGhlIHdvcmtzcGFjZS5cbiAgICpcbiAgICogSWYgaWdub3JlQ2hhbmdlcyBpcyB0cnVlLCB0aGUgdXNlciB3aWxsIG5vdCBiZSBwcm9tcHRlZCB0byBzYXZlIGNoYW5nZXMgYmVmb3JlIGNsb3NpbmdcbiAgICogZXZlbiBpZiB0aGUgYHRlc3RGY25gIHBhc3NlZCB0byBgcHJvbXB0QmVmb3JlQ2xvc2luZ2AgcmV0dXJucyBgdHJ1ZWAuXG4gICAqL1xuICBpZ25vcmVDaGFuZ2VzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHRha2UgYW4gYWN0aW9uIGFmdGVyIHRoZSB3b3Jrc3BhY2UgaXMgY2xvc2VkLCB5b3UgY2FuIHBhc3MgeW91ciBmdW5jdGlvbiBhc1xuICAgKiBgb25Xb3Jrc3BhY2VDbG9zZWAuIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgb25seSBhZnRlciB0aGUgd29ya3NwYWNlIGlzIGNsb3NlZCwgZ2l2ZW5cbiAgICogdGhhdCB0aGUgdXNlciBtaWdodCBiZSBzaG93biBhIHByb21wdC5cbiAgICogQHJldHVybnMgdm9pZFxuICAgKi9cbiAgb25Xb3Jrc3BhY2VDbG9zZT86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIHRoZSB3b3Jrc3BhY2UgZ3JvdXAgc2hvdWxkIGJlIGNsb3NlZCBhbmQgc3RvcmUgdG8gYmVcbiAgICogY2xlYXJlZCB3aGVuIHRoaXMgd29ya3NwYWNlIGlzIGNsb3NlZC5cbiAgICogRGVmYXVsdHMgdG8gdHJ1ZSBleGNlcHQgd2hlbiBvcGVuaW5nIGEgbmV3IHdvcmtzcGFjZSBvZiB0aGUgc2FtZSBncm91cC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgY2xvc2VXb3Jrc3BhY2VHcm91cD86IGJvb2xlYW47XG59XG5cbi8qKiBUaGUgZGVmYXVsdCBwYXJhbWV0ZXJzIHJlY2VpdmVkIGJ5IGFsbCB3b3Jrc3BhY2VzICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmF1bHRXb3Jrc3BhY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBDYWxsIHRoaXMgZnVuY3Rpb24gdG8gY2xvc2UgdGhlIHdvcmtzcGFjZS4gVGhpcyBmdW5jdGlvbiB3aWxsIHByb21wdCB0aGUgdXNlclxuICAgKiBpZiB0aGVyZSBhcmUgYW55IHVuc2F2ZWQgY2hhbmdlcyB0byB3b3Jrc3BhY2UuXG4gICAqXG4gICAqIFlvdSBjYW4gcGFzcyBgb25Xb3Jrc3BhY2VDbG9zZWAgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBmaW5hbGx5XG4gICAqIGNsb3NlZCwgZ2l2ZW4gdGhlIHVzZXIgZm9yY2VmdWxseSBjbG9zZXMgdGhlIHdvcmtzcGFjZS5cbiAgICovXG4gIGNsb3NlV29ya3NwYWNlKGNsb3NlV29ya3NwYWNlT3B0aW9ucz86IENsb3NlV29ya3NwYWNlT3B0aW9ucyk6IHZvaWQ7XG4gIC8qKlxuICAgKiBDYWxsIHRoaXMgd2l0aCBhIG5vLWFyZ3MgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRydWUgaWYgdGhlIHVzZXIgc2hvdWxkIGJlIHByb21wdGVkIGJlZm9yZVxuICAgKiB0aGlzIHdvcmtzcGFjZSBpcyBjbG9zZWQ7IGUuZy4gaWYgdGhlcmUgaXMgdW5zYXZlZCBkYXRhLlxuICAgKi9cbiAgcHJvbXB0QmVmb3JlQ2xvc2luZyh0ZXN0RmNuOiAoKSA9PiBib29sZWFuKTogdm9pZDtcbiAgLyoqXG4gICAqIENhbGwgdGhpcyBmdW5jdGlvbiB0byBjbG9zZSB0aGUgd29ya3NwYWNlIGFmdGVyIHRoZSBmb3JtIGlzIHNhdmVkLiBUaGlzIGZ1bmN0aW9uXG4gICAqIHdpbGwgZGlyZWN0bHkgY2xvc2UgdGhlIHdvcmtzcGFjZSB3aXRob3V0IGFueSBwcm9tcHRcbiAgICovXG4gIGNsb3NlV29ya3NwYWNlV2l0aFNhdmVkQ2hhbmdlcyhjbG9zZVdvcmtzcGFjZU9wdGlvbnM/OiBDbG9zZVdvcmtzcGFjZU9wdGlvbnMpOiB2b2lkO1xuICAvKipcbiAgICogVXNlIHRoaXMgdG8gc2V0IHRoZSB3b3Jrc3BhY2UgdGl0bGUgaWYgaXQgbmVlZHMgdG8gYmUgc2V0IGR5bmFtaWNhbGx5LlxuICAgKlxuICAgKiBXb3Jrc3BhY2UgdGl0bGVzIGdlbmVyYWxseSBhcmUgc2V0IGluIHRoZSB3b3Jrc3BhY2UgZGVjbGFyYXRpb24gaW4gdGhlIHJvdXRlcy5qc29uIGZpbGUuIFRoZXkgY2FuIGFsc29cbiAgICogYmUgc2V0IGJ5IHRoZSB3b3Jrc3BhY2UgbGF1bmNoZXIgYnkgcGFzc2luZyBgd29ya3NwYWNlVGl0bGVgIGluIHRoZSBgYWRkaXRpb25hbFByb3BzYFxuICAgKiBwYXJhbWV0ZXIgb2YgdGhlIGBsYXVuY2hXb3Jrc3BhY2VgIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWZ1bCB3aGVuIHRoZSB3b3Jrc3BhY2VcbiAgICogdGl0bGUgbmVlZHMgdG8gYmUgc2V0IGR5bmFtaWNhbGx5LlxuICAgKlxuICAgKiBAcGFyYW0gdGl0bGUgVGhlIHRpdGxlIHRvIHNldC4gSWYgdXNpbmcgdGl0bGVOb2RlLCBzZXQgdGhpcyB0byBhIGh1bWFuLXJlYWRhYmxlIHN0cmluZ1xuICAgKiAgICAgICAgd2hpY2ggd2lsbCBpZGVudGlmeSB0aGUgd29ya3NwYWNlIGluIG5vdGlmaWNhdGlvbnMgYW5kIG90aGVyIHBsYWNlcy5cbiAgICogQHBhcmFtIHRpdGxlTm9kZSBBIFJlYWN0IG9iamVjdCB0byBwdXQgaW4gdGhlIHdvcmtzcGFjZSBoZWFkZXIgaW4gcGxhY2Ugb2YgdGhlIHRpdGxlLiBUaGlzXG4gICAqICAgICAgICBpcyB1c2VmdWwgZm9yIGRpc3BsYXlpbmcgY3VzdG9tIGVsZW1lbnRzIGluIHRoZSBoZWFkZXIuIE5vdGUgdGhhdCBjdXN0b20gaGVhZGVyXG4gICAqICAgICAgICBlbGVtZW50cyBjYW4gYWxzbyBiZSBhdHRhY2hlZCB0byB0aGUgd29ya3NwYWNlIGhlYWRlciBleHRlbnNpb24gc2xvdHMuXG4gICAqL1xuICBzZXRUaXRsZSh0aXRsZTogc3RyaW5nLCB0aXRsZU5vZGU/OiBSZWFjdE5vZGUpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZVdpbmRvd1NpemUge1xuICBzaXplOiBXb3Jrc3BhY2VXaW5kb3dTdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VXaW5kb3dTaXplUHJvdmlkZXJQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZVdpbmRvd1NpemVDb250ZXh0IHtcbiAgd2luZG93U2l6ZTogV29ya3NwYWNlV2luZG93U2l6ZTtcbiAgdXBkYXRlV2luZG93U2l6ZT8odmFsdWU6IFdvcmtzcGFjZVdpbmRvd1N0YXRlKTogYW55O1xuICBhY3RpdmU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvbXB0IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgYm9keTogc3RyaW5nO1xuICAvKiogRGVmYXVsdHMgdG8gXCJDb25maXJtXCIgKi9cbiAgY29uZmlybVRleHQ/OiBzdHJpbmc7XG4gIG9uQ29uZmlybSgpOiB2b2lkO1xuICAvKiogRGVmYXVsdHMgdG8gXCJDYW5jZWxcIiAqL1xuICBjYW5jZWxUZXh0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZVN0b3JlU3RhdGUge1xuICBjb250ZXh0OiBzdHJpbmcgfCBudWxsO1xuICBvcGVuV29ya3NwYWNlczogQXJyYXk8T3BlbldvcmtzcGFjZT47XG4gIHByb21wdDogUHJvbXB0IHwgbnVsbDtcbiAgd29ya3NwYWNlV2luZG93U3RhdGU6IFdvcmtzcGFjZVdpbmRvd1N0YXRlO1xuICB3b3Jrc3BhY2VHcm91cD86IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgbWVtYmVyczogQXJyYXk8c3RyaW5nPjtcbiAgICBjbGVhbnVwPygpOiB2b2lkO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5Xb3Jrc3BhY2UgZXh0ZW5kcyBXb3Jrc3BhY2VSZWdpc3RyYXRpb24sIERlZmF1bHRXb3Jrc3BhY2VQcm9wcyB7XG4gIGFkZGl0aW9uYWxQcm9wczogb2JqZWN0O1xuICBjdXJyZW50V29ya3NwYWNlR3JvdXA/OiBzdHJpbmc7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIHdvcmtzcGFjZVxuICogQHBhcmFtIGlnbm9yZUNoYW5nZXMgSWYgc2V0IHRvIHRydWUsIHRoZSBcInVuc2F2ZWQgY2hhbmdlc1wiIG1vZGFsIHdpbGwgbmV2ZXIgYmUgc2hvd24sIGV2ZW4gaWYgdGhlIGBwcm9tcHRCZWZvcmVDbG9zaW5nYCBmdW5jdGlvbiByZXR1cm5zIHRydWUuIFRoZSB1c2VyIHdpbGwgbm90IGJlIHByb21wdGVkIGJlZm9yZSBjbG9zaW5nLlxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgd29ya3NwYWNlIGNhbiBiZSBjbG9zZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYW5DbG9zZVdvcmtzcGFjZVdpdGhvdXRQcm9tcHRpbmcobmFtZTogc3RyaW5nLCBpZ25vcmVDaGFuZ2VzOiBib29sZWFuID0gZmFsc2UpIHtcbiAgaWYgKGlnbm9yZUNoYW5nZXMpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBjb25zdCBwcm9tcHRCZWZvcmVGbiA9IGdldFByb21wdEJlZm9yZUNsb3NpbmdGY24obmFtZSk7XG4gIHJldHVybiAhcHJvbXB0QmVmb3JlRm4gfHwgIXByb21wdEJlZm9yZUZuKCk7XG59XG5cbi8qKlxuICogQ2xvc2VzIGEgd29ya3NwYWNlIGdyb3VwIGFuZCBwZXJmb3JtcyBjbGVhbnVwIG9wZXJhdGlvbnMuXG4gKlxuICogQHBhcmFtIGdyb3VwTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UgZ3JvdXAgdG8gY2xvc2VcbiAqIEBwYXJhbSBvbldvcmtzcGFjZUNsb3NldXAgLSBPcHRpb25hbCBjYWxsYmFjayBmdW5jdGlvbiB0byBleGVjdXRlIGFmdGVyIGNsb3NpbmcgdGhlIHdvcmtzcGFjZSBncm91cFxuICogQHJldHVybnMgdm9pZCwgb3IgZXhpdHMgZWFybHkgaWYgdGhlIGN1cnJlbnQgd29ya3NwYWNlIGdyb3VwIG5hbWUgZG9lc24ndCBtYXRjaCB0aGUgcHJvdmlkZWQgZ3JvdXAgbmFtZVxuICpcbiAqIEByZW1hcmtzXG4gKiBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIHRoZSBmb2xsb3dpbmcgb3BlcmF0aW9uczpcbiAqIC0gVmFsaWRhdGVzIGlmIHRoZSBwcm92aWRlZCBncm91cCBuYW1lIG1hdGNoZXMgdGhlIGN1cnJlbnQgd29ya3NwYWNlIGdyb3VwXG4gKiAtIENsb3NlcyBhbGwgd29ya3NwYWNlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdyb3VwXG4gKiAtIENsZWFycyB0aGUgd29ya3NwYWNlIGdyb3VwIHN0b3JlIHN0YXRlXG4gKiAtIEV4ZWN1dGVzIGNsZWFudXAgZnVuY3Rpb24gaWYgZGVmaW5lZCBpbiB0aGUgd29ya3NwYWNlIGdyb3VwXG4gKiAtIFVwZGF0ZXMgdGhlIG1haW4gd29ya3NwYWNlIHN0b3JlIHRvIHJlbW92ZSB0aGUgd29ya3NwYWNlIGdyb3VwXG4gKiAtIENhbGxzIHRoZSBvcHRpb25hbCBjbG9zZXVwIGNhbGxiYWNrIGlmIHByb3ZpZGVkXG4gKi9cbmZ1bmN0aW9uIGNsb3NlV29ya3NwYWNlR3JvdXAoZ3JvdXBOYW1lOiBzdHJpbmcsIG9uV29ya3NwYWNlQ2xvc2V1cD86ICgpID0+IHZvaWQpIHtcbiAgY29uc3Qgc3RvcmUgPSBnZXRXb3Jrc3BhY2VTdG9yZSgpO1xuICBjb25zdCBjdXJyZW50V29ya3NwYWNlR3JvdXAgPSBzdG9yZS5nZXRTdGF0ZSgpPy53b3Jrc3BhY2VHcm91cDtcbiAgY29uc3QgY3VycmVudEdyb3VwTmFtZSA9IGN1cnJlbnRXb3Jrc3BhY2VHcm91cD8ubmFtZTtcbiAgaWYgKCFjdXJyZW50R3JvdXBOYW1lIHx8IGdyb3VwTmFtZSAhPT0gY3VycmVudEdyb3VwTmFtZSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBmaWx0ZXI6ICh3b3Jrc3BhY2U6IE9wZW5Xb3Jrc3BhY2UpID0+IGJvb2xlYW4gPSBjdXJyZW50R3JvdXBOYW1lXG4gICAgPyAod29ya3NwYWNlKSA9PiB3b3Jrc3BhY2UuY3VycmVudFdvcmtzcGFjZUdyb3VwID09PSBjdXJyZW50R3JvdXBOYW1lXG4gICAgOiAoKSA9PiB0cnVlO1xuXG4gIGNsb3NlQWxsV29ya3NwYWNlcygoKSA9PiB7XG4gICAgLy8gQ2xlYXJpbmcgdGhlIHdvcmtzcGFjZSBncm91cCBhbmQgcmVzcGVjdGl2ZSBzdG9yZSBpZiB0aGUgbmV3IHdvcmtzcGFjZSBpcyBub3QgcGFydCBvZiB0aGUgY3VycmVudCBncm91cCwgd2hpY2ggaXMgaGFuZGxlZCBpbiB0aGUgYGxhdW5jaFdvcmtzcGFjZWAgZnVuY3Rpb24uXG4gICAgY29uc3Qgd29ya3NwYWNlR3JvdXBTdG9yZSA9IGdldFdvcmtzcGFjZUdyb3VwU3RvcmUoZ3JvdXBOYW1lKTtcbiAgICBpZiAod29ya3NwYWNlR3JvdXBTdG9yZSkge1xuICAgICAgd29ya3NwYWNlR3JvdXBTdG9yZS5zZXRTdGF0ZSh7fSwgdHJ1ZSk7XG4gICAgICBjb25zdCB1bnN1YnNjcmliZSA9IHdvcmtzcGFjZUdyb3VwU3RvcmUuc3Vic2NyaWJlKCgpID0+IHt9KTtcbiAgICAgIHVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjdXJyZW50V29ya3NwYWNlR3JvdXA/LmNsZWFudXAgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGN1cnJlbnRXb3Jrc3BhY2VHcm91cC5jbGVhbnVwKCk7XG4gICAgfVxuXG4gICAgc3RvcmUuc2V0U3RhdGUoKHByZXYpID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgd29ya3NwYWNlR3JvdXA6IHVuZGVmaW5lZCxcbiAgICB9KSk7XG5cbiAgICBpZiAodHlwZW9mIG9uV29ya3NwYWNlQ2xvc2V1cCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgb25Xb3Jrc3BhY2VDbG9zZXVwKCk7XG4gICAgfVxuICB9LCBmaWx0ZXIpO1xufVxuXG5pbnRlcmZhY2UgTGF1bmNoV29ya3NwYWNlR3JvdXBBcmcge1xuICBzdGF0ZTogUmVjb3JkPHN0cmluZyB8IHN5bWJvbCB8IG51bWJlciwgYW55PjtcbiAgb25Xb3Jrc3BhY2VHcm91cExhdW5jaD8oKTogdm9pZDtcbiAgd29ya3NwYWNlR3JvdXBDbGVhbnVwPygpOiB2b2lkO1xuICB3b3Jrc3BhY2VUb0xhdW5jaD86IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgYWRkaXRpb25hbFByb3BzPzogUmVjb3JkPHN0cmluZyB8IHN5bWJvbCB8IG51bWJlciwgYW55PjtcbiAgfTtcbn1cblxuLyoqXG4gKiBMYXVuY2hlcyBhIHdvcmtzcGFjZSBncm91cCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSBhbmQgY29uZmlndXJhdGlvbi5cbiAqIElmIHRoZXJlIGFyZSBhbnkgb3BlbiB3b3Jrc3BhY2VzLCBpdCB3aWxsIGZpcnN0IGNsb3NlIHRoZW0gYmVmb3JlIGxhdW5jaGluZyB0aGUgbmV3IHdvcmtzcGFjZSBncm91cC5cbiAqXG4gKiBAcGFyYW0gZ3JvdXBOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZSBncm91cCB0byBsYXVuY2hcbiAqIEBwYXJhbSBhcmdzIC0gQ29uZmlndXJhdGlvbiBvYmplY3QgZm9yIGxhdW5jaGluZyB0aGUgd29ya3NwYWNlIGdyb3VwXG4gKiBAcGFyYW0gYXJncy5zdGF0ZSAtIFRoZSBpbml0aWFsIHN0YXRlIGZvciB0aGUgd29ya3NwYWNlIGdyb3VwXG4gKiBAcGFyYW0gYXJncy5vbldvcmtzcGFjZUdyb3VwTGF1bmNoIC0gT3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIHdvcmtzcGFjZSBncm91cCBpcyBsYXVuY2hlZFxuICogQHBhcmFtIGFyZ3Mud29ya3NwYWNlR3JvdXBDbGVhbnVwIC0gT3B0aW9uYWwgY2xlYW51cCBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCB3aGVuIHRoZSB3b3Jrc3BhY2UgZ3JvdXAgaXMgY2xvc2VkXG4gKlxuICogQGV4YW1wbGVcbiAqIGxhdW5jaFdvcmtzcGFjZUdyb3VwKFwibXlHcm91cFwiLCB7XG4gKiAgIHN0YXRlOiBpbml0aWFsU3RhdGUsXG4gKiAgIG9uV29ya3NwYWNlR3JvdXBMYXVuY2g6ICgpID0+IGNvbnNvbGUubG9nKFwiV29ya3NwYWNlIGdyb3VwIGxhdW5jaGVkXCIpLFxuICogICB3b3Jrc3BhY2VHcm91cENsZWFudXA6ICgpID0+IGNvbnNvbGUubG9nKFwiQ2xlYW5pbmcgdXAgd29ya3NwYWNlIGdyb3VwXCIpXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxhdW5jaFdvcmtzcGFjZUdyb3VwKGdyb3VwTmFtZTogc3RyaW5nLCBhcmdzOiBMYXVuY2hXb3Jrc3BhY2VHcm91cEFyZykge1xuICBjb25zdCB3b3Jrc3BhY2VHcm91cFJlZ2lzdHJhdGlvbiA9IGdldFdvcmtzcGFjZUdyb3VwUmVnaXN0cmF0aW9uKGdyb3VwTmFtZSk7XG4gIGNvbnN0IHsgc3RhdGUsIG9uV29ya3NwYWNlR3JvdXBMYXVuY2gsIHdvcmtzcGFjZUdyb3VwQ2xlYW51cCwgd29ya3NwYWNlVG9MYXVuY2ggfSA9IGFyZ3M7XG4gIGNvbnN0IHN0b3JlID0gZ2V0V29ya3NwYWNlU3RvcmUoKTtcbiAgaWYgKHN0b3JlLmdldFN0YXRlKCkub3BlbldvcmtzcGFjZXMubGVuZ3RoKSB7XG4gICAgY29uc3Qgd29ya3NwYWNlR3JvdXAgPSBzdG9yZS5nZXRTdGF0ZSgpLndvcmtzcGFjZUdyb3VwO1xuICAgIGlmICh3b3Jrc3BhY2VHcm91cCkge1xuICAgICAgY2xvc2VXb3Jrc3BhY2VHcm91cCh3b3Jrc3BhY2VHcm91cD8ubmFtZSwgKCkgPT4ge1xuICAgICAgICBsYXVuY2hXb3Jrc3BhY2VHcm91cChncm91cE5hbWUsIGFyZ3MpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNsb3NlQWxsV29ya3NwYWNlcygoKSA9PiB7XG4gICAgICAgIGxhdW5jaFdvcmtzcGFjZUdyb3VwKGdyb3VwTmFtZSwgYXJncyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3RvcmUuc2V0U3RhdGUoKHByZXYpID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgd29ya3NwYWNlR3JvdXA6IHtcbiAgICAgICAgbmFtZTogZ3JvdXBOYW1lLFxuICAgICAgICBtZW1iZXJzOiB3b3Jrc3BhY2VHcm91cFJlZ2lzdHJhdGlvbi5tZW1iZXJzLFxuICAgICAgICBjbGVhbnVwOiB3b3Jrc3BhY2VHcm91cENsZWFudXAsXG4gICAgICB9LFxuICAgIH0pKTtcbiAgICBnZXRXb3Jrc3BhY2VHcm91cFN0b3JlKGdyb3VwTmFtZSwgc3RhdGUpO1xuICAgIG9uV29ya3NwYWNlR3JvdXBMYXVuY2g/LigpO1xuICAgIGlmICh3b3Jrc3BhY2VUb0xhdW5jaCkge1xuICAgICAgbGF1bmNoV29ya3NwYWNlKHdvcmtzcGFjZVRvTGF1bmNoLm5hbWUsIHdvcmtzcGFjZVRvTGF1bmNoLmFkZGl0aW9uYWxQcm9wcyA/PyB7fSk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHByb21wdEJlZm9yZUxhdW5jaGluZ1dvcmtzcGFjZShcbiAgd29ya3NwYWNlOiBPcGVuV29ya3NwYWNlLFxuICBuZXdXb3Jrc3BhY2VEZXRhaWxzOiB7IG5hbWU6IHN0cmluZzsgYWRkaXRpb25hbFByb3BzPzogb2JqZWN0IH0sXG4pIHtcbiAgY29uc3QgeyBuYW1lLCBhZGRpdGlvbmFsUHJvcHMgfSA9IG5ld1dvcmtzcGFjZURldGFpbHM7XG4gIGNvbnN0IG5ld1dvcmtzcGFjZVJlZ2lzdHJhdGlvbiA9IGdldFdvcmtzcGFjZVJlZ2lzdHJhdGlvbihuYW1lKTtcblxuICBjb25zdCBwcm9jZWVkID0gKCkgPT4ge1xuICAgIGNsb3NlV29ya3NwYWNlKHdvcmtzcGFjZS5uYW1lLCB7XG4gICAgICBpZ25vcmVDaGFuZ2VzOiB0cnVlLFxuICAgICAgLy8gQ2FsbGluZyB0aGUgbGF1bmNoV29ya3NwYWNlIGFnYWluLCBzaW5jZSBvbmUgb2YgdGhlIGBpZmAgY2FzZVxuICAgICAgLy8gbWlnaHQgcmVzb2x2ZSwgYnV0IHdlIG5lZWQgdG8gY2hlY2sgYWxsIHRoZSBjYXNlcyBiZWZvcmUgbGF1bmNoaW5nIHRoZSBmb3JtLlxuICAgICAgb25Xb3Jrc3BhY2VDbG9zZTogKCkgPT4gbGF1bmNoV29ya3NwYWNlKG5hbWUsIGFkZGl0aW9uYWxQcm9wcyksXG4gICAgICAvLyBJZiB0aGUgbmV3IHdvcmtzcGFjZSBpcyBvZiB0aGUgc2FtZSBzaWRlYmFyIGdyb3VwLCB0aGVuIHdlIGRvbid0IG5lZWQgdG8gY2xlYXIgdGhlIHdvcmtzcGFjZSBncm91cCBzdG9yZS5cbiAgICAgIGNsb3NlV29ya3NwYWNlR3JvdXA6IGZhbHNlLFxuICAgIH0pO1xuICB9O1xuXG4gIGlmICghY2FuQ2xvc2VXb3Jrc3BhY2VXaXRob3V0UHJvbXB0aW5nKHdvcmtzcGFjZS5uYW1lKSkge1xuICAgIHNob3dXb3Jrc3BhY2VQcm9tcHRzKCdjbG9zaW5nLXdvcmtzcGFjZS1sYXVuY2hpbmctbmV3LXdvcmtzcGFjZScsIHByb2NlZWQsIHdvcmtzcGFjZS50aXRsZSA/PyB3b3Jrc3BhY2UubmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgcHJvY2VlZCgpO1xuICB9XG59XG5cbi8qKlxuICogVGhpcyBsYXVuY2hlcyBhIHdvcmtzcGFjZSBieSBpdHMgbmFtZS4gVGhlIHdvcmtzcGFjZSBtdXN0IGhhdmUgYmVlbiByZWdpc3RlcmVkLlxuICogV29ya3NwYWNlcyBzaG91bGQgYmUgcmVnaXN0ZXJlZCBpbiB0aGUgYHJvdXRlcy5qc29uYCBmaWxlLlxuICpcbiAqIEZvciB0aGUgd29ya3NwYWNlIHRvIGFwcGVhciwgdGhlcmUgbXVzdCBiZSBlaXRoZXIgYSBgPFdvcmtzcGFjZU92ZXJsYXkgLz5gIG9yXG4gKiBhIGA8V29ya3NwYWNlV2luZG93IC8+YCBjb21wb25lbnQgcmVuZGVyZWQuXG4gKlxuICogVGhlIGJlaGF2aW9yIG9mIHRoaXMgZnVuY3Rpb24gaXMgYXMgZm9sbG93czpcbiAqXG4gKiAtIElmIG5vIHdvcmtzcGFjZXMgYXJlIG9wZW4sIG9yIGlmIG5vIG90aGVyIHdvcmtzcGFjZXMgd2l0aCB0aGUgc2FtZSB0eXBlIGFyZSBvcGVuLFxuICogICBpdCB3aWxsIGJlIG9wZW5lZCBhbmQgZm9jdXNlZC5cbiAqIC0gSWYgYSB3b3Jrc3BhY2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGlzIGFscmVhZHkgb3BlbiwgaXQgd2lsbCBiZSBkaXNwbGF5ZWQvZm9jdXNlZCxcbiAqICAgaWYgaXQgd2FzIG5vdCBhbHJlYWR5LlxuICogLSBJZiBhIHdvcmtzcGFjZSBpcyBsYXVuY2hlZCBhbmQgYSB3b3Jrc3BhY2Ugd2hpY2ggY2Fubm90IGJlIGhpZGRlbiBpcyBhbHJlYWR5IG9wZW4sXG4gKiAgYSBjb25maXJtYXRpb24gbW9kYWwgd2lsbCBwb3AgdXAgd2FybmluZyBhYm91dCBjbG9zaW5nIHRoZSBjdXJyZW50bHkgb3BlbiB3b3Jrc3BhY2UuXG4gKiAtIElmIGFub3RoZXIgd29ya3NwYWNlIHdpdGggdGhlIHNhbWUgdHlwZSBpcyBvcGVuLCB0aGUgd29ya3NwYWNlIHdpbGwgYmUgYnJvdWdodCB0b1xuICogICB0aGUgZnJvbnQgYW5kIHRoZW4gYSBjb25maXJtYXRpb24gbW9kYWwgd2lsbCBwb3AgdXAgd2FybmluZyBhYm91dCBjbG9zaW5nIHRoZSBvcGVuZWRcbiAqICAgd29ya3NwYWNlXG4gKlxuICogTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24ganVzdCBtYW5pcHVsYXRlcyB0aGUgd29ya3NwYWNlIHN0b3JlLiBUaGUgVUkgbG9naWMgaXMgaGFuZGxlZFxuICogYnkgdGhlIGNvbXBvbmVudHMgdGhhdCBkaXNwbGF5IHdvcmtzcGFjZXMuXG4gKlxuICogQWRkaXRpb25hbCBwcm9wcyBjYW4gYmUgcGFzc2VkIHRvIHRoZSB3b3Jrc3BhY2UgY29tcG9uZW50IGJlaW5nIGxhdW5jaGVkLiBQYXNzaW5nIGFcbiAqIHByb3AgbmFtZWQgYHdvcmtzcGFjZVRpdGxlYCB3aWxsIG92ZXJyaWRlIHRoZSB0aXRsZSBvZiB0aGUgd29ya3NwYWNlLlxuICpcbiAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UgdG8gbGF1bmNoXG4gKiBAcGFyYW0gYWRkaXRpb25hbFByb3BzIFByb3BzIHRvIHBhc3MgdG8gdGhlIHdvcmtzcGFjZSBjb21wb25lbnQgYmVpbmcgbGF1bmNoZWQuIFBhc3NpbmdcbiAqICAgICAgICAgIGEgcHJvcCBuYW1lZCBgd29ya3NwYWNlVGl0bGVgIHdpbGwgb3ZlcnJpZGUgdGhlIHRpdGxlIG9mIHRoZSB3b3Jrc3BhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsYXVuY2hXb3Jrc3BhY2U8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0V29ya3NwYWNlUHJvcHMgfCBvYmplY3QgPSBEZWZhdWx0V29ya3NwYWNlUHJvcHMgJiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuPihuYW1lOiBzdHJpbmcsIGFkZGl0aW9uYWxQcm9wcz86IE9taXQ8VCwga2V5b2YgRGVmYXVsdFdvcmtzcGFjZVByb3BzPiAmIHsgd29ya3NwYWNlVGl0bGU/OiBzdHJpbmcgfSkge1xuICBjb25zdCBzdG9yZSA9IGdldFdvcmtzcGFjZVN0b3JlKCk7XG4gIGNvbnN0IHdvcmtzcGFjZSA9IGdldFdvcmtzcGFjZVJlZ2lzdHJhdGlvbihuYW1lKTtcbiAgY29uc3QgY3VycmVudFdvcmtzcGFjZUdyb3VwID0gc3RvcmUuZ2V0U3RhdGUoKS53b3Jrc3BhY2VHcm91cDtcblxuICBpZiAoY3VycmVudFdvcmtzcGFjZUdyb3VwICYmICFjdXJyZW50V29ya3NwYWNlR3JvdXAubWVtYmVycz8uaW5jbHVkZXMobmFtZSkpIHtcbiAgICBjbG9zZVdvcmtzcGFjZUdyb3VwKGN1cnJlbnRXb3Jrc3BhY2VHcm91cC5uYW1lLCAoKSA9PiB7XG4gICAgICBsYXVuY2hXb3Jrc3BhY2UobmFtZSwgYWRkaXRpb25hbFByb3BzKTtcbiAgICB9KTtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgY3VycmVudEdyb3VwTmFtZSA9IHN0b3JlLmdldFN0YXRlKCkud29ya3NwYWNlR3JvdXA/Lm5hbWU7XG4gIGNvbnN0IG5ld1dvcmtzcGFjZTogT3BlbldvcmtzcGFjZSA9IHtcbiAgICAuLi53b3Jrc3BhY2UsXG4gICAgdGl0bGU6IGdldFdvcmtzcGFjZVRpdGxlKHdvcmtzcGFjZSwgYWRkaXRpb25hbFByb3BzKSxcbiAgICBjbG9zZVdvcmtzcGFjZTogKG9wdGlvbnM6IENsb3NlV29ya3NwYWNlT3B0aW9ucyA9IHt9KSA9PiBjbG9zZVdvcmtzcGFjZShuYW1lLCBvcHRpb25zKSxcbiAgICBjbG9zZVdvcmtzcGFjZVdpdGhTYXZlZENoYW5nZXM6IChvcHRpb25zOiBDbG9zZVdvcmtzcGFjZU9wdGlvbnMpID0+XG4gICAgICBjbG9zZVdvcmtzcGFjZShuYW1lLCB7IGlnbm9yZUNoYW5nZXM6IHRydWUsIC4uLm9wdGlvbnMgfSksXG4gICAgcHJvbXB0QmVmb3JlQ2xvc2luZzogKHRlc3RGY24pID0+IHByb21wdEJlZm9yZUNsb3NpbmcobmFtZSwgdGVzdEZjbiksXG4gICAgc2V0VGl0bGU6ICh0aXRsZTogc3RyaW5nLCB0aXRsZU5vZGU6IFJlYWN0Tm9kZSkgPT4ge1xuICAgICAgbmV3V29ya3NwYWNlLnRpdGxlID0gdGl0bGU7XG4gICAgICBuZXdXb3Jrc3BhY2UudGl0bGVOb2RlID0gdGl0bGVOb2RlO1xuICAgICAgc3RvcmUuc2V0U3RhdGUoKHN0YXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IG9wZW5Xb3Jrc3BhY2VzID0gc3RhdGUub3BlbldvcmtzcGFjZXMubWFwKCh3KSA9PiAody5uYW1lID09PSBuYW1lID8gbmV3V29ya3NwYWNlIDogdykpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIG9wZW5Xb3Jrc3BhY2VzLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBjdXJyZW50V29ya3NwYWNlR3JvdXA6IGN1cnJlbnRHcm91cE5hbWUsXG4gICAgYWRkaXRpb25hbFByb3BzOiBhZGRpdGlvbmFsUHJvcHMgPz8ge30sXG4gIH07XG5cbiAgaWYgKGN1cnJlbnRHcm91cE5hbWUpIHtcbiAgICBnZXRXb3Jrc3BhY2VHcm91cFN0b3JlKGN1cnJlbnRHcm91cE5hbWUsIGFkZGl0aW9uYWxQcm9wcyk7XG4gIH1cbiAgZnVuY3Rpb24gdXBkYXRlU3RvcmVXaXRoTmV3V29ya3NwYWNlKHdvcmtzcGFjZVRvQmVBZGRlZDogT3BlbldvcmtzcGFjZSwgcmVzdE9mVGhlV29ya3NwYWNlcz86IEFycmF5PE9wZW5Xb3Jrc3BhY2U+KSB7XG4gICAgc3RvcmUuc2V0U3RhdGUoKHN0YXRlKSA9PiB7XG4gICAgICBjb25zdCBvcGVuV29ya3NwYWNlcyA9IFt3b3Jrc3BhY2VUb0JlQWRkZWQsIC4uLihyZXN0T2ZUaGVXb3Jrc3BhY2VzID8/IHN0YXRlLm9wZW5Xb3Jrc3BhY2VzKV07XG4gICAgICBsZXQgd29ya3NwYWNlV2luZG93U3RhdGUgPSBnZXRVcGRhdGVkV29ya3NwYWNlV2luZG93U3RhdGUod29ya3NwYWNlVG9CZUFkZGVkKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG9wZW5Xb3Jrc3BhY2VzLFxuICAgICAgICB3b3Jrc3BhY2VXaW5kb3dTdGF0ZSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBvcGVuV29ya3NwYWNlcyA9IHN0b3JlLmdldFN0YXRlKCkub3BlbldvcmtzcGFjZXM7XG4gIGNvbnN0IHdvcmtzcGFjZUluZGV4SW5PcGVuV29ya3NwYWNlcyA9IG9wZW5Xb3Jrc3BhY2VzLmZpbmRJbmRleCgodykgPT4gdy5uYW1lID09PSBuYW1lKTtcbiAgY29uc3QgaXNXb3Jrc3BhY2VBbHJlYWR5T3BlbiA9IHdvcmtzcGFjZUluZGV4SW5PcGVuV29ya3NwYWNlcyA+PSAwO1xuICBjb25zdCBvcGVuZWRXb3Jrc3BhY2VXaXRoU2FtZVR5cGUgPSBvcGVuV29ya3NwYWNlcy5maW5kKCh3KSA9PiB3LnR5cGUgPT0gbmV3V29ya3NwYWNlLnR5cGUpO1xuXG4gIGlmIChvcGVuV29ya3NwYWNlcy5sZW5ndGggPT09IDApIHtcbiAgICB1cGRhdGVTdG9yZVdpdGhOZXdXb3Jrc3BhY2UobmV3V29ya3NwYWNlKTtcbiAgfSBlbHNlIGlmICghb3BlbldvcmtzcGFjZXNbMF0uY2FuSGlkZSAmJiB3b3Jrc3BhY2VJbmRleEluT3BlbldvcmtzcGFjZXMgIT09IDApIHtcbiAgICBwcm9tcHRCZWZvcmVMYXVuY2hpbmdXb3Jrc3BhY2Uob3BlbldvcmtzcGFjZXNbMF0sIHtcbiAgICAgIG5hbWUsXG4gICAgICBhZGRpdGlvbmFsUHJvcHMsXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoaXNXb3Jrc3BhY2VBbHJlYWR5T3Blbikge1xuICAgIGNvbnN0IG9wZW5Xb3Jrc3BhY2UgPSBvcGVuV29ya3NwYWNlc1t3b3Jrc3BhY2VJbmRleEluT3BlbldvcmtzcGFjZXNdO1xuICAgIC8vIE9ubHkgdXBkYXRlIHRoZSB0aXRsZSBpZiBpdCBoYXNuJ3QgYmVlbiBzZXQgYnkgYHNldFRpdGxlYFxuICAgIGlmIChvcGVuV29ya3NwYWNlLnRpdGxlID09PSBnZXRXb3Jrc3BhY2VUaXRsZShvcGVuV29ya3NwYWNlLCBvcGVuV29ya3NwYWNlLmFkZGl0aW9uYWxQcm9wcykpIHtcbiAgICAgIG9wZW5Xb3Jrc3BhY2UudGl0bGUgPSBnZXRXb3Jrc3BhY2VUaXRsZShuZXdXb3Jrc3BhY2UsIG5ld1dvcmtzcGFjZS5hZGRpdGlvbmFsUHJvcHMpO1xuICAgIH1cbiAgICBvcGVuV29ya3NwYWNlLmFkZGl0aW9uYWxQcm9wcyA9IG5ld1dvcmtzcGFjZS5hZGRpdGlvbmFsUHJvcHM7XG4gICAgY29uc3QgcmVzdE9mVGhlV29ya3NwYWNlcyA9IG9wZW5Xb3Jrc3BhY2VzLmZpbHRlcigodykgPT4gdy5uYW1lICE9IG5hbWUpO1xuICAgIHVwZGF0ZVN0b3JlV2l0aE5ld1dvcmtzcGFjZShvcGVuV29ya3NwYWNlc1t3b3Jrc3BhY2VJbmRleEluT3BlbldvcmtzcGFjZXNdLCByZXN0T2ZUaGVXb3Jrc3BhY2VzKTtcbiAgfSBlbHNlIGlmIChvcGVuZWRXb3Jrc3BhY2VXaXRoU2FtZVR5cGUpIHtcbiAgICBjb25zdCByZXN0T2ZUaGVXb3Jrc3BhY2VzID0gc3RvcmUuZ2V0U3RhdGUoKS5vcGVuV29ya3NwYWNlcy5maWx0ZXIoKHcpID0+IHcudHlwZSAhPSBuZXdXb3Jrc3BhY2UudHlwZSk7XG4gICAgdXBkYXRlU3RvcmVXaXRoTmV3V29ya3NwYWNlKG9wZW5lZFdvcmtzcGFjZVdpdGhTYW1lVHlwZSwgcmVzdE9mVGhlV29ya3NwYWNlcyk7XG4gICAgcHJvbXB0QmVmb3JlTGF1bmNoaW5nV29ya3NwYWNlKG9wZW5lZFdvcmtzcGFjZVdpdGhTYW1lVHlwZSwge1xuICAgICAgbmFtZSxcbiAgICAgIGFkZGl0aW9uYWxQcm9wcyxcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICB1cGRhdGVTdG9yZVdpdGhOZXdXb3Jrc3BhY2UobmV3V29ya3NwYWNlKTtcbiAgfVxufVxuXG4vKipcbiAqIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIG5hdmlnYXRlIHRvIGEgbmV3IHBhZ2UgYW5kIGxhdW5jaCBhIHdvcmtzcGFjZSBvbiB0aGF0IHBhZ2UuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMudGFyZ2V0VXJsOiBUaGUgVVJMIHRvIG5hdmlnYXRlIHRvLiBXaWxsIGJlIHBhc3NlZCB0byBbW25hdmlnYXRlXV0uXG4gKiBAcGFyYW0gb3B0aW9ucy5jb250ZXh0S2V5OiBUaGUgY29udGV4dCBrZXkgdXNlZCBieSB0aGUgdGFyZ2V0IHBhZ2UuXG4gKiBAcGFyYW0gb3B0aW9ucy53b3Jrc3BhY2VOYW1lOiBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlIHRvIGxhdW5jaC5cbiAqIEBwYXJhbSBvcHRpb25zLmFkZGl0aW9uYWxQcm9wczogQWRkaXRpb25hbCBwcm9wcyB0byBwYXNzIHRvIHRoZSB3b3Jrc3BhY2UgY29tcG9uZW50IGJlaW5nIGxhdW5jaGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbmF2aWdhdGVBbmRMYXVuY2hXb3Jrc3BhY2Uoe1xuICB0YXJnZXRVcmwsXG4gIGNvbnRleHRLZXksXG4gIHdvcmtzcGFjZU5hbWUsXG4gIGFkZGl0aW9uYWxQcm9wcyxcbn06IHtcbiAgdGFyZ2V0VXJsOiBzdHJpbmc7XG4gIGNvbnRleHRLZXk6IHN0cmluZztcbiAgd29ya3NwYWNlTmFtZTogc3RyaW5nO1xuICBhZGRpdGlvbmFsUHJvcHM/OiBvYmplY3Q7XG59KSB7XG4gIGNoYW5nZVdvcmtzcGFjZUNvbnRleHQoY29udGV4dEtleSk7XG4gIGxhdW5jaFdvcmtzcGFjZSh3b3Jrc3BhY2VOYW1lLCBhZGRpdGlvbmFsUHJvcHMpO1xuICBuYXZpZ2F0ZSh7IHRvOiB0YXJnZXRVcmwgfSk7XG59XG5cbmNvbnN0IHByb21wdEJlZm9yZUNsb3NpbmdGY25zID0ge307XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9tcHRCZWZvcmVDbG9zaW5nKHdvcmtzcGFjZU5hbWU6IHN0cmluZywgdGVzdEZjbjogKCkgPT4gYm9vbGVhbikge1xuICBwcm9tcHRCZWZvcmVDbG9zaW5nRmNuc1t3b3Jrc3BhY2VOYW1lXSA9IHRlc3RGY247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9tcHRCZWZvcmVDbG9zaW5nRmNuKHdvcmtzcGFjZU5hbWU6IHN0cmluZykge1xuICByZXR1cm4gcHJvbXB0QmVmb3JlQ2xvc2luZ0ZjbnNbd29ya3NwYWNlTmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYW5jZWxQcm9tcHQoKSB7XG4gIGNvbnN0IHN0b3JlID0gZ2V0V29ya3NwYWNlU3RvcmUoKTtcbiAgY29uc3Qgc3RhdGUgPSBzdG9yZS5nZXRTdGF0ZSgpO1xuICBzdG9yZS5zZXRTdGF0ZSh7IC4uLnN0YXRlLCBwcm9tcHQ6IG51bGwgfSk7XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBDbG9zZVdvcmtzcGFjZU9wdGlvbnMgPSB7XG4gIGlnbm9yZUNoYW5nZXM6IGZhbHNlLFxuICBvbldvcmtzcGFjZUNsb3NlOiAoKSA9PiB7fSxcbiAgY2xvc2VXb3Jrc3BhY2VHcm91cDogdHJ1ZSxcbn07XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gY2xvc2UgYW4gb3BlbmVkIHdvcmtzcGFjZVxuICogQHBhcmFtIG5hbWUgV29ya3NwYWNlIHJlZ2lzdHJhdGlvbiBuYW1lXG4gKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIHRvIGNsb3NlIHdvcmtzcGFjZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvc2VXb3Jrc3BhY2UobmFtZTogc3RyaW5nLCBvcHRpb25zOiBDbG9zZVdvcmtzcGFjZU9wdGlvbnMgPSB7fSk6IGJvb2xlYW4ge1xuICBvcHRpb25zID0geyAuLi5kZWZhdWx0T3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICBjb25zdCBzdG9yZSA9IGdldFdvcmtzcGFjZVN0b3JlKCk7XG5cbiAgY29uc3QgdXBkYXRlU3RvcmVXaXRoQ2xvc2VkV29ya3NwYWNlID0gKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gc3RvcmUuZ2V0U3RhdGUoKTtcbiAgICBjb25zdCB3b3Jrc3BhY2VUb0JlQ2xvc2VkID0gc3RhdGUub3BlbldvcmtzcGFjZXMuZmluZCgodykgPT4gdy5uYW1lID09PSBuYW1lKTtcbiAgICBjb25zdCBuZXdPcGVuV29ya3NwYWNlcyA9IHN0YXRlLm9wZW5Xb3Jrc3BhY2VzLmZpbHRlcigodykgPT4gdy5uYW1lICE9IG5hbWUpO1xuXG4gICAgY29uc3Qgd29ya3NwYWNlR3JvdXBOYW1lID0gc3RvcmUuZ2V0U3RhdGUoKS53b3Jrc3BhY2VHcm91cD8ubmFtZTtcblxuICAgIGlmICh3b3Jrc3BhY2VHcm91cE5hbWUgJiYgb3B0aW9ucy5jbG9zZVdvcmtzcGFjZUdyb3VwKSB7XG4gICAgICBjbG9zZVdvcmtzcGFjZUdyb3VwKHdvcmtzcGFjZUdyb3VwTmFtZSk7XG4gICAgfVxuXG4gICAgLy8gZW5zdXJlIGNsb3NlZCB3b3Jrc3BhY2Ugd2lsbCBub3QgcHJvbXB0XG4gICAgcHJvbXB0QmVmb3JlQ2xvc2luZyhuYW1lLCAoKSA9PiBmYWxzZSk7XG4gICAgc3RvcmUuc2V0U3RhdGUoKHByZXYpID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgcHJvbXB0OiBudWxsLFxuICAgICAgb3BlbldvcmtzcGFjZXM6IG5ld09wZW5Xb3Jrc3BhY2VzLFxuICAgICAgd29ya3NwYWNlV2luZG93U3RhdGU6IGdldFVwZGF0ZWRXb3Jrc3BhY2VXaW5kb3dTdGF0ZShuZXdPcGVuV29ya3NwYWNlcz8uWzBdKSxcbiAgICB9KSk7XG5cbiAgICBvcHRpb25zPy5vbldvcmtzcGFjZUNsb3NlPy4oKTtcbiAgfTtcblxuICBpZiAoIWNhbkNsb3NlV29ya3NwYWNlV2l0aG91dFByb21wdGluZyhuYW1lLCBvcHRpb25zPy5pZ25vcmVDaGFuZ2VzKSkge1xuICAgIGNvbnN0IGN1cnJlbnROYW1lID0gZ2V0V29ya3NwYWNlUmVnaXN0cmF0aW9uKG5hbWUpLnRpdGxlID8/IG5hbWU7XG4gICAgc2hvd1dvcmtzcGFjZVByb21wdHMoJ2Nsb3Npbmctd29ya3NwYWNlJywgdXBkYXRlU3RvcmVXaXRoQ2xvc2VkV29ya3NwYWNlLCBjdXJyZW50TmFtZSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGVsc2Uge1xuICAgIHVwZGF0ZVN0b3JlV2l0aENsb3NlZFdvcmtzcGFjZSgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8qKlxuICogVGhlIHNldCBvZiB3b3Jrc3BhY2VzIGlzIHNwZWNpZmljIHRvIGEgcGFydGljdWxhciBwYWdlLiBUaGlzIGZ1bmN0aW9uXG4gKiBzaG91bGQgYmUgdXNlZCB3aGVuIHRyYW5zaXRpb25pbmcgdG8gYSBuZXcgcGFnZS4gSWYgdGhlIGN1cnJlbnRcbiAqIHdvcmtzcGFjZSBkYXRhIGlzIGZvciBhIGRpZmZlcmVudCBwYWdlLCB0aGUgd29ya3NwYWNlIHN0YXRlIGlzIGNsZWFyZWQuXG4gKlxuICogVGhpcyBpcyBjYWxsZWQgYnkgdGhlIHdvcmtzcGFjZSBjb21wb25lbnRzIHdoZW4gdGhleSBtb3VudC5cbiAqIEBpbnRlcm5hbFxuICpcbiAqIEBwYXJhbSBjb250ZXh0S2V5IEFuIGFyYml0cmFyeSBrZXkgdG8gaWRlbnRpZnkgdGhlIGN1cnJlbnQgcGFnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlV29ya3NwYWNlQ29udGV4dChjb250ZXh0S2V5OiBzdHJpbmcgfCBudWxsKSB7XG4gIGNvbnN0IHN0b3JlID0gZ2V0V29ya3NwYWNlU3RvcmUoKTtcbiAgY29uc3Qgc3RhdGUgPSBzdG9yZS5nZXRTdGF0ZSgpO1xuICBpZiAoc3RhdGUuY29udGV4dCAhPSBjb250ZXh0S2V5KSB7XG4gICAgc3RvcmUuc2V0U3RhdGUoeyBjb250ZXh0OiBjb250ZXh0S2V5LCBvcGVuV29ya3NwYWNlczogW10sIHByb21wdDogbnVsbCB9KTtcbiAgfVxufVxuXG5jb25zdCBpbml0aWFsU3RhdGU6IFdvcmtzcGFjZVN0b3JlU3RhdGUgPSB7XG4gIGNvbnRleHQ6ICcnLFxuICBvcGVuV29ya3NwYWNlczogW10sXG4gIHByb21wdDogbnVsbCxcbiAgd29ya3NwYWNlV2luZG93U3RhdGU6ICdub3JtYWwnLFxuICB3b3Jrc3BhY2VHcm91cDogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGNvbnN0IHdvcmtzcGFjZVN0b3JlID0gY3JlYXRlR2xvYmFsU3RvcmUoJ3dvcmtzcGFjZScsIGluaXRpYWxTdGF0ZSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXb3Jrc3BhY2VTdG9yZSgpIHtcbiAgcmV0dXJuIHdvcmtzcGFjZVN0b3JlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlV29ya3NwYWNlV2luZG93U3RhdGUodmFsdWU6IFdvcmtzcGFjZVdpbmRvd1N0YXRlKSB7XG4gIGNvbnN0IHN0b3JlID0gZ2V0V29ya3NwYWNlU3RvcmUoKTtcbiAgY29uc3Qgc3RhdGUgPSBzdG9yZS5nZXRTdGF0ZSgpO1xuICBzdG9yZS5zZXRTdGF0ZSh7IC4uLnN0YXRlLCB3b3Jrc3BhY2VXaW5kb3dTdGF0ZTogdmFsdWUgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFVwZGF0ZWRXb3Jrc3BhY2VXaW5kb3dTdGF0ZSh3b3Jrc3BhY2VBdFRvcDogT3BlbldvcmtzcGFjZSkge1xuICByZXR1cm4gd29ya3NwYWNlQXRUb3A/LnByZWZlcnJlZFdpbmRvd1NpemUgPz8gJ25vcm1hbCc7XG59XG5leHBvcnQgZnVuY3Rpb24gY2xvc2VBbGxXb3Jrc3BhY2VzKFxuICBvbkNsb3NpbmdXb3Jrc3BhY2VzOiAoKSA9PiB2b2lkID0gKCkgPT4ge30sXG4gIGZpbHRlcjogKHdvcmtzcGFjZTogT3BlbldvcmtzcGFjZSkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWUsXG4pIHtcbiAgY29uc3Qgc3RvcmUgPSBnZXRXb3Jrc3BhY2VTdG9yZSgpO1xuXG4gIGNvbnN0IGNhbkNsb3NlQWxsV29ya3NwYWNlcyA9IHN0b3JlXG4gICAgLmdldFN0YXRlKClcbiAgICAub3BlbldvcmtzcGFjZXMuZmlsdGVyKGZpbHRlcilcbiAgICAuZXZlcnkoKHsgbmFtZSB9KSA9PiB7XG4gICAgICByZXR1cm4gY2FuQ2xvc2VXb3Jrc3BhY2VXaXRob3V0UHJvbXB0aW5nKG5hbWUpO1xuICAgIH0pO1xuXG4gIGNvbnN0IHVwZGF0ZVdvcmtzcGFjZVN0b3JlID0gKCkgPT4ge1xuICAgIHJlc2V0V29ya3NwYWNlU3RvcmUoKTtcbiAgICBvbkNsb3NpbmdXb3Jrc3BhY2VzPy4oKTtcbiAgfTtcblxuICBpZiAoIWNhbkNsb3NlQWxsV29ya3NwYWNlcykge1xuICAgIHNob3dXb3Jrc3BhY2VQcm9tcHRzKCdjbG9zaW5nLWFsbC13b3Jrc3BhY2VzJywgdXBkYXRlV29ya3NwYWNlU3RvcmUpO1xuICB9IGVsc2Uge1xuICAgIHVwZGF0ZVdvcmtzcGFjZVN0b3JlKCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VzSW5mbyB7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbiAgcHJvbXB0OiBQcm9tcHQgfCBudWxsO1xuICB3b3Jrc3BhY2VXaW5kb3dTdGF0ZTogV29ya3NwYWNlV2luZG93U3RhdGU7XG4gIHdvcmtzcGFjZXM6IEFycmF5PE9wZW5Xb3Jrc3BhY2U+O1xuICB3b3Jrc3BhY2VHcm91cD86IFdvcmtzcGFjZVN0b3JlU3RhdGVbJ3dvcmtzcGFjZUdyb3VwJ107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VXb3Jrc3BhY2VzKCk6IFdvcmtzcGFjZXNJbmZvIHtcbiAgY29uc3QgeyB3b3Jrc3BhY2VXaW5kb3dTdGF0ZSwgb3BlbldvcmtzcGFjZXMsIHByb21wdCwgd29ya3NwYWNlR3JvdXAgfSA9IHVzZVN0b3JlKHdvcmtzcGFjZVN0b3JlKTtcbiAgY29uc3QgbWVtb2lzZWRSZXN1bHRzOiBXb3Jrc3BhY2VzSW5mbyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBhY3RpdmU6IG9wZW5Xb3Jrc3BhY2VzLmxlbmd0aCA+IDAsXG4gICAgICBwcm9tcHQsXG4gICAgICB3b3Jrc3BhY2VXaW5kb3dTdGF0ZSxcbiAgICAgIHdvcmtzcGFjZXM6IG9wZW5Xb3Jrc3BhY2VzLFxuICAgICAgd29ya3NwYWNlR3JvdXAsXG4gICAgfTtcbiAgfSwgW29wZW5Xb3Jrc3BhY2VzLCB3b3Jrc3BhY2VXaW5kb3dTdGF0ZSwgcHJvbXB0LCB3b3Jrc3BhY2VHcm91cF0pO1xuICByZXR1cm4gbWVtb2lzZWRSZXN1bHRzO1xufVxuXG50eXBlIFByb21wdFR5cGUgPSAnY2xvc2luZy13b3Jrc3BhY2UnIHwgJ2Nsb3NpbmctYWxsLXdvcmtzcGFjZXMnIHwgJ2Nsb3Npbmctd29ya3NwYWNlLWxhdW5jaGluZy1uZXctd29ya3NwYWNlJztcblxuLyoqXG4gKiBTZXRzIHRoZSBjdXJyZW50IHByb21wdCBhY2NvcmRpbmcgdG8gdGhlIHByb21wdCB0eXBlLlxuICogQHBhcmFtIHByb21wdFR5cGUgRGV0ZXJtaW5lcyB0aGUgdGV4dCBhbmQgYmVoYXZpb3Igb2YgdGhlIHByb21wdFxuICogQHBhcmFtIG9uQ29uZmlybWF0aW9uIEZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBhZnRlciB0aGUgdXNlciBjb25maXJtcyB0byBjbG9zZSB0aGUgd29ya3NwYWNlXG4gKiBAcGFyYW0gd29ya3NwYWNlVGl0bGUgV29ya3NwYWNlIHRpdGxlIHRvIGJlIHNob3duIGluIHRoZSBwcm9tcHRcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaG93V29ya3NwYWNlUHJvbXB0cyhcbiAgcHJvbXB0VHlwZTogUHJvbXB0VHlwZSxcbiAgb25Db25maXJtYXRpb246ICgpID0+IHZvaWQgPSAoKSA9PiB7fSxcbiAgd29ya3NwYWNlVGl0bGU6IHN0cmluZyA9ICcnLFxuKSB7XG4gIGNvbnN0IHN0b3JlID0gZ2V0V29ya3NwYWNlU3RvcmUoKTtcblxuICBsZXQgcHJvbXB0OiBQcm9tcHQ7XG4gIHN3aXRjaCAocHJvbXB0VHlwZSkge1xuICAgIGNhc2UgJ2Nsb3Npbmctd29ya3NwYWNlJzoge1xuICAgICAgcHJvbXB0ID0ge1xuICAgICAgICB0aXRsZTogZ2V0Q29yZVRyYW5zbGF0aW9uKCd1bnNhdmVkQ2hhbmdlc1RpdGxlVGV4dCcsICdVbnNhdmVkIGNoYW5nZXMnKSxcbiAgICAgICAgYm9keTogZ2V0Q29yZVRyYW5zbGF0aW9uKFxuICAgICAgICAgICd1bnNhdmVkQ2hhbmdlc0luT3BlbmVkV29ya3NwYWNlJyxcbiAgICAgICAgICBgWW91IG1heSBoYXZlIHVuc2F2ZWQgY2hhbmdlcyBpbiB0aGUgb3BlbmVkIHdvcmtzcGFjZS4gRG8geW91IHdhbnQgdG8gZGlzY2FyZCB0aGVzZSBjaGFuZ2VzP2AsXG4gICAgICAgICksXG4gICAgICAgIG9uQ29uZmlybTogKCkgPT4ge1xuICAgICAgICAgIG9uQ29uZmlybWF0aW9uPy4oKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29uZmlybVRleHQ6IGdldENvcmVUcmFuc2xhdGlvbignZGlzY2FyZCcsICdEaXNjYXJkJyksXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2FzZSAnY2xvc2luZy1hbGwtd29ya3NwYWNlcyc6IHtcbiAgICAgIGNvbnN0IHdvcmtzcGFjZXNOb3RDbG9zZWQgPSBzdG9yZVxuICAgICAgICAuZ2V0U3RhdGUoKVxuICAgICAgICAub3BlbldvcmtzcGFjZXMuZmlsdGVyKCh7IG5hbWUgfSkgPT4gIWNhbkNsb3NlV29ya3NwYWNlV2l0aG91dFByb21wdGluZyhuYW1lKSlcbiAgICAgICAgLm1hcCgoeyB0aXRsZSB9LCBpbmR4KSA9PiBgJHtpbmR4ICsgMX0uICR7dGl0bGV9YCk7XG5cbiAgICAgIHByb21wdCA9IHtcbiAgICAgICAgdGl0bGU6IGdldENvcmVUcmFuc2xhdGlvbignY2xvc2luZ0FsbFdvcmtzcGFjZXNQcm9tcHRUaXRsZScsICdZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMnKSxcbiAgICAgICAgYm9keTogZ2V0Q29yZVRyYW5zbGF0aW9uKFxuICAgICAgICAgICdjbG9zaW5nQWxsV29ya3NwYWNlc1Byb21wdEJvZHknLFxuICAgICAgICAgICdUaGVyZSBtYXkgYmUgdW5zYXZlZCBjaGFuZ2VzIGluIHRoZSBmb2xsb3dpbmcgd29ya3NwYWNlcy4gRG8geW91IHdhbnQgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHRoZSBmb2xsb3dpbmcgd29ya3NwYWNlcz8ge3t3b3Jrc3BhY2VOYW1lc319JyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB3b3Jrc3BhY2VOYW1lczogd29ya3NwYWNlc05vdENsb3NlZC5qb2luKCcsJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgKSxcbiAgICAgICAgb25Db25maXJtOiAoKSA9PiB7XG4gICAgICAgICAgb25Db25maXJtYXRpb24/LigpO1xuICAgICAgICB9LFxuICAgICAgICBjb25maXJtVGV4dDogZ2V0Q29yZVRyYW5zbGF0aW9uKCdjbG9zZUFsbE9wZW5lZFdvcmtzcGFjZXMnLCAnRGlzY2FyZCBjaGFuZ2VzIGluIHt7Y291bnR9fSB3b3Jrc3BhY2VzJywge1xuICAgICAgICAgIGNvdW50OiB3b3Jrc3BhY2VzTm90Q2xvc2VkLmxlbmd0aCxcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgJ2Nsb3Npbmctd29ya3NwYWNlLWxhdW5jaGluZy1uZXctd29ya3NwYWNlJzoge1xuICAgICAgcHJvbXB0ID0ge1xuICAgICAgICB0aXRsZTogZ2V0Q29yZVRyYW5zbGF0aW9uKCd1bnNhdmVkQ2hhbmdlc1RpdGxlVGV4dCcsICdVbnNhdmVkIGNoYW5nZXMnKSxcbiAgICAgICAgYm9keTogZ2V0Q29yZVRyYW5zbGF0aW9uKFxuICAgICAgICAgICd1bnNhdmVkQ2hhbmdlc0luV29ya3NwYWNlJyxcbiAgICAgICAgICAnVGhlcmUgbWF5IGJlIHVuc2F2ZWQgY2hhbmdlcyBpbiBcInt7d29ya3NwYWNlTmFtZX19XCIuIFBsZWFzZSBzYXZlIHRoZW0gYmVmb3JlIG9wZW5pbmcgYW5vdGhlciB3b3Jrc3BhY2UuJyxcbiAgICAgICAgICB7IHdvcmtzcGFjZU5hbWU6IHdvcmtzcGFjZVRpdGxlIH0sXG4gICAgICAgICksXG4gICAgICAgIG9uQ29uZmlybTogKCkgPT4ge1xuICAgICAgICAgIHN0b3JlLnNldFN0YXRlKChzdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgcHJvbXB0OiBudWxsLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICBvbkNvbmZpcm1hdGlvbj8uKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbmZpcm1UZXh0OiBnZXRDb3JlVHJhbnNsYXRpb24oJ29wZW5Bbnl3YXknLCAnT3BlbiBhbnl3YXknKSxcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFdvcmtzcGFjZSBzeXN0ZW0gdHJ5aW5nIHRvIG9wZW4gdW5rbm93biBwcm9tcHQgdHlwZSBcIiR7cHJvbXB0VHlwZX1cIiBpbiBmdW5jdGlvbiBcInNob3dXb3Jrc3BhY2VQcm9tcHRzXCJgLFxuICAgICAgKTtcbiAgICAgIG9uQ29uZmlybWF0aW9uPy4oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgc3RvcmUuc2V0U3RhdGUoKHN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgcHJvbXB0IH0pKTtcbn1cblxuZnVuY3Rpb24gZ2V0V29ya3NwYWNlVGl0bGUod29ya3NwYWNlOiBXb3Jrc3BhY2VSZWdpc3RyYXRpb24sIGFkZGl0aW9uYWxQcm9wcz86IG9iamVjdCkge1xuICByZXR1cm4gYWRkaXRpb25hbFByb3BzPy5bJ3dvcmtzcGFjZVRpdGxlJ10gPz8gd29ya3NwYWNlLnRpdGxlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRXb3Jrc3BhY2VTdG9yZSgpIHtcbiAgZ2V0V29ya3NwYWNlU3RvcmUoKS5zZXRTdGF0ZShpbml0aWFsU3RhdGUpO1xufVxuXG4vKipcbiAqIFRoZSB3b3Jrc3BhY2UgZ3JvdXAgc3RvcmUgaXMgYSBzdG9yZSB0aGF0IGlzIHNwZWNpZmljIHRvIHRoZSB3b3Jrc3BhY2UgZ3JvdXAuXG4gKiBJZiB0aGUgd29ya3NwYWNlIGhhcyBpdHMgb3duIHNpZGViYXIsIHRoZSBzdG9yZSB3aWxsIGJlIGNyZWF0ZWQuXG4gKiBUaGlzIHN0b3JlIGNhbiBiZSB1c2VkIHRvIHN0b3JlIGRhdGEgdGhhdCBpcyBzcGVjaWZpYyB0byB0aGUgd29ya3NwYWNlIGdyb3VwLlxuICogVGhlIHN0b3JlIHdpbGwgYmUgc2FtZSBmb3IgYWxsIHRoZSB3b3Jrc3BhY2VzIHdpdGggc2FtZSBncm91cCBuYW1lLlxuICpcbiAqIEZvciB3b3Jrc3BhY2VzIGxhdW5jaGVkIHdpdGhvdXQgYSBncm91cCwgdGhlIHN0b3JlIHdpbGwgYmUgdW5kZWZpbmVkLlxuICpcbiAqIFRoZSBzdG9yZSB3aWxsIGJlIGNsZWFyZWQgd2hlbiBhbGwgdGhlIHdvcmtzcGFjZXMgd2l0aCB0aGUgc3RvcmUncyBncm91cCBuYW1lIGFyZSBjbG9zZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRXb3Jrc3BhY2VHcm91cFN0b3JlKFxuICB3b3Jrc3BhY2VHcm91cE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgYWRkaXRpb25hbFByb3BzOiBvYmplY3QgPSB7fSxcbik6IFN0b3JlQXBpPG9iamVjdD4gfCB1bmRlZmluZWQge1xuICBpZiAoIXdvcmtzcGFjZUdyb3VwTmFtZSB8fCB3b3Jrc3BhY2VHcm91cE5hbWUgPT09ICdkZWZhdWx0Jykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3Qgc3RvcmUgPSBnZXRHbG9iYWxTdG9yZTxvYmplY3Q+KHdvcmtzcGFjZUdyb3VwTmFtZSwge30pO1xuICBpZiAoYWRkaXRpb25hbFByb3BzKSB7XG4gICAgc3RvcmUuc2V0U3RhdGUoKHByZXYpID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgLi4uYWRkaXRpb25hbFByb3BzLFxuICAgIH0pKTtcbiAgfVxuICByZXR1cm4gc3RvcmU7XG59XG4iXSwibmFtZXMiOlsidXNlTWVtbyIsImdldFdvcmtzcGFjZUdyb3VwUmVnaXN0cmF0aW9uIiwiZ2V0V29ya3NwYWNlUmVnaXN0cmF0aW9uIiwibmF2aWdhdGUiLCJnZXRHbG9iYWxTdG9yZSIsImNyZWF0ZUdsb2JhbFN0b3JlIiwiZ2V0Q29yZVRyYW5zbGF0aW9uIiwidXNlU3RvcmUiLCJjYW5DbG9zZVdvcmtzcGFjZVdpdGhvdXRQcm9tcHRpbmciLCJuYW1lIiwiaWdub3JlQ2hhbmdlcyIsInByb21wdEJlZm9yZUZuIiwiZ2V0UHJvbXB0QmVmb3JlQ2xvc2luZ0ZjbiIsImNsb3NlV29ya3NwYWNlR3JvdXAiLCJncm91cE5hbWUiLCJvbldvcmtzcGFjZUNsb3NldXAiLCJzdG9yZSIsImdldFdvcmtzcGFjZVN0b3JlIiwiY3VycmVudFdvcmtzcGFjZUdyb3VwIiwiZ2V0U3RhdGUiLCJ3b3Jrc3BhY2VHcm91cCIsImN1cnJlbnRHcm91cE5hbWUiLCJmaWx0ZXIiLCJ3b3Jrc3BhY2UiLCJjbG9zZUFsbFdvcmtzcGFjZXMiLCJ3b3Jrc3BhY2VHcm91cFN0b3JlIiwiZ2V0V29ya3NwYWNlR3JvdXBTdG9yZSIsInNldFN0YXRlIiwidW5zdWJzY3JpYmUiLCJzdWJzY3JpYmUiLCJjbGVhbnVwIiwicHJldiIsInVuZGVmaW5lZCIsImxhdW5jaFdvcmtzcGFjZUdyb3VwIiwiYXJncyIsIndvcmtzcGFjZUdyb3VwUmVnaXN0cmF0aW9uIiwic3RhdGUiLCJvbldvcmtzcGFjZUdyb3VwTGF1bmNoIiwid29ya3NwYWNlR3JvdXBDbGVhbnVwIiwid29ya3NwYWNlVG9MYXVuY2giLCJvcGVuV29ya3NwYWNlcyIsImxlbmd0aCIsIm1lbWJlcnMiLCJsYXVuY2hXb3Jrc3BhY2UiLCJhZGRpdGlvbmFsUHJvcHMiLCJwcm9tcHRCZWZvcmVMYXVuY2hpbmdXb3Jrc3BhY2UiLCJuZXdXb3Jrc3BhY2VEZXRhaWxzIiwibmV3V29ya3NwYWNlUmVnaXN0cmF0aW9uIiwicHJvY2VlZCIsImNsb3NlV29ya3NwYWNlIiwib25Xb3Jrc3BhY2VDbG9zZSIsInNob3dXb3Jrc3BhY2VQcm9tcHRzIiwidGl0bGUiLCJpbmNsdWRlcyIsIm5ld1dvcmtzcGFjZSIsImdldFdvcmtzcGFjZVRpdGxlIiwib3B0aW9ucyIsImNsb3NlV29ya3NwYWNlV2l0aFNhdmVkQ2hhbmdlcyIsInByb21wdEJlZm9yZUNsb3NpbmciLCJ0ZXN0RmNuIiwic2V0VGl0bGUiLCJ0aXRsZU5vZGUiLCJtYXAiLCJ3IiwidXBkYXRlU3RvcmVXaXRoTmV3V29ya3NwYWNlIiwid29ya3NwYWNlVG9CZUFkZGVkIiwicmVzdE9mVGhlV29ya3NwYWNlcyIsIndvcmtzcGFjZVdpbmRvd1N0YXRlIiwiZ2V0VXBkYXRlZFdvcmtzcGFjZVdpbmRvd1N0YXRlIiwid29ya3NwYWNlSW5kZXhJbk9wZW5Xb3Jrc3BhY2VzIiwiZmluZEluZGV4IiwiaXNXb3Jrc3BhY2VBbHJlYWR5T3BlbiIsIm9wZW5lZFdvcmtzcGFjZVdpdGhTYW1lVHlwZSIsImZpbmQiLCJ0eXBlIiwiY2FuSGlkZSIsIm9wZW5Xb3Jrc3BhY2UiLCJuYXZpZ2F0ZUFuZExhdW5jaFdvcmtzcGFjZSIsInRhcmdldFVybCIsImNvbnRleHRLZXkiLCJ3b3Jrc3BhY2VOYW1lIiwiY2hhbmdlV29ya3NwYWNlQ29udGV4dCIsInRvIiwicHJvbXB0QmVmb3JlQ2xvc2luZ0ZjbnMiLCJjYW5jZWxQcm9tcHQiLCJwcm9tcHQiLCJkZWZhdWx0T3B0aW9ucyIsInVwZGF0ZVN0b3JlV2l0aENsb3NlZFdvcmtzcGFjZSIsIndvcmtzcGFjZVRvQmVDbG9zZWQiLCJuZXdPcGVuV29ya3NwYWNlcyIsIndvcmtzcGFjZUdyb3VwTmFtZSIsImN1cnJlbnROYW1lIiwiY29udGV4dCIsImluaXRpYWxTdGF0ZSIsIndvcmtzcGFjZVN0b3JlIiwidXBkYXRlV29ya3NwYWNlV2luZG93U3RhdGUiLCJ2YWx1ZSIsIndvcmtzcGFjZUF0VG9wIiwicHJlZmVycmVkV2luZG93U2l6ZSIsIm9uQ2xvc2luZ1dvcmtzcGFjZXMiLCJjYW5DbG9zZUFsbFdvcmtzcGFjZXMiLCJldmVyeSIsInVwZGF0ZVdvcmtzcGFjZVN0b3JlIiwicmVzZXRXb3Jrc3BhY2VTdG9yZSIsInVzZVdvcmtzcGFjZXMiLCJtZW1vaXNlZFJlc3VsdHMiLCJhY3RpdmUiLCJ3b3Jrc3BhY2VzIiwicHJvbXB0VHlwZSIsIm9uQ29uZmlybWF0aW9uIiwid29ya3NwYWNlVGl0bGUiLCJib2R5Iiwib25Db25maXJtIiwiY29uZmlybVRleHQiLCJ3b3Jrc3BhY2VzTm90Q2xvc2VkIiwiaW5keCIsIndvcmtzcGFjZU5hbWVzIiwiam9pbiIsImNvdW50IiwiY29uc29sZSIsImVycm9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../framework/esm-styleguide/src/workspaces/workspaces.ts\n");
|
|
2199
2199
|
|
|
2200
2200
|
/***/ }),
|
|
2201
2201
|
|
|
@@ -2215,7 +2215,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2215
2215
|
\*************************************************************/
|
|
2216
2216
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
2217
2217
|
|
|
2218
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ coreTranslations: () => (/* binding */ coreTranslations)\n/* harmony export */ });\n/** Please keep these alphabetized */ const addressFields = {\n address1: 'Address line 1',\n address2: 'Address line 2',\n address3: 'Address line 3',\n address4: 'Address line 4',\n address5: 'Address line 5',\n address6: 'Address line 6',\n city: 'City',\n cityVillage: 'City',\n country: 'Country',\n countyDistrict: 'District',\n district: 'District',\n postalCode: 'Postal code',\n state: 'State',\n stateProvince: 'State'\n};\nconst workspaceTranslations = {\n closeAllOpenedWorkspaces: 'Discard changes in {{count}} workspaces',\n closingAllWorkspacesPromptBody: 'There may be unsaved changes in the following workspaces. Do you want to discard changes in the following workspaces? {{workspaceNames}}',\n closingAllWorkspacesPromptTitle: 'You have unsaved changes',\n discard: 'Discard',\n hide: 'Hide',\n maximize: 'Maximize',\n minimize: 'Minimize',\n openAnyway: 'Open anyway',\n unsavedChangesInOpenedWorkspace: `You may have unsaved changes in the opened workspace. Do you want to discard these changes?`,\n unsavedChangesInWorkspace: 'There may be unsaved changes in \"{{workspaceName}}\". Please save them before opening another workspace.',\n unsavedChangesTitleText: 'Unsaved changes',\n workspaceHeader: 'Workspace header'\n};\nconst coreTranslations = {\n ...addressFields,\n ...workspaceTranslations,\n actions: 'Actions',\n address: 'Address',\n age: 'Age',\n cancel: 'Cancel',\n change: 'Change',\n // Default value for the implementationName config property\n Clinic: 'Clinic',\n close: 'Close',\n confirm: 'Confirm',\n contactAdministratorIfIssuePersists: 'Contact your system administrator if the problem persists.',\n contactDetails: 'Contact details',\n delete: 'Delete',\n edit: 'Edit',\n error: 'Error',\n errorCopy: 'Sorry, there was a problem displaying this information. You can try to reload this page, or contact the site administrator and quote the error code above.',\n female: 'Female',\n loading: 'Loading',\n male: 'Male',\n other: 'Other',\n patientIdentifierSticker: 'Patient identifier sticker',\n patientLists: 'Patient lists',\n print: 'Print',\n printError: 'Print error',\n printErrorExplainer: 'An error occurred in {{errorLocation}}',\n printIdentifierSticker: 'Print identifier sticker',\n printing: 'Printing',\n relationships: 'Relationships',\n resetOverrides: 'Reset overrides',\n save: 'Save',\n scriptLoadingFailed: 'Error: Script failed to load',\n scriptLoadingError: 'Failed to load overridden script from {{url}}. Please check that the bundled script is available at the expected URL. Click the button below to reset all import map overrides.',\n seeMoreLists: 'See {{count}} more lists',\n sex: 'Sex',\n showLess: 'Show less',\n showMore: 'Show more',\n toggleDevTools: 'Toggle dev tools',\n unknown: 'Unknown'\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS10cmFuc2xhdGlvbnMvZGlzdC90cmFuc2xhdGlvbnMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG1DQUFtQyxHQUFHLE1BQU1BLGdCQUFnQjtJQUN4REMsVUFBVTtJQUNWQyxVQUFVO0lBQ1ZDLFVBQVU7SUFDVkMsVUFBVTtJQUNWQyxVQUFVO0lBQ1ZDLFVBQVU7SUFDVkMsTUFBTTtJQUNOQyxhQUFhO0lBQ2JDLFNBQVM7SUFDVEMsZ0JBQWdCO0lBQ2hCQyxVQUFVO0lBQ1ZDLFlBQVk7SUFDWkMsT0FBTztJQUNQQyxlQUFlO0FBQ25CO0FBQ0EsTUFBTUMsd0JBQXdCO0lBQzFCQywwQkFBMEI7SUFDMUJDLGdDQUFnQztJQUNoQ0MsaUNBQWlDO0lBQ2pDQyxTQUFTO0lBQ1RDLE1BQU07SUFDTkMsVUFBVTtJQUNWQyxVQUFVO0lBQ1ZDLFlBQVk7SUFDWkMsaUNBQWlDLENBQUMsMkZBQTJGLENBQUM7SUFDOUhDLDJCQUEyQjtJQUMzQkMseUJBQXlCO0lBQ3pCQyxpQkFBaUI7QUFDckI7QUFDTyxNQUFNQyxtQkFBbUI7SUFDNUIsR0FBRzVCLGFBQWE7SUFDaEIsR0FBR2UscUJBQXFCO0lBQ3hCYyxTQUFTO0lBQ1RDLFNBQVM7SUFDVEMsS0FBSztJQUNMQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUiwyREFBMkQ7SUFDM0RDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxTQUFTO0lBQ1RDLHFDQUFxQztJQUNyQ0MsZ0JBQWdCO0lBQ2hCQyxRQUFRO0lBQ1JDLE1BQU07SUFDTkMsT0FBTztJQUNQQyxXQUFXO0lBQ1hDLFFBQVE7SUFDUkMsU0FBUztJQUNUQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsMEJBQTBCO0lBQzFCQyxjQUFjO0lBQ2RDLE9BQU87SUFDUEMsWUFBWTtJQUNaQyxxQkFBcUI7SUFDckJDLHdCQUF3QjtJQUN4QkMsVUFBVTtJQUNWQyxlQUFlO0lBQ2ZDLGdCQUFnQjtJQUNoQkMsTUFBTTtJQUNOQyxxQkFBcUI7SUFDckJDLG9CQUFvQjtJQUNwQkMsY0FBYztJQUNkQyxLQUFLO0lBQ0xDLFVBQVU7SUFDVkMsVUFBVTtJQUNWQyxnQkFBZ0I7SUFDaEJDLFNBQVM7QUFDYixFQUFFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLXRyYW5zbGF0aW9ucy9kaXN0L3RyYW5zbGF0aW9ucy5qcz9iMjljIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBQbGVhc2Uga2VlcCB0aGVzZSBhbHBoYWJldGl6ZWQgKi8gY29uc3QgYWRkcmVzc0ZpZWxkcyA9IHtcbiAgICBhZGRyZXNzMTogJ0FkZHJlc3MgbGluZSAxJyxcbiAgICBhZGRyZXNzMjogJ0FkZHJlc3MgbGluZSAyJyxcbiAgICBhZGRyZXNzMzogJ0FkZHJlc3MgbGluZSAzJyxcbiAgICBhZGRyZXNzNDogJ0FkZHJlc3MgbGluZSA0JyxcbiAgICBhZGRyZXNzNTogJ0FkZHJlc3MgbGluZSA1JyxcbiAgICBhZGRyZXNzNjogJ0FkZHJlc3MgbGluZSA2JyxcbiAgICBjaXR5OiAnQ2l0eScsXG4gICAgY2l0eVZpbGxhZ2U6ICdDaXR5JyxcbiAgICBjb3VudHJ5OiAnQ291bnRyeScsXG4gICAgY291bnR5RGlzdHJpY3Q6ICdEaXN0cmljdCcsXG4gICAgZGlzdHJpY3Q6ICdEaXN0cmljdCcsXG4gICAgcG9zdGFsQ29kZTogJ1Bvc3RhbCBjb2RlJyxcbiAgICBzdGF0ZTogJ1N0YXRlJyxcbiAgICBzdGF0ZVByb3ZpbmNlOiAnU3RhdGUnXG59O1xuY29uc3Qgd29ya3NwYWNlVHJhbnNsYXRpb25zID0ge1xuICAgIGNsb3NlQWxsT3BlbmVkV29ya3NwYWNlczogJ0Rpc2NhcmQgY2hhbmdlcyBpbiB7e2NvdW50fX0gd29ya3NwYWNlcycsXG4gICAgY2xvc2luZ0FsbFdvcmtzcGFjZXNQcm9tcHRCb2R5OiAnVGhlcmUgbWF5IGJlIHVuc2F2ZWQgY2hhbmdlcyBpbiB0aGUgZm9sbG93aW5nIHdvcmtzcGFjZXMuIERvIHlvdSB3YW50IHRvIGRpc2NhcmQgY2hhbmdlcyBpbiB0aGUgZm9sbG93aW5nIHdvcmtzcGFjZXM/IHt7d29ya3NwYWNlTmFtZXN9fScsXG4gICAgY2xvc2luZ0FsbFdvcmtzcGFjZXNQcm9tcHRUaXRsZTogJ1lvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcycsXG4gICAgZGlzY2FyZDogJ0Rpc2NhcmQnLFxuICAgIGhpZGU6ICdIaWRlJyxcbiAgICBtYXhpbWl6ZTogJ01heGltaXplJyxcbiAgICBtaW5pbWl6ZTogJ01pbmltaXplJyxcbiAgICBvcGVuQW55d2F5OiAnT3BlbiBhbnl3YXknLFxuICAgIHVuc2F2ZWRDaGFuZ2VzSW5PcGVuZWRXb3Jrc3BhY2U6IGBZb3UgbWF5IGhhdmUgdW5zYXZlZCBjaGFuZ2VzIGluIHRoZSBvcGVuZWQgd29ya3NwYWNlLiBEbyB5b3Ugd2FudCB0byBkaXNjYXJkIHRoZXNlIGNoYW5nZXM/YCxcbiAgICB1bnNhdmVkQ2hhbmdlc0luV29ya3NwYWNlOiAnVGhlcmUgbWF5IGJlIHVuc2F2ZWQgY2hhbmdlcyBpbiBcInt7d29ya3NwYWNlTmFtZX19XCIuIFBsZWFzZSBzYXZlIHRoZW0gYmVmb3JlIG9wZW5pbmcgYW5vdGhlciB3b3Jrc3BhY2UuJyxcbiAgICB1bnNhdmVkQ2hhbmdlc1RpdGxlVGV4dDogJ1Vuc2F2ZWQgY2hhbmdlcycsXG4gICAgd29ya3NwYWNlSGVhZGVyOiAnV29ya3NwYWNlIGhlYWRlcidcbn07XG5leHBvcnQgY29uc3QgY29yZVRyYW5zbGF0aW9ucyA9IHtcbiAgICAuLi5hZGRyZXNzRmllbGRzLFxuICAgIC4uLndvcmtzcGFjZVRyYW5zbGF0aW9ucyxcbiAgICBhY3Rpb25zOiAnQWN0aW9ucycsXG4gICAgYWRkcmVzczogJ0FkZHJlc3MnLFxuICAgIGFnZTogJ0FnZScsXG4gICAgY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICBjaGFuZ2U6ICdDaGFuZ2UnLFxuICAgIC8vIERlZmF1bHQgdmFsdWUgZm9yIHRoZSBpbXBsZW1lbnRhdGlvbk5hbWUgY29uZmlnIHByb3BlcnR5XG4gICAgQ2xpbmljOiAnQ2xpbmljJyxcbiAgICBjbG9zZTogJ0Nsb3NlJyxcbiAgICBjb25maXJtOiAnQ29uZmlybScsXG4gICAgY29udGFjdEFkbWluaXN0cmF0b3JJZklzc3VlUGVyc2lzdHM6ICdDb250YWN0IHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgaWYgdGhlIHByb2JsZW0gcGVyc2lzdHMuJyxcbiAgICBjb250YWN0RGV0YWlsczogJ0NvbnRhY3QgZGV0YWlscycsXG4gICAgZGVsZXRlOiAnRGVsZXRlJyxcbiAgICBlZGl0OiAnRWRpdCcsXG4gICAgZXJyb3I6ICdFcnJvcicsXG4gICAgZXJyb3JDb3B5OiAnU29ycnksIHRoZXJlIHdhcyBhIHByb2JsZW0gZGlzcGxheWluZyB0aGlzIGluZm9ybWF0aW9uLiBZb3UgY2FuIHRyeSB0byByZWxvYWQgdGhpcyBwYWdlLCBvciBjb250YWN0IHRoZSBzaXRlIGFkbWluaXN0cmF0b3IgYW5kIHF1b3RlIHRoZSBlcnJvciBjb2RlIGFib3ZlLicsXG4gICAgZmVtYWxlOiAnRmVtYWxlJyxcbiAgICBsb2FkaW5nOiAnTG9hZGluZycsXG4gICAgbWFsZTogJ01hbGUnLFxuICAgIG90aGVyOiAnT3RoZXInLFxuICAgIHBhdGllbnRJZGVudGlmaWVyU3RpY2tlcjogJ1BhdGllbnQgaWRlbnRpZmllciBzdGlja2VyJyxcbiAgICBwYXRpZW50TGlzdHM6ICdQYXRpZW50IGxpc3RzJyxcbiAgICBwcmludDogJ1ByaW50JyxcbiAgICBwcmludEVycm9yOiAnUHJpbnQgZXJyb3InLFxuICAgIHByaW50RXJyb3JFeHBsYWluZXI6ICdBbiBlcnJvciBvY2N1cnJlZCBpbiB7e2Vycm9yTG9jYXRpb259fScsXG4gICAgcHJpbnRJZGVudGlmaWVyU3RpY2tlcjogJ1ByaW50IGlkZW50aWZpZXIgc3RpY2tlcicsXG4gICAgcHJpbnRpbmc6ICdQcmludGluZycsXG4gICAgcmVsYXRpb25zaGlwczogJ1JlbGF0aW9uc2hpcHMnLFxuICAgIHJlc2V0T3ZlcnJpZGVzOiAnUmVzZXQgb3ZlcnJpZGVzJyxcbiAgICBzYXZlOiAnU2F2ZScsXG4gICAgc2NyaXB0TG9hZGluZ0ZhaWxlZDogJ0Vycm9yOiBTY3JpcHQgZmFpbGVkIHRvIGxvYWQnLFxuICAgIHNjcmlwdExvYWRpbmdFcnJvcjogJ0ZhaWxlZCB0byBsb2FkIG92ZXJyaWRkZW4gc2NyaXB0IGZyb20ge3t1cmx9fS4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGJ1bmRsZWQgc2NyaXB0IGlzIGF2YWlsYWJsZSBhdCB0aGUgZXhwZWN0ZWQgVVJMLiBDbGljayB0aGUgYnV0dG9uIGJlbG93IHRvIHJlc2V0IGFsbCBpbXBvcnQgbWFwIG92ZXJyaWRlcy4nLFxuICAgIHNlZU1vcmVMaXN0czogJ1NlZSB7e2NvdW50fX0gbW9yZSBsaXN0cycsXG4gICAgc2V4OiAnU2V4JyxcbiAgICBzaG93TGVzczogJ1Nob3cgbGVzcycsXG4gICAgc2hvd01vcmU6ICdTaG93IG1vcmUnLFxuICAgIHRvZ2dsZURldlRvb2xzOiAnVG9nZ2xlIGRldiB0b29scycsXG4gICAgdW5rbm93bjogJ1Vua25vd24nXG59O1xuIl0sIm5hbWVzIjpbImFkZHJlc3NGaWVsZHMiLCJhZGRyZXNzMSIsImFkZHJlc3MyIiwiYWRkcmVzczMiLCJhZGRyZXNzNCIsImFkZHJlc3M1IiwiYWRkcmVzczYiLCJjaXR5IiwiY2l0eVZpbGxhZ2UiLCJjb3VudHJ5IiwiY291bnR5RGlzdHJpY3QiLCJkaXN0cmljdCIsInBvc3RhbENvZGUiLCJzdGF0ZSIsInN0YXRlUHJvdmluY2UiLCJ3b3Jrc3BhY2VUcmFuc2xhdGlvbnMiLCJjbG9zZUFsbE9wZW5lZFdvcmtzcGFjZXMiLCJjbG9zaW5nQWxsV29ya3NwYWNlc1Byb21wdEJvZHkiLCJjbG9zaW5nQWxsV29ya3NwYWNlc1Byb21wdFRpdGxlIiwiZGlzY2FyZCIsImhpZGUiLCJtYXhpbWl6ZSIsIm1pbmltaXplIiwib3BlbkFueXdheSIsInVuc2F2ZWRDaGFuZ2VzSW5PcGVuZWRXb3Jrc3BhY2UiLCJ1bnNhdmVkQ2hhbmdlc0luV29ya3NwYWNlIiwidW5zYXZlZENoYW5nZXNUaXRsZVRleHQiLCJ3b3Jrc3BhY2VIZWFkZXIiLCJjb3JlVHJhbnNsYXRpb25zIiwiYWN0aW9ucyIsImFkZHJlc3MiLCJhZ2UiLCJjYW5jZWwiLCJjaGFuZ2UiLCJDbGluaWMiLCJjbG9zZSIsImNvbmZpcm0iLCJjb250YWN0QWRtaW5pc3RyYXRvcklmSXNzdWVQZXJzaXN0cyIsImNvbnRhY3REZXRhaWxzIiwiZGVsZXRlIiwiZWRpdCIsImVycm9yIiwiZXJyb3JDb3B5IiwiZmVtYWxlIiwibG9hZGluZyIsIm1hbGUiLCJvdGhlciIsInBhdGllbnRJZGVudGlmaWVyU3RpY2tlciIsInBhdGllbnRMaXN0cyIsInByaW50IiwicHJpbnRFcnJvciIsInByaW50RXJyb3JFeHBsYWluZXIiLCJwcmludElkZW50aWZpZXJTdGlja2VyIiwicHJpbnRpbmciLCJyZWxhdGlvbnNoaXBzIiwicmVzZXRPdmVycmlkZXMiLCJzYXZlIiwic2NyaXB0TG9hZGluZ0ZhaWxlZCIsInNjcmlwdExvYWRpbmdFcnJvciIsInNlZU1vcmVMaXN0cyIsInNleCIsInNob3dMZXNzIiwic2hvd01vcmUiLCJ0b2dnbGVEZXZUb29scyIsInVua25vd24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-translations/dist/translations.js\n");
|
|
2218
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ coreTranslations: () => (/* binding */ coreTranslations)\n/* harmony export */ });\n/** Please keep these alphabetized */ const addressFields = {\n address1: 'Address line 1',\n address2: 'Address line 2',\n address3: 'Address line 3',\n address4: 'Address line 4',\n address5: 'Address line 5',\n address6: 'Address line 6',\n city: 'City',\n cityVillage: 'City',\n country: 'Country',\n countyDistrict: 'District',\n district: 'District',\n postalCode: 'Postal code',\n state: 'State',\n stateProvince: 'State'\n};\nconst workspaceTranslations = {\n closeAllOpenedWorkspaces: 'Discard changes in {{count}} workspaces',\n closingAllWorkspacesPromptBody: 'There may be unsaved changes in the following workspaces. Do you want to discard changes in the following workspaces? {{workspaceNames}}',\n closingAllWorkspacesPromptTitle: 'You have unsaved changes',\n discard: 'Discard',\n hide: 'Hide',\n maximize: 'Maximize',\n minimize: 'Minimize',\n openAnyway: 'Open anyway',\n unsavedChangesInOpenedWorkspace: 'You may have unsaved changes in the opened workspace. Do you want to discard these changes?',\n unsavedChangesInWorkspace: 'There may be unsaved changes in \"{{workspaceName}}\". Please save them before opening another workspace.',\n unsavedChangesTitleText: 'Unsaved changes',\n workspaceHeader: 'Workspace header'\n};\nconst coreTranslations = {\n ...addressFields,\n ...workspaceTranslations,\n actions: 'Actions',\n address: 'Address',\n age: 'Age',\n cancel: 'Cancel',\n change: 'Change',\n // Default value for the implementationName config property\n Clinic: 'Clinic',\n close: 'Close',\n confirm: 'Confirm',\n contactAdministratorIfIssuePersists: 'Contact your system administrator if the problem persists.',\n contactDetails: 'Contact details',\n delete: 'Delete',\n edit: 'Edit',\n error: 'Error',\n errorCopy: 'Sorry, there was a problem displaying this information. You can try to reload this page, or contact the site administrator and quote the error code above.',\n female: 'Female',\n loading: 'Loading',\n male: 'Male',\n other: 'Other',\n patientIdentifierSticker: 'Patient identifier sticker',\n patientLists: 'Patient lists',\n print: 'Print',\n printError: 'Print error',\n printErrorExplainer: 'An error occurred in {{errorLocation}}',\n printIdentifierSticker: 'Print identifier sticker',\n printing: 'Printing',\n relationships: 'Relationships',\n resetOverrides: 'Reset overrides',\n save: 'Save',\n scriptLoadingFailed: 'Error: Script failed to load',\n scriptLoadingError: 'Failed to load overridden script from {{url}}. Please check that the bundled script is available at the expected URL. Click the button below to reset all import map overrides.',\n seeMoreLists: 'See {{count}} more lists',\n sex: 'Sex',\n showLess: 'Show less',\n showMore: 'Show more',\n toggleDevTools: 'Toggle dev tools',\n unknown: 'Unknown'\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS10cmFuc2xhdGlvbnMvZGlzdC90cmFuc2xhdGlvbnMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG1DQUFtQyxHQUFHLE1BQU1BLGdCQUFnQjtJQUN4REMsVUFBVTtJQUNWQyxVQUFVO0lBQ1ZDLFVBQVU7SUFDVkMsVUFBVTtJQUNWQyxVQUFVO0lBQ1ZDLFVBQVU7SUFDVkMsTUFBTTtJQUNOQyxhQUFhO0lBQ2JDLFNBQVM7SUFDVEMsZ0JBQWdCO0lBQ2hCQyxVQUFVO0lBQ1ZDLFlBQVk7SUFDWkMsT0FBTztJQUNQQyxlQUFlO0FBQ25CO0FBQ0EsTUFBTUMsd0JBQXdCO0lBQzFCQywwQkFBMEI7SUFDMUJDLGdDQUFnQztJQUNoQ0MsaUNBQWlDO0lBQ2pDQyxTQUFTO0lBQ1RDLE1BQU07SUFDTkMsVUFBVTtJQUNWQyxVQUFVO0lBQ1ZDLFlBQVk7SUFDWkMsaUNBQWlDO0lBQ2pDQywyQkFBMkI7SUFDM0JDLHlCQUF5QjtJQUN6QkMsaUJBQWlCO0FBQ3JCO0FBQ08sTUFBTUMsbUJBQW1CO0lBQzVCLEdBQUc1QixhQUFhO0lBQ2hCLEdBQUdlLHFCQUFxQjtJQUN4QmMsU0FBUztJQUNUQyxTQUFTO0lBQ1RDLEtBQUs7SUFDTEMsUUFBUTtJQUNSQyxRQUFRO0lBQ1IsMkRBQTJEO0lBQzNEQyxRQUFRO0lBQ1JDLE9BQU87SUFDUEMsU0FBUztJQUNUQyxxQ0FBcUM7SUFDckNDLGdCQUFnQjtJQUNoQkMsUUFBUTtJQUNSQyxNQUFNO0lBQ05DLE9BQU87SUFDUEMsV0FBVztJQUNYQyxRQUFRO0lBQ1JDLFNBQVM7SUFDVEMsTUFBTTtJQUNOQyxPQUFPO0lBQ1BDLDBCQUEwQjtJQUMxQkMsY0FBYztJQUNkQyxPQUFPO0lBQ1BDLFlBQVk7SUFDWkMscUJBQXFCO0lBQ3JCQyx3QkFBd0I7SUFDeEJDLFVBQVU7SUFDVkMsZUFBZTtJQUNmQyxnQkFBZ0I7SUFDaEJDLE1BQU07SUFDTkMscUJBQXFCO0lBQ3JCQyxvQkFBb0I7SUFDcEJDLGNBQWM7SUFDZEMsS0FBSztJQUNMQyxVQUFVO0lBQ1ZDLFVBQVU7SUFDVkMsZ0JBQWdCO0lBQ2hCQyxTQUFTO0FBQ2IsRUFBRSIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS10cmFuc2xhdGlvbnMvZGlzdC90cmFuc2xhdGlvbnMuanM/YjI5YyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUGxlYXNlIGtlZXAgdGhlc2UgYWxwaGFiZXRpemVkICovIGNvbnN0IGFkZHJlc3NGaWVsZHMgPSB7XG4gICAgYWRkcmVzczE6ICdBZGRyZXNzIGxpbmUgMScsXG4gICAgYWRkcmVzczI6ICdBZGRyZXNzIGxpbmUgMicsXG4gICAgYWRkcmVzczM6ICdBZGRyZXNzIGxpbmUgMycsXG4gICAgYWRkcmVzczQ6ICdBZGRyZXNzIGxpbmUgNCcsXG4gICAgYWRkcmVzczU6ICdBZGRyZXNzIGxpbmUgNScsXG4gICAgYWRkcmVzczY6ICdBZGRyZXNzIGxpbmUgNicsXG4gICAgY2l0eTogJ0NpdHknLFxuICAgIGNpdHlWaWxsYWdlOiAnQ2l0eScsXG4gICAgY291bnRyeTogJ0NvdW50cnknLFxuICAgIGNvdW50eURpc3RyaWN0OiAnRGlzdHJpY3QnLFxuICAgIGRpc3RyaWN0OiAnRGlzdHJpY3QnLFxuICAgIHBvc3RhbENvZGU6ICdQb3N0YWwgY29kZScsXG4gICAgc3RhdGU6ICdTdGF0ZScsXG4gICAgc3RhdGVQcm92aW5jZTogJ1N0YXRlJ1xufTtcbmNvbnN0IHdvcmtzcGFjZVRyYW5zbGF0aW9ucyA9IHtcbiAgICBjbG9zZUFsbE9wZW5lZFdvcmtzcGFjZXM6ICdEaXNjYXJkIGNoYW5nZXMgaW4ge3tjb3VudH19IHdvcmtzcGFjZXMnLFxuICAgIGNsb3NpbmdBbGxXb3Jrc3BhY2VzUHJvbXB0Qm9keTogJ1RoZXJlIG1heSBiZSB1bnNhdmVkIGNoYW5nZXMgaW4gdGhlIGZvbGxvd2luZyB3b3Jrc3BhY2VzLiBEbyB5b3Ugd2FudCB0byBkaXNjYXJkIGNoYW5nZXMgaW4gdGhlIGZvbGxvd2luZyB3b3Jrc3BhY2VzPyB7e3dvcmtzcGFjZU5hbWVzfX0nLFxuICAgIGNsb3NpbmdBbGxXb3Jrc3BhY2VzUHJvbXB0VGl0bGU6ICdZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMnLFxuICAgIGRpc2NhcmQ6ICdEaXNjYXJkJyxcbiAgICBoaWRlOiAnSGlkZScsXG4gICAgbWF4aW1pemU6ICdNYXhpbWl6ZScsXG4gICAgbWluaW1pemU6ICdNaW5pbWl6ZScsXG4gICAgb3BlbkFueXdheTogJ09wZW4gYW55d2F5JyxcbiAgICB1bnNhdmVkQ2hhbmdlc0luT3BlbmVkV29ya3NwYWNlOiAnWW91IG1heSBoYXZlIHVuc2F2ZWQgY2hhbmdlcyBpbiB0aGUgb3BlbmVkIHdvcmtzcGFjZS4gRG8geW91IHdhbnQgdG8gZGlzY2FyZCB0aGVzZSBjaGFuZ2VzPycsXG4gICAgdW5zYXZlZENoYW5nZXNJbldvcmtzcGFjZTogJ1RoZXJlIG1heSBiZSB1bnNhdmVkIGNoYW5nZXMgaW4gXCJ7e3dvcmtzcGFjZU5hbWV9fVwiLiBQbGVhc2Ugc2F2ZSB0aGVtIGJlZm9yZSBvcGVuaW5nIGFub3RoZXIgd29ya3NwYWNlLicsXG4gICAgdW5zYXZlZENoYW5nZXNUaXRsZVRleHQ6ICdVbnNhdmVkIGNoYW5nZXMnLFxuICAgIHdvcmtzcGFjZUhlYWRlcjogJ1dvcmtzcGFjZSBoZWFkZXInXG59O1xuZXhwb3J0IGNvbnN0IGNvcmVUcmFuc2xhdGlvbnMgPSB7XG4gICAgLi4uYWRkcmVzc0ZpZWxkcyxcbiAgICAuLi53b3Jrc3BhY2VUcmFuc2xhdGlvbnMsXG4gICAgYWN0aW9uczogJ0FjdGlvbnMnLFxuICAgIGFkZHJlc3M6ICdBZGRyZXNzJyxcbiAgICBhZ2U6ICdBZ2UnLFxuICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgY2hhbmdlOiAnQ2hhbmdlJyxcbiAgICAvLyBEZWZhdWx0IHZhbHVlIGZvciB0aGUgaW1wbGVtZW50YXRpb25OYW1lIGNvbmZpZyBwcm9wZXJ0eVxuICAgIENsaW5pYzogJ0NsaW5pYycsXG4gICAgY2xvc2U6ICdDbG9zZScsXG4gICAgY29uZmlybTogJ0NvbmZpcm0nLFxuICAgIGNvbnRhY3RBZG1pbmlzdHJhdG9ySWZJc3N1ZVBlcnNpc3RzOiAnQ29udGFjdCB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yIGlmIHRoZSBwcm9ibGVtIHBlcnNpc3RzLicsXG4gICAgY29udGFjdERldGFpbHM6ICdDb250YWN0IGRldGFpbHMnLFxuICAgIGRlbGV0ZTogJ0RlbGV0ZScsXG4gICAgZWRpdDogJ0VkaXQnLFxuICAgIGVycm9yOiAnRXJyb3InLFxuICAgIGVycm9yQ29weTogJ1NvcnJ5LCB0aGVyZSB3YXMgYSBwcm9ibGVtIGRpc3BsYXlpbmcgdGhpcyBpbmZvcm1hdGlvbi4gWW91IGNhbiB0cnkgdG8gcmVsb2FkIHRoaXMgcGFnZSwgb3IgY29udGFjdCB0aGUgc2l0ZSBhZG1pbmlzdHJhdG9yIGFuZCBxdW90ZSB0aGUgZXJyb3IgY29kZSBhYm92ZS4nLFxuICAgIGZlbWFsZTogJ0ZlbWFsZScsXG4gICAgbG9hZGluZzogJ0xvYWRpbmcnLFxuICAgIG1hbGU6ICdNYWxlJyxcbiAgICBvdGhlcjogJ090aGVyJyxcbiAgICBwYXRpZW50SWRlbnRpZmllclN0aWNrZXI6ICdQYXRpZW50IGlkZW50aWZpZXIgc3RpY2tlcicsXG4gICAgcGF0aWVudExpc3RzOiAnUGF0aWVudCBsaXN0cycsXG4gICAgcHJpbnQ6ICdQcmludCcsXG4gICAgcHJpbnRFcnJvcjogJ1ByaW50IGVycm9yJyxcbiAgICBwcmludEVycm9yRXhwbGFpbmVyOiAnQW4gZXJyb3Igb2NjdXJyZWQgaW4ge3tlcnJvckxvY2F0aW9ufX0nLFxuICAgIHByaW50SWRlbnRpZmllclN0aWNrZXI6ICdQcmludCBpZGVudGlmaWVyIHN0aWNrZXInLFxuICAgIHByaW50aW5nOiAnUHJpbnRpbmcnLFxuICAgIHJlbGF0aW9uc2hpcHM6ICdSZWxhdGlvbnNoaXBzJyxcbiAgICByZXNldE92ZXJyaWRlczogJ1Jlc2V0IG92ZXJyaWRlcycsXG4gICAgc2F2ZTogJ1NhdmUnLFxuICAgIHNjcmlwdExvYWRpbmdGYWlsZWQ6ICdFcnJvcjogU2NyaXB0IGZhaWxlZCB0byBsb2FkJyxcbiAgICBzY3JpcHRMb2FkaW5nRXJyb3I6ICdGYWlsZWQgdG8gbG9hZCBvdmVycmlkZGVuIHNjcmlwdCBmcm9tIHt7dXJsfX0uIFBsZWFzZSBjaGVjayB0aGF0IHRoZSBidW5kbGVkIHNjcmlwdCBpcyBhdmFpbGFibGUgYXQgdGhlIGV4cGVjdGVkIFVSTC4gQ2xpY2sgdGhlIGJ1dHRvbiBiZWxvdyB0byByZXNldCBhbGwgaW1wb3J0IG1hcCBvdmVycmlkZXMuJyxcbiAgICBzZWVNb3JlTGlzdHM6ICdTZWUge3tjb3VudH19IG1vcmUgbGlzdHMnLFxuICAgIHNleDogJ1NleCcsXG4gICAgc2hvd0xlc3M6ICdTaG93IGxlc3MnLFxuICAgIHNob3dNb3JlOiAnU2hvdyBtb3JlJyxcbiAgICB0b2dnbGVEZXZUb29sczogJ1RvZ2dsZSBkZXYgdG9vbHMnLFxuICAgIHVua25vd246ICdVbmtub3duJ1xufTtcbiJdLCJuYW1lcyI6WyJhZGRyZXNzRmllbGRzIiwiYWRkcmVzczEiLCJhZGRyZXNzMiIsImFkZHJlc3MzIiwiYWRkcmVzczQiLCJhZGRyZXNzNSIsImFkZHJlc3M2IiwiY2l0eSIsImNpdHlWaWxsYWdlIiwiY291bnRyeSIsImNvdW50eURpc3RyaWN0IiwiZGlzdHJpY3QiLCJwb3N0YWxDb2RlIiwic3RhdGUiLCJzdGF0ZVByb3ZpbmNlIiwid29ya3NwYWNlVHJhbnNsYXRpb25zIiwiY2xvc2VBbGxPcGVuZWRXb3Jrc3BhY2VzIiwiY2xvc2luZ0FsbFdvcmtzcGFjZXNQcm9tcHRCb2R5IiwiY2xvc2luZ0FsbFdvcmtzcGFjZXNQcm9tcHRUaXRsZSIsImRpc2NhcmQiLCJoaWRlIiwibWF4aW1pemUiLCJtaW5pbWl6ZSIsIm9wZW5Bbnl3YXkiLCJ1bnNhdmVkQ2hhbmdlc0luT3BlbmVkV29ya3NwYWNlIiwidW5zYXZlZENoYW5nZXNJbldvcmtzcGFjZSIsInVuc2F2ZWRDaGFuZ2VzVGl0bGVUZXh0Iiwid29ya3NwYWNlSGVhZGVyIiwiY29yZVRyYW5zbGF0aW9ucyIsImFjdGlvbnMiLCJhZGRyZXNzIiwiYWdlIiwiY2FuY2VsIiwiY2hhbmdlIiwiQ2xpbmljIiwiY2xvc2UiLCJjb25maXJtIiwiY29udGFjdEFkbWluaXN0cmF0b3JJZklzc3VlUGVyc2lzdHMiLCJjb250YWN0RGV0YWlscyIsImRlbGV0ZSIsImVkaXQiLCJlcnJvciIsImVycm9yQ29weSIsImZlbWFsZSIsImxvYWRpbmciLCJtYWxlIiwib3RoZXIiLCJwYXRpZW50SWRlbnRpZmllclN0aWNrZXIiLCJwYXRpZW50TGlzdHMiLCJwcmludCIsInByaW50RXJyb3IiLCJwcmludEVycm9yRXhwbGFpbmVyIiwicHJpbnRJZGVudGlmaWVyU3RpY2tlciIsInByaW50aW5nIiwicmVsYXRpb25zaGlwcyIsInJlc2V0T3ZlcnJpZGVzIiwic2F2ZSIsInNjcmlwdExvYWRpbmdGYWlsZWQiLCJzY3JpcHRMb2FkaW5nRXJyb3IiLCJzZWVNb3JlTGlzdHMiLCJzZXgiLCJzaG93TGVzcyIsInNob3dNb3JlIiwidG9nZ2xlRGV2VG9vbHMiLCJ1bmtub3duIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../framework/esm-translations/dist/translations.js\n");
|
|
2219
2219
|
|
|
2220
2220
|
/***/ }),
|
|
2221
2221
|
|