UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

345 lines (344 loc) 50.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Injectable } from '@angular/core'; import { PhloxApp } from '../component/PhloxApp.component'; import { NotificationContainer } from '../component/NotificationContainer.component'; import { EllipsisButton } from '../component/EllipsisButton.component'; import { CheckMenuItem } from '../component/CheckMenuItem.component'; import { ToastNotification } from '../component/ToastNotification.component'; import { TabPane, Tab } from '../component/dataview/TabPane.component'; import { SimpleRippleButton } from '../component/SimpleRippleButton.component'; import { SimpleListPane } from '../component/SimpleListPane.component'; import { SignalsIndicator } from '../component/SignalsIndicator.component'; import { DefaultMenuItem } from '../component/DefaultMenuItem.component'; import { DefaultMenu } from '../component/DefaultMenu.component'; import { ContextMenuButton } from '../component/ContextMenuButton.component'; import { ContextMenu } from '../component/ContextMenu.component'; import { ConnectionStatusPane } from '../component/ConnectionStatusPane.component'; import { ConnectionStatus } from '../component/ConnectionStatus.component'; import { ComponentWrapper } from '../component/ComponentWrapper.component'; import { ComponentPopover } from '../component/ComponentPopover.component'; import { ComponentMenuItem } from '../component/ComponentMenuItem.component'; import { ComponentDataLangSelector } from '../component/dataview/ComponentDataLangSelector.component'; import { ComponentAccordion } from '../component/dataview/ComponentAccordion.component'; import { ComponentDialog } from '../component/dialog.internal/ComponentDialog.component'; import { ConfirmDialog } from '../component/dialog.internal/ConfirmDialog.component'; import { MessageDialog } from '../component/dialog.internal/MessageDialog.component'; import { StringDataView } from '../component/dataview/StringDataView.component'; import { FunctionDataView } from '../component/dataview/FunctionDataView.component'; import { ComponentFloatingHeaderPanel } from '../component/dataview/ComponentFloatingHeaderPanel.component'; import { ScrollWizardPane } from '../component/dataview/ScrollWizardPane.component'; import { ScrollPaginationWizardPane } from '../component/dataview/ScrollPaginationWizardPane.component'; import { PaginationWizardPane } from '../component/dataview/PaginationWizardPane.component'; import { ToggleSwitch } from '../component/dataview/input/ToggleSwitch.component'; import { MultipleStateCheckBox } from '../component/dataview/input/MultipleStateCheckBox.component'; import { FileSelector } from '../component/dataview/input/FileSelector.component'; import { CheckBox } from '../component/dataview/input/CheckBox.component'; import { SimpleMultiDropdownList } from '../component/dataview/input/SimpleMultiDropdownList.component'; import { SearchMultiDropdownList } from '../component/dataview/input/SearchMultiDropdownList.component'; import { ColorDropdownList } from '../component/dataview/input/ColorDropdownList.component'; import { ColorSwatch } from '../component/dataview/input/ColorSwatch.component'; import { ComponentDropdownList } from '../component/dataview/input/ComponentDropdownList.component'; import { ComponentRadioButtons } from '../component/dataview/input/ComponentRadioButtons.component'; import { DatePicker } from '../component/dataview/input/DatePicker.component'; import { LinkSimpleDropdownList } from '../component/dataview/input/LinkSimpleDropdownList.component'; import { SimpleDropdownList } from '../component/dataview/input/SimpleDropdownList.component'; import { SimpleRadioButtons } from '../component/dataview/input/SimpleRadioButtons.component'; import { TextArea } from '../component/dataview/input/TextArea.component'; import { TextBox } from '../component/dataview/input/TextBox.component'; import { ThemeColorSwatch } from '../component/dataview/input/ThemeColorSwatch.component'; import { TimePicker } from '../component/dataview/input/TimePicker.component'; import { DefaultTableRow } from '../component/table/DefaultTableRow.component'; import { DefaultTableBody } from '../component/table/DefaultTableBody.component'; import { DefaultTableHeader } from '../component/table/DefaultTableHeader.component'; import { ExpandableTableRow } from '../component/table/ExpandableTableRow.component'; import { DefaultExpandTableBody } from '../component/table/DefaultExpandTableBody.component'; import { ExpandableTableHeader } from '../component/table/ExpandableTableHeader.component'; import { CalendarEntryPopover } from '../component/editor/editor.internal/calendar.internal/CalendarEntryPopover.component'; import { CalendarView } from '../component/editor/editor.internal/CalendarView.component'; import { DefaultCalendarEntryListPopover } from '../component/editor/DefaultCalendarEntryListPopover.component'; import { DefaultCalendarEntryPopover } from '../component/editor/DefaultCalendarEntryPopover.component'; import { DefaultComponentCalendarEntry } from '../component/editor/DefaultComponentCalendarEntry.component'; import { DefaultEntryEditorPopover } from '../component/editor/DefaultEntryEditorPopover.component'; import { FormView } from '../component/editor/editor.internal/FormView.component'; import { SearchButton } from '../component/editor/editor.internal/SearchButton.component'; import { ViewButton } from '../component/editor/editor.internal/ViewButton.component'; import { MaterialIconLoader, MaterialDataIconLoader, MaterialComponentDataLangSelector, MaterialDatePicker, MaterialTextBox, MaterialBarLoader, MaterialSimpleDropdownList, MaterialTelNoTextBox, MaterialTextArea, MaterialTimePicker, MaterialCheckBox, MaterialButton, MaterialRadioButtons, MaterialToggleSwitch, MaterialAutocomplete, MaterialSlider, MaterialSimpleMultiDropdownList, MaterialComponentMultiDropdownList, MaterialSearchMultiDropdownList, MaterialComponentDropdownList } from '../theme/material/materials'; export class TypeResolveService { /** * @param {?} typeName * @return {?} */ resolveType(typeName) { if (typeName == null) { return null; } // Phlox Core if (typeName === StringDataView.TYPE_NAME) { return StringDataView; } else if (typeName == FunctionDataView.TYPE_NAME) { return FunctionDataView; } else if (typeName === DefaultTableRow.TYPE_NAME) { return DefaultTableRow; } else if (typeName === DefaultTableBody.TYPE_NAME) { return DefaultTableBody; } else if (typeName === DefaultTableHeader.TYPE_NAME) { return DefaultTableHeader; } else if (typeName === ExpandableTableRow.TYPE_NAME) { return ExpandableTableRow; } else if (typeName === ToggleSwitch.TYPE_NAME) { return ToggleSwitch; } else if (typeName === MultipleStateCheckBox.TYPE_NAME) { return MultipleStateCheckBox; } else if (typeName === FileSelector.TYPE_NAME) { return FileSelector; } else if (typeName === EllipsisButton.TYPE_NAME) { return EllipsisButton; } else if (typeName === CheckBox.TYPE_NAME) { return CheckBox; } else if (typeName === DefaultExpandTableBody.TYPE_NAME) { return DefaultExpandTableBody; } else if (typeName === SimpleMultiDropdownList.TYPE_NAME) { return SimpleMultiDropdownList; } else if (typeName === SearchMultiDropdownList.TYPE_NAME) { return SearchMultiDropdownList; } else if (typeName === CheckMenuItem.TYPE_NAME) { return CheckMenuItem; } else if (typeName === ToastNotification.TYPE_NAME) { return ToastNotification; } else if (typeName === TabPane.TYPE_NAME) { return TabPane; } else if (typeName === Tab.TYPE_NAME) { return Tab; } else if (typeName === SimpleRippleButton.TYPE_NAME) { return SimpleRippleButton; } else if (typeName === SimpleListPane.TYPE_NAME) { return SimpleListPane; } else if (typeName === SignalsIndicator.TYPE_NAME) { return SignalsIndicator; } else if (typeName === ScrollWizardPane.TYPE_NAME) { return ScrollWizardPane; } else if (typeName === ScrollPaginationWizardPane.TYPE_NAME) { return ScrollPaginationWizardPane; } else if (typeName === PaginationWizardPane.TYPE_NAME) { return PaginationWizardPane; } else if (typeName === DefaultMenuItem.TYPE_NAME) { return DefaultMenuItem; } else if (typeName === DefaultMenu.TYPE_NAME) { return DefaultMenu; } else if (typeName === ContextMenuButton.TYPE_NAME) { return ContextMenuButton; } else if (typeName === ContextMenu.TYPE_NAME) { return ContextMenu; } else if (typeName === ConnectionStatusPane.TYPE_NAME) { return ConnectionStatusPane; } else if (typeName === ConnectionStatus.TYPE_NAME) { return ConnectionStatus; } else if (typeName === ComponentWrapper.TYPE_NAME) { return ComponentWrapper; } else if (typeName === ComponentPopover.TYPE_NAME) { return ComponentPopover; } else if (typeName === ComponentMenuItem.TYPE_NAME) { return ComponentMenuItem; } else if (typeName === ComponentDataLangSelector.TYPE_NAME) { return ComponentDataLangSelector; } else if (typeName === ComponentAccordion.TYPE_NAME) { return ComponentAccordion; } else if (typeName === ExpandableTableHeader.TYPE_NAME) { return ExpandableTableHeader; } else if (typeName === ColorDropdownList.TYPE_NAME) { return ColorDropdownList; } else if (typeName === ColorSwatch.TYPE_NAME) { return ColorSwatch; } else if (typeName === ComponentDropdownList.TYPE_NAME) { return ComponentDropdownList; } else if (typeName === ComponentRadioButtons.TYPE_NAME) { return ComponentRadioButtons; } else if (typeName === DatePicker.TYPE_NAME) { return DatePicker; } else if (typeName === LinkSimpleDropdownList.TYPE_NAME) { return LinkSimpleDropdownList; } else if (typeName === SimpleDropdownList.TYPE_NAME) { return SimpleDropdownList; } else if (typeName === SimpleRadioButtons.TYPE_NAME) { return SimpleRadioButtons; } else if (typeName === TextArea.TYPE_NAME) { return TextArea; } else if (typeName === TextBox.TYPE_NAME) { return TextBox; } else if (typeName === ThemeColorSwatch.TYPE_NAME) { return ThemeColorSwatch; } else if (typeName === TimePicker.TYPE_NAME) { return TimePicker; } else if (typeName === ComponentFloatingHeaderPanel.TYPE_NAME) { return ComponentFloatingHeaderPanel; } else if (typeName === CalendarEntryPopover.TYPE_NAME) { return CalendarEntryPopover; } else if (typeName === CalendarView.TYPE_NAME) { return CalendarView; } else if (typeName === DefaultCalendarEntryListPopover.TYPE_NAME) { return DefaultCalendarEntryListPopover; } else if (typeName === DefaultCalendarEntryPopover.TYPE_NAME) { return DefaultCalendarEntryPopover; } else if (typeName === DefaultComponentCalendarEntry.TYPE_NAME) { return DefaultComponentCalendarEntry; } else if (typeName === DefaultEntryEditorPopover.TYPE_NAME) { return DefaultEntryEditorPopover; } else if (typeName === FormView.TYPE_NAME) { return FormView; } else if (typeName === SearchButton.TYPE_NAME) { return SearchButton; } else if (typeName === ViewButton.TYPE_NAME) { return ViewButton; } else if (typeName === NotificationContainer.TYPE_NAME) { return NotificationContainer; } else if (typeName === PhloxApp.TYPE_NAME) { return PhloxApp; } else if (typeName === ComponentDialog.TYPE_NAME) { return ComponentDialog; } else if (typeName === ConfirmDialog.TYPE_NAME) { return ConfirmDialog; } else if (typeName === MessageDialog.TYPE_NAME) { return MessageDialog; } // Material Theme if (typeName === MaterialIconLoader.TYPE_NAME) { return MaterialIconLoader; } else if (typeName === MaterialDataIconLoader.TYPE_NAME) { return MaterialDataIconLoader; } else if (typeName === MaterialComponentDataLangSelector.TYPE_NAME) { return MaterialComponentDataLangSelector; } else if (typeName === MaterialDatePicker.TYPE_NAME) { return MaterialDatePicker; } else if (typeName === MaterialTextBox.TYPE_NAME) { return MaterialTextBox; } else if (typeName === MaterialBarLoader.TYPE_NAME) { return MaterialBarLoader; } else if (typeName === MaterialSimpleDropdownList.TYPE_NAME) { return MaterialSimpleDropdownList; } else if (typeName === MaterialTelNoTextBox.TYPE_NAME) { return MaterialTelNoTextBox; } else if (typeName === MaterialTextArea.TYPE_NAME) { return MaterialTextArea; } else if (typeName === MaterialTimePicker.TYPE_NAME) { return MaterialTimePicker; } else if (typeName === MaterialCheckBox.TYPE_NAME) { return MaterialCheckBox; } else if (typeName === MaterialButton.TYPE_NAME) { return MaterialButton; } else if (typeName === MaterialRadioButtons.TYPE_NAME) { return MaterialRadioButtons; } else if (typeName === MaterialToggleSwitch.TYPE_NAME) { return MaterialToggleSwitch; } else if (typeName === MaterialAutocomplete.TYPE_NAME) { return MaterialAutocomplete; } else if (typeName === MaterialSlider.TYPE_NAME) { return MaterialSlider; } else if (typeName === MaterialSimpleMultiDropdownList.TYPE_NAME) { return MaterialSimpleMultiDropdownList; } else if (typeName === MaterialComponentMultiDropdownList.TYPE_NAME) { return MaterialComponentMultiDropdownList; } else if (typeName === MaterialSearchMultiDropdownList.TYPE_NAME) { return MaterialSearchMultiDropdownList; } else if (typeName === MaterialComponentDropdownList.TYPE_NAME) { return MaterialComponentDropdownList; } return null; } } TypeResolveService.decorators = [ { type: Injectable }, ]; function TypeResolveService_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ TypeResolveService.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ TypeResolveService.ctorParameters; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZVJlc29sdmVTZXJ2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL1R5cGVSZXNvbHZlU2VydmljZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxnQkFBZ0Is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QUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssa0NBQWtDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNyRSxNQUFNLENBQUMsa0NBQWtDLENBQUM7U0FDM0M7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLCtCQUErQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDbEUsTUFBTSxDQUFDLCtCQUErQixDQUFDO1NBQ3hDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyw2QkFBNkIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQztTQUN0QztRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUM7Ozs7WUFwTGYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUGhsb3hBcHAgfSBmcm9tICcuLi9jb21wb25lbnQvUGhsb3hBcHAuY29tcG9uZW50JztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkNvbnRhaW5lciB9IGZyb20gJy4uL2NvbXBvbmVudC9Ob3RpZmljYXRpb25Db250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEVsbGlwc2lzQnV0dG9uIH0gZnJvbSAnLi4vY29tcG9uZW50L0VsbGlwc2lzQnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGVja01lbnVJdGVtIH0gZnJvbSAnLi4vY29tcG9uZW50L0NoZWNrTWVudUl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFRvYXN0Tm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vY29tcG9uZW50L1RvYXN0Tm90aWZpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJQYW5lLCBUYWIgfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvVGFiUGFuZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2ltcGxlUmlwcGxlQnV0dG9uIH0gZnJvbSAnLi4vY29tcG9uZW50L1NpbXBsZVJpcHBsZUJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2ltcGxlTGlzdFBhbmUgfSBmcm9tICcuLi9jb21wb25lbnQvU2ltcGxlTGlzdFBhbmUuY29tcG9uZW50JztcbmltcG9ydCB7IFNpZ25hbHNJbmRpY2F0b3IgfSBmcm9tICcuLi9jb21wb25lbnQvU2lnbmFsc0luZGljYXRvci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBEZWZhdWx0TWVudUl0ZW0gfSBmcm9tICcuLi9jb21wb25lbnQvRGVmYXVsdE1lbnVJdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWZhdWx0TWVudSB9IGZyb20gJy4uL2NvbXBvbmVudC9EZWZhdWx0TWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGV4dE1lbnVCdXR0b24gfSBmcm9tICcuLi9jb21wb25lbnQvQ29udGV4dE1lbnVCdXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRleHRNZW51IH0gZnJvbSAnLi4vY29tcG9uZW50L0NvbnRleHRNZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU3RhdHVzUGFuZSB9IGZyb20gJy4uL2NvbXBvbmVudC9Db25uZWN0aW9uU3RhdHVzUGFuZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29ubmVjdGlvblN0YXR1cyB9IGZyb20gJy4uL2NvbXBvbmVudC9Db25uZWN0aW9uU3RhdHVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRXcmFwcGVyIH0gZnJvbSAnLi4vY29tcG9uZW50L0NvbXBvbmVudFdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudFBvcG92ZXIgfSBmcm9tICcuLi9jb21wb25lbnQvQ29tcG9uZW50UG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWVudUl0ZW0gfSBmcm9tICcuLi9jb21wb25lbnQvQ29tcG9uZW50TWVudUl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudERhdGFMYW5nU2VsZWN0b3IgfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvQ29tcG9uZW50RGF0YUxhbmdTZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50QWNjb3JkaW9uIH0gZnJvbSAnLi4vY29tcG9uZW50L2RhdGF2aWV3L0NvbXBvbmVudEFjY29yZGlvbi5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBDb21wb25lbnREaWFsb2cgfSBmcm9tICcuLi9jb21wb25lbnQvZGlhbG9nLmludGVybmFsL0NvbXBvbmVudERpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZmlybURpYWxvZyB9IGZyb20gJy4uL2NvbXBvbmVudC9kaWFsb2cuaW50ZXJuYWwvQ29uZmlybURpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVzc2FnZURpYWxvZyB9IGZyb20gJy4uL2NvbXBvbmVudC9kaWFsb2cuaW50ZXJuYWwvTWVzc2FnZURpYWxvZy5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBTdHJpbmdEYXRhVmlldyB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9TdHJpbmdEYXRhVmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRnVuY3Rpb25EYXRhVmlldyB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9GdW5jdGlvbkRhdGFWaWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRGbG9hdGluZ0hlYWRlclBhbmVsIH0gZnJvbSAnLi4vY29tcG9uZW50L2RhdGF2aWV3L0NvbXBvbmVudEZsb2F0aW5nSGVhZGVyUGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNjcm9sbFdpemFyZFBhbmUgfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvU2Nyb2xsV2l6YXJkUGFuZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2Nyb2xsUGFnaW5hdGlvbldpemFyZFBhbmUgfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvU2Nyb2xsUGFnaW5hdGlvbldpemFyZFBhbmUuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2luYXRpb25XaXphcmRQYW5lIH0gZnJvbSAnLi4vY29tcG9uZW50L2RhdGF2aWV3L1BhZ2luYXRpb25XaXphcmRQYW5lLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFRvZ2dsZVN3aXRjaCB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9Ub2dnbGVTd2l0Y2guY29tcG9uZW50JztcbmltcG9ydCB7IE11bHRpcGxlU3RhdGVDaGVja0JveCB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9NdWx0aXBsZVN0YXRlQ2hlY2tCb3guY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVTZWxlY3RvciB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9GaWxlU2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrQm94IH0gZnJvbSAnLi4vY29tcG9uZW50L2RhdGF2aWV3L2lucHV0L0NoZWNrQm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVNdWx0aURyb3Bkb3duTGlzdCB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9TaW1wbGVNdWx0aURyb3Bkb3duTGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoTXVsdGlEcm9wZG93bkxpc3QgfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvaW5wdXQvU2VhcmNoTXVsdGlEcm9wZG93bkxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IENvbG9yRHJvcGRvd25MaXN0IH0gZnJvbSAnLi4vY29tcG9uZW50L2RhdGF2aWV3L2lucHV0L0NvbG9yRHJvcGRvd25MaXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xvclN3YXRjaCB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9Db2xvclN3YXRjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50RHJvcGRvd25MaXN0IH0gZnJvbSAnLi4vY29tcG9uZW50L2RhdGF2aWV3L2lucHV0L0NvbXBvbmVudERyb3Bkb3duTGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmFkaW9CdXR0b25zIH0gZnJvbSAnLi4vY29tcG9uZW50L2RhdGF2aWV3L2lucHV0L0NvbXBvbmVudFJhZGlvQnV0dG9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlciB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9EYXRlUGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaW5rU2ltcGxlRHJvcGRvd25MaXN0IH0gZnJvbSAnLi4vY29tcG9uZW50L2RhdGF2aWV3L2lucHV0L0xpbmtTaW1wbGVEcm9wZG93bkxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXBsZURyb3Bkb3duTGlzdCB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9TaW1wbGVEcm9wZG93bkxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXBsZVJhZGlvQnV0dG9ucyB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9TaW1wbGVSYWRpb0J1dHRvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRBcmVhIH0gZnJvbSAnLi4vY29tcG9uZW50L2RhdGF2aWV3L2lucHV0L1RleHRBcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Qm94IH0gZnJvbSAnLi4vY29tcG9uZW50L2RhdGF2aWV3L2lucHV0L1RleHRCb3guY29tcG9uZW50JztcbmltcG9ydCB7IFRoZW1lQ29sb3JTd2F0Y2ggfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvaW5wdXQvVGhlbWVDb2xvclN3YXRjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGltZVBpY2tlciB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9UaW1lUGlja2VyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IERlZmF1bHRUYWJsZVJvdyB9IGZyb20gJy4uL2NvbXBvbmVudC90YWJsZS9EZWZhdWx0VGFibGVSb3cuY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHRUYWJsZUJvZHkgfSBmcm9tICcuLi9jb21wb25lbnQvdGFibGUvRGVmYXVsdFRhYmxlQm9keS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVmYXVsdFRhYmxlSGVhZGVyIH0gZnJvbSAnLi4vY29tcG9uZW50L3RhYmxlL0RlZmF1bHRUYWJsZUhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXhwYW5kYWJsZVRhYmxlUm93IH0gZnJvbSAnLi4vY29tcG9uZW50L3RhYmxlL0V4cGFuZGFibGVUYWJsZVJvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVmYXVsdEV4cGFuZFRhYmxlQm9keSB9IGZyb20gJy4uL2NvbXBvbmVudC90YWJsZS9EZWZhdWx0RXhwYW5kVGFibGVCb2R5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFeHBhbmRhYmxlVGFibGVIZWFkZXIgfSBmcm9tICcuLi9jb21wb25lbnQvdGFibGUvRXhwYW5kYWJsZVRhYmxlSGVhZGVyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IENhbGVuZGFyRW50cnlQb3BvdmVyIH0gZnJvbSAnLi4vY29tcG9uZW50L2VkaXRvci9lZGl0b3IuaW50ZXJuYWwvY2FsZW5kYXIuaW50ZXJuYWwvQ2FsZW5kYXJFbnRyeVBvcG92ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyVmlldyB9IGZyb20gJy4uL2NvbXBvbmVudC9lZGl0b3IvZWRpdG9yLmludGVybmFsL0NhbGVuZGFyVmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVmYXVsdENhbGVuZGFyRW50cnlMaXN0UG9wb3ZlciB9IGZyb20gJy4uL2NvbXBvbmVudC9lZGl0b3IvRGVmYXVsdENhbGVuZGFyRW50cnlMaXN0UG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVmYXVsdENhbGVuZGFyRW50cnlQb3BvdmVyIH0gZnJvbSAnLi4vY29tcG9uZW50L2VkaXRvci9EZWZhdWx0Q2FsZW5kYXJFbnRyeVBvcG92ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHRDb21wb25lbnRDYWxlbmRhckVudHJ5IH0gZnJvbSAnLi4vY29tcG9uZW50L2VkaXRvci9EZWZhdWx0Q29tcG9uZW50Q2FsZW5kYXJFbnRyeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVmYXVsdEVudHJ5RWRpdG9yUG9wb3ZlciB9IGZyb20gJy4uL2NvbXBvbmVudC9lZGl0b3IvRGVmYXVsdEVudHJ5RWRpdG9yUG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybVZpZXcgfSBmcm9tICcuLi9jb21wb25lbnQvZWRpdG9yL2VkaXRvci5pbnRlcm5hbC9Gb3JtVmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoQnV0dG9uIH0gZnJvbSAnLi4vY29tcG9uZW50L2VkaXRvci9lZGl0b3IuaW50ZXJuYWwvU2VhcmNoQnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWaWV3QnV0dG9uIH0gZnJvbSAnLi4vY29tcG9uZW50L2VkaXRvci9lZGl0b3IuaW50ZXJuYWwvVmlld0J1dHRvbi5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBNYXRlcmlhbEljb25Mb2FkZXIsIE1hdGVyaWFsRGF0YUljb25Mb2FkZXIsIE1hdGVyaWFsQ29tcG9uZW50RGF0YUxhbmdTZWxlY3RvcixcbiAgTWF0ZXJpYWxEYXRlUGlja2VyLCBNYXRlcmlhbFRleHRCb3gsIE1hdGVyaWFsQmFyTG9hZGVyLCBNYXRlcmlhbFNpbXBsZURyb3Bkb3duTGlzdCxcbiAgTWF0ZXJpYWxUZWxOb1RleHRCb3gsIE1hdGVyaWFsVGV4dEFyZWEsIE1hdGVyaWFsVGltZVBpY2tlciwgTWF0ZXJpYWxDaGVja0JveCAsIE1hdGVyaWFsQnV0dG9uLFxuICBNYXRlcmlhbFJhZGlvQnV0dG9ucywgTWF0ZXJpYWxUb2dnbGVTd2l0Y2gsIE1hdGVyaWFsQXV0b2NvbXBsZXRlLCBNYXRlcmlhbFNsaWRlciwgTWF0ZXJpYWxTaW1wbGVNdWx0aURyb3Bkb3duTGlzdCwgTWF0ZXJpYWxDb21wb25lbnRNdWx0aURyb3Bkb3duTGlzdCxcbiAgTWF0ZXJpYWxTZWFyY2hNdWx0aURyb3Bkb3duTGlzdCwgTWF0ZXJpYWxDb21wb25lbnREcm9wZG93bkxpc3Rcbn0gZnJvbSAnLi4vdGhlbWUvbWF0ZXJpYWwvbWF0ZXJpYWxzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFR5cGVSZXNvbHZlU2VydmljZSB7IFxuXG4gIHB1YmxpYyByZXNvbHZlVHlwZSh0eXBlTmFtZTogc3RyaW5nKTogVHlwZTxhbnk+IHtcbiAgICBpZiAodHlwZU5hbWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gUGhsb3ggQ29yZVxuICAgIGlmICh0eXBlTmFtZSA9PT0gU3RyaW5nRGF0YVZpZXcuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gU3RyaW5nRGF0YVZpZXc7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PSBGdW5jdGlvbkRhdGFWaWV3LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIEZ1bmN0aW9uRGF0YVZpZXc7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gRGVmYXVsdFRhYmxlUm93LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIERlZmF1bHRUYWJsZVJvdztcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBEZWZhdWx0VGFibGVCb2R5LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIERlZmF1bHRUYWJsZUJvZHk7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gRGVmYXVsdFRhYmxlSGVhZGVyLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIERlZmF1bHRUYWJsZUhlYWRlcjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBFeHBhbmRhYmxlVGFibGVSb3cuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gRXhwYW5kYWJsZVRhYmxlUm93O1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IFRvZ2dsZVN3aXRjaC5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBUb2dnbGVTd2l0Y2g7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gTXVsdGlwbGVTdGF0ZUNoZWNrQm94LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIE11bHRpcGxlU3RhdGVDaGVja0JveDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBGaWxlU2VsZWN0b3IuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gRmlsZVNlbGVjdG9yO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IEVsbGlwc2lzQnV0dG9uLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIEVsbGlwc2lzQnV0dG9uO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IENoZWNrQm94LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIENoZWNrQm94O1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IERlZmF1bHRFeHBhbmRUYWJsZUJvZHkuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gRGVmYXVsdEV4cGFuZFRhYmxlQm9keTtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBTaW1wbGVNdWx0aURyb3Bkb3duTGlzdC5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBTaW1wbGVNdWx0aURyb3Bkb3duTGlzdDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBTZWFyY2hNdWx0aURyb3Bkb3duTGlzdC5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBTZWFyY2hNdWx0aURyb3Bkb3duTGlzdDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBDaGVja01lbnVJdGVtLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIENoZWNrTWVudUl0ZW07XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gVG9hc3ROb3RpZmljYXRpb24uVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gVG9hc3ROb3RpZmljYXRpb247XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gVGFiUGFuZS5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBUYWJQYW5lO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IFRhYi5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBUYWI7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gU2ltcGxlUmlwcGxlQnV0dG9uLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIFNpbXBsZVJpcHBsZUJ1dHRvbjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBTaW1wbGVMaXN0UGFuZS5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBTaW1wbGVMaXN0UGFuZTtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBTaWduYWxzSW5kaWNhdG9yLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIFNpZ25hbHNJbmRpY2F0b3I7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gU2Nyb2xsV2l6YXJkUGFuZS5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBTY3JvbGxXaXphcmRQYW5lO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IFNjcm9sbFBhZ2luYXRpb25XaXphcmRQYW5lLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIFNjcm9sbFBhZ2luYXRpb25XaXphcmRQYW5lO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IFBhZ2luYXRpb25XaXphcmRQYW5lLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIFBhZ2luYXRpb25XaXphcmRQYW5lO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IERlZmF1bHRNZW51SXRlbS5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBEZWZhdWx0TWVudUl0ZW07XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gRGVmYXVsdE1lbnUuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gRGVmYXVsdE1lbnU7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gQ29udGV4dE1lbnVCdXR0b24uVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gQ29udGV4dE1lbnVCdXR0b247XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gQ29udGV4dE1lbnUuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gQ29udGV4dE1lbnU7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gQ29ubmVjdGlvblN0YXR1c1BhbmUuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gQ29ubmVjdGlvblN0YXR1c1BhbmU7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gQ29ubmVjdGlvblN0YXR1cy5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBDb25uZWN0aW9uU3RhdHVzO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IENvbXBvbmVudFdyYXBwZXIuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gQ29tcG9uZW50V3JhcHBlcjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBDb21wb25lbnRQb3BvdmVyLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIENvbXBvbmVudFBvcG92ZXI7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gQ29tcG9uZW50TWVudUl0ZW0uVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gQ29tcG9uZW50TWVudUl0ZW07XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gQ29tcG9uZW50RGF0YUxhbmdTZWxlY3Rvci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBDb21wb25lbnREYXRhTGFuZ1NlbGVjdG9yO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IENvbXBvbmVudEFjY29yZGlvbi5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBDb21wb25lbnRBY2NvcmRpb247XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gRXhwYW5kYWJsZVRhYmxlSGVhZGVyLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIEV4cGFuZGFibGVUYWJsZUhlYWRlcjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBDb2xvckRyb3Bkb3duTGlzdC5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBDb2xvckRyb3Bkb3duTGlzdDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBDb2xvclN3YXRjaC5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBDb2xvclN3YXRjaDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBDb21wb25lbnREcm9wZG93bkxpc3QuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gQ29tcG9uZW50RHJvcGRvd25MaXN0O1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IENvbXBvbmVudFJhZGlvQnV0dG9ucy5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBDb21wb25lbnRSYWRpb0J1dHRvbnM7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gRGF0ZVBpY2tlci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBEYXRlUGlja2VyO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IExpbmtTaW1wbGVEcm9wZG93bkxpc3QuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gTGlua1NpbXBsZURyb3Bkb3duTGlzdDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBTaW1wbGVEcm9wZG93bkxpc3QuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gU2ltcGxlRHJvcGRvd25MaXN0O1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IFNpbXBsZVJhZGlvQnV0dG9ucy5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBTaW1wbGVSYWRpb0J1dHRvbnM7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gVGV4dEFyZWEuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gVGV4dEFyZWE7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gVGV4dEJveC5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBUZXh0Qm94O1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IFRoZW1lQ29sb3JTd2F0Y2guVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gVGhlbWVDb2xvclN3YXRjaDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBUaW1lUGlja2VyLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIFRpbWVQaWNrZXI7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gQ29tcG9uZW50RmxvYXRpbmdIZWFkZXJQYW5lbC5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBDb21wb25lbnRGbG9hdGluZ0hlYWRlclBhbmVsO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IENhbGVuZGFyRW50cnlQb3BvdmVyLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIENhbGVuZGFyRW50cnlQb3BvdmVyO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IENhbGVuZGFyVmlldy5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBDYWxlbmRhclZpZXc7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gRGVmYXVsdENhbGVuZGFyRW50cnlMaXN0UG9wb3Zlci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBEZWZhdWx0Q2FsZW5kYXJFbnRyeUxpc3RQb3BvdmVyO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IERlZmF1bHRDYWxlbmRhckVudHJ5UG9wb3Zlci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBEZWZhdWx0Q2FsZW5kYXJFbnRyeVBvcG92ZXI7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gRGVmYXVsdENvbXBvbmVudENhbGVuZGFyRW50cnkuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gRGVmYXVsdENvbXBvbmVudENhbGVuZGFyRW50cnk7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gRGVmYXVsdEVudHJ5RWRpdG9yUG9wb3Zlci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBEZWZhdWx0RW50cnlFZGl0b3JQb3BvdmVyO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IEZvcm1WaWV3LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIEZvcm1WaWV3O1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IFNlYXJjaEJ1dHRvbi5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBTZWFyY2hCdXR0b247XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gVmlld0J1dHRvbi5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBWaWV3QnV0dG9uO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IE5vdGlmaWNhdGlvbkNvbnRhaW5lci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBOb3RpZmljYXRpb25Db250YWluZXI7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gUGhsb3hBcHAuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gUGhsb3hBcHA7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gQ29tcG9uZW50RGlhbG9nLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIENvbXBvbmVudERpYWxvZztcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBDb25maXJtRGlhbG9nLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIENvbmZpcm1EaWFsb2c7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gTWVzc2FnZURpYWxvZy5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBNZXNzYWdlRGlhbG9nOyAgICAgXG4gICAgfVxuXG4gICAgLy8gTWF0ZXJpYWwgVGhlbWVcbiAgICBpZiAodHlwZU5hbWUgPT09IE1hdGVyaWFsSWNvbkxvYWRlci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBNYXRlcmlhbEljb25Mb2FkZXI7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gTWF0ZXJpYWxEYXRhSWNvbkxvYWRlci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBNYXRlcmlhbERhdGFJY29uTG9hZGVyO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IE1hdGVyaWFsQ29tcG9uZW50RGF0YUxhbmdTZWxlY3Rvci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBNYXRlcmlhbENvbXBvbmVudERhdGFMYW5nU2VsZWN0b3I7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gTWF0ZXJpYWxEYXRlUGlja2VyLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIE1hdGVyaWFsRGF0ZVBpY2tlcjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBNYXRlcmlhbFRleHRCb3guVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gTWF0ZXJpYWxUZXh0Qm94O1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IE1hdGVyaWFsQmFyTG9hZGVyLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIE1hdGVyaWFsQmFyTG9hZGVyO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IE1hdGVyaWFsU2ltcGxlRHJvcGRvd25MaXN0LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIE1hdGVyaWFsU2ltcGxlRHJvcGRvd25MaXN0O1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IE1hdGVyaWFsVGVsTm9UZXh0Qm94LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIE1hdGVyaWFsVGVsTm9UZXh0Qm94O1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IE1hdGVyaWFsVGV4dEFyZWEuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gTWF0ZXJpYWxUZXh0QXJlYTtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBNYXRlcmlhbFRpbWVQaWNrZXIuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gTWF0ZXJpYWxUaW1lUGlja2VyO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IE1hdGVyaWFsQ2hlY2tCb3guVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gTWF0ZXJpYWxDaGVja0JveDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBNYXRlcmlhbEJ1dHRvbi5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBNYXRlcmlhbEJ1dHRvbjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBNYXRlcmlhbFJhZGlvQnV0dG9ucy5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBNYXRlcmlhbFJhZGlvQnV0dG9ucztcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBNYXRlcmlhbFRvZ2dsZVN3aXRjaC5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBNYXRlcmlhbFRvZ2dsZVN3aXRjaDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBNYXRlcmlhbEF1dG