1 line
56 KiB
JavaScript
1 line
56 KiB
JavaScript
"use strict";(self.webpackChunktimetrex=self.webpackChunktimetrex||[]).push([["policy-holiday_policy-HolidayPolicyViewController"],{935:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"HolidayPolicyViewController\": () => (/* binding */ HolidayPolicyViewController)\n/* harmony export */ });\n/* provided dependency */ var _ = __webpack_require__(9050);\n/* provided dependency */ var $ = __webpack_require__(9755);\nclass HolidayPolicyViewController extends BaseViewController {\n\tconstructor( options = {} ) {\n\t\t_.defaults( options, {\n\t\t\tel: '#holiday_policy_view_container',\n\n\t\t\ttype_array: null,\n\t\t\tdefault_schedule_status_array: null,\n\t\t\tshift_on_holiday_type_array: null,\n\t\t\tworked_scheduled_days_array: null,\n\t\t\tdate_api: null,\n\t\t\tsub_holiday_view_controller: null\n\t\t} );\n\n\t\tsuper( options );\n\t}\n\n\tinit( options ) {\n\t\t//this._super('initialize', options );\n\t\tthis.edit_view_tpl = 'HolidayPolicyEditView.html';\n\t\tthis.permission_id = 'holiday_policy';\n\t\tthis.viewId = 'HolidayPolicy';\n\t\tthis.script_name = 'HolidayPolicyView';\n\t\tthis.table_name_key = 'holiday_policy';\n\t\tthis.context_menu_name = $.i18n._( 'Holiday Policy' );\n\t\tthis.navigation_label = $.i18n._( 'Holiday Policy' );\n\t\tthis.api = TTAPI.APIHolidayPolicy;\n\t\tthis.date_api = TTAPI.APITTDate;\n\t\tthis.render();\n\t\tthis.buildContextMenu();\n\n\t\tthis.initData();\n\t}\n\n\t/* jshint ignore:start */\n\tinitOptions() {\n\t\tvar $this = this;\n\n\t\tvar options = [\n\t\t\t{ option_name: 'type', api: this.api },\n\t\t\t{ option_name: 'average_time_frequency_type', api: this.api },\n\t\t\t{ option_name: 'default_schedule_status', api: this.api },\n\t\t\t{ option_name: 'shift_on_holiday_type', api: this.api },\n\t\t];\n\n\t\tthis.initDropDownOptions( options );\n\n\t\tthis.initDropDownOption( 'scheduled_day', 'worked_scheduled_days', null, function( res ) {\n\t\t\tres = res.getResult();\n\t\t\t$this.worked_scheduled_days_array = $.extend( {}, res ); //\t Convert Array to Object\n\t\t} );\n\t}\n\n\t/* jshint ignore:end */\n\tbuildEditViewUI() {\n\n\t\tsuper.buildEditViewUI();\n\n\t\tvar $this = this;\n\n\t\tvar tab_model = {\n\t\t\t'tab_holiday_policy': { 'label': $.i18n._( 'Holiday Policy' ) },\n\t\t\t'tab_eligibility': { 'label': $.i18n._( 'Eligibility' ) },\n\t\t\t'tab_holiday_time': { 'label': $.i18n._( 'Holiday Time' ) },\n\t\t\t'tab_holidays': {\n\t\t\t\t'label': $.i18n._( 'Holidays' ),\n\t\t\t\t'init_callback': 'initSubHolidayView',\n\t\t\t\t'display_on_mass_edit': false\n\t\t\t},\n\t\t\t'tab_audit': true,\n\t\t};\n\t\tthis.setTabModel( tab_model );\n\n\t\tthis.navigation.AComboBox( {\n\t\t\tapi_class: TTAPI.APIHolidayPolicy,\n\t\t\tid: this.script_name + '_navigation',\n\t\t\tallow_multiple_selection: false,\n\t\t\tlayout_name: 'global_holiday',\n\t\t\tnavigation_mode: true,\n\t\t\tshow_search_inputs: true\n\t\t} );\n\n\t\tthis.setNavigation();\n\n\t\tvar tab_holiday_policy = this.edit_view_tab.find( '#tab_holiday_policy' );\n\n\t\t//Tab 0 start\n\n\t\tvar tab_holiday_policy_column1 = tab_holiday_policy.find( '.first-column' );\n\n\t\tthis.edit_view_tabs[0] = [];\n\n\t\tthis.edit_view_tabs[0].push( tab_holiday_policy_column1 );\n\n\t\tvar form_item_input;\n\t\tvar widgetContainer;\n\t\tvar label;\n\n\t\t//Name\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\n\t\tform_item_input.TTextInput( { field: 'name', width: '100%' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Name' ), form_item_input, tab_holiday_policy_column1, '' );\n\n\t\tform_item_input.parent().width( '45%' );\n\n\t\t// Description\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_AREA );\n\t\tform_item_input.TTextArea( { field: 'description', width: '100%' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Description' ), form_item_input, tab_holiday_policy_column1, '', null, null, true );\n\n\t\tform_item_input.parent().width( '45%' );\n\n\t\t// Type\n\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\n\t\tform_item_input.TComboBox( { field: 'type_id', set_empty: false } );\n\t\tform_item_input.setSourceData( $this.type_array );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Type' ), form_item_input, tab_holiday_policy_column1 );\n\n\t\t// Default Schedules Status\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\n\t\tform_item_input.TComboBox( { field: 'default_schedule_status_id' } );\n\t\tform_item_input.setSourceData( $this.default_schedule_status_array );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Default Schedules Status' ), form_item_input, tab_holiday_policy_column1 );\n\n\t\t// Recurring Holidays\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\t\tform_item_input.AComboBox( {\n\t\t\tapi_class: TTAPI.APIRecurringHoliday,\n\t\t\tallow_multiple_selection: true,\n\t\t\tlayout_name: 'global_recurring_holiday',\n\t\t\tshow_search_inputs: true,\n\t\t\tset_empty: true,\n\t\t\tfield: 'recurring_holiday_id'\n\t\t} );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Recurring Holidays' ), form_item_input, tab_holiday_policy_column1, '' );\n\n\t\t// Display Days\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'holiday_display_days', width: 50 } );\n\n\t\twidgetContainer = $( '<div class=\\'widget-h-box\\'></div>' );\n\t\tlabel = $( '<span class=\\'widget-right-label\\'> ' + $.i18n._( '(Days in Advance)' ) + '</span>' );\n\n\t\twidgetContainer.append( form_item_input );\n\t\twidgetContainer.append( label );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Display Holidays' ), form_item_input, tab_holiday_policy_column1, '', widgetContainer );\n\n\t\t// tab 1 start\n\t\tvar tab_eligibility = this.edit_view_tab.find( '#tab_eligibility' );\n\n\t\tvar tab_eligibility_column1 = tab_eligibility.find( '.first-column' );\n\n\t\tthis.edit_view_tabs[1] = [];\n\n\t\tthis.edit_view_tabs[1].push( tab_eligibility_column1 );\n\n\t\t// Minimum Employed Days\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\n\t\tform_item_input.TTextInput( { field: 'minimum_employed_days', width: 50 } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Minimum Employed Days' ), form_item_input, tab_eligibility_column1, '' );\n\n\t\t// Employee Must Work at Least\n\t\tvar form_item_minimum_worked_days_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_minimum_worked_days_input.TTextInput( { field: 'minimum_worked_days', width: 30 } );\n\n\t\tvar form_item_minimum_worked_period_days_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_minimum_worked_period_days_input.TTextInput( { field: 'minimum_worked_period_days', width: 30 } );\n\n\t\tvar form_item_worked_scheduled_days_combobox = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\tform_item_worked_scheduled_days_combobox.TComboBox( { field: 'worked_scheduled_days' } );\n\t\tform_item_worked_scheduled_days_combobox.setSourceData( $this.worked_scheduled_days_array );\n\n\t\twidgetContainer = $( '<div class=\\'widget-h-box\\'></div>' );\n\n\t\tvar label_1 = $( '<span class=\\'widget-right-label\\'> ' + $.i18n._( 'of the' ) + ' </span>' );\n\t\tvar label_2 = $( '<span class=\\'widget-right-label\\'> ' + $.i18n._( 'prior to the holiday' ) + ' </span>' );\n\t\tvar label_3 = $( '<span class=\\'widget-right-label\\'> ' + ' ' + ' </span>' );\n\n\t\twidgetContainer.append( form_item_minimum_worked_days_input );\n\t\twidgetContainer.append( label_1 );\n\t\twidgetContainer.append( form_item_minimum_worked_period_days_input );\n\t\twidgetContainer.append( label_3 );\n\t\twidgetContainer.append( form_item_worked_scheduled_days_combobox );\n\t\twidgetContainer.append( label_2 );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Employee Must Work at Least' ), [form_item_minimum_worked_days_input, form_item_minimum_worked_period_days_input, form_item_worked_scheduled_days_combobox], tab_eligibility_column1, '', widgetContainer, true );\n\n\t\t// Default Schedules Status\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\tform_item_input.TComboBox( { field: 'shift_on_holiday_type_id' } );\n\t\tform_item_input.setSourceData( $this.shift_on_holiday_type_array );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'On the Holiday, the Employee' ), form_item_input, tab_eligibility_column1, '', null, true );\n\n\t\t// Employee Must Work at Least\n\t\tform_item_minimum_worked_days_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_minimum_worked_days_input.TTextInput( { field: 'minimum_worked_after_days', width: 30 } );\n\n\t\tform_item_minimum_worked_period_days_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_minimum_worked_period_days_input.TTextInput( {\n\t\t\tfield: 'minimum_worked_after_period_days',\n\t\t\twidth: 30\n\t\t} );\n\n\t\tform_item_worked_scheduled_days_combobox = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\tform_item_worked_scheduled_days_combobox.TComboBox( { field: 'worked_after_scheduled_days' } );\n\t\tform_item_worked_scheduled_days_combobox.setSourceData( $this.worked_scheduled_days_array );\n\n\t\twidgetContainer = $( '<div class=\\'widget-h-box\\'></div>' );\n\n\t\tlabel_1 = $( '<span class=\\'widget-right-label\\'> ' + $.i18n._( 'of the' ) + ' </span>' );\n\t\tlabel_2 = $( '<span class=\\'widget-right-label\\'> ' + $.i18n._( 'following the holiday' ) + ' </span>' );\n\t\tlabel_3 = $( '<span class=\\'widget-right-label\\'> ' + ' ' + ' </span>' );\n\n\t\twidgetContainer.append( form_item_minimum_worked_days_input );\n\t\twidgetContainer.append( label_1 );\n\t\twidgetContainer.append( form_item_minimum_worked_period_days_input );\n\t\twidgetContainer.append( label_3 );\n\t\twidgetContainer.append( form_item_worked_scheduled_days_combobox );\n\t\twidgetContainer.append( label_2 );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Employee Must Work at Least' ), [form_item_minimum_worked_days_input, form_item_minimum_worked_period_days_input, form_item_worked_scheduled_days_combobox], tab_eligibility_column1, '', widgetContainer, true );\n\n\t\t// Eligible Contributing Shift\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\t\tform_item_input.AComboBox( {\n\t\t\tapi_class: TTAPI.APIContributingShiftPolicy,\n\t\t\tallow_multiple_selection: false,\n\t\t\tlayout_name: 'global_contributing_shift_policy',\n\t\t\tshow_search_inputs: true,\n\t\t\tset_empty: true,\n\t\t\tfield: 'eligible_contributing_shift_policy_id'\n\t\t} );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Contributing Shift Policy' ), form_item_input, tab_eligibility_column1, '', null, true );\n\n\t\t// tab 2 start\n\t\tvar tab_holiday_time = this.edit_view_tab.find( '#tab_holiday_time' );\n\n\t\tvar tab_holiday_time_column1 = tab_holiday_time.find( '.first-column' );\n\n\t\tthis.edit_view_tabs[2] = [];\n\n\t\tthis.edit_view_tabs[2].push( tab_holiday_time_column1 );\n\n\t\t// Total Time over\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'average_time_days', width: 30 } );\n\n\t\tvar form_item_average_time_frequency_combobox = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\tform_item_average_time_frequency_combobox.TComboBox( { field: 'average_time_frequency_type_id' } );\n\t\tform_item_average_time_frequency_combobox.setSourceData( $this.average_time_frequency_type_array );\n\n\t\twidgetContainer = $( '<div class=\\'widget-h-box\\'></div>' );\n\n\t\twidgetContainer.append( form_item_input );\n\t\twidgetContainer.append( form_item_average_time_frequency_combobox );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Total Time Over' ), [form_item_input, form_item_average_time_frequency_combobox], tab_holiday_time_column1, '', widgetContainer, true );\n\n\t\t// Average Time over\n\t\tvar form_item_average_time_worked_days_checkbox = Global.loadWidgetByName( FormItemType.CHECKBOX );\n\t\tform_item_average_time_worked_days_checkbox.TCheckbox( { field: 'average_time_worked_days' } );\n\n\t\tvar form_item_average_days_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_average_days_input.TTextInput( { field: 'average_days', width: 30 } );\n\n\t\twidgetContainer = $( '<div class=\\'widget-h-box \\'></div>' );\n\n\t\tlabel_1 = $( '<span class=\\'widget-right-label\\'> ' + $.i18n._( 'Worked Days Only' ) + ' </span>' );\n\t\tlabel_2 = $( '<span class=\\'widget-right-label\\'> ' + $.i18n._( 'or' ) + ' </span>' );\n\t\tlabel_3 = $( '<span class=\\'widget-right-label\\'> ' + $.i18n._( 'days' ) + ' </span>' );\n\n\t\twidgetContainer.append( label_1 );\n\t\twidgetContainer.append( form_item_average_time_worked_days_checkbox );\n\t\twidgetContainer.append( label_2 );\n\t\twidgetContainer.append( form_item_average_days_input );\n\t\twidgetContainer.append( label_3 );\n\n\t\tthis.average_days_widgets = [label_2, form_item_average_days_input, label_3];\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Average Time Over' ), [form_item_average_time_worked_days_checkbox, form_item_average_days_input], tab_holiday_time_column1, '', widgetContainer, true );\n\n\t\t// Contributing Shift\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\t\tform_item_input.AComboBox( {\n\t\t\tapi_class: TTAPI.APIContributingShiftPolicy,\n\t\t\tallow_multiple_selection: false,\n\t\t\tlayout_name: 'global_contributing_shift_policy',\n\t\t\tshow_search_inputs: true,\n\t\t\tset_empty: true,\n\t\t\tfield: 'contributing_shift_policy_id'\n\t\t} );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Contributing Shift Policy' ), form_item_input, tab_holiday_time_column1, '', null, true );\n\n\t\t// Holiday Time\n\t\t// Minimum Time\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'minimum_time', mode: 'time_unit', need_parser_sec: true } );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Holiday Time' ), form_item_input, tab_holiday_time_column1, '', null, true );\n\n\t\t// Maximum Time\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'maximum_time', mode: 'time_unit', need_parser_sec: true } );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Maximum Time' ), form_item_input, tab_holiday_time_column1, '', null, true );\n\n\t\t// Always Apply Over Time/Premium Policies\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.CHECKBOX );\n\t\tform_item_input.TCheckbox( { field: 'force_over_time_policy' } );\n\n\t\twidgetContainer = $( '<div class=\\'widget-h-box\\'></div>' );\n\t\tlabel = $( '<span class=\\'widget-right-label \\'> (' + $.i18n._( 'Even if they are not eligible for holiday pay' ) + ')</span>' );\n\n\t\twidgetContainer.append( form_item_input );\n\t\twidgetContainer.append( label );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Always Apply Over Time/Premium Policies' ), form_item_input, tab_holiday_time_column1, '', widgetContainer, true );\n\n\t\t// Rounding Policy\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\t\tform_item_input.AComboBox( {\n\t\t\tapi_class: TTAPI.APIRoundIntervalPolicy,\n\t\t\tallow_multiple_selection: false,\n\t\t\tlayout_name: 'global_round_interval',\n\t\t\tshow_search_inputs: true,\n\t\t\tset_empty: true,\n\t\t\tfield: 'round_interval_policy_id'\n\t\t} );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Rounding Policy' ), form_item_input, tab_holiday_time_column1, '', null, true );\n\n\t\t// Absence Policy\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\t\tform_item_input.AComboBox( {\n\t\t\tapi_class: TTAPI.APIAbsencePolicy,\n\t\t\tallow_multiple_selection: false,\n\t\t\tlayout_name: 'global_absences',\n\t\t\tshow_search_inputs: true,\n\t\t\tset_empty: true,\n\t\t\tfield: 'absence_policy_id'\n\t\t} );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Absence Policy' ), form_item_input, tab_holiday_time_column1, '' );\n\t}\n\n\tonFormItemChange( target, doNotValidate ) {\n\t\tthis.setIsChanged( target );\n\t\tthis.setMassEditingFieldsWhenFormChange( target );\n\n\t\tvar key = target.getField();\n\t\tvar c_value = target.getValue();\n\t\tthis.current_edit_record[key] = c_value;\n\t\tswitch ( key ) {\n\t\t\tcase 'type_id':\n\t\t\t\tthis.onTypeChange();\n\t\t\t\tbreak;\n\t\t\tcase 'average_time_worked_days':\n\t\t\t\tthis.onWorkedDaysChange();\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( !doNotValidate ) {\n\t\t\tthis.validate();\n\t\t}\n\t}\n\n\tsetEditViewDataDone() {\n\t\tsuper.setEditViewDataDone();\n\t\tthis.onTypeChange();\n\t\tthis.onWorkedDaysChange();\n\t}\n\n\tonWorkedDaysChange() {\n\t\tif ( this.current_edit_record.average_time_worked_days === true ) {\n\t\t\tthis.average_days_widgets[0].hide();\n\t\t\tthis.average_days_widgets[1].hide();\n\t\t\tthis.average_days_widgets[2].hide();\n\t\t} else {\n\t\t\tthis.average_days_widgets[0].show();\n\t\t\tthis.average_days_widgets[1].show();\n\t\t\tthis.average_days_widgets[2].show();\n\t\t}\n\t}\n\n\tonTypeChange() {\n\t\tif ( this.current_edit_record['type_id'] == 10 ) {\n\t\t\tthis.detachElement( 'minimum_worked_days' );\n\t\t\tthis.detachElement( 'shift_on_holiday_type_id' );\n\t\t\tthis.detachElement( 'minimum_worked_after_days' );\n\n\t\t\tthis.detachElement( 'average_time_days' );\n\t\t\tthis.detachElement( 'average_time_worked_days' );\n\t\t\tthis.edit_view_form_item_dic['minimum_time'].find( '.edit-view-form-item-label' ).text( $.i18n._( 'Holiday Time' ) );\n\n\t\t\tthis.detachElement( 'maximum_time' );\n\t\t\tthis.detachElement( 'force_over_time_policy' );\n\t\t\tthis.detachElement( 'round_interval_policy_id' );\n\t\t\tthis.detachElement( 'eligible_contributing_shift_policy_id' );\n\t\t\tthis.detachElement( 'contributing_shift_policy_id' );\n\n\t\t} else if ( this.current_edit_record['type_id'] == 20 ) {\n\t\t\tthis.attachElement( 'minimum_worked_days' );\n\t\t\tthis.attachElement( 'shift_on_holiday_type_id' );\n\t\t\tthis.attachElement( 'minimum_worked_after_days' );\n\n\t\t\tthis.detachElement( 'average_time_days' );\n\t\t\tthis.detachElement( 'average_time_worked_days' );\n\t\t\tthis.edit_view_form_item_dic['minimum_time'].find( '.edit-view-form-item-label' ).text( $.i18n._( 'Holiday Time' ) );\n\n\t\t\tthis.detachElement( 'maximum_time' );\n\t\t\tthis.detachElement( 'force_over_time_policy' );\n\t\t\tthis.detachElement( 'round_interval_policy_id' );\n\t\t\tthis.attachElement( 'eligible_contributing_shift_policy_id' );\n\t\t\tthis.detachElement( 'contributing_shift_policy_id' );\n\n\t\t} else if ( this.current_edit_record['type_id'] == 30 ) {\n\t\t\tthis.attachElement( 'minimum_worked_days' );\n\t\t\tthis.attachElement( 'shift_on_holiday_type_id' );\n\t\t\tthis.attachElement( 'minimum_worked_after_days' );\n\n\t\t\tthis.attachElement( 'average_time_days' );\n\t\t\tthis.attachElement( 'average_time_worked_days' );\n\t\t\tthis.edit_view_form_item_dic['minimum_time'].find( '.edit-view-form-item-label' ).text( $.i18n._( 'Minimum Time' ) );\n\n\t\t\tthis.attachElement( 'maximum_time' );\n\t\t\tthis.attachElement( 'force_over_time_policy' );\n\t\t\tthis.attachElement( 'round_interval_policy_id' );\n\t\t\tthis.attachElement( 'eligible_contributing_shift_policy_id' );\n\t\t\tthis.attachElement( 'contributing_shift_policy_id' );\n\t\t}\n\n\t\tthis.editFieldResize();\n\t}\n\n\tbuildSearchFields() {\n\n\t\tsuper.buildSearchFields();\n\t\tthis.search_fields = [\n\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Name' ),\n\t\t\t\tin_column: 1,\n\t\t\t\tfield: 'name',\n\t\t\t\tmultiple: true,\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: false,\n\t\t\t\tform_item_type: FormItemType.TEXT_INPUT\n\t\t\t} ),\n\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Type' ),\n\t\t\t\tin_column: 1,\n\t\t\t\tfield: 'type_id',\n\t\t\t\tmultiple: true,\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: false,\n\t\t\t\tlayout_name: 'global_option_column',\n\t\t\t\tform_item_type: FormItemType.AWESOME_BOX\n\t\t\t} ),\n\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Created By' ),\n\t\t\t\tin_column: 2,\n\t\t\t\tfield: 'created_by',\n\t\t\t\tlayout_name: 'global_user',\n\t\t\t\tapi_class: TTAPI.APIUser,\n\t\t\t\tmultiple: true,\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: false,\n\t\t\t\tform_item_type: FormItemType.AWESOME_BOX\n\t\t\t} ),\n\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Updated By' ),\n\t\t\t\tin_column: 2,\n\t\t\t\tfield: 'updated_by',\n\t\t\t\tlayout_name: 'global_user',\n\t\t\t\tapi_class: TTAPI.APIUser,\n\t\t\t\tmultiple: true,\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: false,\n\t\t\t\tform_item_type: FormItemType.AWESOME_BOX\n\t\t\t} )\n\t\t];\n\t}\n\n\tinitSubHolidayView() {\n\t\tvar $this = this;\n\n\t\tif ( !this.current_edit_record.id ) {\n\t\t\tTTPromise.resolve( 'BaseViewController', 'onTabShow' ); //Since search() isn't called in this case, and we just display the \"Please Save This Record ...\" message, resolve the promise.\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.sub_holiday_view_controller ) {\n\t\t\tthis.sub_holiday_view_controller.buildContextMenu( true );\n\t\t\tthis.sub_holiday_view_controller.setDefaultMenu();\n\t\t\t$this.sub_holiday_view_controller.parent_value = $this.current_edit_record.id;\n\t\t\t$this.sub_holiday_view_controller.parent_edit_record = $this.current_edit_record;\n\t\t\t$this.sub_holiday_view_controller.initData();\n\t\t\treturn;\n\t\t}\n\n\t\tGlobal.loadScript( 'views/policy/holiday/HolidayViewController.js', function() {\n\n\t\t\tvar tab_holiday_policy = $this.edit_view_tab.find( '#tab_holidays' );\n\t\t\tvar firstColumn = tab_holiday_policy.find( '.first-column-sub-view' );\n\n\t\t\tGlobal.trackView( 'Sub' + 'Holiday' + 'View' );\n\t\t\tHolidayViewController.loadSubView( firstColumn, beforeLoadView, afterLoadView );\n\n\t\t} );\n\n\t\tfunction beforeLoadView() {\n\n\t\t}\n\n\t\tfunction afterLoadView( subViewController ) {\n\t\t\t$this.sub_holiday_view_controller = subViewController;\n\t\t\t$this.sub_holiday_view_controller.parent_key = 'holiday_policy_id';\n\t\t\t$this.sub_holiday_view_controller.parent_value = $this.current_edit_record.id;\n\t\t\t$this.sub_holiday_view_controller.parent_edit_record = $this.current_edit_record;\n\t\t\t$this.sub_holiday_view_controller.parent_view_controller = $this;\n\t\t\t$this.sub_holiday_view_controller.initData();\n\t\t}\n\t}\n\n\tremoveEditView() {\n\t\tsuper.removeEditView();\n\t\tthis.sub_holiday_view_controller = null;\n\t}\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwyRkFBMkYsQ0FBQzs7QUFFNUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwyRkFBMkYsQ0FBQzs7QUFFNUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwyRkFBMkYsQ0FBQzs7QUFFNUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLFdBQVcsQ0FBQztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSxXQUFXLENBQUM7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSxXQUFXLENBQUM7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLFdBQVcsQ0FBQztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsMkRBQTJEO0FBQzNEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsSUFBSTs7QUFFSjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2ludGVyZmFjZS9odG1sNS92aWV3cy9wb2xpY3kvaG9saWRheV9wb2xpY3kvSG9saWRheVBvbGljeVZpZXdDb250cm9sbGVyLmpzP2Q2OGEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEhvbGlkYXlQb2xpY3lWaWV3Q29udHJvbGxlciBleHRlbmRzIEJhc2VWaWV3Q29udHJvbGxlciB7XG5cdGNvbnN0cnVjdG9yKCBvcHRpb25zID0ge30gKSB7XG5cdFx0Xy5kZWZhdWx0cyggb3B0aW9ucywge1xuXHRcdFx0ZWw6ICcjaG9saWRheV9wb2xpY3lfdmlld19jb250YWluZXInLFxuXG5cdFx0XHR0eXBlX2FycmF5OiBudWxsLFxuXHRcdFx0ZGVmYXVsdF9zY2hlZHVsZV9zdGF0dXNfYXJyYXk6IG51bGwsXG5cdFx0XHRzaGlmdF9vbl9ob2xpZGF5X3R5cGVfYXJyYXk6IG51bGwsXG5cdFx0XHR3b3JrZWRfc2NoZWR1bGVkX2RheXNfYXJyYXk6IG51bGwsXG5cdFx0XHRkYXRlX2FwaTogbnVsbCxcblx0XHRcdHN1Yl9ob2xpZGF5X3ZpZXdfY29udHJvbGxlcjogbnVsbFxuXHRcdH0gKTtcblxuXHRcdHN1cGVyKCBvcHRpb25zICk7XG5cdH1cblxuXHRpbml0KCBvcHRpb25zICkge1xuXHRcdC8vdGhpcy5fc3VwZXIoJ2luaXRpYWxpemUnLCBvcHRpb25zICk7XG5cdFx0dGhpcy5lZGl0X3ZpZXdfdHBsID0gJ0hvbGlkYXlQb2xpY3lFZGl0Vmlldy5odG1sJztcblx0XHR0aGlzLnBlcm1pc3Npb25faWQgPSAnaG9saWRheV9wb2xpY3knO1xuXHRcdHRoaXMudmlld0lkID0gJ0hvbGlkYXlQb2xpY3knO1xuXHRcdHRoaXMuc2NyaXB0X25hbWUgPSAnSG9saWRheVBvbGljeVZpZXcnO1xuXHRcdHRoaXMudGFibGVfbmFtZV9rZXkgPSAnaG9saWRheV9wb2xpY3knO1xuXHRcdHRoaXMuY29udGV4dF9tZW51X25hbWUgPSAkLmkxOG4uXyggJ0hvbGlkYXkgUG9saWN5JyApO1xuXHRcdHRoaXMubmF2aWdhdGlvbl9sYWJlbCA9ICQuaTE4bi5fKCAnSG9saWRheSBQb2xpY3knICk7XG5cdFx0dGhpcy5hcGkgPSBUVEFQSS5BUElIb2xpZGF5UG9saWN5O1xuXHRcdHRoaXMuZGF0ZV9hcGkgPSBUVEFQSS5BUElUVERhdGU7XG5cdFx0dGhpcy5yZW5kZXIoKTtcblx0XHR0aGlzLmJ1aWxkQ29udGV4dE1lbnUoKTtcblxuXHRcdHRoaXMuaW5pdERhdGEoKTtcblx0fVxuXG5cdC8qIGpzaGludCBpZ25vcmU6c3RhcnQgKi9cblx0aW5pdE9wdGlvbnMoKSB7XG5cdFx0dmFyICR0aGlzID0gdGhpcztcblxuXHRcdHZhciBvcHRpb25zID0gW1xuXHRcdFx0eyBvcHRpb25fbmFtZTogJ3R5cGUnLCBhcGk6IHRoaXMuYXBpIH0sXG5cdFx0XHR7IG9wdGlvbl9uYW1lOiAnYXZlcmFnZV90aW1lX2ZyZXF1ZW5jeV90eXBlJywgYXBpOiB0aGlzLmFwaSB9LFxuXHRcdFx0eyBvcHRpb25fbmFtZTogJ2RlZmF1bHRfc2NoZWR1bGVfc3RhdHVzJywgYXBpOiB0aGlzLmFwaSB9LFxuXHRcdFx0eyBvcHRpb25fbmFtZTogJ3NoaWZ0X29uX2hvbGlkYXlfdHlwZScsIGFwaTogdGhpcy5hcGkgfSxcblx0XHRdO1xuXG5cdFx0dGhpcy5pbml0RHJvcERvd25PcHRpb25zKCBvcHRpb25zICk7XG5cblx0XHR0aGlzLmluaXREcm9wRG93bk9wdGlvbiggJ3NjaGVkdWxlZF9kYXknLCAnd29ya2VkX3NjaGVkdWxlZF9kYXlzJywgbnVsbCwgZnVuY3Rpb24oIHJlcyApIHtcblx0XHRcdHJlcyA9IHJlcy5nZXRSZXN1bHQoKTtcblx0XHRcdCR0aGlzLndvcmtlZF9zY2hlZHVsZWRfZGF5c19hcnJheSA9ICQuZXh0ZW5kKCB7fSwgcmVzICk7IC8vXHQgQ29udmVydCBBcnJheSB0byBPYmplY3Rcblx0XHR9ICk7XG5cdH1cblxuXHQvKiBqc2hpbnQgaWdub3JlOmVuZCAqL1xuXHRidWlsZEVkaXRWaWV3VUkoKSB7XG5cblx0XHRzdXBlci5idWlsZEVkaXRWaWV3VUkoKTtcblxuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cblx0XHR2YXIgdGFiX21vZGVsID0ge1xuXHRcdFx0J3RhYl9ob2xpZGF5X3BvbGljeSc6IHsgJ2xhYmVsJzogJC5pMThuLl8oICdIb2xpZGF5IFBvbGljeScgKSB9LFxuXHRcdFx0J3RhYl9lbGlnaWJpbGl0eSc6IHsgJ2xhYmVsJzogJC5pMThuLl8oICdFbGlnaWJpbGl0eScgKSB9LFxuXHRcdFx0J3RhYl9ob2xpZGF5X3RpbWUnOiB7ICdsYWJlbCc6ICQuaTE4bi5fKCAnSG9saWRheSBUaW1lJyApIH0sXG5cdFx0XHQndGFiX2hvbGlkYXlzJzoge1xuXHRcdFx0XHQnbGFiZWwnOiAkLmkxOG4uXyggJ0hvbGlkYXlzJyApLFxuXHRcdFx0XHQnaW5pdF9jYWxsYmFjayc6ICdpbml0U3ViSG9saWRheVZpZXcnLFxuXHRcdFx0XHQnZGlzcGxheV9vbl9tYXNzX2VkaXQnOiBmYWxzZVxuXHRcdFx0fSxcblx0XHRcdCd0YWJfYXVkaXQnOiB0cnVlLFxuXHRcdH07XG5cdFx0dGhpcy5zZXRUYWJNb2RlbCggdGFiX21vZGVsICk7XG5cblx0XHR0aGlzLm5hdmlnYXRpb24uQUNvbWJvQm94KCB7XG5cdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSUhvbGlkYXlQb2xpY3ksXG5cdFx0XHRpZDogdGhpcy5zY3JpcHRfbmFtZSArICdfbmF2aWdhdGlvbicsXG5cdFx0XHRhbGxvd19tdWx0aXBsZV9zZWxlY3Rpb246IGZhbHNlLFxuXHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfaG9saWRheScsXG5cdFx0XHRuYXZpZ2F0aW9uX21vZGU6IHRydWUsXG5cdFx0XHRzaG93X3NlYXJjaF9pbnB1dHM6IHRydWVcblx0XHR9ICk7XG5cblx0XHR0aGlzLnNldE5hdmlnYXRpb24oKTtcblxuXHRcdHZhciB0YWJfaG9saWRheV9wb2xpY3kgPSB0aGlzLmVkaXRfdmlld190YWIuZmluZCggJyN0YWJfaG9saWRheV9wb2xpY3knICk7XG5cblx0XHQvL1RhYiAwIHN0YXJ0XG5cblx0XHR2YXIgdGFiX2hvbGlkYXlfcG9saWN5X2NvbHVtbjEgPSB0YWJfaG9saWRheV9wb2xpY3kuZmluZCggJy5maXJzdC1jb2x1bW4nICk7XG5cblx0XHR0aGlzLmVkaXRfdmlld190YWJzWzBdID0gW107XG5cblx0XHR0aGlzLmVkaXRfdmlld190YWJzWzBdLnB1c2goIHRhYl9ob2xpZGF5X3BvbGljeV9jb2x1bW4xICk7XG5cblx0XHR2YXIgZm9ybV9pdGVtX2lucHV0O1xuXHRcdHZhciB3aWRnZXRDb250YWluZXI7XG5cdFx0dmFyIGxhYmVsO1xuXG5cdFx0Ly9OYW1lXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUX0lOUFVUICk7XG5cblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHRJbnB1dCggeyBmaWVsZDogJ25hbWUnLCB3aWR0aDogJzEwMCUnIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ05hbWUnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2hvbGlkYXlfcG9saWN5X2NvbHVtbjEsICcnICk7XG5cblx0XHRmb3JtX2l0ZW1faW5wdXQucGFyZW50KCkud2lkdGgoICc0NSUnICk7XG5cblx0XHQvLyBEZXNjcmlwdGlvblxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVF9BUkVBICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0QXJlYSggeyBmaWVsZDogJ2Rlc2NyaXB0aW9uJywgd2lkdGg6ICcxMDAlJyB9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdEZXNjcmlwdGlvbicgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfaG9saWRheV9wb2xpY3lfY29sdW1uMSwgJycsIG51bGwsIG51bGwsIHRydWUgKTtcblxuXHRcdGZvcm1faXRlbV9pbnB1dC5wYXJlbnQoKS53aWR0aCggJzQ1JScgKTtcblxuXHRcdC8vIFR5cGVcblxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQ09NQk9fQk9YICk7XG5cblx0XHRmb3JtX2l0ZW1faW5wdXQuVENvbWJvQm94KCB7IGZpZWxkOiAndHlwZV9pZCcsIHNldF9lbXB0eTogZmFsc2UgfSApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5zZXRTb3VyY2VEYXRhKCAkdGhpcy50eXBlX2FycmF5ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdUeXBlJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9ob2xpZGF5X3BvbGljeV9jb2x1bW4xICk7XG5cblx0XHQvLyBEZWZhdWx0IFNjaGVkdWxlcyBTdGF0dXNcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkNPTUJPX0JPWCApO1xuXG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRDb21ib0JveCggeyBmaWVsZDogJ2RlZmF1bHRfc2NoZWR1bGVfc3RhdHVzX2lkJyB9ICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LnNldFNvdXJjZURhdGEoICR0aGlzLmRlZmF1bHRfc2NoZWR1bGVfc3RhdHVzX2FycmF5ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdEZWZhdWx0IFNjaGVkdWxlcyBTdGF0dXMnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2hvbGlkYXlfcG9saWN5X2NvbHVtbjEgKTtcblxuXHRcdC8vIFJlY3VycmluZyBIb2xpZGF5c1xuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1ggKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuQUNvbWJvQm94KCB7XG5cdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSVJlY3VycmluZ0hvbGlkYXksXG5cdFx0XHRhbGxvd19tdWx0aXBsZV9zZWxlY3Rpb246IHRydWUsXG5cdFx0XHRsYXlvdXRfbmFtZTogJ2dsb2JhbF9yZWN1cnJpbmdfaG9saWRheScsXG5cdFx0XHRzaG93X3NlYXJjaF9pbnB1dHM6IHRydWUsXG5cdFx0XHRzZXRfZW1wdHk6IHRydWUsXG5cdFx0XHRmaWVsZDogJ3JlY3VycmluZ19ob2xpZGF5X2lkJ1xuXHRcdH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ1JlY3VycmluZyBIb2xpZGF5cycgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfaG9saWRheV9wb2xpY3lfY29sdW1uMSwgJycgKTtcblxuXHRcdC8vIERpc3BsYXkgRGF5c1xuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVF9JTlBVVCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dElucHV0KCB7IGZpZWxkOiAnaG9saWRheV9kaXNwbGF5X2RheXMnLCB3aWR0aDogNTAgfSApO1xuXG5cdFx0d2lkZ2V0Q29udGFpbmVyID0gJCggJzxkaXYgY2xhc3M9XFwnd2lkZ2V0LWgtYm94XFwnPjwvZGl2PicgKTtcblx0XHRsYWJlbCA9ICQoICc8c3BhbiBjbGFzcz1cXCd3aWRnZXQtcmlnaHQtbGFiZWxcXCc+ICcgKyAkLmkxOG4uXyggJyhEYXlzIGluIEFkdmFuY2UpJyApICsgJzwvc3Bhbj4nICk7XG5cblx0XHR3aWRnZXRDb250YWluZXIuYXBwZW5kKCBmb3JtX2l0ZW1faW5wdXQgKTtcblx0XHR3aWRnZXRDb250YWluZXIuYXBwZW5kKCBsYWJlbCApO1xuXG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdEaXNwbGF5IEhvbGlkYXlzJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9ob2xpZGF5X3BvbGljeV9jb2x1bW4xLCAnJywgd2lkZ2V0Q29udGFpbmVyICk7XG5cblx0XHQvLyB0YWIgMSBzdGFydFxuXHRcdHZhciB0YWJfZWxpZ2liaWxpdHkgPSB0aGlzLmVkaXRfdmlld190YWIuZmluZCggJyN0YWJfZWxpZ2liaWxpdHknICk7XG5cblx0XHR2YXIgdGFiX2VsaWdpYmlsaXR5X2NvbHVtbjEgPSB0YWJfZWxpZ2liaWxpdHkuZmluZCggJy5maXJzdC1jb2x1bW4nICk7XG5cblx0XHR0aGlzLmVkaXRfdmlld190YWJzWzFdID0gW107XG5cblx0XHR0aGlzLmVkaXRfdmlld190YWJzWzFdLnB1c2goIHRhYl9lbGlnaWJpbGl0eV9jb2x1bW4xICk7XG5cblx0XHQvLyBNaW5pbXVtIEVtcGxveWVkIERheXNcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblxuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dElucHV0KCB7IGZpZWxkOiAnbWluaW11bV9lbXBsb3llZF9kYXlzJywgd2lkdGg6IDUwIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ01pbmltdW0gRW1wbG95ZWQgRGF5cycgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfZWxpZ2liaWxpdHlfY29sdW1uMSwgJycgKTtcblxuXHRcdC8vIEVtcGxveWVlIE11c3QgV29yayBhdCBMZWFzdFxuXHRcdHZhciBmb3JtX2l0ZW1fbWluaW11bV93b3JrZWRfZGF5c19pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVF9JTlBVVCApO1xuXHRcdGZvcm1faXRlbV9taW5pbXVtX3dvcmtlZF9kYXlzX2lucHV0LlRUZXh0SW5wdXQoIHsgZmllbGQ6ICdtaW5pbXVtX3dvcmtlZF9kYXlzJywgd2lkdGg6IDMwIH0gKTtcblxuXHRcdHZhciBmb3JtX2l0ZW1fbWluaW11bV93b3JrZWRfcGVyaW9kX2RheXNfaW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblx0XHRmb3JtX2l0ZW1fbWluaW11bV93b3JrZWRfcGVyaW9kX2RheXNfaW5wdXQuVFRleHRJbnB1dCggeyBmaWVsZDogJ21pbmltdW1fd29ya2VkX3BlcmlvZF9kYXlzJywgd2lkdGg6IDMwIH0gKTtcblxuXHRcdHZhciBmb3JtX2l0ZW1fd29ya2VkX3NjaGVkdWxlZF9kYXlzX2NvbWJvYm94ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5DT01CT19CT1ggKTtcblx0XHRmb3JtX2l0ZW1fd29ya2VkX3NjaGVkdWxlZF9kYXlzX2NvbWJvYm94LlRDb21ib0JveCggeyBmaWVsZDogJ3dvcmtlZF9zY2hlZHVsZWRfZGF5cycgfSApO1xuXHRcdGZvcm1faXRlbV93b3JrZWRfc2NoZWR1bGVkX2RheXNfY29tYm9ib3guc2V0U291cmNlRGF0YSggJHRoaXMud29ya2VkX3NjaGVkdWxlZF9kYXlzX2FycmF5ICk7XG5cblx0XHR3aWRnZXRDb250YWluZXIgPSAkKCAnPGRpdiBjbGFzcz1cXCd3aWRnZXQtaC1ib3hcXCc+PC9kaXY+JyApO1xuXG5cdFx0dmFyIGxhYmVsXzEgPSAkKCAnPHNwYW4gY2xhc3M9XFwnd2lkZ2V0LXJpZ2h0LWxhYmVsXFwnPiAnICsgJC5pMThuLl8oICdvZiB0aGUnICkgKyAnIDwvc3Bhbj4nICk7XG5cdFx0dmFyIGxhYmVsXzIgPSAkKCAnPHNwYW4gY2xhc3M9XFwnd2lkZ2V0LXJpZ2h0LWxhYmVsXFwnPiAnICsgJC5pMThuLl8oICdwcmlvciB0byB0aGUgaG9saWRheScgKSArICcgPC9zcGFuPicgKTtcblx0XHR2YXIgbGFiZWxfMyA9ICQoICc8c3BhbiBjbGFzcz1cXCd3aWRnZXQtcmlnaHQtbGFiZWxcXCc+ICcgKyAnICcgKyAnIDwvc3Bhbj4nICk7XG5cblx0XHR3aWRnZXRDb250YWluZXIuYXBwZW5kKCBmb3JtX2l0ZW1fbWluaW11bV93b3JrZWRfZGF5c19pbnB1dCApO1xuXHRcdHdpZGdldENvbnRhaW5lci5hcHBlbmQoIGxhYmVsXzEgKTtcblx0XHR3aWRnZXRDb250YWluZXIuYXBwZW5kKCBmb3JtX2l0ZW1fbWluaW11bV93b3JrZWRfcGVyaW9kX2RheXNfaW5wdXQgKTtcblx0XHR3aWRnZXRDb250YWluZXIuYXBwZW5kKCBsYWJlbF8zICk7XG5cdFx0d2lkZ2V0Q29udGFpbmVyLmFwcGVuZCggZm9ybV9pdGVtX3dvcmtlZF9zY2hlZHVsZWRfZGF5c19jb21ib2JveCApO1xuXHRcdHdpZGdldENvbnRhaW5lci5hcHBlbmQoIGxhYmVsXzIgKTtcblxuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnRW1wbG95ZWUgTXVzdCBXb3JrIGF0IExlYXN0JyApLCBbZm9ybV9pdGVtX21pbmltdW1fd29ya2VkX2RheXNfaW5wdXQsIGZvcm1faXRlbV9taW5pbXVtX3dvcmtlZF9wZXJpb2RfZGF5c19pbnB1dCwgZm9ybV9pdGVtX3dvcmtlZF9zY2hlZHVsZWRfZGF5c19jb21ib2JveF0sIHRhYl9lbGlnaWJpbGl0eV9jb2x1bW4xLCAnJywgd2lkZ2V0Q29udGFpbmVyLCB0cnVlICk7XG5cblx0XHQvLyBEZWZhdWx0IFNjaGVkdWxlcyBTdGF0dXNcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkNPTUJPX0JPWCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UQ29tYm9Cb3goIHsgZmllbGQ6ICdzaGlmdF9vbl9ob2xpZGF5X3R5cGVfaWQnIH0gKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuc2V0U291cmNlRGF0YSggJHRoaXMuc2hpZnRfb25faG9saWRheV90eXBlX2FycmF5ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdPbiB0aGUgSG9saWRheSwgdGhlIEVtcGxveWVlJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9lbGlnaWJpbGl0eV9jb2x1bW4xLCAnJywgbnVsbCwgdHJ1ZSApO1xuXG5cdFx0Ly8gRW1wbG95ZWUgTXVzdCBXb3JrIGF0IExlYXN0XG5cdFx0Zm9ybV9pdGVtX21pbmltdW1fd29ya2VkX2RheXNfaW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblx0XHRmb3JtX2l0ZW1fbWluaW11bV93b3JrZWRfZGF5c19pbnB1dC5UVGV4dElucHV0KCB7IGZpZWxkOiAnbWluaW11bV93b3JrZWRfYWZ0ZXJfZGF5cycsIHdpZHRoOiAzMCB9ICk7XG5cblx0XHRmb3JtX2l0ZW1fbWluaW11bV93b3JrZWRfcGVyaW9kX2RheXNfaW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblx0XHRmb3JtX2l0ZW1fbWluaW11bV93b3JrZWRfcGVyaW9kX2RheXNfaW5wdXQuVFRleHRJbnB1dCgge1xuXHRcdFx0ZmllbGQ6ICdtaW5pbXVtX3dvcmtlZF9hZnRlcl9wZXJpb2RfZGF5cycsXG5cdFx0XHR3aWR0aDogMzBcblx0XHR9ICk7XG5cblx0XHRmb3JtX2l0ZW1fd29ya2VkX3NjaGVkdWxlZF9kYXlzX2NvbWJvYm94ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5DT01CT19CT1ggKTtcblx0XHRmb3JtX2l0ZW1fd29ya2VkX3NjaGVkdWxlZF9kYXlzX2NvbWJvYm94LlRDb21ib0JveCggeyBmaWVsZDogJ3dvcmtlZF9hZnRlcl9zY2hlZHVsZWRfZGF5cycgfSApO1xuXHRcdGZvcm1faXRlbV93b3JrZWRfc2NoZWR1bGVkX2RheXNfY29tYm9ib3guc2V0U291cmNlRGF0YSggJHRoaXMud29ya2VkX3NjaGVkdWxlZF9kYXlzX2FycmF5ICk7XG5cblx0XHR3aWRnZXRDb250YWluZXIgPSAkKCAnPGRpdiBjbGFzcz1cXCd3aWRnZXQtaC1ib3hcXCc+PC9kaXY+JyApO1xuXG5cdFx0bGFiZWxfMSA9ICQoICc8c3BhbiBjbGFzcz1cXCd3aWRnZXQtcmlnaHQtbGFiZWxcXCc+ICcgKyAkLmkxOG4uXyggJ29mIHRoZScgKSArICcgPC9zcGFuPicgKTtcblx0XHRsYWJlbF8yID0gJCggJzxzcGFuIGNsYXNzPVxcJ3dpZGdldC1yaWdodC1sYWJlbFxcJz4gJyArICQuaTE4bi5fKCAnZm9sbG93aW5nIHRoZSBob2xpZGF5JyApICsgJyA8L3NwYW4+JyApO1xuXHRcdGxhYmVsXzMgPSAkKCAnPHNwYW4gY2xhc3M9XFwnd2lkZ2V0LXJpZ2h0LWxhYmVsXFwnPiAnICsgJyAnICsgJyA8L3NwYW4+JyApO1xuXG5cdFx0d2lkZ2V0Q29udGFpbmVyLmFwcGVuZCggZm9ybV9pdGVtX21pbmltdW1fd29ya2VkX2RheXNfaW5wdXQgKTtcblx0XHR3aWRnZXRDb250YWluZXIuYXBwZW5kKCBsYWJlbF8xICk7XG5cdFx0d2lkZ2V0Q29udGFpbmVyLmFwcGVuZCggZm9ybV9pdGVtX21pbmltdW1fd29ya2VkX3BlcmlvZF9kYXlzX2lucHV0ICk7XG5cdFx0d2lkZ2V0Q29udGFpbmVyLmFwcGVuZCggbGFiZWxfMyApO1xuXHRcdHdpZGdldENvbnRhaW5lci5hcHBlbmQoIGZvcm1faXRlbV93b3JrZWRfc2NoZWR1bGVkX2RheXNfY29tYm9ib3ggKTtcblx0XHR3aWRnZXRDb250YWluZXIuYXBwZW5kKCBsYWJlbF8yICk7XG5cblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0VtcGxveWVlIE11c3QgV29yayBhdCBMZWFzdCcgKSwgW2Zvcm1faXRlbV9taW5pbXVtX3dvcmtlZF9kYXlzX2lucHV0LCBmb3JtX2l0ZW1fbWluaW11bV93b3JrZWRfcGVyaW9kX2RheXNfaW5wdXQsIGZvcm1faXRlbV93b3JrZWRfc2NoZWR1bGVkX2RheXNfY29tYm9ib3hdLCB0YWJfZWxpZ2liaWxpdHlfY29sdW1uMSwgJycsIHdpZGdldENvbnRhaW5lciwgdHJ1ZSApO1xuXG5cdFx0Ly8gRWxpZ2libGUgQ29udHJpYnV0aW5nIFNoaWZ0XG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5BV0VTT01FX0JPWCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5BQ29tYm9Cb3goIHtcblx0XHRcdGFwaV9jbGFzczogVFRBUEkuQVBJQ29udHJpYnV0aW5nU2hpZnRQb2xpY3ksXG5cdFx0XHRhbGxvd19tdWx0aXBsZV9zZWxlY3Rpb246IGZhbHNlLFxuXHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfY29udHJpYnV0aW5nX3NoaWZ0X3BvbGljeScsXG5cdFx0XHRzaG93X3NlYXJjaF9pbnB1dHM6IHRydWUsXG5cdFx0XHRzZXRfZW1wdHk6IHRydWUsXG5cdFx0XHRmaWVsZDogJ2VsaWdpYmxlX2NvbnRyaWJ1dGluZ19zaGlmdF9wb2xpY3lfaWQnXG5cdFx0fSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnQ29udHJpYnV0aW5nIFNoaWZ0IFBvbGljeScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfZWxpZ2liaWxpdHlfY29sdW1uMSwgJycsIG51bGwsIHRydWUgKTtcblxuXHRcdC8vIHRhYiAyIHN0YXJ0XG5cdFx0dmFyIHRhYl9ob2xpZGF5X3RpbWUgPSB0aGlzLmVkaXRfdmlld190YWIuZmluZCggJyN0YWJfaG9saWRheV90aW1lJyApO1xuXG5cdFx0dmFyIHRhYl9ob2xpZGF5X3RpbWVfY29sdW1uMSA9IHRhYl9ob2xpZGF5X3RpbWUuZmluZCggJy5maXJzdC1jb2x1bW4nICk7XG5cblx0XHR0aGlzLmVkaXRfdmlld190YWJzWzJdID0gW107XG5cblx0XHR0aGlzLmVkaXRfdmlld190YWJzWzJdLnB1c2goIHRhYl9ob2xpZGF5X3RpbWVfY29sdW1uMSApO1xuXG5cdFx0Ly8gVG90YWwgVGltZSBvdmVyXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUX0lOUFVUICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0SW5wdXQoIHsgZmllbGQ6ICdhdmVyYWdlX3RpbWVfZGF5cycsIHdpZHRoOiAzMCB9ICk7XG5cblx0XHR2YXIgZm9ybV9pdGVtX2F2ZXJhZ2VfdGltZV9mcmVxdWVuY3lfY29tYm9ib3ggPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkNPTUJPX0JPWCApO1xuXHRcdGZvcm1faXRlbV9hdmVyYWdlX3RpbWVfZnJlcXVlbmN5X2NvbWJvYm94LlRDb21ib0JveCggeyBmaWVsZDogJ2F2ZXJhZ2VfdGltZV9mcmVxdWVuY3lfdHlwZV9pZCcgfSApO1xuXHRcdGZvcm1faXRlbV9hdmVyYWdlX3RpbWVfZnJlcXVlbmN5X2NvbWJvYm94LnNldFNvdXJjZURhdGEoICR0aGlzLmF2ZXJhZ2VfdGltZV9mcmVxdWVuY3lfdHlwZV9hcnJheSApO1xuXG5cdFx0d2lkZ2V0Q29udGFpbmVyID0gJCggJzxkaXYgY2xhc3M9XFwnd2lkZ2V0LWgtYm94XFwnPjwvZGl2PicgKTtcblxuXHRcdHdpZGdldENvbnRhaW5lci5hcHBlbmQoIGZvcm1faXRlbV9pbnB1dCApO1xuXHRcdHdpZGdldENvbnRhaW5lci5hcHBlbmQoIGZvcm1faXRlbV9hdmVyYWdlX3RpbWVfZnJlcXVlbmN5X2NvbWJvYm94ICk7XG5cblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ1RvdGFsIFRpbWUgT3ZlcicgKSwgW2Zvcm1faXRlbV9pbnB1dCwgZm9ybV9pdGVtX2F2ZXJhZ2VfdGltZV9mcmVxdWVuY3lfY29tYm9ib3hdLCB0YWJfaG9saWRheV90aW1lX2NvbHVtbjEsICcnLCB3aWRnZXRDb250YWluZXIsIHRydWUgKTtcblxuXHRcdC8vIEF2ZXJhZ2UgVGltZSBvdmVyXG5cdFx0dmFyIGZvcm1faXRlbV9hdmVyYWdlX3RpbWVfd29ya2VkX2RheXNfY2hlY2tib3ggPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkNIRUNLQk9YICk7XG5cdFx0Zm9ybV9pdGVtX2F2ZXJhZ2VfdGltZV93b3JrZWRfZGF5c19jaGVja2JveC5UQ2hlY2tib3goIHsgZmllbGQ6ICdhdmVyYWdlX3RpbWVfd29ya2VkX2RheXMnIH0gKTtcblxuXHRcdHZhciBmb3JtX2l0ZW1fYXZlcmFnZV9kYXlzX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUX0lOUFVUICk7XG5cdFx0Zm9ybV9pdGVtX2F2ZXJhZ2VfZGF5c19pbnB1dC5UVGV4dElucHV0KCB7IGZpZWxkOiAnYXZlcmFnZV9kYXlzJywgd2lkdGg6IDMwIH0gKTtcblxuXHRcdHdpZGdldENvbnRhaW5lciA9ICQoICc8ZGl2IGNsYXNzPVxcJ3dpZGdldC1oLWJveCBcXCc+PC9kaXY+JyApO1xuXG5cdFx0bGFiZWxfMSA9ICQoICc8c3BhbiBjbGFzcz1cXCd3aWRnZXQtcmlnaHQtbGFiZWxcXCc+ICcgKyAkLmkxOG4uXyggJ1dvcmtlZCBEYXlzIE9ubHknICkgKyAnIDwvc3Bhbj4nICk7XG5cdFx0bGFiZWxfMiA9ICQoICc8c3BhbiBjbGFzcz1cXCd3aWRnZXQtcmlnaHQtbGFiZWxcXCc+ICcgKyAkLmkxOG4uXyggJ29yJyApICsgJyA8L3NwYW4+JyApO1xuXHRcdGxhYmVsXzMgPSAkKCAnPHNwYW4gY2xhc3M9XFwnd2lkZ2V0LXJpZ2h0LWxhYmVsXFwnPiAnICsgJC5pMThuLl8oICdkYXlzJyApICsgJyA8L3NwYW4+JyApO1xuXG5cdFx0d2lkZ2V0Q29udGFpbmVyLmFwcGVuZCggbGFiZWxfMSApO1xuXHRcdHdpZGdldENvbnRhaW5lci5hcHBlbmQoIGZvcm1faXRlbV9hdmVyYWdlX3RpbWVfd29ya2VkX2RheXNfY2hlY2tib3ggKTtcblx0XHR3aWRnZXRDb250YWluZXIuYXBwZW5kKCBsYWJlbF8yICk7XG5cdFx0d2lkZ2V0Q29udGFpbmVyLmFwcGVuZCggZm9ybV9pdGVtX2F2ZXJhZ2VfZGF5c19pbnB1dCApO1xuXHRcdHdpZGdldENvbnRhaW5lci5hcHBlbmQoIGxhYmVsXzMgKTtcblxuXHRcdHRoaXMuYXZlcmFnZV9kYXlzX3dpZGdldHMgPSBbbGFiZWxfMiwgZm9ybV9pdGVtX2F2ZXJhZ2VfZGF5c19pbnB1dCwgbGFiZWxfM107XG5cblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0F2ZXJhZ2UgVGltZSBPdmVyJyApLCBbZm9ybV9pdGVtX2F2ZXJhZ2VfdGltZV93b3JrZWRfZGF5c19jaGVja2JveCwgZm9ybV9pdGVtX2F2ZXJhZ2VfZGF5c19pbnB1dF0sIHRhYl9ob2xpZGF5X3RpbWVfY29sdW1uMSwgJycsIHdpZGdldENvbnRhaW5lciwgdHJ1ZSApO1xuXG5cdFx0Ly8gQ29udHJpYnV0aW5nIFNoaWZ0XG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5BV0VTT01FX0JPWCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5BQ29tYm9Cb3goIHtcblx0XHRcdGFwaV9jbGFzczogVFRBUEkuQVBJQ29udHJpYnV0aW5nU2hpZnRQb2xpY3ksXG5cdFx0XHRhbGxvd19tdWx0aXBsZV9zZWxlY3Rpb246IGZhbHNlLFxuXHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfY29udHJpYnV0aW5nX3NoaWZ0X3BvbGljeScsXG5cdFx0XHRzaG93X3NlYXJjaF9pbnB1dHM6IHRydWUsXG5cdFx0XHRzZXRfZW1wdHk6IHRydWUsXG5cdFx0XHRmaWVsZDogJ2NvbnRyaWJ1dGluZ19zaGlmdF9wb2xpY3lfaWQnXG5cdFx0fSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnQ29udHJpYnV0aW5nIFNoaWZ0IFBvbGljeScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfaG9saWRheV90aW1lX2NvbHVtbjEsICcnLCBudWxsLCB0cnVlICk7XG5cblx0XHQvLyBIb2xpZGF5IFRpbWVcblx0XHQvLyBNaW5pbXVtIFRpbWVcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHRJbnB1dCggeyBmaWVsZDogJ21pbmltdW1fdGltZScsIG1vZGU6ICd0aW1lX3VuaXQnLCBuZWVkX3BhcnNlcl9zZWM6IHRydWUgfSApO1xuXG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdIb2xpZGF5IFRpbWUnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2hvbGlkYXlfdGltZV9jb2x1bW4xLCAnJywgbnVsbCwgdHJ1ZSApO1xuXG5cdFx0Ly8gTWF4aW11bSBUaW1lXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUX0lOUFVUICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0SW5wdXQoIHsgZmllbGQ6ICdtYXhpbXVtX3RpbWUnLCBtb2RlOiAndGltZV91bml0JywgbmVlZF9wYXJzZXJfc2VjOiB0cnVlIH0gKTtcblxuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnTWF4aW11bSBUaW1lJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9ob2xpZGF5X3RpbWVfY29sdW1uMSwgJycsIG51bGwsIHRydWUgKTtcblxuXHRcdC8vIEFsd2F5cyBBcHBseSBPdmVyIFRpbWUvUHJlbWl1bSBQb2xpY2llc1xuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQ0hFQ0tCT1ggKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuVENoZWNrYm94KCB7IGZpZWxkOiAnZm9yY2Vfb3Zlcl90aW1lX3BvbGljeScgfSApO1xuXG5cdFx0d2lkZ2V0Q29udGFpbmVyID0gJCggJzxkaXYgY2xhc3M9XFwnd2lkZ2V0LWgtYm94XFwnPjwvZGl2PicgKTtcblx0XHRsYWJlbCA9ICQoICc8c3BhbiBjbGFzcz1cXCd3aWRnZXQtcmlnaHQtbGFiZWwgXFwnPiAoJyArICQuaTE4bi5fKCAnRXZlbiBpZiB0aGV5IGFyZSBub3QgZWxpZ2libGUgZm9yIGhvbGlkYXkgcGF5JyApICsgJyk8L3NwYW4+JyApO1xuXG5cdFx0d2lkZ2V0Q29udGFpbmVyLmFwcGVuZCggZm9ybV9pdGVtX2lucHV0ICk7XG5cdFx0d2lkZ2V0Q29udGFpbmVyLmFwcGVuZCggbGFiZWwgKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0Fsd2F5cyBBcHBseSBPdmVyIFRpbWUvUHJlbWl1bSBQb2xpY2llcycgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfaG9saWRheV90aW1lX2NvbHVtbjEsICcnLCB3aWRnZXRDb250YWluZXIsIHRydWUgKTtcblxuXHRcdC8vIFJvdW5kaW5nIFBvbGljeVxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1ggKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuQUNvbWJvQm94KCB7XG5cdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSVJvdW5kSW50ZXJ2YWxQb2xpY3ksXG5cdFx0XHRhbGxvd19tdWx0aXBsZV9zZWxlY3Rpb246IGZhbHNlLFxuXHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfcm91bmRfaW50ZXJ2YWwnLFxuXHRcdFx0c2hvd19zZWFyY2hfaW5wdXRzOiB0cnVlLFxuXHRcdFx0c2V0X2VtcHR5OiB0cnVlLFxuXHRcdFx0ZmllbGQ6ICdyb3VuZF9pbnRlcnZhbF9wb2xpY3lfaWQnXG5cdFx0fSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnUm91bmRpbmcgUG9saWN5JyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9ob2xpZGF5X3RpbWVfY29sdW1uMSwgJycsIG51bGwsIHRydWUgKTtcblxuXHRcdC8vIEFic2VuY2UgUG9saWN5XG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5BV0VTT01FX0JPWCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5BQ29tYm9Cb3goIHtcblx0XHRcdGFwaV9jbGFzczogVFRBUEkuQVBJQWJzZW5jZVBvbGljeSxcblx0XHRcdGFsbG93X211bHRpcGxlX3NlbGVjdGlvbjogZmFsc2UsXG5cdFx0XHRsYXlvdXRfbmFtZTogJ2dsb2JhbF9hYnNlbmNlcycsXG5cdFx0XHRzaG93X3NlYXJjaF9pbnB1dHM6IHRydWUsXG5cdFx0XHRzZXRfZW1wdHk6IHRydWUsXG5cdFx0XHRmaWVsZDogJ2Fic2VuY2VfcG9saWN5X2lkJ1xuXHRcdH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0Fic2VuY2UgUG9saWN5JyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9ob2xpZGF5X3RpbWVfY29sdW1uMSwgJycgKTtcblx0fVxuXG5cdG9uRm9ybUl0ZW1DaGFuZ2UoIHRhcmdldCwgZG9Ob3RWYWxpZGF0ZSApIHtcblx0XHR0aGlzLnNldElzQ2hhbmdlZCggdGFyZ2V0ICk7XG5cdFx0dGhpcy5zZXRNYXNzRWRpdGluZ0ZpZWxkc1doZW5Gb3JtQ2hhbmdlKCB0YXJnZXQgKTtcblxuXHRcdHZhciBrZXkgPSB0YXJnZXQuZ2V0RmllbGQoKTtcblx0XHR2YXIgY192YWx1ZSA9IHRhcmdldC5nZXRWYWx1ZSgpO1xuXHRcdHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFtrZXldID0gY192YWx1ZTtcblx0XHRzd2l0Y2ggKCBrZXkgKSB7XG5cdFx0XHRjYXNlICd0eXBlX2lkJzpcblx0XHRcdFx0dGhpcy5vblR5cGVDaGFuZ2UoKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdhdmVyYWdlX3RpbWVfd29ya2VkX2RheXMnOlxuXHRcdFx0XHR0aGlzLm9uV29ya2VkRGF5c0NoYW5nZSgpO1xuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cblx0XHRpZiAoICFkb05vdFZhbGlkYXRlICkge1xuXHRcdFx0dGhpcy52YWxpZGF0ZSgpO1xuXHRcdH1cblx0fVxuXG5cdHNldEVkaXRWaWV3RGF0YURvbmUoKSB7XG5cdFx0c3VwZXIuc2V0RWRpdFZpZXdEYXRhRG9uZSgpO1xuXHRcdHRoaXMub25UeXBlQ2hhbmdlKCk7XG5cdFx0dGhpcy5vbldvcmtlZERheXNDaGFuZ2UoKTtcblx0fVxuXG5cdG9uV29ya2VkRGF5c0NoYW5nZSgpIHtcblx0XHRpZiAoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZC5hdmVyYWdlX3RpbWVfd29ya2VkX2RheXMgPT09IHRydWUgKSB7XG5cdFx0XHR0aGlzLmF2ZXJhZ2VfZGF5c193aWRnZXRzWzBdLmhpZGUoKTtcblx0XHRcdHRoaXMuYXZlcmFnZV9kYXlzX3dpZGdldHNbMV0uaGlkZSgpO1xuXHRcdFx0dGhpcy5hdmVyYWdlX2RheXNfd2lkZ2V0c1syXS5oaWRlKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuYXZlcmFnZV9kYXlzX3dpZGdldHNbMF0uc2hvdygpO1xuXHRcdFx0dGhpcy5hdmVyYWdlX2RheXNfd2lkZ2V0c1sxXS5zaG93KCk7XG5cdFx0XHR0aGlzLmF2ZXJhZ2VfZGF5c193aWRnZXRzWzJdLnNob3coKTtcblx0XHR9XG5cdH1cblxuXHRvblR5cGVDaGFuZ2UoKSB7XG5cdFx0aWYgKCB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRbJ3R5cGVfaWQnXSA9PSAxMCApIHtcblx0XHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ21pbmltdW1fd29ya2VkX2RheXMnICk7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdzaGlmdF9vbl9ob2xpZGF5X3R5cGVfaWQnICk7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdtaW5pbXVtX3dvcmtlZF9hZnRlcl9kYXlzJyApO1xuXG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdhdmVyYWdlX3RpbWVfZGF5cycgKTtcblx0XHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ2F2ZXJhZ2VfdGltZV93b3JrZWRfZGF5cycgKTtcblx0XHRcdHRoaXMuZWRpdF92aWV3X2Zvcm1faXRlbV9kaWNbJ21pbmltdW1fdGltZSddLmZpbmQoICcuZWRpdC12aWV3LWZvcm0taXRlbS1sYWJlbCcgKS50ZXh0KCAkLmkxOG4uXyggJ0hvbGlkYXkgVGltZScgKSApO1xuXG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdtYXhpbXVtX3RpbWUnICk7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdmb3JjZV9vdmVyX3RpbWVfcG9saWN5JyApO1xuXHRcdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAncm91bmRfaW50ZXJ2YWxfcG9saWN5X2lkJyApO1xuXHRcdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAnZWxpZ2libGVfY29udHJpYnV0aW5nX3NoaWZ0X3BvbGljeV9pZCcgKTtcblx0XHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ2NvbnRyaWJ1dGluZ19zaGlmdF9wb2xpY3lfaWQnICk7XG5cblx0XHR9IGVsc2UgaWYgKCB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRbJ3R5cGVfaWQnXSA9PSAyMCApIHtcblx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ21pbmltdW1fd29ya2VkX2RheXMnICk7XG5cdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICdzaGlmdF9vbl9ob2xpZGF5X3R5cGVfaWQnICk7XG5cdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICdtaW5pbXVtX3dvcmtlZF9hZnRlcl9kYXlzJyApO1xuXG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdhdmVyYWdlX3RpbWVfZGF5cycgKTtcblx0XHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ2F2ZXJhZ2VfdGltZV93b3JrZWRfZGF5cycgKTtcblx0XHRcdHRoaXMuZWRpdF92aWV3X2Zvcm1faXRlbV9kaWNbJ21pbmltdW1fdGltZSddLmZpbmQoICcuZWRpdC12aWV3LWZvcm0taXRlbS1sYWJlbCcgKS50ZXh0KCAkLmkxOG4uXyggJ0hvbGlkYXkgVGltZScgKSApO1xuXG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdtYXhpbXVtX3RpbWUnICk7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdmb3JjZV9vdmVyX3RpbWVfcG9saWN5JyApO1xuXHRcdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAncm91bmRfaW50ZXJ2YWxfcG9saWN5X2lkJyApO1xuXHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAnZWxpZ2libGVfY29udHJpYnV0aW5nX3NoaWZ0X3BvbGljeV9pZCcgKTtcblx0XHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ2NvbnRyaWJ1dGluZ19zaGlmdF9wb2xpY3lfaWQnICk7XG5cblx0XHR9IGVsc2UgaWYgKCB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRbJ3R5cGVfaWQnXSA9PSAzMCApIHtcblx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ21pbmltdW1fd29ya2VkX2RheXMnICk7XG5cdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICdzaGlmdF9vbl9ob2xpZGF5X3R5cGVfaWQnICk7XG5cdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICdtaW5pbXVtX3dvcmtlZF9hZnRlcl9kYXlzJyApO1xuXG5cdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICdhdmVyYWdlX3RpbWVfZGF5cycgKTtcblx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ2F2ZXJhZ2VfdGltZV93b3JrZWRfZGF5cycgKTtcblx0XHRcdHRoaXMuZWRpdF92aWV3X2Zvcm1faXRlbV9kaWNbJ21pbmltdW1fdGltZSddLmZpbmQoICcuZWRpdC12aWV3LWZvcm0taXRlbS1sYWJlbCcgKS50ZXh0KCAkLmkxOG4uXyggJ01pbmltdW0gVGltZScgKSApO1xuXG5cdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICdtYXhpbXVtX3RpbWUnICk7XG5cdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICdmb3JjZV9vdmVyX3RpbWVfcG9saWN5JyApO1xuXHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAncm91bmRfaW50ZXJ2YWxfcG9saWN5X2lkJyApO1xuXHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAnZWxpZ2libGVfY29udHJpYnV0aW5nX3NoaWZ0X3BvbGljeV9pZCcgKTtcblx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ2NvbnRyaWJ1dGluZ19zaGlmdF9wb2xpY3lfaWQnICk7XG5cdFx0fVxuXG5cdFx0dGhpcy5lZGl0RmllbGRSZXNpemUoKTtcblx0fVxuXG5cdGJ1aWxkU2VhcmNoRmllbGRzKCkge1xuXG5cdFx0c3VwZXIuYnVpbGRTZWFyY2hGaWVsZHMoKTtcblx0XHR0aGlzLnNlYXJjaF9maWVsZHMgPSBbXG5cblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdOYW1lJyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDEsXG5cdFx0XHRcdGZpZWxkOiAnbmFtZScsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IGZhbHNlLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVRcblx0XHRcdH0gKSxcblxuXHRcdFx0bmV3IFNlYXJjaEZpZWxkKCB7XG5cdFx0XHRcdGxhYmVsOiAkLmkxOG4uXyggJ1R5cGUnICksXG5cdFx0XHRcdGluX2NvbHVtbjogMSxcblx0XHRcdFx0ZmllbGQ6ICd0eXBlX2lkJyxcblx0XHRcdFx0bXVsdGlwbGU6IHRydWUsXG5cdFx0XHRcdGJhc2ljX3NlYXJjaDogdHJ1ZSxcblx0XHRcdFx0YWR2X3NlYXJjaDogZmFsc2UsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX29wdGlvbl9jb2x1bW4nLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9ICksXG5cblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdDcmVhdGVkIEJ5JyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDIsXG5cdFx0XHRcdGZpZWxkOiAnY3JlYXRlZF9ieScsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX3VzZXInLFxuXHRcdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSVVzZXIsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IGZhbHNlLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9ICksXG5cblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdVcGRhdGVkIEJ5JyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDIsXG5cdFx0XHRcdGZpZWxkOiAndXBkYXRlZF9ieScsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX3VzZXInLFxuXHRcdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSVVzZXIsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IGZhbHNlLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9IClcblx0XHRdO1xuXHR9XG5cblx0aW5pdFN1YkhvbGlkYXlWaWV3KCkge1xuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cblx0XHRpZiAoICF0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmQuaWQgKSB7XG5cdFx0XHRUVFByb21pc2UucmVzb2x2ZSggJ0Jhc2VWaWV3Q29udHJvbGxlcicsICdvblRhYlNob3cnICk7IC8vU2luY2Ugc2VhcmNoKCkgaXNuJ3QgY2FsbGVkIGluIHRoaXMgY2FzZSwgYW5kIHdlIGp1c3QgZGlzcGxheSB0aGUgXCJQbGVhc2UgU2F2ZSBUaGlzIFJlY29yZCAuLi5cIiBtZXNzYWdlLCByZXNvbHZlIHRoZSBwcm9taXNlLlxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICggdGhpcy5zdWJfaG9saWRheV92aWV3X2NvbnRyb2xsZXIgKSB7XG5cdFx0XHR0aGlzLnN1Yl9ob2xpZGF5X3ZpZXdfY29udHJvbGxlci5idWlsZENvbnRleHRNZW51KCB0cnVlICk7XG5cdFx0XHR0aGlzLnN1Yl9ob2xpZGF5X3ZpZXdfY29udHJvbGxlci5zZXREZWZhdWx0TWVudSgpO1xuXHRcdFx0JHRoaXMuc3ViX2hvbGlkYXlfdmlld19jb250cm9sbGVyLnBhcmVudF92YWx1ZSA9ICR0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmQuaWQ7XG5cdFx0XHQkdGhpcy5zdWJfaG9saWRheV92aWV3X2NvbnRyb2xsZXIucGFyZW50X2VkaXRfcmVjb3JkID0gJHRoaXMuY3VycmVudF9lZGl0X3JlY29yZDtcblx0XHRcdCR0aGlzLnN1Yl9ob2xpZGF5X3ZpZXdfY29udHJvbGxlci5pbml0RGF0YSgpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdEdsb2JhbC5sb2FkU2NyaXB0KCAndmlld3MvcG9saWN5L2hvbGlkYXkvSG9saWRheVZpZXdDb250cm9sbGVyLmpzJywgZnVuY3Rpb24oKSB7XG5cblx0XHRcdHZhciB0YWJfaG9saWRheV9wb2xpY3kgPSAkdGhpcy5lZGl0X3ZpZXdfdGFiLmZpbmQoICcjdGFiX2hvbGlkYXlzJyApO1xuXHRcdFx0dmFyIGZpcnN0Q29sdW1uID0gdGFiX2hvbGlkYXlfcG9saWN5LmZpbmQoICcuZmlyc3QtY29sdW1uLXN1Yi12aWV3JyApO1xuXG5cdFx0XHRHbG9iYWwudHJhY2tWaWV3KCAnU3ViJyArICdIb2xpZGF5JyArICdWaWV3JyApO1xuXHRcdFx0SG9saWRheVZpZXdDb250cm9sbGVyLmxvYWRTdWJWaWV3KCBmaXJzdENvbHVtbiwgYmVmb3JlTG9hZFZpZXcsIGFmdGVyTG9hZFZpZXcgKTtcblxuXHRcdH0gKTtcblxuXHRcdGZ1bmN0aW9uIGJlZm9yZUxvYWRWaWV3KCkge1xuXG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gYWZ0ZXJMb2FkVmlldyggc3ViVmlld0NvbnRyb2xsZXIgKSB7XG5cdFx0XHQkdGhpcy5zdWJfaG9saWRheV92aWV3X2NvbnRyb2xsZXIgPSBzdWJWaWV3Q29udHJvbGxlcjtcblx0XHRcdCR0aGlzLnN1Yl9ob2xpZGF5X3ZpZXdfY29udHJvbGxlci5wYXJlbnRfa2V5ID0gJ2hvbGlkYXlfcG9saWN5X2lkJztcblx0XHRcdCR0aGlzLnN1Yl9ob2xpZGF5X3ZpZXdfY29udHJvbGxlci5wYXJlbnRfdmFsdWUgPSAkdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkLmlkO1xuXHRcdFx0JHRoaXMuc3ViX2hvbGlkYXlfdmlld19jb250cm9sbGVyLnBhcmVudF9lZGl0X3JlY29yZCA9ICR0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmQ7XG5cdFx0XHQkdGhpcy5zdWJfaG9saWRheV92aWV3X2NvbnRyb2xsZXIucGFyZW50X3ZpZXdfY29udHJvbGxlciA9ICR0aGlzO1xuXHRcdFx0JHRoaXMuc3ViX2hvbGlkYXlfdmlld19jb250cm9sbGVyLmluaXREYXRhKCk7XG5cdFx0fVxuXHR9XG5cblx0cmVtb3ZlRWRpdFZpZXcoKSB7XG5cdFx0c3VwZXIucmVtb3ZlRWRpdFZpZXcoKTtcblx0XHR0aGlzLnN1Yl9ob2xpZGF5X3ZpZXdfY29udHJvbGxlciA9IG51bGw7XG5cdH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///935\n")}}]); |