1 line
37 KiB
JavaScript
1 line
37 KiB
JavaScript
"use strict";(self.webpackChunktimetrex=self.webpackChunktimetrex||[]).push([["hr-qualification-UserMembershipViewController"],{9633:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"UserMembershipViewController\": () => (/* binding */ UserMembershipViewController)\n/* harmony export */ });\n/* provided dependency */ var _ = __webpack_require__(9050);\n/* provided dependency */ var $ = __webpack_require__(9755);\nclass UserMembershipViewController extends BaseViewController {\n\tconstructor( options = {} ) {\n\t\t_.defaults( options, {\n\t\t\tel: '#user_membership_view_container',\n\n\n\n\t\t\tdocument_object_type_id: null,\n\n\t\t\tqualification_group_array: null,\n\t\t\tsource_type_array: null,\n\t\t\townership_array: null,\n\n\t\t\tqualification_group_api: null,\n\t\t\tqualification_api: null,\n\n\t\t\tsub_view_grid_autosize: true\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 = 'UserMembershipEditView.html';\n\t\tthis.permission_id = 'user_membership';\n\t\tthis.viewId = 'UserMembership';\n\t\tthis.script_name = 'UserMembershipView';\n\t\tthis.table_name_key = 'user_membership';\n\t\tthis.context_menu_name = $.i18n._( 'Memberships' );\n\t\tthis.navigation_label = $.i18n._( 'Membership' );\n\t\tthis.api = TTAPI.APIUserMembership;\n\t\tthis.qualification_api = TTAPI.APIQualification;\n\t\tthis.qualification_group_api = TTAPI.APIQualificationGroup;\n\n\t\tthis.document_object_type_id = 130;\n\t\tthis.render();\n\n\t\t//call init data in parent view\n\t\tif ( !this.sub_view_mode ) {\n\t\t\tthis.buildContextMenu();\n\t\t\tthis.initData();\n\t\t}\n\t}\n\n\tinitOptions() {\n\t\tvar $this = this;\n\n\t\tthis.initDropDownOption( 'ownership' );\n\t\tthis.initDropDownOption( 'source_type' );\n\n\t\tthis.qualification_group_api.getQualificationGroup( '', false, false, {\n\t\t\tonResult: function( res ) {\n\t\t\t\tres = res.getResult();\n\n\t\t\t\tres = Global.buildTreeRecord( res );\n\t\t\t\t$this.qualification_group_array = res;\n\n\t\t\t\tif ( !$this.sub_view_mode && $this.basic_search_field_ui_dic['group_id'] ) {\n\t\t\t\t\t$this.basic_search_field_ui_dic['group_id'].setSourceData( res );\n\t\t\t\t\t$this.adv_search_field_ui_dic['group_id'].setSourceData( res );\n\t\t\t\t}\n\n\t\t\t}\n\t\t} );\n\n\t\tvar args = {};\n\t\tvar filter_data = {};\n\t\tfilter_data.type_id = [50];\n\t\tfilter_data.visibility_type_id = [10, 100]; //10=Internal Only, 100=Both\n\t\targs.filter_data = filter_data;\n\t\tthis.qualification_api.getQualification( args, {\n\t\t\tonResult: function( res ) {\n\t\t\t\tres = res.getResult();\n\t\t\t\tif ( !$this.sub_view_mode && $this.basic_search_field_ui_dic['qualification_id'] ) {\n\t\t\t\t\t$this.basic_search_field_ui_dic['qualification_id'].setSourceData( res );\n\t\t\t\t\t$this.adv_search_field_ui_dic['qualification_id'].setSourceData( res );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\tshowNoResultCover( show_new_btn ) {\n\t\tsuper.showNoResultCover( ( this.sub_view_mode ) ? true : false );\n\t}\n\n\tonGridSelectRow() {\n\t\tif ( this.sub_view_mode ) {\n\t\t\tthis.buildContextMenu( true );\n\t\t\tthis.cancelOtherSubViewSelectedStatus();\n\t\t} else {\n\t\t\tthis.buildContextMenu();\n\t\t}\n\t\tthis.setDefaultMenu();\n\t}\n\n\tonGridSelectAll() {\n\t\tif ( this.sub_view_mode ) {\n\t\t\tthis.buildContextMenu( true );\n\t\t\tthis.cancelOtherSubViewSelectedStatus();\n\t\t}\n\t\tthis.setDefaultMenu();\n\t}\n\n\tcancelOtherSubViewSelectedStatus() {\n\t\tswitch ( true ) {\n\t\t\tcase typeof ( this.parent_view_controller.sub_user_skill_view_controller ) !== 'undefined':\n\t\t\t\tthis.parent_view_controller.sub_user_skill_view_controller.unSelectAll();\n\t\t\tcase typeof ( this.parent_view_controller.sub_user_license_view_controller ) !== 'undefined':\n\t\t\t\tthis.parent_view_controller.sub_user_license_view_controller.unSelectAll();\n\t\t\tcase typeof ( this.parent_view_controller.sub_user_education_view_controller ) !== 'undefined':\n\t\t\t\tthis.parent_view_controller.sub_user_education_view_controller.unSelectAll();\n\t\t\tcase typeof ( this.parent_view_controller.sub_user_language_view_controller ) !== 'undefined':\n\t\t\t\tthis.parent_view_controller.sub_user_language_view_controller.unSelectAll();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tonAddClick() {\n\n\t\tif ( this.sub_view_mode ) {\n\t\t\tthis.buildContextMenu( true );\n\t\t}\n\n\t\tsuper.onAddClick();\n\t}\n\n\tonMassEditClick() {\n\n\t\tvar $this = this;\n\t\t$this.is_add = false;\n\t\t$this.is_viewing = false;\n\t\t$this.is_mass_editing = true;\n\t\tLocalCacheData.current_doing_context_action = 'mass_edit';\n\t\t$this.openEditView();\n\t\tvar filter = {};\n\t\tvar grid_selected_id_array = this.getGridSelectIdArray();\n\t\tvar grid_selected_length = grid_selected_id_array.length;\n\t\tthis.mass_edit_record_ids = [];\n\n\t\t$.each( grid_selected_id_array, function( index, value ) {\n\t\t\t$this.mass_edit_record_ids.push( value );\n\t\t} );\n\n\t\tfilter.filter_data = {};\n\t\tfilter.filter_data.id = this.mass_edit_record_ids;\n\n\t\tthis.api['getCommon' + this.api.key_name + 'Data']( filter, {\n\t\t\tonResult: function( result ) {\n\t\t\t\tvar result_data = result.getResult();\n\n\t\t\t\t$this.unique_columns = {};\n\n\t\t\t\t$this.linked_columns = {};\n\n\t\t\t\tif ( !result_data ) {\n\t\t\t\t\tresult_data = [];\n\t\t\t\t}\n\n\t\t\t\tif ( $this.sub_view_mode && $this.parent_key ) {\n\t\t\t\t\tresult_data[$this.parent_key] = $this.parent_value;\n\t\t\t\t}\n\n\t\t\t\t$this.current_edit_record = result_data;\n\t\t\t\t$this.initEditView();\n\n\t\t\t}\n\t\t} );\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_membership': {\n\t\t\t\t'label': $.i18n._( 'Membership' )\n\t\t\t},\n\t\t\t'tab_attachment': true,\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.APIUserMembership,\n\t\t\tid: this.script_name + '_navigation',\n\t\t\tallow_multiple_selection: false,\n\t\t\tlayout_name: 'global_user_membership',\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_membership = this.edit_view_tab.find( '#tab_membership' );\n\n\t\tvar tab_membership_column1 = tab_membership.find( '.first-column' );\n\n\t\tthis.edit_view_tabs[0] = [];\n\n\t\tthis.edit_view_tabs[0].push( tab_membership_column1 );\n\n\t\t// Employee\n\t\tvar form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\t\tform_item_input.AComboBox( {\n\t\t\tapi_class: TTAPI.APIUser,\n\t\t\tallow_multiple_selection: true,\n\t\t\tlayout_name: 'global_user',\n\t\t\tfield: 'user_id',\n\t\t\tset_empty: true,\n\t\t\tshow_search_inputs: true\n\t\t} );\n\t\tvar default_args = {};\n\t\tdefault_args.permission_section = 'user_membership';\n\t\tform_item_input.setDefaultArgs( default_args );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Employee' ), form_item_input, tab_membership_column1, '' );\n\n\t\t// Membership\n\t\tvar args = {};\n\t\tvar filter_data = {};\n\t\tfilter_data.type_id = [50];\n\t\tfilter_data.visibility_type_id = [10, 100]; //10=Internal Only, 100=Both\n\t\targs.filter_data = filter_data;\n\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\t\tform_item_input.AComboBox( {\n\t\t\tapi_class: TTAPI.APIQualification,\n\t\t\tallow_multiple_selection: false,\n\t\t\tlayout_name: 'global_qualification',\n\t\t\tshow_search_inputs: true,\n\t\t\tset_empty: true,\n\t\t\tfield: 'qualification_id'\n\t\t} );\n\n\t\tform_item_input.setDefaultArgs( args );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Membership' ), form_item_input, tab_membership_column1 );\n\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.SEPARATED_BOX );\n\t\tform_item_input.SeparatedBox( { label: $.i18n._( 'Membership Subscription' ) } );\n\t\tthis.addEditFieldToColumn( null, form_item_input, tab_membership_column1 );\n\n\t\t// Ownership\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\tform_item_input.TComboBox( { field: 'ownership_id' } );\n\t\tform_item_input.setSourceData( $this.ownership_array );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Ownership' ), form_item_input, tab_membership_column1 );\n\n\t\t// Currency\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\t\tform_item_input.AComboBox( {\n\t\t\tapi_class: TTAPI.APICurrency,\n\t\t\tallow_multiple_selection: false,\n\t\t\tlayout_name: 'global_currency',\n\t\t\tfield: 'currency_id',\n\t\t\tset_empty: true,\n\t\t\tshow_search_inputs: true\n\t\t} );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Currency' ), form_item_input, tab_membership_column1 );\n\n\t\t//Amount\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\n\t\tform_item_input.TTextInput( { field: 'amount', width: 50 } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Amount' ), form_item_input, tab_membership_column1 );\n\n\t\t// Start Date\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.DATE_PICKER );\n\n\t\tform_item_input.TDatePicker( { field: 'start_date' } );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Start Date' ), form_item_input, tab_membership_column1, '', null );\n\n\t\t// Renewal Date\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.DATE_PICKER );\n\n\t\tform_item_input.TDatePicker( { field: 'renewal_date' } );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Renewal Date' ), form_item_input, tab_membership_column1, '', null );\n\n\t\t//Tags\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TAG_INPUT );\n\n\t\tform_item_input.TTagInput( { field: 'tag', object_type_id: 255 } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Tags' ), form_item_input, tab_membership_column1, '', null, null, true );\n\t}\n\n\tbuildSearchFields() {\n\n\t\tsuper.buildSearchFields();\n\t\tvar default_args = {};\n\t\tdefault_args.permission_section = 'user_membership';\n\t\tthis.search_fields = [\n\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Employee' ),\n\t\t\t\tin_column: 1,\n\t\t\t\tfield: 'user_id',\n\t\t\t\tdefault_args: default_args,\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: true,\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._( 'Currency' ),\n\t\t\t\tin_column: 1,\n\t\t\t\tfield: 'currency_id',\n\t\t\t\tlayout_name: 'global_currency',\n\t\t\t\tapi_class: TTAPI.APICurrency,\n\t\t\t\tmultiple: true,\n\t\t\t\tbasic_search: false,\n\t\t\t\tadv_search: true,\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._( 'Membership' ),\n\t\t\t\tin_column: 1,\n\t\t\t\tfield: 'qualification_id',\n\t\t\t\tlayout_name: 'global_qualification',\n\t\t\t\tapi_class: TTAPI.APIQualification,\n\t\t\t\tmultiple: true,\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: true,\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._( 'Ownership' ),\n\t\t\t\tin_column: 1,\n\t\t\t\tfield: 'ownership_id',\n\t\t\t\tmultiple: true,\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: true,\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._( 'Tags' ),\n\t\t\t\tfield: 'tag',\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: true,\n\t\t\t\tin_column: 1,\n\t\t\t\tobject_type_id: 255,\n\t\t\t\tform_item_type: FormItemType.TAG_INPUT\n\t\t\t} ),\n\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Group' ),\n\t\t\t\tin_column: 2,\n\t\t\t\tmultiple: true,\n\t\t\t\tfield: 'group_id',\n\t\t\t\tlayout_name: 'global_tree_column',\n\t\t\t\ttree_mode: true,\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: true,\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._( 'Source' ),\n\t\t\t\tin_column: 2,\n\t\t\t\tmultiple: true,\n\t\t\t\tfield: 'source_type_id',\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: true,\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._( 'Start Date' ),\n\t\t\t\tin_column: 2,\n\t\t\t\tfield: 'start_date',\n\t\t\t\ttree_mode: true,\n\t\t\t\tbasic_search: false,\n\t\t\t\tadv_search: true,\n\t\t\t\tform_item_type: FormItemType.DATE_PICKER\n\t\t\t} ),\n\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Renwal Date' ),\n\t\t\t\tin_column: 2,\n\t\t\t\tfield: 'renewal_date',\n\t\t\t\ttree_mode: true,\n\t\t\t\tbasic_search: false,\n\t\t\t\tadv_search: true,\n\t\t\t\tform_item_type: FormItemType.DATE_PICKER\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: false,\n\t\t\t\tadv_search: true,\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: false,\n\t\t\t\tadv_search: true,\n\t\t\t\tform_item_type: FormItemType.AWESOME_BOX\n\t\t\t} )\n\t\t];\n\t}\n\n\tsearchDone() {\n\t\tsuper.searchDone();\n\t\tTTPromise.resolve( 'Employee_Qualifications_Tab', 'UserMembershipViewController' );\n\t}\n\n\tuniformVariable( records ) {\n\t\tif ( Global.isArray( records.user_id ) && records.user_id.length > 0 ) {\n\t\t\tlet new_records = [];\n\t\t\tfor ( let key in records.user_id ) {\n\t\t\t\tnew_records.push( Object.assign( {}, records, { user_id: records.user_id[key] } ) );\n\t\t\t}\n\t\t\treturn new_records;\n\t\t}\n\t\treturn records;\n\t}\n}\n\nUserMembershipViewController.loadSubView = function( container, beforeViewLoadedFun, afterViewLoadedFun ) {\n\tGlobal.loadViewSource( 'UserMembership', 'SubUserMembershipView.html', function( result ) {\n\t\tvar args = {};\n\t\tvar template = _.template( result );\n\n\t\tif ( Global.isSet( beforeViewLoadedFun ) ) {\n\t\t\tbeforeViewLoadedFun();\n\t\t}\n\t\tif ( Global.isSet( container ) ) {\n\t\t\tcontainer.html( template( args ) );\n\t\t\tif ( Global.isSet( afterViewLoadedFun ) ) {\n\t\t\t\tafterViewLoadedFun( sub_user_membership_view_controller );\n\t\t\t}\n\t\t}\n\t} );\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0EsV0FBVyxDQUFDO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0EsV0FBVyxDQUFDO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLFdBQVcsQ0FBQztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0EsV0FBVyxDQUFDO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0EsV0FBVyxDQUFDO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLFdBQVcsQ0FBQztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSxXQUFXLENBQUM7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLFdBQVcsQ0FBQztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxhQUFhLGdDQUFnQztBQUNwRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLENBQUM7O0FBRWxCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2ludGVyZmFjZS9odG1sNS92aWV3cy9oci9xdWFsaWZpY2F0aW9uL1VzZXJNZW1iZXJzaGlwVmlld0NvbnRyb2xsZXIuanM/YjYwNiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVXNlck1lbWJlcnNoaXBWaWV3Q29udHJvbGxlciBleHRlbmRzIEJhc2VWaWV3Q29udHJvbGxlciB7XG5cdGNvbnN0cnVjdG9yKCBvcHRpb25zID0ge30gKSB7XG5cdFx0Xy5kZWZhdWx0cyggb3B0aW9ucywge1xuXHRcdFx0ZWw6ICcjdXNlcl9tZW1iZXJzaGlwX3ZpZXdfY29udGFpbmVyJyxcblxuXG5cblx0XHRcdGRvY3VtZW50X29iamVjdF90eXBlX2lkOiBudWxsLFxuXG5cdFx0XHRxdWFsaWZpY2F0aW9uX2dyb3VwX2FycmF5OiBudWxsLFxuXHRcdFx0c291cmNlX3R5cGVfYXJyYXk6IG51bGwsXG5cdFx0XHRvd25lcnNoaXBfYXJyYXk6IG51bGwsXG5cblx0XHRcdHF1YWxpZmljYXRpb25fZ3JvdXBfYXBpOiBudWxsLFxuXHRcdFx0cXVhbGlmaWNhdGlvbl9hcGk6IG51bGwsXG5cblx0XHRcdHN1Yl92aWV3X2dyaWRfYXV0b3NpemU6IHRydWVcblx0XHR9ICk7XG5cblx0XHRzdXBlciggb3B0aW9ucyApO1xuXHR9XG5cblx0aW5pdCggb3B0aW9ucyApIHtcblx0XHQvL3RoaXMuX3N1cGVyKCdpbml0aWFsaXplJywgb3B0aW9ucyApO1xuXHRcdHRoaXMuZWRpdF92aWV3X3RwbCA9ICdVc2VyTWVtYmVyc2hpcEVkaXRWaWV3Lmh0bWwnO1xuXHRcdHRoaXMucGVybWlzc2lvbl9pZCA9ICd1c2VyX21lbWJlcnNoaXAnO1xuXHRcdHRoaXMudmlld0lkID0gJ1VzZXJNZW1iZXJzaGlwJztcblx0XHR0aGlzLnNjcmlwdF9uYW1lID0gJ1VzZXJNZW1iZXJzaGlwVmlldyc7XG5cdFx0dGhpcy50YWJsZV9uYW1lX2tleSA9ICd1c2VyX21lbWJlcnNoaXAnO1xuXHRcdHRoaXMuY29udGV4dF9tZW51X25hbWUgPSAkLmkxOG4uXyggJ01lbWJlcnNoaXBzJyApO1xuXHRcdHRoaXMubmF2aWdhdGlvbl9sYWJlbCA9ICQuaTE4bi5fKCAnTWVtYmVyc2hpcCcgKTtcblx0XHR0aGlzLmFwaSA9IFRUQVBJLkFQSVVzZXJNZW1iZXJzaGlwO1xuXHRcdHRoaXMucXVhbGlmaWNhdGlvbl9hcGkgPSBUVEFQSS5BUElRdWFsaWZpY2F0aW9uO1xuXHRcdHRoaXMucXVhbGlmaWNhdGlvbl9ncm91cF9hcGkgPSBUVEFQSS5BUElRdWFsaWZpY2F0aW9uR3JvdXA7XG5cblx0XHR0aGlzLmRvY3VtZW50X29iamVjdF90eXBlX2lkID0gMTMwO1xuXHRcdHRoaXMucmVuZGVyKCk7XG5cblx0XHQvL2NhbGwgaW5pdCBkYXRhIGluIHBhcmVudCB2aWV3XG5cdFx0aWYgKCAhdGhpcy5zdWJfdmlld19tb2RlICkge1xuXHRcdFx0dGhpcy5idWlsZENvbnRleHRNZW51KCk7XG5cdFx0XHR0aGlzLmluaXREYXRhKCk7XG5cdFx0fVxuXHR9XG5cblx0aW5pdE9wdGlvbnMoKSB7XG5cdFx0dmFyICR0aGlzID0gdGhpcztcblxuXHRcdHRoaXMuaW5pdERyb3BEb3duT3B0aW9uKCAnb3duZXJzaGlwJyApO1xuXHRcdHRoaXMuaW5pdERyb3BEb3duT3B0aW9uKCAnc291cmNlX3R5cGUnICk7XG5cblx0XHR0aGlzLnF1YWxpZmljYXRpb25fZ3JvdXBfYXBpLmdldFF1YWxpZmljYXRpb25Hcm91cCggJycsIGZhbHNlLCBmYWxzZSwge1xuXHRcdFx0b25SZXN1bHQ6IGZ1bmN0aW9uKCByZXMgKSB7XG5cdFx0XHRcdHJlcyA9IHJlcy5nZXRSZXN1bHQoKTtcblxuXHRcdFx0XHRyZXMgPSBHbG9iYWwuYnVpbGRUcmVlUmVjb3JkKCByZXMgKTtcblx0XHRcdFx0JHRoaXMucXVhbGlmaWNhdGlvbl9ncm91cF9hcnJheSA9IHJlcztcblxuXHRcdFx0XHRpZiAoICEkdGhpcy5zdWJfdmlld19tb2RlICYmICR0aGlzLmJhc2ljX3NlYXJjaF9maWVsZF91aV9kaWNbJ2dyb3VwX2lkJ10gKSB7XG5cdFx0XHRcdFx0JHRoaXMuYmFzaWNfc2VhcmNoX2ZpZWxkX3VpX2RpY1snZ3JvdXBfaWQnXS5zZXRTb3VyY2VEYXRhKCByZXMgKTtcblx0XHRcdFx0XHQkdGhpcy5hZHZfc2VhcmNoX2ZpZWxkX3VpX2RpY1snZ3JvdXBfaWQnXS5zZXRTb3VyY2VEYXRhKCByZXMgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHR9XG5cdFx0fSApO1xuXG5cdFx0dmFyIGFyZ3MgPSB7fTtcblx0XHR2YXIgZmlsdGVyX2RhdGEgPSB7fTtcblx0XHRmaWx0ZXJfZGF0YS50eXBlX2lkID0gWzUwXTtcblx0XHRmaWx0ZXJfZGF0YS52aXNpYmlsaXR5X3R5cGVfaWQgPSBbMTAsIDEwMF07IC8vMTA9SW50ZXJuYWwgT25seSwgMTAwPUJvdGhcblx0XHRhcmdzLmZpbHRlcl9kYXRhID0gZmlsdGVyX2RhdGE7XG5cdFx0dGhpcy5xdWFsaWZpY2F0aW9uX2FwaS5nZXRRdWFsaWZpY2F0aW9uKCBhcmdzLCB7XG5cdFx0XHRvblJlc3VsdDogZnVuY3Rpb24oIHJlcyApIHtcblx0XHRcdFx0cmVzID0gcmVzLmdldFJlc3VsdCgpO1xuXHRcdFx0XHRpZiAoICEkdGhpcy5zdWJfdmlld19tb2RlICYmICR0aGlzLmJhc2ljX3NlYXJjaF9maWVsZF91aV9kaWNbJ3F1YWxpZmljYXRpb25faWQnXSApIHtcblx0XHRcdFx0XHQkdGhpcy5iYXNpY19zZWFyY2hfZmllbGRfdWlfZGljWydxdWFsaWZpY2F0aW9uX2lkJ10uc2V0U291cmNlRGF0YSggcmVzICk7XG5cdFx0XHRcdFx0JHRoaXMuYWR2X3NlYXJjaF9maWVsZF91aV9kaWNbJ3F1YWxpZmljYXRpb25faWQnXS5zZXRTb3VyY2VEYXRhKCByZXMgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gKTtcblx0fVxuXG5cdHNob3dOb1Jlc3VsdENvdmVyKCBzaG93X25ld19idG4gKSB7XG5cdFx0c3VwZXIuc2hvd05vUmVzdWx0Q292ZXIoICggdGhpcy5zdWJfdmlld19tb2RlICkgPyB0cnVlIDogZmFsc2UgKTtcblx0fVxuXG5cdG9uR3JpZFNlbGVjdFJvdygpIHtcblx0XHRpZiAoIHRoaXMuc3ViX3ZpZXdfbW9kZSApIHtcblx0XHRcdHRoaXMuYnVpbGRDb250ZXh0TWVudSggdHJ1ZSApO1xuXHRcdFx0dGhpcy5jYW5jZWxPdGhlclN1YlZpZXdTZWxlY3RlZFN0YXR1cygpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmJ1aWxkQ29udGV4dE1lbnUoKTtcblx0XHR9XG5cdFx0dGhpcy5zZXREZWZhdWx0TWVudSgpO1xuXHR9XG5cblx0b25HcmlkU2VsZWN0QWxsKCkge1xuXHRcdGlmICggdGhpcy5zdWJfdmlld19tb2RlICkge1xuXHRcdFx0dGhpcy5idWlsZENvbnRleHRNZW51KCB0cnVlICk7XG5cdFx0XHR0aGlzLmNhbmNlbE90aGVyU3ViVmlld1NlbGVjdGVkU3RhdHVzKCk7XG5cdFx0fVxuXHRcdHRoaXMuc2V0RGVmYXVsdE1lbnUoKTtcblx0fVxuXG5cdGNhbmNlbE90aGVyU3ViVmlld1NlbGVjdGVkU3RhdHVzKCkge1xuXHRcdHN3aXRjaCAoIHRydWUgKSB7XG5cdFx0XHRjYXNlIHR5cGVvZiAoIHRoaXMucGFyZW50X3ZpZXdfY29udHJvbGxlci5zdWJfdXNlcl9za2lsbF92aWV3X2NvbnRyb2xsZXIgKSAhPT0gJ3VuZGVmaW5lZCc6XG5cdFx0XHRcdHRoaXMucGFyZW50X3ZpZXdfY29udHJvbGxlci5zdWJfdXNlcl9za2lsbF92aWV3X2NvbnRyb2xsZXIudW5TZWxlY3RBbGwoKTtcblx0XHRcdGNhc2UgdHlwZW9mICggdGhpcy5wYXJlbnRfdmlld19jb250cm9sbGVyLnN1Yl91c2VyX2xpY2Vuc2Vfdmlld19jb250cm9sbGVyICkgIT09ICd1bmRlZmluZWQnOlxuXHRcdFx0XHR0aGlzLnBhcmVudF92aWV3X2NvbnRyb2xsZXIuc3ViX3VzZXJfbGljZW5zZV92aWV3X2NvbnRyb2xsZXIudW5TZWxlY3RBbGwoKTtcblx0XHRcdGNhc2UgdHlwZW9mICggdGhpcy5wYXJlbnRfdmlld19jb250cm9sbGVyLnN1Yl91c2VyX2VkdWNhdGlvbl92aWV3X2NvbnRyb2xsZXIgKSAhPT0gJ3VuZGVmaW5lZCc6XG5cdFx0XHRcdHRoaXMucGFyZW50X3ZpZXdfY29udHJvbGxlci5zdWJfdXNlcl9lZHVjYXRpb25fdmlld19jb250cm9sbGVyLnVuU2VsZWN0QWxsKCk7XG5cdFx0XHRjYXNlIHR5cGVvZiAoIHRoaXMucGFyZW50X3ZpZXdfY29udHJvbGxlci5zdWJfdXNlcl9sYW5ndWFnZV92aWV3X2NvbnRyb2xsZXIgKSAhPT0gJ3VuZGVmaW5lZCc6XG5cdFx0XHRcdHRoaXMucGFyZW50X3ZpZXdfY29udHJvbGxlci5zdWJfdXNlcl9sYW5ndWFnZV92aWV3X2NvbnRyb2xsZXIudW5TZWxlY3RBbGwoKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cblx0b25BZGRDbGljaygpIHtcblxuXHRcdGlmICggdGhpcy5zdWJfdmlld19tb2RlICkge1xuXHRcdFx0dGhpcy5idWlsZENvbnRleHRNZW51KCB0cnVlICk7XG5cdFx0fVxuXG5cdFx0c3VwZXIub25BZGRDbGljaygpO1xuXHR9XG5cblx0b25NYXNzRWRpdENsaWNrKCkge1xuXG5cdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHQkdGhpcy5pc19hZGQgPSBmYWxzZTtcblx0XHQkdGhpcy5pc192aWV3aW5nID0gZmFsc2U7XG5cdFx0JHRoaXMuaXNfbWFzc19lZGl0aW5nID0gdHJ1ZTtcblx0XHRMb2NhbENhY2hlRGF0YS5jdXJyZW50X2RvaW5nX2NvbnRleHRfYWN0aW9uID0gJ21hc3NfZWRpdCc7XG5cdFx0JHRoaXMub3BlbkVkaXRWaWV3KCk7XG5cdFx0dmFyIGZpbHRlciA9IHt9O1xuXHRcdHZhciBncmlkX3NlbGVjdGVkX2lkX2FycmF5ID0gdGhpcy5nZXRHcmlkU2VsZWN0SWRBcnJheSgpO1xuXHRcdHZhciBncmlkX3NlbGVjdGVkX2xlbmd0aCA9IGdyaWRfc2VsZWN0ZWRfaWRfYXJyYXkubGVuZ3RoO1xuXHRcdHRoaXMubWFzc19lZGl0X3JlY29yZF9pZHMgPSBbXTtcblxuXHRcdCQuZWFjaCggZ3JpZF9zZWxlY3RlZF9pZF9hcnJheSwgZnVuY3Rpb24oIGluZGV4LCB2YWx1ZSApIHtcblx0XHRcdCR0aGlzLm1hc3NfZWRpdF9yZWNvcmRfaWRzLnB1c2goIHZhbHVlICk7XG5cdFx0fSApO1xuXG5cdFx0ZmlsdGVyLmZpbHRlcl9kYXRhID0ge307XG5cdFx0ZmlsdGVyLmZpbHRlcl9kYXRhLmlkID0gdGhpcy5tYXNzX2VkaXRfcmVjb3JkX2lkcztcblxuXHRcdHRoaXMuYXBpWydnZXRDb21tb24nICsgdGhpcy5hcGkua2V5X25hbWUgKyAnRGF0YSddKCBmaWx0ZXIsIHtcblx0XHRcdG9uUmVzdWx0OiBmdW5jdGlvbiggcmVzdWx0ICkge1xuXHRcdFx0XHR2YXIgcmVzdWx0X2RhdGEgPSByZXN1bHQuZ2V0UmVzdWx0KCk7XG5cblx0XHRcdFx0JHRoaXMudW5pcXVlX2NvbHVtbnMgPSB7fTtcblxuXHRcdFx0XHQkdGhpcy5saW5rZWRfY29sdW1ucyA9IHt9O1xuXG5cdFx0XHRcdGlmICggIXJlc3VsdF9kYXRhICkge1xuXHRcdFx0XHRcdHJlc3VsdF9kYXRhID0gW107XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoICR0aGlzLnN1Yl92aWV3X21vZGUgJiYgJHRoaXMucGFyZW50X2tleSApIHtcblx0XHRcdFx0XHRyZXN1bHRfZGF0YVskdGhpcy5wYXJlbnRfa2V5XSA9ICR0aGlzLnBhcmVudF92YWx1ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCR0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmQgPSByZXN1bHRfZGF0YTtcblx0XHRcdFx0JHRoaXMuaW5pdEVkaXRWaWV3KCk7XG5cblx0XHRcdH1cblx0XHR9ICk7XG5cdH1cblxuXHRidWlsZEVkaXRWaWV3VUkoKSB7XG5cblx0XHRzdXBlci5idWlsZEVkaXRWaWV3VUkoKTtcblxuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cblx0XHR2YXIgdGFiX21vZGVsID0ge1xuXHRcdFx0J3RhYl9tZW1iZXJzaGlwJzoge1xuXHRcdFx0XHQnbGFiZWwnOiAkLmkxOG4uXyggJ01lbWJlcnNoaXAnIClcblx0XHRcdH0sXG5cdFx0XHQndGFiX2F0dGFjaG1lbnQnOiB0cnVlLFxuXHRcdFx0J3RhYl9hdWRpdCc6IHRydWUsXG5cdFx0fTtcblx0XHR0aGlzLnNldFRhYk1vZGVsKCB0YWJfbW9kZWwgKTtcblxuXHRcdHRoaXMubmF2aWdhdGlvbi5BQ29tYm9Cb3goIHtcblx0XHRcdGFwaV9jbGFzczogVFRBUEkuQVBJVXNlck1lbWJlcnNoaXAsXG5cdFx0XHRpZDogdGhpcy5zY3JpcHRfbmFtZSArICdfbmF2aWdhdGlvbicsXG5cdFx0XHRhbGxvd19tdWx0aXBsZV9zZWxlY3Rpb246IGZhbHNlLFxuXHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfdXNlcl9tZW1iZXJzaGlwJyxcblx0XHRcdG5hdmlnYXRpb25fbW9kZTogdHJ1ZSxcblx0XHRcdHNob3dfc2VhcmNoX2lucHV0czogdHJ1ZVxuXHRcdH0gKTtcblxuXHRcdHRoaXMuc2V0TmF2aWdhdGlvbigpO1xuXG5cdFx0Ly9UYWIgMCBzdGFydFxuXG5cdFx0dmFyIHRhYl9tZW1iZXJzaGlwID0gdGhpcy5lZGl0X3ZpZXdfdGFiLmZpbmQoICcjdGFiX21lbWJlcnNoaXAnICk7XG5cblx0XHR2YXIgdGFiX21lbWJlcnNoaXBfY29sdW1uMSA9IHRhYl9tZW1iZXJzaGlwLmZpbmQoICcuZmlyc3QtY29sdW1uJyApO1xuXG5cdFx0dGhpcy5lZGl0X3ZpZXdfdGFic1swXSA9IFtdO1xuXG5cdFx0dGhpcy5lZGl0X3ZpZXdfdGFic1swXS5wdXNoKCB0YWJfbWVtYmVyc2hpcF9jb2x1bW4xICk7XG5cblx0XHQvLyBFbXBsb3llZVxuXHRcdHZhciBmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LkFDb21ib0JveCgge1xuXHRcdFx0YXBpX2NsYXNzOiBUVEFQSS5BUElVc2VyLFxuXHRcdFx0YWxsb3dfbXVsdGlwbGVfc2VsZWN0aW9uOiB0cnVlLFxuXHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfdXNlcicsXG5cdFx0XHRmaWVsZDogJ3VzZXJfaWQnLFxuXHRcdFx0c2V0X2VtcHR5OiB0cnVlLFxuXHRcdFx0c2hvd19zZWFyY2hfaW5wdXRzOiB0cnVlXG5cdFx0fSApO1xuXHRcdHZhciBkZWZhdWx0X2FyZ3MgPSB7fTtcblx0XHRkZWZhdWx0X2FyZ3MucGVybWlzc2lvbl9zZWN0aW9uID0gJ3VzZXJfbWVtYmVyc2hpcCc7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LnNldERlZmF1bHRBcmdzKCBkZWZhdWx0X2FyZ3MgKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0VtcGxveWVlJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9tZW1iZXJzaGlwX2NvbHVtbjEsICcnICk7XG5cblx0XHQvLyBNZW1iZXJzaGlwXG5cdFx0dmFyIGFyZ3MgPSB7fTtcblx0XHR2YXIgZmlsdGVyX2RhdGEgPSB7fTtcblx0XHRmaWx0ZXJfZGF0YS50eXBlX2lkID0gWzUwXTtcblx0XHRmaWx0ZXJfZGF0YS52aXNpYmlsaXR5X3R5cGVfaWQgPSBbMTAsIDEwMF07IC8vMTA9SW50ZXJuYWwgT25seSwgMTAwPUJvdGhcblx0XHRhcmdzLmZpbHRlcl9kYXRhID0gZmlsdGVyX2RhdGE7XG5cblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LkFDb21ib0JveCgge1xuXHRcdFx0YXBpX2NsYXNzOiBUVEFQSS5BUElRdWFsaWZpY2F0aW9uLFxuXHRcdFx0YWxsb3dfbXVsdGlwbGVfc2VsZWN0aW9uOiBmYWxzZSxcblx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX3F1YWxpZmljYXRpb24nLFxuXHRcdFx0c2hvd19zZWFyY2hfaW5wdXRzOiB0cnVlLFxuXHRcdFx0c2V0X2VtcHR5OiB0cnVlLFxuXHRcdFx0ZmllbGQ6ICdxdWFsaWZpY2F0aW9uX2lkJ1xuXHRcdH0gKTtcblxuXHRcdGZvcm1faXRlbV9pbnB1dC5zZXREZWZhdWx0QXJncyggYXJncyApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnTWVtYmVyc2hpcCcgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfbWVtYmVyc2hpcF9jb2x1bW4xICk7XG5cblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlNFUEFSQVRFRF9CT1ggKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuU2VwYXJhdGVkQm94KCB7IGxhYmVsOiAkLmkxOG4uXyggJ01lbWJlcnNoaXAgU3Vic2NyaXB0aW9uJyApIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCBudWxsLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9tZW1iZXJzaGlwX2NvbHVtbjEgKTtcblxuXHRcdC8vIE93bmVyc2hpcFxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQ09NQk9fQk9YICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRDb21ib0JveCggeyBmaWVsZDogJ293bmVyc2hpcF9pZCcgfSApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5zZXRTb3VyY2VEYXRhKCAkdGhpcy5vd25lcnNoaXBfYXJyYXkgKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ093bmVyc2hpcCcgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfbWVtYmVyc2hpcF9jb2x1bW4xICk7XG5cblx0XHQvLyBDdXJyZW5jeVxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1ggKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuQUNvbWJvQm94KCB7XG5cdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSUN1cnJlbmN5LFxuXHRcdFx0YWxsb3dfbXVsdGlwbGVfc2VsZWN0aW9uOiBmYWxzZSxcblx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX2N1cnJlbmN5Jyxcblx0XHRcdGZpZWxkOiAnY3VycmVuY3lfaWQnLFxuXHRcdFx0c2V0X2VtcHR5OiB0cnVlLFxuXHRcdFx0c2hvd19zZWFyY2hfaW5wdXRzOiB0cnVlXG5cdFx0fSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnQ3VycmVuY3knICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX21lbWJlcnNoaXBfY29sdW1uMSApO1xuXG5cdFx0Ly9BbW91bnRcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblxuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dElucHV0KCB7IGZpZWxkOiAnYW1vdW50Jywgd2lkdGg6IDUwIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0Ftb3VudCcgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfbWVtYmVyc2hpcF9jb2x1bW4xICk7XG5cblx0XHQvLyBTdGFydCBEYXRlXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5EQVRFX1BJQ0tFUiApO1xuXG5cdFx0Zm9ybV9pdGVtX2lucHV0LlREYXRlUGlja2VyKCB7IGZpZWxkOiAnc3RhcnRfZGF0ZScgfSApO1xuXG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdTdGFydCBEYXRlJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9tZW1iZXJzaGlwX2NvbHVtbjEsICcnLCBudWxsICk7XG5cblx0XHQvLyBSZW5ld2FsIERhdGVcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkRBVEVfUElDS0VSICk7XG5cblx0XHRmb3JtX2l0ZW1faW5wdXQuVERhdGVQaWNrZXIoIHsgZmllbGQ6ICdyZW5ld2FsX2RhdGUnIH0gKTtcblxuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnUmVuZXdhbCBEYXRlJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9tZW1iZXJzaGlwX2NvbHVtbjEsICcnLCBudWxsICk7XG5cblx0XHQvL1RhZ3Ncblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRBR19JTlBVVCApO1xuXG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUYWdJbnB1dCggeyBmaWVsZDogJ3RhZycsIG9iamVjdF90eXBlX2lkOiAyNTUgfSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnVGFncycgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfbWVtYmVyc2hpcF9jb2x1bW4xLCAnJywgbnVsbCwgbnVsbCwgdHJ1ZSApO1xuXHR9XG5cblx0YnVpbGRTZWFyY2hGaWVsZHMoKSB7XG5cblx0XHRzdXBlci5idWlsZFNlYXJjaEZpZWxkcygpO1xuXHRcdHZhciBkZWZhdWx0X2FyZ3MgPSB7fTtcblx0XHRkZWZhdWx0X2FyZ3MucGVybWlzc2lvbl9zZWN0aW9uID0gJ3VzZXJfbWVtYmVyc2hpcCc7XG5cdFx0dGhpcy5zZWFyY2hfZmllbGRzID0gW1xuXG5cdFx0XHRuZXcgU2VhcmNoRmllbGQoIHtcblx0XHRcdFx0bGFiZWw6ICQuaTE4bi5fKCAnRW1wbG95ZWUnICksXG5cdFx0XHRcdGluX2NvbHVtbjogMSxcblx0XHRcdFx0ZmllbGQ6ICd1c2VyX2lkJyxcblx0XHRcdFx0ZGVmYXVsdF9hcmdzOiBkZWZhdWx0X2FyZ3MsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX3VzZXInLFxuXHRcdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSVVzZXIsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGZvcm1faXRlbV90eXBlOiBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1hcblx0XHRcdH0gKSxcblxuXHRcdFx0bmV3IFNlYXJjaEZpZWxkKCB7XG5cdFx0XHRcdGxhYmVsOiAkLmkxOG4uXyggJ0N1cnJlbmN5JyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDEsXG5cdFx0XHRcdGZpZWxkOiAnY3VycmVuY3lfaWQnLFxuXHRcdFx0XHRsYXlvdXRfbmFtZTogJ2dsb2JhbF9jdXJyZW5jeScsXG5cdFx0XHRcdGFwaV9jbGFzczogVFRBUEkuQVBJQ3VycmVuY3ksXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IGZhbHNlLFxuXHRcdFx0XHRhZHZfc2VhcmNoOiB0cnVlLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9ICksXG5cblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdNZW1iZXJzaGlwJyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDEsXG5cdFx0XHRcdGZpZWxkOiAncXVhbGlmaWNhdGlvbl9pZCcsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX3F1YWxpZmljYXRpb24nLFxuXHRcdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSVF1YWxpZmljYXRpb24sXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGZvcm1faXRlbV90eXBlOiBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1hcblx0XHRcdH0gKSxcblxuXHRcdFx0bmV3IFNlYXJjaEZpZWxkKCB7XG5cdFx0XHRcdGxhYmVsOiAkLmkxOG4uXyggJ093bmVyc2hpcCcgKSxcblx0XHRcdFx0aW5fY29sdW1uOiAxLFxuXHRcdFx0XHRmaWVsZDogJ293bmVyc2hpcF9pZCcsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX29wdGlvbl9jb2x1bW4nLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9ICksXG5cblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdUYWdzJyApLFxuXHRcdFx0XHRmaWVsZDogJ3RhZycsXG5cdFx0XHRcdGJhc2ljX3NlYXJjaDogdHJ1ZSxcblx0XHRcdFx0YWR2X3NlYXJjaDogdHJ1ZSxcblx0XHRcdFx0aW5fY29sdW1uOiAxLFxuXHRcdFx0XHRvYmplY3RfdHlwZV9pZDogMjU1LFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLlRBR19JTlBVVFxuXHRcdFx0fSApLFxuXG5cdFx0XHRuZXcgU2VhcmNoRmllbGQoIHtcblx0XHRcdFx0bGFiZWw6ICQuaTE4bi5fKCAnR3JvdXAnICksXG5cdFx0XHRcdGluX2NvbHVtbjogMixcblx0XHRcdFx0bXVsdGlwbGU6IHRydWUsXG5cdFx0XHRcdGZpZWxkOiAnZ3JvdXBfaWQnLFxuXHRcdFx0XHRsYXlvdXRfbmFtZTogJ2dsb2JhbF90cmVlX2NvbHVtbicsXG5cdFx0XHRcdHRyZWVfbW9kZTogdHJ1ZSxcblx0XHRcdFx0YmFzaWNfc2VhcmNoOiB0cnVlLFxuXHRcdFx0XHRhZHZfc2VhcmNoOiB0cnVlLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9ICksXG5cblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdTb3VyY2UnICksXG5cdFx0XHRcdGluX2NvbHVtbjogMixcblx0XHRcdFx0bXVsdGlwbGU6IHRydWUsXG5cdFx0XHRcdGZpZWxkOiAnc291cmNlX3R5cGVfaWQnLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX29wdGlvbl9jb2x1bW4nLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9ICksXG5cblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdTdGFydCBEYXRlJyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDIsXG5cdFx0XHRcdGZpZWxkOiAnc3RhcnRfZGF0ZScsXG5cdFx0XHRcdHRyZWVfbW9kZTogdHJ1ZSxcblx0XHRcdFx0YmFzaWNfc2VhcmNoOiBmYWxzZSxcblx0XHRcdFx0YWR2X3NlYXJjaDogdHJ1ZSxcblx0XHRcdFx0Zm9ybV9pdGVtX3R5cGU6IEZvcm1JdGVtVHlwZS5EQVRFX1BJQ0tFUlxuXHRcdFx0fSApLFxuXG5cdFx0XHRuZXcgU2VhcmNoRmllbGQoIHtcblx0XHRcdFx0bGFiZWw6ICQuaTE4bi5fKCAnUmVud2FsIERhdGUnICksXG5cdFx0XHRcdGluX2NvbHVtbjogMixcblx0XHRcdFx0ZmllbGQ6ICdyZW5ld2FsX2RhdGUnLFxuXHRcdFx0XHR0cmVlX21vZGU6IHRydWUsXG5cdFx0XHRcdGJhc2ljX3NlYXJjaDogZmFsc2UsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGZvcm1faXRlbV90eXBlOiBGb3JtSXRlbVR5cGUuREFURV9QSUNLRVJcblx0XHRcdH0gKSxcblxuXHRcdFx0bmV3IFNlYXJjaEZpZWxkKCB7XG5cdFx0XHRcdGxhYmVsOiAkLmkxOG4uXyggJ0NyZWF0ZWQgQnknICksXG5cdFx0XHRcdGluX2NvbHVtbjogMixcblx0XHRcdFx0ZmllbGQ6ICdjcmVhdGVkX2J5Jyxcblx0XHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfdXNlcicsXG5cdFx0XHRcdGFwaV9jbGFzczogVFRBUEkuQVBJVXNlcixcblx0XHRcdFx0bXVsdGlwbGU6IHRydWUsXG5cdFx0XHRcdGJhc2ljX3NlYXJjaDogZmFsc2UsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGZvcm1faXRlbV90eXBlOiBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1hcblx0XHRcdH0gKSxcblxuXHRcdFx0bmV3IFNlYXJjaEZpZWxkKCB7XG5cdFx0XHRcdGxhYmVsOiAkLmkxOG4uXyggJ1VwZGF0ZWQgQnknICksXG5cdFx0XHRcdGluX2NvbHVtbjogMixcblx0XHRcdFx0ZmllbGQ6ICd1cGRhdGVkX2J5Jyxcblx0XHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfdXNlcicsXG5cdFx0XHRcdGFwaV9jbGFzczogVFRBUEkuQVBJVXNlcixcblx0XHRcdFx0bXVsdGlwbGU6IHRydWUsXG5cdFx0XHRcdGJhc2ljX3NlYXJjaDogZmFsc2UsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGZvcm1faXRlbV90eXBlOiBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1hcblx0XHRcdH0gKVxuXHRcdF07XG5cdH1cblxuXHRzZWFyY2hEb25lKCkge1xuXHRcdHN1cGVyLnNlYXJjaERvbmUoKTtcblx0XHRUVFByb21pc2UucmVzb2x2ZSggJ0VtcGxveWVlX1F1YWxpZmljYXRpb25zX1RhYicsICdVc2VyTWVtYmVyc2hpcFZpZXdDb250cm9sbGVyJyApO1xuXHR9XG5cblx0dW5pZm9ybVZhcmlhYmxlKCByZWNvcmRzICkge1xuXHRcdGlmICggR2xvYmFsLmlzQXJyYXkoIHJlY29yZHMudXNlcl9pZCApICYmIHJlY29yZHMudXNlcl9pZC5sZW5ndGggPiAwICkge1xuXHRcdFx0bGV0IG5ld19yZWNvcmRzID0gW107XG5cdFx0XHRmb3IgKCBsZXQga2V5IGluIHJlY29yZHMudXNlcl9pZCApIHtcblx0XHRcdFx0bmV3X3JlY29yZHMucHVzaCggT2JqZWN0LmFzc2lnbigge30sIHJlY29yZHMsIHsgdXNlcl9pZDogcmVjb3Jkcy51c2VyX2lkW2tleV0gfSApICk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbmV3X3JlY29yZHM7XG5cdFx0fVxuXHRcdHJldHVybiByZWNvcmRzO1xuXHR9XG59XG5cblVzZXJNZW1iZXJzaGlwVmlld0NvbnRyb2xsZXIubG9hZFN1YlZpZXcgPSBmdW5jdGlvbiggY29udGFpbmVyLCBiZWZvcmVWaWV3TG9hZGVkRnVuLCBhZnRlclZpZXdMb2FkZWRGdW4gKSB7XG5cdEdsb2JhbC5sb2FkVmlld1NvdXJjZSggJ1VzZXJNZW1iZXJzaGlwJywgJ1N1YlVzZXJNZW1iZXJzaGlwVmlldy5odG1sJywgZnVuY3Rpb24oIHJlc3VsdCApIHtcblx0XHR2YXIgYXJncyA9IHt9O1xuXHRcdHZhciB0ZW1wbGF0ZSA9IF8udGVtcGxhdGUoIHJlc3VsdCApO1xuXG5cdFx0aWYgKCBHbG9iYWwuaXNTZXQoIGJlZm9yZVZpZXdMb2FkZWRGdW4gKSApIHtcblx0XHRcdGJlZm9yZVZpZXdMb2FkZWRGdW4oKTtcblx0XHR9XG5cdFx0aWYgKCBHbG9iYWwuaXNTZXQoIGNvbnRhaW5lciApICkge1xuXHRcdFx0Y29udGFpbmVyLmh0bWwoIHRlbXBsYXRlKCBhcmdzICkgKTtcblx0XHRcdGlmICggR2xvYmFsLmlzU2V0KCBhZnRlclZpZXdMb2FkZWRGdW4gKSApIHtcblx0XHRcdFx0YWZ0ZXJWaWV3TG9hZGVkRnVuKCBzdWJfdXNlcl9tZW1iZXJzaGlwX3ZpZXdfY29udHJvbGxlciApO1xuXHRcdFx0fVxuXHRcdH1cblx0fSApO1xufTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///9633\n")}}]); |