"use strict";(self.webpackChunktimetrex=self.webpackChunktimetrex||[]).push([["policy-meal_policy-MealPolicyViewController"],{7473:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MealPolicyViewController\": () => (/* binding */ MealPolicyViewController)\n/* harmony export */ });\n/* provided dependency */ var _ = __webpack_require__(9050);\n/* provided dependency */ var $ = __webpack_require__(9755);\nclass MealPolicyViewController extends BaseViewController {\n\tconstructor( options = {} ) {\n\t\t_.defaults( options, {\n\t\t\tel: '#meal_policy_view_container',\n\n\t\t\ttype_array: null,\n\t\t\tauto_detect_type_array: null,\n\t\t\tallocation_type_array: null,\n\n\t\t\tdate_api: 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 = 'MealPolicyEditView.html';\n\t\tthis.permission_id = 'meal_policy';\n\t\tthis.viewId = 'MealPolicy';\n\t\tthis.script_name = 'MealPolicyView';\n\t\tthis.table_name_key = 'meal_policy';\n\t\tthis.context_menu_name = $.i18n._( 'Meal Policy' );\n\t\tthis.navigation_label = $.i18n._( 'Meal Policy' );\n\t\tthis.api = TTAPI.APIMealPolicy;\n\t\tthis.date_api = TTAPI.APITTDate;\n\t\tthis.render();\n\t\tthis.buildContextMenu();\n\n\t\tthis.initData();\n\t}\n\n\tinitOptions() {\n\t\tvar options = [\n\t\t\t{ option_name: 'type', api: this.api },\n\t\t\t{ option_name: 'auto_detect_type', api: this.api },\n\t\t\t{ option_name: 'allocation_type', api: this.api },\n\t\t];\n\n\t\tthis.initDropDownOptions( options );\n\t}\n\n\tbuildEditViewUI() {\n\n\t\tsuper.buildEditViewUI();\n\n\t\tvar $this = this;\n\n\t\tvar tab_model = {\n\t\t\t'tab_meal_policy': { 'label': $.i18n._( 'Meal Policy' ) },\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.APIMealPolicy,\n\t\t\tid: this.script_name + '_navigation',\n\t\t\tallow_multiple_selection: false,\n\t\t\tlayout_name: 'global_meal',\n\t\t\tnavigation_mode: true,\n\t\t\tshow_search_inputs: true\n\t\t} );\n\n\t\tthis.setNavigation();\n\n\t\t//Tab 0 start\n\n\t\tvar tab_meal_policy = this.edit_view_tab.find( '#tab_meal_policy' );\n\n\t\tvar tab_meal_policy_column1 = tab_meal_policy.find( '.first-column' );\n\n\t\tthis.edit_view_tabs[0] = [];\n\n\t\tthis.edit_view_tabs[0].push( tab_meal_policy_column1 );\n\n\t\t//Name\n\t\tvar form_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_meal_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_meal_policy_column1, '', null, null, true );\n\n\t\tform_item_input.parent().width( '45%' );\n\n\t\t// Type\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_meal_policy_column1 );\n\n\t\t//Active After\n\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'trigger_time', mode: 'time_unit', need_parser_sec: true } );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Active After' ), form_item_input, tab_meal_policy_column1, '', null );\n\n\t\t// Meal Time\n\t\t// Deduction/Addition Time\n\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'amount', mode: 'time_unit', need_parser_sec: true } );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Deduction/Addition Time' ), form_item_input, tab_meal_policy_column1, '', null, true );\n\n\t\t// Auto-Detect Meals By\n\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\n\t\tform_item_input.TComboBox( { field: 'auto_detect_type_id', set_empty: false } );\n\t\tform_item_input.setSourceData( $this.auto_detect_type_array );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Auto-Detect Meals By' ), form_item_input, tab_meal_policy_column1 );\n\n\t\t// Minimum Punch Time\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'minimum_punch_time', mode: 'time_unit', need_parser_sec: true } );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Minimum Punch Time' ), form_item_input, tab_meal_policy_column1, '', null, true );\n\n\t\t// Maximum Punch Time\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'maximum_punch_time', mode: 'time_unit', need_parser_sec: true } );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Maximum Punch Time' ), form_item_input, tab_meal_policy_column1, '', null, true );\n\n\t\t// Start Window\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'start_window', mode: 'time_unit', need_parser_sec: true } );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Start Window' ), form_item_input, tab_meal_policy_column1, '', null, true );\n\n\t\t// Window Length\n\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'window_length', mode: 'time_unit', need_parser_sec: true } );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Window Length' ), form_item_input, tab_meal_policy_column1, '', null, true );\n\n\t\t// Include Any Punched Time for Meal\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.CHECKBOX );\n\t\tform_item_input.TCheckbox( { field: 'include_lunch_punch_time' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Include Any Punched Time for Meal' ), form_item_input, tab_meal_policy_column1, '', null, true );\n\n\t\t// Allocation Type\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\tform_item_input.TComboBox( { field: 'allocation_type_id', set_empty: false } );\n\t\tform_item_input.setSourceData( $this.allocation_type_array );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Allocation Type' ), form_item_input, tab_meal_policy_column1, '', null, true );\n\n\n\t\t//Pay Code\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\t\tform_item_input.AComboBox( {\n\t\t\tapi_class: TTAPI.APIPayCode,\n\t\t\tallow_multiple_selection: false,\n\t\t\tlayout_name: 'global_pay_code',\n\t\t\tshow_search_inputs: true,\n\t\t\tset_empty: true,\n\t\t\tfield: 'pay_code_id'\n\t\t} );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Pay Code' ), form_item_input, tab_meal_policy_column1 );\n\n\t\t//Pay Formula Policy\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\t\tform_item_input.AComboBox( {\n\t\t\tapi_class: TTAPI.APIPayFormulaPolicy,\n\t\t\tallow_multiple_selection: false,\n\t\t\tlayout_name: 'global_pay_formula_policy',\n\t\t\tshow_search_inputs: true,\n\t\t\tset_empty: true,\n\t\t\tfield: 'pay_formula_policy_id',\n\t\t\tcustom_first_label: $.i18n._( '-- Defined By Pay Code --' ),\n\t\t\tadded_items: [\n\t\t\t\t{ value: TTUUID.zero_id, label: $.i18n._( '-- Defined By Pay Code --' ) }\n\t\t\t]\n\t\t} );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Pay Formula Policy' ), form_item_input, tab_meal_policy_column1 );\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._( 'Pay Code' ),\n\t\t\t\tin_column: 1,\n\t\t\t\tfield: 'pay_code_id',\n\t\t\t\tlayout_name: 'global_pay_code',\n\t\t\t\tapi_class: TTAPI.APIPayCode,\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._( 'Pay Formula Policy' ),\n\t\t\t\tin_column: 1,\n\t\t\t\tfield: 'pay_formula_policy_id',\n\t\t\t\tlayout_name: 'global_pay_formula_policy',\n\t\t\t\tapi_class: TTAPI.APIPayFormulaPolicy,\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._( '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\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\n//\t\tswitch ( key ) {\n//\t\t\tcase 'trigger_time':\n//\t\t\tcase 'amount':\n//\t\t\tcase 'minimum_punch_time':\n//\t\t\tcase 'maximum_punch_time':\n//\t\t\tcase 'window_length':\n//\t\t\tcase 'start_window':\n//\t\t\t\tc_value = this.date_api.parseTimeUnit( target.getValue(), {async: false} ).getResult();\n//\t\t\t\tbreak;\n//\t\t}\n\n\t\tthis.current_edit_record[key] = c_value;\n\n\t\tif ( key === 'type_id' ) {\n\t\t\tthis.onTypeChange();\n\t\t} else if ( key === 'auto_detect_type_id' ) {\n\t\t\tthis.onAutoDetectTypeChange();\n\t\t}\n\n\t\tthis.editFieldResize( 0 );\n\n\t\tif ( !doNotValidate ) {\n\t\t\tthis.validate();\n\t\t}\n\t}\n\n\tsetEditViewDataDone() {\n\t\tsuper.setEditViewDataDone();\n\n\t\tthis.onTypeChange();\n\t\tthis.onAutoDetectTypeChange();\n\n\t\tthis.editFieldResize( 0 );\n\t}\n\n\tonTypeChange() {\n\t\tthis.edit_view_form_item_dic['amount'].find( '.edit-view-form-item-label' ).text( $.i18n._( 'Meal Time' ) ); //Keep consistent field label for all types, also simplifies the documentation.\n\t\tif ( this.current_edit_record['type_id'] == 10 || this.current_edit_record['type_id'] == 15 ) {\n\t\t\tthis.attachElement( 'include_lunch_punch_time' );\n\t\t\tthis.attachElement( 'allocation_type_id' );\n\t\t} else if ( this.current_edit_record['type_id'] == 20 ) {\n\t\t\tthis.detachElement( 'include_lunch_punch_time' );\n\t\t\tthis.detachElement( 'allocation_type_id' );\n\t\t} else {\n\t\t\tthis.attachElement( 'include_lunch_punch_time' );\n\t\t\tthis.attachElement( 'allocation_type_id' );\n\t\t}\n\n\t\tthis.editFieldResize();\n\t}\n\n\tonAutoDetectTypeChange() {\n\t\tif ( this.current_edit_record['auto_detect_type_id'] == 10 ) {\n\t\t\tthis.attachElement( 'start_window' );\n\t\t\tthis.attachElement( 'window_length' );\n\t\t\tthis.detachElement( 'minimum_punch_time' );\n\t\t\tthis.detachElement( 'maximum_punch_time' );\n\t\t} else if ( this.current_edit_record['auto_detect_type_id'] == 20 || this.current_edit_record['auto_detect_type_id'] == 25 ) {\n\t\t\tthis.detachElement( 'start_window' );\n\t\t\tthis.detachElement( 'window_length' );\n\t\t\tthis.attachElement( 'minimum_punch_time' );\n\t\t\tthis.attachElement( 'maximum_punch_time' );\n\t\t}\n\n\t\tthis.editFieldResize();\n\t}\n\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0E7QUFDQSxpRUFBaUUsY0FBYztBQUMvRTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLG9GQUFvRixDQUFDLDBCQUEwQjtBQUMvRztBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vaW50ZXJmYWNlL2h0bWw1L3ZpZXdzL3BvbGljeS9tZWFsX3BvbGljeS9NZWFsUG9saWN5Vmlld0NvbnRyb2xsZXIuanM/NmRmNiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTWVhbFBvbGljeVZpZXdDb250cm9sbGVyIGV4dGVuZHMgQmFzZVZpZXdDb250cm9sbGVyIHtcblx0Y29uc3RydWN0b3IoIG9wdGlvbnMgPSB7fSApIHtcblx0XHRfLmRlZmF1bHRzKCBvcHRpb25zLCB7XG5cdFx0XHRlbDogJyNtZWFsX3BvbGljeV92aWV3X2NvbnRhaW5lcicsXG5cblx0XHRcdHR5cGVfYXJyYXk6IG51bGwsXG5cdFx0XHRhdXRvX2RldGVjdF90eXBlX2FycmF5OiBudWxsLFxuXHRcdFx0YWxsb2NhdGlvbl90eXBlX2FycmF5OiBudWxsLFxuXG5cdFx0XHRkYXRlX2FwaTogbnVsbFxuXHRcdH0gKTtcblxuXHRcdHN1cGVyKCBvcHRpb25zICk7XG5cdH1cblxuXHRpbml0KCBvcHRpb25zICkge1xuXHRcdC8vdGhpcy5fc3VwZXIoJ2luaXRpYWxpemUnLCBvcHRpb25zICk7XG5cdFx0dGhpcy5lZGl0X3ZpZXdfdHBsID0gJ01lYWxQb2xpY3lFZGl0Vmlldy5odG1sJztcblx0XHR0aGlzLnBlcm1pc3Npb25faWQgPSAnbWVhbF9wb2xpY3knO1xuXHRcdHRoaXMudmlld0lkID0gJ01lYWxQb2xpY3knO1xuXHRcdHRoaXMuc2NyaXB0X25hbWUgPSAnTWVhbFBvbGljeVZpZXcnO1xuXHRcdHRoaXMudGFibGVfbmFtZV9rZXkgPSAnbWVhbF9wb2xpY3knO1xuXHRcdHRoaXMuY29udGV4dF9tZW51X25hbWUgPSAkLmkxOG4uXyggJ01lYWwgUG9saWN5JyApO1xuXHRcdHRoaXMubmF2aWdhdGlvbl9sYWJlbCA9ICQuaTE4bi5fKCAnTWVhbCBQb2xpY3knICk7XG5cdFx0dGhpcy5hcGkgPSBUVEFQSS5BUElNZWFsUG9saWN5O1xuXHRcdHRoaXMuZGF0ZV9hcGkgPSBUVEFQSS5BUElUVERhdGU7XG5cdFx0dGhpcy5yZW5kZXIoKTtcblx0XHR0aGlzLmJ1aWxkQ29udGV4dE1lbnUoKTtcblxuXHRcdHRoaXMuaW5pdERhdGEoKTtcblx0fVxuXG5cdGluaXRPcHRpb25zKCkge1xuXHRcdHZhciBvcHRpb25zID0gW1xuXHRcdFx0eyBvcHRpb25fbmFtZTogJ3R5cGUnLCBhcGk6IHRoaXMuYXBpIH0sXG5cdFx0XHR7IG9wdGlvbl9uYW1lOiAnYXV0b19kZXRlY3RfdHlwZScsIGFwaTogdGhpcy5hcGkgfSxcblx0XHRcdHsgb3B0aW9uX25hbWU6ICdhbGxvY2F0aW9uX3R5cGUnLCBhcGk6IHRoaXMuYXBpIH0sXG5cdFx0XTtcblxuXHRcdHRoaXMuaW5pdERyb3BEb3duT3B0aW9ucyggb3B0aW9ucyApO1xuXHR9XG5cblx0YnVpbGRFZGl0Vmlld1VJKCkge1xuXG5cdFx0c3VwZXIuYnVpbGRFZGl0Vmlld1VJKCk7XG5cblx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXG5cdFx0dmFyIHRhYl9tb2RlbCA9IHtcblx0XHRcdCd0YWJfbWVhbF9wb2xpY3knOiB7ICdsYWJlbCc6ICQuaTE4bi5fKCAnTWVhbCBQb2xpY3knICkgfSxcblx0XHRcdCd0YWJfYXVkaXQnOiB0cnVlLFxuXHRcdH07XG5cdFx0dGhpcy5zZXRUYWJNb2RlbCggdGFiX21vZGVsICk7XG5cblx0XHR0aGlzLm5hdmlnYXRpb24uQUNvbWJvQm94KCB7XG5cdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSU1lYWxQb2xpY3ksXG5cdFx0XHRpZDogdGhpcy5zY3JpcHRfbmFtZSArICdfbmF2aWdhdGlvbicsXG5cdFx0XHRhbGxvd19tdWx0aXBsZV9zZWxlY3Rpb246IGZhbHNlLFxuXHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfbWVhbCcsXG5cdFx0XHRuYXZpZ2F0aW9uX21vZGU6IHRydWUsXG5cdFx0XHRzaG93X3NlYXJjaF9pbnB1dHM6IHRydWVcblx0XHR9ICk7XG5cblx0XHR0aGlzLnNldE5hdmlnYXRpb24oKTtcblxuXHRcdC8vVGFiIDAgc3RhcnRcblxuXHRcdHZhciB0YWJfbWVhbF9wb2xpY3kgPSB0aGlzLmVkaXRfdmlld190YWIuZmluZCggJyN0YWJfbWVhbF9wb2xpY3knICk7XG5cblx0XHR2YXIgdGFiX21lYWxfcG9saWN5X2NvbHVtbjEgPSB0YWJfbWVhbF9wb2xpY3kuZmluZCggJy5maXJzdC1jb2x1bW4nICk7XG5cblx0XHR0aGlzLmVkaXRfdmlld190YWJzWzBdID0gW107XG5cblx0XHR0aGlzLmVkaXRfdmlld190YWJzWzBdLnB1c2goIHRhYl9tZWFsX3BvbGljeV9jb2x1bW4xICk7XG5cblx0XHQvL05hbWVcblx0XHR2YXIgZm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUX0lOUFVUICk7XG5cblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHRJbnB1dCggeyBmaWVsZDogJ25hbWUnLCB3aWR0aDogJzEwMCUnIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ05hbWUnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX21lYWxfcG9saWN5X2NvbHVtbjEsICcnICk7XG5cblx0XHRmb3JtX2l0ZW1faW5wdXQucGFyZW50KCkud2lkdGgoICc0NSUnICk7XG5cblx0XHQvLyBEZXNjcmlwdGlvblxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVF9BUkVBICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0QXJlYSggeyBmaWVsZDogJ2Rlc2NyaXB0aW9uJywgd2lkdGg6ICcxMDAlJyB9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdEZXNjcmlwdGlvbicgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfbWVhbF9wb2xpY3lfY29sdW1uMSwgJycsIG51bGwsIG51bGwsIHRydWUgKTtcblxuXHRcdGZvcm1faXRlbV9pbnB1dC5wYXJlbnQoKS53aWR0aCggJzQ1JScgKTtcblxuXHRcdC8vIFR5cGVcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkNPTUJPX0JPWCApO1xuXG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRDb21ib0JveCggeyBmaWVsZDogJ3R5cGVfaWQnLCBzZXRfZW1wdHk6IGZhbHNlIH0gKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuc2V0U291cmNlRGF0YSggJHRoaXMudHlwZV9hcnJheSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnVHlwZScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfbWVhbF9wb2xpY3lfY29sdW1uMSApO1xuXG5cdFx0Ly9BY3RpdmUgQWZ0ZXJcblxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVF9JTlBVVCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dElucHV0KCB7IGZpZWxkOiAndHJpZ2dlcl90aW1lJywgbW9kZTogJ3RpbWVfdW5pdCcsIG5lZWRfcGFyc2VyX3NlYzogdHJ1ZSB9ICk7XG5cblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0FjdGl2ZSBBZnRlcicgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfbWVhbF9wb2xpY3lfY29sdW1uMSwgJycsIG51bGwgKTtcblxuXHRcdC8vIE1lYWwgVGltZVxuXHRcdC8vIERlZHVjdGlvbi9BZGRpdGlvbiBUaW1lXG5cblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHRJbnB1dCggeyBmaWVsZDogJ2Ftb3VudCcsIG1vZGU6ICd0aW1lX3VuaXQnLCBuZWVkX3BhcnNlcl9zZWM6IHRydWUgfSApO1xuXG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdEZWR1Y3Rpb24vQWRkaXRpb24gVGltZScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfbWVhbF9wb2xpY3lfY29sdW1uMSwgJycsIG51bGwsIHRydWUgKTtcblxuXHRcdC8vIEF1dG8tRGV0ZWN0IE1lYWxzIEJ5XG5cblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkNPTUJPX0JPWCApO1xuXG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRDb21ib0JveCggeyBmaWVsZDogJ2F1dG9fZGV0ZWN0X3R5cGVfaWQnLCBzZXRfZW1wdHk6IGZhbHNlIH0gKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuc2V0U291cmNlRGF0YSggJHRoaXMuYXV0b19kZXRlY3RfdHlwZV9hcnJheSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnQXV0by1EZXRlY3QgTWVhbHMgQnknICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX21lYWxfcG9saWN5X2NvbHVtbjEgKTtcblxuXHRcdC8vIE1pbmltdW0gUHVuY2ggVGltZVxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVF9JTlBVVCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dElucHV0KCB7IGZpZWxkOiAnbWluaW11bV9wdW5jaF90aW1lJywgbW9kZTogJ3RpbWVfdW5pdCcsIG5lZWRfcGFyc2VyX3NlYzogdHJ1ZSB9ICk7XG5cblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ01pbmltdW0gUHVuY2ggVGltZScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfbWVhbF9wb2xpY3lfY29sdW1uMSwgJycsIG51bGwsIHRydWUgKTtcblxuXHRcdC8vIE1heGltdW0gUHVuY2ggVGltZVxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVF9JTlBVVCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dElucHV0KCB7IGZpZWxkOiAnbWF4aW11bV9wdW5jaF90aW1lJywgbW9kZTogJ3RpbWVfdW5pdCcsIG5lZWRfcGFyc2VyX3NlYzogdHJ1ZSB9ICk7XG5cblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ01heGltdW0gUHVuY2ggVGltZScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfbWVhbF9wb2xpY3lfY29sdW1uMSwgJycsIG51bGwsIHRydWUgKTtcblxuXHRcdC8vIFN0YXJ0IFdpbmRvd1xuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVF9JTlBVVCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dElucHV0KCB7IGZpZWxkOiAnc3RhcnRfd2luZG93JywgbW9kZTogJ3RpbWVfdW5pdCcsIG5lZWRfcGFyc2VyX3NlYzogdHJ1ZSB9ICk7XG5cblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ1N0YXJ0IFdpbmRvdycgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfbWVhbF9wb2xpY3lfY29sdW1uMSwgJycsIG51bGwsIHRydWUgKTtcblxuXHRcdC8vIFdpbmRvdyBMZW5ndGhcblxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVF9JTlBVVCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dElucHV0KCB7IGZpZWxkOiAnd2luZG93X2xlbmd0aCcsIG1vZGU6ICd0aW1lX3VuaXQnLCBuZWVkX3BhcnNlcl9zZWM6IHRydWUgfSApO1xuXG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdXaW5kb3cgTGVuZ3RoJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9tZWFsX3BvbGljeV9jb2x1bW4xLCAnJywgbnVsbCwgdHJ1ZSApO1xuXG5cdFx0Ly8gSW5jbHVkZSBBbnkgUHVuY2hlZCBUaW1lIGZvciBNZWFsXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5DSEVDS0JPWCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UQ2hlY2tib3goIHsgZmllbGQ6ICdpbmNsdWRlX2x1bmNoX3B1bmNoX3RpbWUnIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0luY2x1ZGUgQW55IFB1bmNoZWQgVGltZSBmb3IgTWVhbCcgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfbWVhbF9wb2xpY3lfY29sdW1uMSwgJycsIG51bGwsIHRydWUgKTtcblxuXHRcdC8vIEFsbG9jYXRpb24gVHlwZVxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQ09NQk9fQk9YICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRDb21ib0JveCggeyBmaWVsZDogJ2FsbG9jYXRpb25fdHlwZV9pZCcsIHNldF9lbXB0eTogZmFsc2UgfSApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5zZXRTb3VyY2VEYXRhKCAkdGhpcy5hbGxvY2F0aW9uX3R5cGVfYXJyYXkgKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0FsbG9jYXRpb24gVHlwZScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfbWVhbF9wb2xpY3lfY29sdW1uMSwgJycsIG51bGwsIHRydWUgKTtcblxuXG5cdFx0Ly9QYXkgQ29kZVxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1ggKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuQUNvbWJvQm94KCB7XG5cdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSVBheUNvZGUsXG5cdFx0XHRhbGxvd19tdWx0aXBsZV9zZWxlY3Rpb246IGZhbHNlLFxuXHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfcGF5X2NvZGUnLFxuXHRcdFx0c2hvd19zZWFyY2hfaW5wdXRzOiB0cnVlLFxuXHRcdFx0c2V0X2VtcHR5OiB0cnVlLFxuXHRcdFx0ZmllbGQ6ICdwYXlfY29kZV9pZCdcblx0XHR9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdQYXkgQ29kZScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfbWVhbF9wb2xpY3lfY29sdW1uMSApO1xuXG5cdFx0Ly9QYXkgRm9ybXVsYSBQb2xpY3lcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LkFDb21ib0JveCgge1xuXHRcdFx0YXBpX2NsYXNzOiBUVEFQSS5BUElQYXlGb3JtdWxhUG9saWN5LFxuXHRcdFx0YWxsb3dfbXVsdGlwbGVfc2VsZWN0aW9uOiBmYWxzZSxcblx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX3BheV9mb3JtdWxhX3BvbGljeScsXG5cdFx0XHRzaG93X3NlYXJjaF9pbnB1dHM6IHRydWUsXG5cdFx0XHRzZXRfZW1wdHk6IHRydWUsXG5cdFx0XHRmaWVsZDogJ3BheV9mb3JtdWxhX3BvbGljeV9pZCcsXG5cdFx0XHRjdXN0b21fZmlyc3RfbGFiZWw6ICQuaTE4bi5fKCAnLS0gRGVmaW5lZCBCeSBQYXkgQ29kZSAtLScgKSxcblx0XHRcdGFkZGVkX2l0ZW1zOiBbXG5cdFx0XHRcdHsgdmFsdWU6IFRUVVVJRC56ZXJvX2lkLCBsYWJlbDogJC5pMThuLl8oICctLSBEZWZpbmVkIEJ5IFBheSBDb2RlIC0tJyApIH1cblx0XHRcdF1cblx0XHR9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdQYXkgRm9ybXVsYSBQb2xpY3knICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX21lYWxfcG9saWN5X2NvbHVtbjEgKTtcblx0fVxuXG5cdGJ1aWxkU2VhcmNoRmllbGRzKCkge1xuXG5cdFx0c3VwZXIuYnVpbGRTZWFyY2hGaWVsZHMoKTtcblx0XHR0aGlzLnNlYXJjaF9maWVsZHMgPSBbXG5cblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdOYW1lJyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDEsXG5cdFx0XHRcdGZpZWxkOiAnbmFtZScsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IGZhbHNlLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVRcblx0XHRcdH0gKSxcblxuXHRcdFx0bmV3IFNlYXJjaEZpZWxkKCB7XG5cdFx0XHRcdGxhYmVsOiAkLmkxOG4uXyggJ1R5cGUnICksXG5cdFx0XHRcdGluX2NvbHVtbjogMSxcblx0XHRcdFx0ZmllbGQ6ICd0eXBlX2lkJyxcblx0XHRcdFx0bXVsdGlwbGU6IHRydWUsXG5cdFx0XHRcdGJhc2ljX3NlYXJjaDogdHJ1ZSxcblx0XHRcdFx0YWR2X3NlYXJjaDogZmFsc2UsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX29wdGlvbl9jb2x1bW4nLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9ICksXG5cblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdQYXkgQ29kZScgKSxcblx0XHRcdFx0aW5fY29sdW1uOiAxLFxuXHRcdFx0XHRmaWVsZDogJ3BheV9jb2RlX2lkJyxcblx0XHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfcGF5X2NvZGUnLFxuXHRcdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSVBheUNvZGUsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IGZhbHNlLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9ICksXG5cblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdQYXkgRm9ybXVsYSBQb2xpY3knICksXG5cdFx0XHRcdGluX2NvbHVtbjogMSxcblx0XHRcdFx0ZmllbGQ6ICdwYXlfZm9ybXVsYV9wb2xpY3lfaWQnLFxuXHRcdFx0XHRsYXlvdXRfbmFtZTogJ2dsb2JhbF9wYXlfZm9ybXVsYV9wb2xpY3knLFxuXHRcdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSVBheUZvcm11bGFQb2xpY3ksXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IGZhbHNlLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9ICksXG5cblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdDcmVhdGVkIEJ5JyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDIsXG5cdFx0XHRcdGZpZWxkOiAnY3JlYXRlZF9ieScsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX3VzZXInLFxuXHRcdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSVVzZXIsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IGZhbHNlLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9ICksXG5cblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdVcGRhdGVkIEJ5JyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDIsXG5cdFx0XHRcdGZpZWxkOiAndXBkYXRlZF9ieScsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX3VzZXInLFxuXHRcdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSVVzZXIsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IGZhbHNlLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9IClcblx0XHRdO1xuXHR9XG5cblx0b25Gb3JtSXRlbUNoYW5nZSggdGFyZ2V0LCBkb05vdFZhbGlkYXRlICkge1xuXHRcdHRoaXMuc2V0SXNDaGFuZ2VkKCB0YXJnZXQgKTtcblx0XHR0aGlzLnNldE1hc3NFZGl0aW5nRmllbGRzV2hlbkZvcm1DaGFuZ2UoIHRhcmdldCApO1xuXG5cdFx0dmFyIGtleSA9IHRhcmdldC5nZXRGaWVsZCgpO1xuXHRcdHZhciBjX3ZhbHVlID0gdGFyZ2V0LmdldFZhbHVlKCk7XG5cbi8vXHRcdHN3aXRjaCAoIGtleSApIHtcbi8vXHRcdFx0Y2FzZSAndHJpZ2dlcl90aW1lJzpcbi8vXHRcdFx0Y2FzZSAnYW1vdW50Jzpcbi8vXHRcdFx0Y2FzZSAnbWluaW11bV9wdW5jaF90aW1lJzpcbi8vXHRcdFx0Y2FzZSAnbWF4aW11bV9wdW5jaF90aW1lJzpcbi8vXHRcdFx0Y2FzZSAnd2luZG93X2xlbmd0aCc6XG4vL1x0XHRcdGNhc2UgJ3N0YXJ0X3dpbmRvdyc6XG4vL1x0XHRcdFx0Y192YWx1ZSA9IHRoaXMuZGF0ZV9hcGkucGFyc2VUaW1lVW5pdCggdGFyZ2V0LmdldFZhbHVlKCksIHthc3luYzogZmFsc2V9ICkuZ2V0UmVzdWx0KCk7XG4vL1x0XHRcdFx0YnJlYWs7XG4vL1x0XHR9XG5cblx0XHR0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRba2V5XSA9IGNfdmFsdWU7XG5cblx0XHRpZiAoIGtleSA9PT0gJ3R5cGVfaWQnICkge1xuXHRcdFx0dGhpcy5vblR5cGVDaGFuZ2UoKTtcblx0XHR9IGVsc2UgaWYgKCBrZXkgPT09ICdhdXRvX2RldGVjdF90eXBlX2lkJyApIHtcblx0XHRcdHRoaXMub25BdXRvRGV0ZWN0VHlwZUNoYW5nZSgpO1xuXHRcdH1cblxuXHRcdHRoaXMuZWRpdEZpZWxkUmVzaXplKCAwICk7XG5cblx0XHRpZiAoICFkb05vdFZhbGlkYXRlICkge1xuXHRcdFx0dGhpcy52YWxpZGF0ZSgpO1xuXHRcdH1cblx0fVxuXG5cdHNldEVkaXRWaWV3RGF0YURvbmUoKSB7XG5cdFx0c3VwZXIuc2V0RWRpdFZpZXdEYXRhRG9uZSgpO1xuXG5cdFx0dGhpcy5vblR5cGVDaGFuZ2UoKTtcblx0XHR0aGlzLm9uQXV0b0RldGVjdFR5cGVDaGFuZ2UoKTtcblxuXHRcdHRoaXMuZWRpdEZpZWxkUmVzaXplKCAwICk7XG5cdH1cblxuXHRvblR5cGVDaGFuZ2UoKSB7XG5cdFx0dGhpcy5lZGl0X3ZpZXdfZm9ybV9pdGVtX2RpY1snYW1vdW50J10uZmluZCggJy5lZGl0LXZpZXctZm9ybS1pdGVtLWxhYmVsJyApLnRleHQoICQuaTE4bi5fKCAnTWVhbCBUaW1lJyApICk7IC8vS2VlcCBjb25zaXN0ZW50IGZpZWxkIGxhYmVsIGZvciBhbGwgdHlwZXMsIGFsc28gc2ltcGxpZmllcyB0aGUgZG9jdW1lbnRhdGlvbi5cblx0XHRpZiAoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFsndHlwZV9pZCddID09IDEwIHx8IHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFsndHlwZV9pZCddID09IDE1ICkge1xuXHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAnaW5jbHVkZV9sdW5jaF9wdW5jaF90aW1lJyApO1xuXHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAnYWxsb2NhdGlvbl90eXBlX2lkJyApO1xuXHRcdH0gZWxzZSBpZiAoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFsndHlwZV9pZCddID09IDIwICkge1xuXHRcdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAnaW5jbHVkZV9sdW5jaF9wdW5jaF90aW1lJyApO1xuXHRcdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAnYWxsb2NhdGlvbl90eXBlX2lkJyApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICdpbmNsdWRlX2x1bmNoX3B1bmNoX3RpbWUnICk7XG5cdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICdhbGxvY2F0aW9uX3R5cGVfaWQnICk7XG5cdFx0fVxuXG5cdFx0dGhpcy5lZGl0RmllbGRSZXNpemUoKTtcblx0fVxuXG5cdG9uQXV0b0RldGVjdFR5cGVDaGFuZ2UoKSB7XG5cdFx0aWYgKCB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRbJ2F1dG9fZGV0ZWN0X3R5cGVfaWQnXSA9PSAxMCApIHtcblx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ3N0YXJ0X3dpbmRvdycgKTtcblx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ3dpbmRvd19sZW5ndGgnICk7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdtaW5pbXVtX3B1bmNoX3RpbWUnICk7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdtYXhpbXVtX3B1bmNoX3RpbWUnICk7XG5cdFx0fSBlbHNlIGlmICggdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkWydhdXRvX2RldGVjdF90eXBlX2lkJ10gPT0gMjAgfHwgdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkWydhdXRvX2RldGVjdF90eXBlX2lkJ10gPT0gMjUgKSB7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdzdGFydF93aW5kb3cnICk7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICd3aW5kb3dfbGVuZ3RoJyApO1xuXHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAnbWluaW11bV9wdW5jaF90aW1lJyApO1xuXHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAnbWF4aW11bV9wdW5jaF90aW1lJyApO1xuXHRcdH1cblxuXHRcdHRoaXMuZWRpdEZpZWxkUmVzaXplKCk7XG5cdH1cblxufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///7473\n")}}]);