(self.webpackChunktimetrex=self.webpackChunktimetrex||[]).push([["invoice-client_payment-ClientPaymentViewController","filebrowser-TImage","filebrowser-TImageAdvBrowser"],{1469:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{eval("/* provided dependency */ var jQuery = __webpack_require__(9755);\n( function( $ ) {\n\n\t$.fn.TImage = function( options ) {\n\n\t\tGlobal.addCss( 'global/widgets/filebrowser/TImageBrowser.css' );\n\t\tvar opts = $.extend( {}, $.fn.TImage.defaults, options );\n\n\t\tvar $this = this;\n\t\tvar field;\n\n\t\tthis.clearErrorStyle = function() {\n\n\t\t};\n\n\t\tthis.getField = function() {\n\t\t\treturn field;\n\t\t};\n\n\t\tthis.getValue = function() {\n\t\t\treturn null;\n\t\t};\n\n\t\tthis.setValue = function( val ) {\n\t\t\tif ( !val ) {\n\t\t\t\tthis.attr( 'src', '' );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar d = new Date();\n\t\t\tthis.attr( 'src', val + '&t=' + d.getTime() );\n\n\t\t};\n\n\t\tthis.each( function() {\n\n\t\t\tvar o = $.meta ? $.extend( {}, opts, $( this ).data() ) : opts;\n\n\t\t\tfield = o.field;\n\n\t\t} );\n\n\t\treturn this;\n\n\t};\n\n\t$.fn.TImage.defaults = {};\n\n\t$( document ).on( 'mouseover', '.file-browser img', function( e ) {\n\t\tvar $this_image_widget = $( e.target ).parents( '.file-browser' );\n\n\t\tif ( !$( '.file_browser_overlay' )[0] && $( e.target ).attr( 'enable-delete' ) == 1 ) {\n\t\t\tvar height = $( e.target ).height();\n\t\t\tvar top = ( height - 32 ) / 2;\n\t\t\tvar left = top;\n\n\t\t\tvar file_browser_overlay = $( '
' );\n\t\t\tfile_browser_overlay.css( 'position', 'absolute' );\n\t\t\tfile_browser_overlay.css( 'top', '0px' );\n\t\t\tfile_browser_overlay.css( 'left', '0' );\n\t\t\tfile_browser_overlay.css( 'cursor', 'pointer' );\n\t\t\tfile_browser_overlay.css( 'height', height + 'px' );\n\t\t\tfile_browser_overlay.css( 'width', '100%' );\n\t\t\tfile_browser_overlay.css( 'background', 'rgba(255,255,255,0.85)' );\n\n\t\t\t$( e.target ).parents( '.file-browser' ).append( file_browser_overlay );\n\n\t\t\t$( document ).on( 'click', '.file_browser_overlay', function( e ) {\n\t\t\t\tvar img_src = $( e.target ).parent().find( 'img' ).attr( 'src' );\n\t\t\t\tTAlertManager.showConfirmAlert( $.i18n._( 'This will permanently delete the image. Are you sure?' ), '', function( flag ) {\n\t\t\t\t\tif ( flag ) {\n\t\t\t\t\t\tvar e = { type: 'deleteClick', message: 'Delete image clicked.', time: new Date() };\n\t\t\t\t\t\t$this_image_widget.trigger( e );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t$( document ).on( 'mouseleave', '.file-browser', function() {\n\t\t\t\t$( document ).off( 'click', '.file_browser_overlay' );\n\t\t\t\tif ( $( '.file_browser_overlay' )[0] ) {\n\t\t\t\t\tvar file_browser_overlay = $( this ).find( '.file_browser_overlay' );\n\t\t\t\t\tfile_browser_overlay.off().remove();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t} );\n\n} )( jQuery );//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTQ2OS5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7O0FBRUE7O0FBRUE7QUFDQSx5QkFBeUI7O0FBRXpCO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQSxnQ0FBZ0M7O0FBRWhDOztBQUVBLElBQUk7O0FBRUo7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw0SUFBNEksV0FBVyxZQUFZLGtCQUFrQixvQkFBb0I7QUFDek07QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLE1BQU07QUFDTixLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEdBQUc7O0FBRUgsRUFBRSxHQUFHLE1BQU0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbnRlcmZhY2UvaHRtbDUvZ2xvYmFsL3dpZGdldHMvZmlsZWJyb3dzZXIvVEltYWdlLmpzPzllOTIiXSwic291cmNlc0NvbnRlbnQiOlsiKCBmdW5jdGlvbiggJCApIHtcblxuXHQkLmZuLlRJbWFnZSA9IGZ1bmN0aW9uKCBvcHRpb25zICkge1xuXG5cdFx0R2xvYmFsLmFkZENzcyggJ2dsb2JhbC93aWRnZXRzL2ZpbGVicm93c2VyL1RJbWFnZUJyb3dzZXIuY3NzJyApO1xuXHRcdHZhciBvcHRzID0gJC5leHRlbmQoIHt9LCAkLmZuLlRJbWFnZS5kZWZhdWx0cywgb3B0aW9ucyApO1xuXG5cdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHR2YXIgZmllbGQ7XG5cblx0XHR0aGlzLmNsZWFyRXJyb3JTdHlsZSA9IGZ1bmN0aW9uKCkge1xuXG5cdFx0fTtcblxuXHRcdHRoaXMuZ2V0RmllbGQgPSBmdW5jdGlvbigpIHtcblx0XHRcdHJldHVybiBmaWVsZDtcblx0XHR9O1xuXG5cdFx0dGhpcy5nZXRWYWx1ZSA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fTtcblxuXHRcdHRoaXMuc2V0VmFsdWUgPSBmdW5jdGlvbiggdmFsICkge1xuXHRcdFx0aWYgKCAhdmFsICkge1xuXHRcdFx0XHR0aGlzLmF0dHIoICdzcmMnLCAnJyApO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR2YXIgZCA9IG5ldyBEYXRlKCk7XG5cdFx0XHR0aGlzLmF0dHIoICdzcmMnLCB2YWwgKyAnJnQ9JyArIGQuZ2V0VGltZSgpICk7XG5cblx0XHR9O1xuXG5cdFx0dGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0dmFyIG8gPSAkLm1ldGEgPyAkLmV4dGVuZCgge30sIG9wdHMsICQoIHRoaXMgKS5kYXRhKCkgKSA6IG9wdHM7XG5cblx0XHRcdGZpZWxkID0gby5maWVsZDtcblxuXHRcdH0gKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH07XG5cblx0JC5mbi5USW1hZ2UuZGVmYXVsdHMgPSB7fTtcblxuXHQkKCBkb2N1bWVudCApLm9uKCAnbW91c2VvdmVyJywgJy5maWxlLWJyb3dzZXIgaW1nJywgZnVuY3Rpb24oIGUgKSB7XG5cdFx0dmFyICR0aGlzX2ltYWdlX3dpZGdldCA9ICQoIGUudGFyZ2V0ICkucGFyZW50cyggJy5maWxlLWJyb3dzZXInICk7XG5cblx0XHRpZiAoICEkKCAnLmZpbGVfYnJvd3Nlcl9vdmVybGF5JyApWzBdICYmICQoIGUudGFyZ2V0ICkuYXR0ciggJ2VuYWJsZS1kZWxldGUnICkgPT0gMSApIHtcblx0XHRcdHZhciBoZWlnaHQgPSAkKCBlLnRhcmdldCApLmhlaWdodCgpO1xuXHRcdFx0dmFyIHRvcCA9ICggaGVpZ2h0IC0gMzIgKSAvIDI7XG5cdFx0XHR2YXIgbGVmdCA9IHRvcDtcblxuXHRcdFx0dmFyIGZpbGVfYnJvd3Nlcl9vdmVybGF5ID0gJCggJzxkaXYgY2xhc3M9XCJmaWxlX2Jyb3dzZXJfb3ZlcmxheVwiPjxpbWcgc3JjPVwidGhlbWUvZGVmYXVsdC9pbWFnZXMvZGVsZXRlLTUxMi5wbmdcIiBzdHlsZT1cInBvc2l0aW9uOmFic29sdXRlO3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7dG9wOicgKyB0b3AgKyAncHg7bGVmdDonICsgbGVmdCArICdweDtcIj48L2Rpdj4nICk7XG5cdFx0XHRmaWxlX2Jyb3dzZXJfb3ZlcmxheS5jc3MoICdwb3NpdGlvbicsICdhYnNvbHV0ZScgKTtcblx0XHRcdGZpbGVfYnJvd3Nlcl9vdmVybGF5LmNzcyggJ3RvcCcsICcwcHgnICk7XG5cdFx0XHRmaWxlX2Jyb3dzZXJfb3ZlcmxheS5jc3MoICdsZWZ0JywgJzAnICk7XG5cdFx0XHRmaWxlX2Jyb3dzZXJfb3ZlcmxheS5jc3MoICdjdXJzb3InLCAncG9pbnRlcicgKTtcblx0XHRcdGZpbGVfYnJvd3Nlcl9vdmVybGF5LmNzcyggJ2hlaWdodCcsIGhlaWdodCArICdweCcgKTtcblx0XHRcdGZpbGVfYnJvd3Nlcl9vdmVybGF5LmNzcyggJ3dpZHRoJywgJzEwMCUnICk7XG5cdFx0XHRmaWxlX2Jyb3dzZXJfb3ZlcmxheS5jc3MoICdiYWNrZ3JvdW5kJywgJ3JnYmEoMjU1LDI1NSwyNTUsMC44NSknICk7XG5cblx0XHRcdCQoIGUudGFyZ2V0ICkucGFyZW50cyggJy5maWxlLWJyb3dzZXInICkuYXBwZW5kKCBmaWxlX2Jyb3dzZXJfb3ZlcmxheSApO1xuXG5cdFx0XHQkKCBkb2N1bWVudCApLm9uKCAnY2xpY2snLCAnLmZpbGVfYnJvd3Nlcl9vdmVybGF5JywgZnVuY3Rpb24oIGUgKSB7XG5cdFx0XHRcdHZhciBpbWdfc3JjID0gJCggZS50YXJnZXQgKS5wYXJlbnQoKS5maW5kKCAnaW1nJyApLmF0dHIoICdzcmMnICk7XG5cdFx0XHRcdFRBbGVydE1hbmFnZXIuc2hvd0NvbmZpcm1BbGVydCggJC5pMThuLl8oICdUaGlzIHdpbGwgcGVybWFuZW50bHkgZGVsZXRlIHRoZSBpbWFnZS4gQXJlIHlvdSBzdXJlPycgKSwgJycsIGZ1bmN0aW9uKCBmbGFnICkge1xuXHRcdFx0XHRcdGlmICggZmxhZyApIHtcblx0XHRcdFx0XHRcdHZhciBlID0geyB0eXBlOiAnZGVsZXRlQ2xpY2snLCBtZXNzYWdlOiAnRGVsZXRlIGltYWdlIGNsaWNrZWQuJywgdGltZTogbmV3IERhdGUoKSB9O1xuXHRcdFx0XHRcdFx0JHRoaXNfaW1hZ2Vfd2lkZ2V0LnRyaWdnZXIoIGUgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gKTtcblx0XHRcdH0gKTtcblxuXHRcdFx0JCggZG9jdW1lbnQgKS5vbiggJ21vdXNlbGVhdmUnLCAnLmZpbGUtYnJvd3NlcicsIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHQkKCBkb2N1bWVudCApLm9mZiggJ2NsaWNrJywgJy5maWxlX2Jyb3dzZXJfb3ZlcmxheScgKTtcblx0XHRcdFx0aWYgKCAkKCAnLmZpbGVfYnJvd3Nlcl9vdmVybGF5JyApWzBdICkge1xuXHRcdFx0XHRcdHZhciBmaWxlX2Jyb3dzZXJfb3ZlcmxheSA9ICQoIHRoaXMgKS5maW5kKCAnLmZpbGVfYnJvd3Nlcl9vdmVybGF5JyApO1xuXHRcdFx0XHRcdGZpbGVfYnJvd3Nlcl9vdmVybGF5Lm9mZigpLnJlbW92ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9ICk7XG5cdFx0fVxuXHR9ICk7XG5cbn0gKSggalF1ZXJ5ICk7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///1469\n")},8243:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{eval("/* provided dependency */ var jQuery = __webpack_require__(9755);\n( function( $ ) {\n\n\t$.fn.TImageAdvBrowser = function( options ) {\n\n\t\tGlobal.addCss( 'global/widgets/filebrowser/TImageBrowser.css' );\n\t\tvar opts = $.extend( {}, $.fn.TImageAdvBrowser.defaults, options );\n\n\t\tvar $this = this;\n\t\tvar field;\n\t\tvar name = 'filedata';\n\n\t\tvar accept_filter = '';\n\n\t\tvar default_width = 177;\n\t\tvar default_height = 42;\n\n\t\tvar callBack = null;\n\n\t\tvar enabled = true;\n\n\t\tvar image;\n\n\t\tvar result_form_data;\n\n\t\tthis.setEnable = function( val ) {\n\t\t\tenabled = val;\n\n\t\t\tvar btn = this.children().eq( 1 );\n\t\t\tif ( !val ) {\n\t\t\t\tbtn.hide();\n\t\t\t} else {\n\t\t\t\tbtn.show();\n\t\t\t}\n\n\t\t};\n\n\t\tthis.clearErrorStyle = function() {\n\n\t\t};\n\n\t\tthis.getField = function() {\n\t\t\treturn field;\n\t\t};\n\n\t\tthis.getValue = function() {\n\t\t\treturn result_form_data;\n\t\t};\n\n\t\tthis.setImage = function( val ) {\n\t\t\tif ( !val ) {\n\t\t\t\timage.attr( 'src', '' );\n\t\t\t\timage.hide();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar d = new Date();\n\t\t\timage.hide();\n\t\t\timage.attr( 'src', val + '&t=' + d.getTime() + '&X-CSRF-Token=' + getCookie( 'CSRF-Token' ) );\n\t\t\timage.css( 'height', 'auto' );\n\t\t\timage.css( 'width', 'auto' );\n\n\t\t};\n\n\t\tthis.onImageLoad = function( image ) {\n\n\t\t\tvar image_height = $( image ).height() > 0 ? $( image ).height() : image.naturalHeight;\n\t\t\tvar image_width = $( image ).width() > 0 ? $( image ).width() : image.naturalWidth;\n\n\t\t\tif ( image_height > default_height ) {\n\t\t\t\t$( image ).css( 'height', default_height );\n\n\t\t\t}\n\n\t\t\tif ( image_width > default_width ) {\n\t\t\t\t$( image ).css( 'width', default_width );\n\t\t\t\t$( image ).css( 'height', 'auto' );\n\t\t\t}\n\n\t\t\t$this.trigger( 'setSize' );\n\n\t\t\tif ( image_height < 5 ) {\n\t\t\t\t$( image ).hide();\n\t\t\t} else {\n\t\t\t\t$( image ).show();\n\t\t\t}\n\n\t\t};\n\n\t\tthis.setValue = function( val ) {\n\n\t\t\tif ( !val ) {\n\t\t\t\tval = '';\n\t\t\t}\n\n\t\t};\n\n\t\tthis.setEnableDelete = function( val ) {\n\t\t\tvar image = $this.find( '.image' );\n\t\t\tif ( !val ) {\n\t\t\t\timage.removeAttr( 'enable-delete' );\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\timage.attr( 'enable-delete', 1 );\n\t\t\t}\n\t\t};\n\n\t\tthis.each( function() {\n\n\t\t\tvar o = $.meta ? $.extend( {}, opts, $( this ).data() ) : opts;\n\n\t\t\tfield = o.field;\n\n\t\t\tvar $$this = this;\n\n\t\t\t$( this ).find( '#upload_image' ).text( $.i18n._( 'Upload Image' ) );\n\n\t\t\tif ( o.callBack ) {\n\t\t\t\tcallBack = o.callBack;\n\t\t\t}\n\n\t\t\tif ( o.show_browser === false ) {\n\t\t\t\t$( this ).children().eq( 1 ).hide();\n\t\t\t}\n\n\t\t\tif ( o.default_width > 0 ) {\n\t\t\t\tdefault_width = o.default_width;\n\t\t\t}\n\n\t\t\tif ( o.default_height > 0 ) {\n\t\t\t\tdefault_height = o.default_height;\n\t\t\t}\n\n\t\t\tif ( Global.isSet( o.name ) ) {\n\t\t\t\tname = o.name;\n\t\t\t}\n\n\t\t\tif ( Global.isSet( accept_filter ) ) {\n\t\t\t\taccept_filter = o.accept_filter;\n\t\t\t}\n\n\t\t\tif ( Global.isSet( o.deleteImageHandler ) ) {\n\t\t\t\t$this.find( '.file-browser' ).on( 'deleteClick', function() {\n\t\t\t\t\to.deleteImageHandler();\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tvar browser = $( this ).children().eq( 1 );\n\t\t\tbrowser.bind( 'click', function() {\n\t\t\t\tIndexViewController.openWizard( 'UserPhotoWizard', null, function( form_data ) {\n\n\t\t\t\t\tif ( callBack ) {\n\t\t\t\t\t\tcallBack( form_data );\n\t\t\t\t\t}\n\n\t\t\t\t\tresult_form_data = form_data;\n\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\timage = $( this ).children().eq( 0 );\n\t\t\timage.on( 'load', function() {\n\t\t\t\t$this.onImageLoad( this );\n\t\t\t} );\n\n\t\t\timage.hide();\n\n\t\t} );\n\n\t\treturn this;\n\n\t};\n\n\t$.fn.TImageAdvBrowser.defaults = {};\n\t$.fn.TImageAdvBrowser.html_template = `\n\t
\n\t\t\n\t\t\n\t
\n\t`;\n\n} )( jQuery );//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODI0My5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7O0FBRUE7O0FBRUE7QUFDQSx5QkFBeUI7O0FBRXpCO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxnQ0FBZ0M7O0FBRWhDOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxNQUFNO0FBQ04sS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMOztBQUVBLElBQUk7O0FBRUo7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsRUFBRSxHQUFHLE1BQU0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbnRlcmZhY2UvaHRtbDUvZ2xvYmFsL3dpZGdldHMvZmlsZWJyb3dzZXIvVEltYWdlQWR2QnJvd3Nlci5qcz8xYzBiIl0sInNvdXJjZXNDb250ZW50IjpbIiggZnVuY3Rpb24oICQgKSB7XG5cblx0JC5mbi5USW1hZ2VBZHZCcm93c2VyID0gZnVuY3Rpb24oIG9wdGlvbnMgKSB7XG5cblx0XHRHbG9iYWwuYWRkQ3NzKCAnZ2xvYmFsL3dpZGdldHMvZmlsZWJyb3dzZXIvVEltYWdlQnJvd3Nlci5jc3MnICk7XG5cdFx0dmFyIG9wdHMgPSAkLmV4dGVuZCgge30sICQuZm4uVEltYWdlQWR2QnJvd3Nlci5kZWZhdWx0cywgb3B0aW9ucyApO1xuXG5cdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHR2YXIgZmllbGQ7XG5cdFx0dmFyIG5hbWUgPSAnZmlsZWRhdGEnO1xuXG5cdFx0dmFyIGFjY2VwdF9maWx0ZXIgPSAnJztcblxuXHRcdHZhciBkZWZhdWx0X3dpZHRoID0gMTc3O1xuXHRcdHZhciBkZWZhdWx0X2hlaWdodCA9IDQyO1xuXG5cdFx0dmFyIGNhbGxCYWNrID0gbnVsbDtcblxuXHRcdHZhciBlbmFibGVkID0gdHJ1ZTtcblxuXHRcdHZhciBpbWFnZTtcblxuXHRcdHZhciByZXN1bHRfZm9ybV9kYXRhO1xuXG5cdFx0dGhpcy5zZXRFbmFibGUgPSBmdW5jdGlvbiggdmFsICkge1xuXHRcdFx0ZW5hYmxlZCA9IHZhbDtcblxuXHRcdFx0dmFyIGJ0biA9IHRoaXMuY2hpbGRyZW4oKS5lcSggMSApO1xuXHRcdFx0aWYgKCAhdmFsICkge1xuXHRcdFx0XHRidG4uaGlkZSgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YnRuLnNob3coKTtcblx0XHRcdH1cblxuXHRcdH07XG5cblx0XHR0aGlzLmNsZWFyRXJyb3JTdHlsZSA9IGZ1bmN0aW9uKCkge1xuXG5cdFx0fTtcblxuXHRcdHRoaXMuZ2V0RmllbGQgPSBmdW5jdGlvbigpIHtcblx0XHRcdHJldHVybiBmaWVsZDtcblx0XHR9O1xuXG5cdFx0dGhpcy5nZXRWYWx1ZSA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIHJlc3VsdF9mb3JtX2RhdGE7XG5cdFx0fTtcblxuXHRcdHRoaXMuc2V0SW1hZ2UgPSBmdW5jdGlvbiggdmFsICkge1xuXHRcdFx0aWYgKCAhdmFsICkge1xuXHRcdFx0XHRpbWFnZS5hdHRyKCAnc3JjJywgJycgKTtcblx0XHRcdFx0aW1hZ2UuaGlkZSgpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHZhciBkID0gbmV3IERhdGUoKTtcblx0XHRcdGltYWdlLmhpZGUoKTtcblx0XHRcdGltYWdlLmF0dHIoICdzcmMnLCB2YWwgKyAnJnQ9JyArIGQuZ2V0VGltZSgpICsgJyZYLUNTUkYtVG9rZW49JyArIGdldENvb2tpZSggJ0NTUkYtVG9rZW4nICkgKTtcblx0XHRcdGltYWdlLmNzcyggJ2hlaWdodCcsICdhdXRvJyApO1xuXHRcdFx0aW1hZ2UuY3NzKCAnd2lkdGgnLCAnYXV0bycgKTtcblxuXHRcdH07XG5cblx0XHR0aGlzLm9uSW1hZ2VMb2FkID0gZnVuY3Rpb24oIGltYWdlICkge1xuXG5cdFx0XHR2YXIgaW1hZ2VfaGVpZ2h0ID0gJCggaW1hZ2UgKS5oZWlnaHQoKSA+IDAgPyAkKCBpbWFnZSApLmhlaWdodCgpIDogaW1hZ2UubmF0dXJhbEhlaWdodDtcblx0XHRcdHZhciBpbWFnZV93aWR0aCA9ICQoIGltYWdlICkud2lkdGgoKSA+IDAgPyAkKCBpbWFnZSApLndpZHRoKCkgOiBpbWFnZS5uYXR1cmFsV2lkdGg7XG5cblx0XHRcdGlmICggaW1hZ2VfaGVpZ2h0ID4gZGVmYXVsdF9oZWlnaHQgKSB7XG5cdFx0XHRcdCQoIGltYWdlICkuY3NzKCAnaGVpZ2h0JywgZGVmYXVsdF9oZWlnaHQgKTtcblxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIGltYWdlX3dpZHRoID4gZGVmYXVsdF93aWR0aCApIHtcblx0XHRcdFx0JCggaW1hZ2UgKS5jc3MoICd3aWR0aCcsIGRlZmF1bHRfd2lkdGggKTtcblx0XHRcdFx0JCggaW1hZ2UgKS5jc3MoICdoZWlnaHQnLCAnYXV0bycgKTtcblx0XHRcdH1cblxuXHRcdFx0JHRoaXMudHJpZ2dlciggJ3NldFNpemUnICk7XG5cblx0XHRcdGlmICggaW1hZ2VfaGVpZ2h0IDwgNSApIHtcblx0XHRcdFx0JCggaW1hZ2UgKS5oaWRlKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQkKCBpbWFnZSApLnNob3coKTtcblx0XHRcdH1cblxuXHRcdH07XG5cblx0XHR0aGlzLnNldFZhbHVlID0gZnVuY3Rpb24oIHZhbCApIHtcblxuXHRcdFx0aWYgKCAhdmFsICkge1xuXHRcdFx0XHR2YWwgPSAnJztcblx0XHRcdH1cblxuXHRcdH07XG5cblx0XHR0aGlzLnNldEVuYWJsZURlbGV0ZSA9IGZ1bmN0aW9uKCB2YWwgKSB7XG5cdFx0XHR2YXIgaW1hZ2UgPSAkdGhpcy5maW5kKCAnLmltYWdlJyApO1xuXHRcdFx0aWYgKCAhdmFsICkge1xuXHRcdFx0XHRpbWFnZS5yZW1vdmVBdHRyKCAnZW5hYmxlLWRlbGV0ZScgKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aW1hZ2UuYXR0ciggJ2VuYWJsZS1kZWxldGUnLCAxICk7XG5cdFx0XHR9XG5cdFx0fTtcblxuXHRcdHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cblx0XHRcdHZhciBvID0gJC5tZXRhID8gJC5leHRlbmQoIHt9LCBvcHRzLCAkKCB0aGlzICkuZGF0YSgpICkgOiBvcHRzO1xuXG5cdFx0XHRmaWVsZCA9IG8uZmllbGQ7XG5cblx0XHRcdHZhciAkJHRoaXMgPSB0aGlzO1xuXG5cdFx0XHQkKCB0aGlzICkuZmluZCggJyN1cGxvYWRfaW1hZ2UnICkudGV4dCggJC5pMThuLl8oICdVcGxvYWQgSW1hZ2UnICkgKTtcblxuXHRcdFx0aWYgKCBvLmNhbGxCYWNrICkge1xuXHRcdFx0XHRjYWxsQmFjayA9IG8uY2FsbEJhY2s7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggby5zaG93X2Jyb3dzZXIgPT09IGZhbHNlICkge1xuXHRcdFx0XHQkKCB0aGlzICkuY2hpbGRyZW4oKS5lcSggMSApLmhpZGUoKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBvLmRlZmF1bHRfd2lkdGggPiAwICkge1xuXHRcdFx0XHRkZWZhdWx0X3dpZHRoID0gby5kZWZhdWx0X3dpZHRoO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIG8uZGVmYXVsdF9oZWlnaHQgPiAwICkge1xuXHRcdFx0XHRkZWZhdWx0X2hlaWdodCA9IG8uZGVmYXVsdF9oZWlnaHQ7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggR2xvYmFsLmlzU2V0KCBvLm5hbWUgKSApIHtcblx0XHRcdFx0bmFtZSA9IG8ubmFtZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBHbG9iYWwuaXNTZXQoIGFjY2VwdF9maWx0ZXIgKSApIHtcblx0XHRcdFx0YWNjZXB0X2ZpbHRlciA9IG8uYWNjZXB0X2ZpbHRlcjtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBHbG9iYWwuaXNTZXQoIG8uZGVsZXRlSW1hZ2VIYW5kbGVyICkgKSB7XG5cdFx0XHRcdCR0aGlzLmZpbmQoICcuZmlsZS1icm93c2VyJyApLm9uKCAnZGVsZXRlQ2xpY2snLCBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRvLmRlbGV0ZUltYWdlSGFuZGxlcigpO1xuXHRcdFx0XHR9ICk7XG5cblx0XHRcdH1cblxuXHRcdFx0dmFyIGJyb3dzZXIgPSAkKCB0aGlzICkuY2hpbGRyZW4oKS5lcSggMSApO1xuXHRcdFx0YnJvd3Nlci5iaW5kKCAnY2xpY2snLCBmdW5jdGlvbigpIHtcblx0XHRcdFx0SW5kZXhWaWV3Q29udHJvbGxlci5vcGVuV2l6YXJkKCAnVXNlclBob3RvV2l6YXJkJywgbnVsbCwgZnVuY3Rpb24oIGZvcm1fZGF0YSApIHtcblxuXHRcdFx0XHRcdGlmICggY2FsbEJhY2sgKSB7XG5cdFx0XHRcdFx0XHRjYWxsQmFjayggZm9ybV9kYXRhICk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0cmVzdWx0X2Zvcm1fZGF0YSA9IGZvcm1fZGF0YTtcblxuXHRcdFx0XHR9ICk7XG5cdFx0XHR9ICk7XG5cblx0XHRcdGltYWdlID0gJCggdGhpcyApLmNoaWxkcmVuKCkuZXEoIDAgKTtcblx0XHRcdGltYWdlLm9uKCAnbG9hZCcsIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHQkdGhpcy5vbkltYWdlTG9hZCggdGhpcyApO1xuXHRcdFx0fSApO1xuXG5cdFx0XHRpbWFnZS5oaWRlKCk7XG5cblx0XHR9ICk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9O1xuXG5cdCQuZm4uVEltYWdlQWR2QnJvd3Nlci5kZWZhdWx0cyA9IHt9O1xuXHQkLmZuLlRJbWFnZUFkdkJyb3dzZXIuaHRtbF90ZW1wbGF0ZSA9IGBcblx0PGRpdiBjbGFzcz1cImZpbGUtYnJvd3NlclwiPlxuXHRcdDxpbWcgY2xhc3M9XCJpbWFnZVwiPlxuXHRcdDxidXR0b24gaWQ9XCJ1cGxvYWRfaW1hZ2VcIiBjbGFzcz1cInQtYnV0dG9uIGZpbGUtYnJvd3Nlci1idG5cIiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrXCI+PC9idXR0b24+XG5cdDwvZGl2PlxuXHRgO1xuXG59ICkoIGpRdWVyeSApOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8243\n")},8253:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ClientPaymentViewController\": () => (/* binding */ ClientPaymentViewController)\n/* harmony export */ });\n/* harmony import */ var _global_widgets_filebrowser_TImage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1469);\n/* harmony import */ var _global_widgets_filebrowser_TImage__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_global_widgets_filebrowser_TImage__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _global_widgets_filebrowser_TImageAdvBrowser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8243);\n/* harmony import */ var _global_widgets_filebrowser_TImageAdvBrowser__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_global_widgets_filebrowser_TImageAdvBrowser__WEBPACK_IMPORTED_MODULE_1__);\n/* provided dependency */ var _ = __webpack_require__(9050);\n/* provided dependency */ var $ = __webpack_require__(9755);\n\n\n\nclass ClientPaymentViewController extends BaseViewController {\n\tconstructor( options = {} ) {\n\t\t_.defaults( options, {\n\t\t\tel: '#client_payment_view_container',\n\n\t\t\t// _required_files: ['TImageAdvBrowser', 'TImage'],\n\n\t\t\tstatus_array: null,\n\t\t\ttype_array: null,\n\t\t\tcredit_card_type_array: null,\n\t\t\tsub_document_view_controller: null,\n\t\t\tbank_account_type_array: null,\n\t\t\tdocument_object_type_id: null,\n\t\t\tfile_browser: null\n\t\t} );\n\n\t\tsuper( options );\n\t}\n\n\tinit( options ) {\n\t\tvar $this = this;\n\t\tthis.edit_view_tpl = 'ClientPaymentEditView.html';\n\t\tthis.permission_id = 'client_payment';\n\t\tthis.viewId = 'ClientPayment';\n\t\tthis.script_name = 'ClientPaymentView';\n\t\tthis.table_name_key = 'client_payment';\n\t\tthis.document_object_type_id = 90;\n\t\tthis.context_menu_name = $.i18n._( 'Payment Methods' );\n\t\tthis.navigation_label = $.i18n._( 'Payment Methods' );\n\t\tthis.api = TTAPI.APIClientPayment;\n\n\t\tthis.render();\n\t\tthis.buildContextMenu();\n\n\t\tif ( !this.sub_view_mode ) {\n\t\t\tthis.initData();\n\t\t}\n\t}\n\n\tinitOptions() {\n\t\tvar $this = this;\n\n\t\tvar options = [\n\t\t\t{ option_name: 'status', api: this.api },\n\t\t\t{ option_name: 'type', api: this.api },\n\t\t\t{ option_name: 'bank_account_type', api: this.api },\n\t\t\t{ option_name: 'credit_card_type',field_name: 'cc_type_id', api: this.api },\n\t\t];\n\n\t\tthis.initDropDownOptions( options );\n\n\t\tif ( Global.isSet( $this.adv_search_field_ui_dic['is_default'] ) ) {\n\t\t\tthis.basic_search_field_ui_dic['is_default'].setSourceData( Global.buildRecordArray( {\n\t\t\t\t0: 'False',\n\t\t\t\t1: 'True'\n\t\t\t} ) );\n\t\t}\n\t}\n\n\tgetCustomContextMenuModel() {\n\t\tvar context_menu_model = {\n\t\t\texclude: [],\n\t\t\tinclude: ['default']\n\t\t};\n\n\t\tif ( !this.sub_view_mode ) {\n\n\t\t\tcontext_menu_model.include.push(\n\t\t\t\t{\n\t\t\t\t\tlabel: $.i18n._( 'Jump To' ),\n\t\t\t\t\tid: 'jump_to_header',\n\t\t\t\t\tmenu_align: 'right',\n\t\t\t\t\taction_group: 'jump_to',\n\t\t\t\t\taction_group_header: true,\n\t\t\t\t\tpermission_result: false // to hide it in legacy context menu and avoid errors in legacy parsers.\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: $.i18n._( 'Edit Client' ),\n\t\t\t\t\tid: 'edit_client',\n\t\t\t\t\tmenu_align: 'right',\n\t\t\t\t\taction_group: 'jump_to',\n\t\t\t\t\tgroup: 'navigation',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: $.i18n._( 'Client Contacts' ),\n\t\t\t\t\tid: 'client_contact',\n\t\t\t\t\tmenu_align: 'right',\n\t\t\t\t\taction_group: 'jump_to',\n\t\t\t\t\tgroup: 'navigation',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: $.i18n._( 'Transactions' ),\n\t\t\t\t\tid: 'transaction',\n\t\t\t\t\tmenu_align: 'right',\n\t\t\t\t\taction_group: 'jump_to',\n\t\t\t\t\tgroup: 'navigation',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: $.i18n._( 'Invoices' ),\n\t\t\t\t\tid: 'invoice',\n\t\t\t\t\tmenu_align: 'right',\n\t\t\t\t\taction_group: 'jump_to',\n\t\t\t\t\tgroup: 'navigation',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn context_menu_model;\n\t}\n\n\tsetCurrentEditRecordData() {\n\t\t// When mass editing, these fields may not be the common data, so their value will be undefined, so this will cause their change event cannot work properly.\n\t\tthis.setDefaultData( {\n\t\t\t'type_id': 30,\n\t\t\t'bank_account_type_id': 200\n\t\t} );\n\n\t\t//Set current edit record data to all widgets\n\t\tfor ( var key in this.current_edit_record ) {\n\n\t\t\tif ( !this.current_edit_record.hasOwnProperty( key ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar widget = this.edit_view_ui_dic[key];\n\t\t\tif ( Global.isSet( widget ) ) {\n\t\t\t\twidget.setValue( this.current_edit_record[key] );\n\n\t\t\t}\n\t\t}\n\n\t\tif ( this.current_edit_record.signature_exists && this.current_edit_record.id && this.current_edit_record.client_id ) {\n\t\t\tvar url = ServiceCaller.getURLByObjectType( 'file_download' ) + '&object_type=client_payment_signature&object_id=' + this.current_edit_record.id + '&parent_id=' + this.current_edit_record.client_id;\n\t\t\tthis.file_browser.setImage( url );\n\t\t} else {\n\t\t\tthis.detachElement( 'signature' );\n\t\t}\n\n\t\tthis.collectUIDataToCurrentEditRecord();\n\t\tthis.setEditViewDataDone();\n\t}\n\n\tsetCustomDefaultMenuIcon( id, context_btn, grid_selected_length ) {\n\t\tswitch ( id ) {\n\t\t\tcase 'login':\n\t\t\t\tthis.setDefaultMenuLoginIcon( context_btn, grid_selected_length );\n\t\t\t\tbreak;\n\t\t\tcase 'edit_client':\n\t\t\t\tthis.setDefaultMenuEditClientIcon( context_btn, grid_selected_length );\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tsetDefaultMenuEditClientIcon( context_btn, grid_selected_length, pId ) {\n\t\tif ( grid_selected_length === 1 ) {\n\t\t\tContextMenuManager.disableMenuItem( this.determineContextMenuMountAttributes().id, context_btn.id, true );\n\t\t} else {\n\t\t\tContextMenuManager.disableMenuItem( this.determineContextMenuMountAttributes().id, context_btn.id, false );\n\t\t}\n\t}\n\n\tonCustomContextClick( id ) {\n\t\tswitch ( id ) {\n\t\t\tcase 'download':\n\t\t\t\tthis.onDownloadClick();\n\t\t\t\tbreak;\n\t\t\tcase 'edit_client':\n\t\t\tcase 'client_contact':\n\t\t\tcase 'invoice':\n\t\t\tcase 'transaction':\n\t\t\tcase 'export_excel':\n\t\t\t\tthis.onNavigationClick( id );\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tgetFilterColumnsFromDisplayColumns() {\n\t\tvar column_filter = {};\n\t\tcolumn_filter.is_owner = true;\n\t\tcolumn_filter.id = true;\n\t\tcolumn_filter.is_child = true;\n\t\tcolumn_filter.in_use = true;\n\t\tcolumn_filter.first_name = true;\n\t\tcolumn_filter.last_name = true;\n\t\tcolumn_filter.client_id = true;\n\n\t\t// Error: Unable to get property 'getGridParam' of undefined or null reference\n\t\tvar display_columns = [];\n\t\tif ( this.grid ) {\n\t\t\tdisplay_columns = this.grid.getGridParam( 'colModel' );\n\t\t}\n\n\t\tif ( display_columns ) {\n\t\t\tvar len = display_columns.length;\n\n\t\t\tfor ( var i = 0; i < len; i++ ) {\n\t\t\t\tvar column_info = display_columns[i];\n\t\t\t\tcolumn_filter[column_info.name] = true;\n\t\t\t}\n\t\t}\n\n\t\treturn column_filter;\n\t}\n\n\tonNavigationClick( iconName ) {\n\n\t\tvar $this = this;\n\n\t\tvar grid_selected_id_array;\n\n\t\tvar filter = { filter_data: {} };\n\n\t\tvar client_ids = [];\n\n\t\tif ( $this.edit_view && $this.current_edit_record.id ) {\n\t\t\tclient_ids.push( $this.current_edit_record.client_id );\n\t\t} else {\n\t\t\tgrid_selected_id_array = this.getGridSelectIdArray();\n\t\t\t$.each( grid_selected_id_array, function( index, value ) {\n\t\t\t\tvar grid_selected_row = $this.getRecordFromGridById( value );\n\t\t\t\tclient_ids.push( grid_selected_row.client_id );\n\t\t\t} );\n\t\t}\n\n\t\tfilter.filter_data.client_id = client_ids;\n\n\t\tswitch ( iconName ) {\n\t\t\tcase 'edit_client':\n\t\t\t\tif ( client_ids.length > 0 ) {\n\t\t\t\t\tIndexViewController.openEditView( this, 'Client', client_ids[0] );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'client_contact':\n\t\t\t\tGlobal.addViewTab( $this.viewId, $.i18n._( 'Payment Methods' ), window.location.href );\n\t\t\t\tIndexViewController.goToView( 'ClientContact', filter );\n\t\t\t\tbreak;\n\t\t\tcase 'invoice':\n\t\t\t\tGlobal.addViewTab( $this.viewId, $.i18n._( 'Payment Methods' ), window.location.href );\n\t\t\t\tIndexViewController.goToView( 'Invoice', filter );\n\t\t\t\tbreak;\n\t\t\tcase 'transaction':\n\t\t\t\tGlobal.addViewTab( $this.viewId, $.i18n._( 'Payment Methods' ), window.location.href );\n\t\t\t\tIndexViewController.goToView( 'InvoiceTransaction', filter );\n\t\t\t\tbreak;\n\t\t\tcase 'export_excel':\n\t\t\t\tthis.onExportClick( 'export' + this.api.key_name );\n\t\t\t\tbreak;\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_payment_method': { 'label': $.i18n._( 'Payment Method' ) },\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.APIClientPayment,\n\t\t\tid: this.script_name + '_navigation',\n\t\t\tallow_multiple_selection: false,\n\t\t\tlayout_name: 'global_client_payment',\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_payment_method = this.edit_view_tab.find( '#tab_payment_method' );\n\n\t\tvar tab_payment_method_column1 = tab_payment_method.find( '.first-column' );\n\n\t\tthis.edit_view_tabs[0] = [];\n\n\t\tthis.edit_view_tabs[0].push( tab_payment_method_column1 );\n\n\t\t// Client\n\t\tvar form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\n\t\tform_item_input.AComboBox( {\n\t\t\tapi_class: TTAPI.APIClient,\n\t\t\tallow_multiple_selection: false,\n\t\t\tlayout_name: 'global_client',\n\t\t\tshow_search_inputs: true,\n\t\t\tset_empty: true,\n\t\t\tfield: 'client_id'\n\t\t} );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Client' ), form_item_input, tab_payment_method_column1, '' );\n\n\t\t// Status\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\tform_item_input.TComboBox( { field: 'status_id' } );\n\t\tform_item_input.setSourceData( $this.status_array );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Status' ), form_item_input, tab_payment_method_column1 );\n\n\t\t// Type\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\tform_item_input.TComboBox( { field: 'type_id' } );\n\t\tform_item_input.setSourceData( $this.type_array );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Type' ), form_item_input, tab_payment_method_column1 );\n\n\t\t// Default\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.CHECKBOX );\n\t\tform_item_input.TCheckbox( { field: 'is_default' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Default' ), form_item_input, tab_payment_method_column1 );\n\n\t\t// Bank Type\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\tform_item_input.TComboBox( { field: 'bank_account_type_id' } );\n\t\tform_item_input.setSourceData( $this.bank_account_type_array );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Bank Type' ), form_item_input, tab_payment_method_column1, '', null, true );\n\n\t\t// Institution Number\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'bank_institution', width: 30 } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Institution Number' ), form_item_input, tab_payment_method_column1, '', null, true );\n\n\t\t// Bank Transit\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'bank_transit', width: 100 } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Bank Transit' ), form_item_input, tab_payment_method_column1, '', null, true );\n\n\t\t// Bank type change\n\n\t\t// Account Number\n\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'bank_account', width: 120 } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Account Number' ), form_item_input, tab_payment_method_column1, '', null, true );\n\n\t\t// Credit Card Type\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\tform_item_input.TComboBox( { field: 'cc_type_id' } );\n\t\tform_item_input.setSourceData( $this.credit_card_type_array );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Credit Card Type' ), form_item_input, tab_payment_method_column1, '', null, true );\n\n\t\t// Credit Card Number\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'cc_number', width: 120 } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Credit Card Number' ), form_item_input, tab_payment_method_column1, '', null, true );\n\n\t\t// Expiry Date\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.DATE_PICKER );\n\n\t\tform_item_input.TDatePicker( { field: 'cc_expire' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Expiry Date' ), form_item_input, tab_payment_method_column1, '', null, true );\n\n\t\t// Credit Card Security Code (CSC)\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'cc_check', width: 60 } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Credit Card Security Code (CSC)' ), form_item_input, tab_payment_method_column1, '', null, true );\n\n\t\t// Card Holder Name\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'cc_name' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Card Holder Name' ), form_item_input, tab_payment_method_column1, '', null, true );\n\n\t\t// Card Issuing Banks Phone Number\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'cc_bank_phone' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Card Issuing Banks Phone Number' ), form_item_input, tab_payment_method_column1, '', null, true );\n\n\t\t// Signature\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.IMAGE_AVD_BROWSER );\n\n\t\tthis.file_browser = form_item_input.TImageAdvBrowser( { field: 'signature', show_browser: false } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Signature' ), form_item_input, tab_payment_method_column1, '', null, true, true );\n\n\t\t// Note\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_AREA );\n\n\t\tform_item_input.TTextArea( { field: 'note', width: '100%' } );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Note' ), form_item_input, tab_payment_method_column1, '', null, null, true );\n\n\t\tform_item_input.parent().width( '45%' );\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._( 'Client' ),\n\t\t\t\tin_column: 1,\n\t\t\t\tfield: 'client_id',\n\t\t\t\tlayout_name: 'global_client',\n\t\t\t\tapi_class: TTAPI.APIClient,\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._( 'Status' ),\n\t\t\t\tin_column: 1,\n\t\t\t\tfield: 'status_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._( '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._( 'Default' ),\n\t\t\t\tin_column: 2,\n\t\t\t\tfield: 'is_default',\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\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\tthis.current_edit_record[key] = c_value;\n\n\t\tif ( key === 'type_id' ) {\n\t\t\tthis.onTypeChange();\n\t\t}\n\n\t\tif ( key === 'bank_account_type_id' ) {\n\t\t\tthis.onBankAccountTypeChange();\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}\n\n\tonTypeChange() {\n\t\tif ( this.current_edit_record['type_id'] == 30 ) {\n\n\t\t\tthis.detachElement( 'bank_account_type_id' );\n\t\t\tthis.detachElement( 'bank_institution' );\n\t\t\tthis.detachElement( 'bank_transit' );\n\t\t\tthis.detachElement( 'bank_account' );\n\n\t\t\tthis.attachElement( 'cc_type_id' );\n\t\t\tthis.attachElement( 'cc_number' );\n\t\t\tthis.attachElement( 'cc_expire' );\n\t\t\tthis.attachElement( 'cc_check' );\n\t\t\tthis.attachElement( 'cc_name' );\n\t\t\tthis.attachElement( 'cc_bank_phone' );\n\n\t\t} else if ( this.current_edit_record['type_id'] == 40 ) {\n\t\t\tthis.attachElement( 'bank_account_type_id' );\n\t\t\tthis.attachElement( 'bank_institution' );\n\t\t\tthis.attachElement( 'bank_transit' );\n\t\t\tthis.attachElement( 'bank_account' );\n\n\t\t\tthis.detachElement( 'cc_type_id' );\n\t\t\tthis.detachElement( 'cc_number' );\n\t\t\tthis.detachElement( 'cc_expire' );\n\t\t\tthis.detachElement( 'cc_check' );\n\t\t\tthis.detachElement( 'cc_name' );\n\t\t\tthis.detachElement( 'cc_bank_phone' );\n\n\t\t\tthis.onBankAccountTypeChange();\n\t\t} else {\n\t\t\tthis.detachElement( 'bank_account_type_id' );\n\t\t\tthis.detachElement( 'bank_institution' );\n\t\t\tthis.detachElement( 'bank_transit' );\n\t\t\tthis.detachElement( 'bank_account' );\n\n\t\t\tthis.detachElement( 'cc_type_id' );\n\t\t\tthis.detachElement( 'cc_number' );\n\t\t\tthis.detachElement( 'cc_expire' );\n\t\t\tthis.detachElement( 'cc_check' );\n\t\t\tthis.detachElement( 'cc_name' );\n\t\t\tthis.detachElement( 'cc_bank_phone' );\n\t\t}\n\n\t\tthis.editFieldResize();\n\t}\n\n\tonBankAccountTypeChange() {\n\t\tif ( this.current_edit_record['bank_account_type_id'] == 200 && this.current_edit_record['type_id'] == 40 ) {\n\t\t\tthis.attachElement( 'bank_institution' );\n\t\t\tthis.edit_view_form_item_dic['bank_transit'].find( '.edit-view-form-item-label' ).text( $.i18n._( 'Bank Transit' ) );\n\t\t} else if ( this.current_edit_record['bank_account_type_id'] == 201 ) {\n\t\t\tthis.detachElement( 'bank_institution' );\n\t\t\tthis.edit_view_form_item_dic['bank_transit'].find( '.edit-view-form-item-label' ).text( $.i18n._( 'Routing Number' ) );\n\t\t}\n\n\t\tthis.editFieldResize();\n\n\t}\n}\n\nClientPaymentViewController.loadSubView = function( container, beforeViewLoadedFun, afterViewLoadedFun ) {\n\n\tGlobal.loadViewSource( 'ClientPayment', 'SubClientPaymentView.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\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_client_payment_view_controller );\n\t\t\t}\n\t\t}\n\t} );\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSxXQUFXLENBQUM7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLFdBQVcsQ0FBQztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSwyRkFBMkYsQ0FBQztBQUM1RixJQUFJO0FBQ0o7QUFDQSwyRkFBMkYsQ0FBQztBQUM1Rjs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUIsQ0FBQzs7QUFFbEI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2ludGVyZmFjZS9odG1sNS92aWV3cy9pbnZvaWNlL2NsaWVudF9wYXltZW50L0NsaWVudFBheW1lbnRWaWV3Q29udHJvbGxlci5qcz81NTQwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnQC9nbG9iYWwvd2lkZ2V0cy9maWxlYnJvd3Nlci9USW1hZ2UnO1xuaW1wb3J0ICdAL2dsb2JhbC93aWRnZXRzL2ZpbGVicm93c2VyL1RJbWFnZUFkdkJyb3dzZXInO1xuXG5leHBvcnQgY2xhc3MgQ2xpZW50UGF5bWVudFZpZXdDb250cm9sbGVyIGV4dGVuZHMgQmFzZVZpZXdDb250cm9sbGVyIHtcblx0Y29uc3RydWN0b3IoIG9wdGlvbnMgPSB7fSApIHtcblx0XHRfLmRlZmF1bHRzKCBvcHRpb25zLCB7XG5cdFx0XHRlbDogJyNjbGllbnRfcGF5bWVudF92aWV3X2NvbnRhaW5lcicsXG5cblx0XHRcdC8vIF9yZXF1aXJlZF9maWxlczogWydUSW1hZ2VBZHZCcm93c2VyJywgJ1RJbWFnZSddLFxuXG5cdFx0XHRzdGF0dXNfYXJyYXk6IG51bGwsXG5cdFx0XHR0eXBlX2FycmF5OiBudWxsLFxuXHRcdFx0Y3JlZGl0X2NhcmRfdHlwZV9hcnJheTogbnVsbCxcblx0XHRcdHN1Yl9kb2N1bWVudF92aWV3X2NvbnRyb2xsZXI6IG51bGwsXG5cdFx0XHRiYW5rX2FjY291bnRfdHlwZV9hcnJheTogbnVsbCxcblx0XHRcdGRvY3VtZW50X29iamVjdF90eXBlX2lkOiBudWxsLFxuXHRcdFx0ZmlsZV9icm93c2VyOiBudWxsXG5cdFx0fSApO1xuXG5cdFx0c3VwZXIoIG9wdGlvbnMgKTtcblx0fVxuXG5cdGluaXQoIG9wdGlvbnMgKSB7XG5cdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHR0aGlzLmVkaXRfdmlld190cGwgPSAnQ2xpZW50UGF5bWVudEVkaXRWaWV3Lmh0bWwnO1xuXHRcdHRoaXMucGVybWlzc2lvbl9pZCA9ICdjbGllbnRfcGF5bWVudCc7XG5cdFx0dGhpcy52aWV3SWQgPSAnQ2xpZW50UGF5bWVudCc7XG5cdFx0dGhpcy5zY3JpcHRfbmFtZSA9ICdDbGllbnRQYXltZW50Vmlldyc7XG5cdFx0dGhpcy50YWJsZV9uYW1lX2tleSA9ICdjbGllbnRfcGF5bWVudCc7XG5cdFx0dGhpcy5kb2N1bWVudF9vYmplY3RfdHlwZV9pZCA9IDkwO1xuXHRcdHRoaXMuY29udGV4dF9tZW51X25hbWUgPSAkLmkxOG4uXyggJ1BheW1lbnQgTWV0aG9kcycgKTtcblx0XHR0aGlzLm5hdmlnYXRpb25fbGFiZWwgPSAkLmkxOG4uXyggJ1BheW1lbnQgTWV0aG9kcycgKTtcblx0XHR0aGlzLmFwaSA9IFRUQVBJLkFQSUNsaWVudFBheW1lbnQ7XG5cblx0XHR0aGlzLnJlbmRlcigpO1xuXHRcdHRoaXMuYnVpbGRDb250ZXh0TWVudSgpO1xuXG5cdFx0aWYgKCAhdGhpcy5zdWJfdmlld19tb2RlICkge1xuXHRcdFx0dGhpcy5pbml0RGF0YSgpO1xuXHRcdH1cblx0fVxuXG5cdGluaXRPcHRpb25zKCkge1xuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cblx0XHR2YXIgb3B0aW9ucyA9IFtcblx0XHRcdHsgb3B0aW9uX25hbWU6ICdzdGF0dXMnLCBhcGk6IHRoaXMuYXBpIH0sXG5cdFx0XHR7IG9wdGlvbl9uYW1lOiAndHlwZScsIGFwaTogdGhpcy5hcGkgfSxcblx0XHRcdHsgb3B0aW9uX25hbWU6ICdiYW5rX2FjY291bnRfdHlwZScsIGFwaTogdGhpcy5hcGkgfSxcblx0XHRcdHsgb3B0aW9uX25hbWU6ICdjcmVkaXRfY2FyZF90eXBlJyxmaWVsZF9uYW1lOiAnY2NfdHlwZV9pZCcsIGFwaTogdGhpcy5hcGkgfSxcblx0XHRdO1xuXG5cdFx0dGhpcy5pbml0RHJvcERvd25PcHRpb25zKCBvcHRpb25zICk7XG5cblx0XHRpZiAoIEdsb2JhbC5pc1NldCggJHRoaXMuYWR2X3NlYXJjaF9maWVsZF91aV9kaWNbJ2lzX2RlZmF1bHQnXSApICkge1xuXHRcdFx0dGhpcy5iYXNpY19zZWFyY2hfZmllbGRfdWlfZGljWydpc19kZWZhdWx0J10uc2V0U291cmNlRGF0YSggR2xvYmFsLmJ1aWxkUmVjb3JkQXJyYXkoIHtcblx0XHRcdFx0MDogJ0ZhbHNlJyxcblx0XHRcdFx0MTogJ1RydWUnXG5cdFx0XHR9ICkgKTtcblx0XHR9XG5cdH1cblxuXHRnZXRDdXN0b21Db250ZXh0TWVudU1vZGVsKCkge1xuXHRcdHZhciBjb250ZXh0X21lbnVfbW9kZWwgPSB7XG5cdFx0XHRleGNsdWRlOiBbXSxcblx0XHRcdGluY2x1ZGU6IFsnZGVmYXVsdCddXG5cdFx0fTtcblxuXHRcdGlmICggIXRoaXMuc3ViX3ZpZXdfbW9kZSApIHtcblxuXHRcdFx0Y29udGV4dF9tZW51X21vZGVsLmluY2x1ZGUucHVzaChcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGxhYmVsOiAkLmkxOG4uXyggJ0p1bXAgVG8nICksXG5cdFx0XHRcdFx0aWQ6ICdqdW1wX3RvX2hlYWRlcicsXG5cdFx0XHRcdFx0bWVudV9hbGlnbjogJ3JpZ2h0Jyxcblx0XHRcdFx0XHRhY3Rpb25fZ3JvdXA6ICdqdW1wX3RvJyxcblx0XHRcdFx0XHRhY3Rpb25fZ3JvdXBfaGVhZGVyOiB0cnVlLFxuXHRcdFx0XHRcdHBlcm1pc3Npb25fcmVzdWx0OiBmYWxzZSAvLyB0byBoaWRlIGl0IGluIGxlZ2FjeSBjb250ZXh0IG1lbnUgYW5kIGF2b2lkIGVycm9ycyBpbiBsZWdhY3kgcGFyc2Vycy5cblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGxhYmVsOiAkLmkxOG4uXyggJ0VkaXQgQ2xpZW50JyApLFxuXHRcdFx0XHRcdGlkOiAnZWRpdF9jbGllbnQnLFxuXHRcdFx0XHRcdG1lbnVfYWxpZ246ICdyaWdodCcsXG5cdFx0XHRcdFx0YWN0aW9uX2dyb3VwOiAnanVtcF90bycsXG5cdFx0XHRcdFx0Z3JvdXA6ICduYXZpZ2F0aW9uJyxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGxhYmVsOiAkLmkxOG4uXyggJ0NsaWVudCBDb250YWN0cycgKSxcblx0XHRcdFx0XHRpZDogJ2NsaWVudF9jb250YWN0Jyxcblx0XHRcdFx0XHRtZW51X2FsaWduOiAncmlnaHQnLFxuXHRcdFx0XHRcdGFjdGlvbl9ncm91cDogJ2p1bXBfdG8nLFxuXHRcdFx0XHRcdGdyb3VwOiAnbmF2aWdhdGlvbicsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdUcmFuc2FjdGlvbnMnICksXG5cdFx0XHRcdFx0aWQ6ICd0cmFuc2FjdGlvbicsXG5cdFx0XHRcdFx0bWVudV9hbGlnbjogJ3JpZ2h0Jyxcblx0XHRcdFx0XHRhY3Rpb25fZ3JvdXA6ICdqdW1wX3RvJyxcblx0XHRcdFx0XHRncm91cDogJ25hdmlnYXRpb24nLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bGFiZWw6ICQuaTE4bi5fKCAnSW52b2ljZXMnICksXG5cdFx0XHRcdFx0aWQ6ICdpbnZvaWNlJyxcblx0XHRcdFx0XHRtZW51X2FsaWduOiAncmlnaHQnLFxuXHRcdFx0XHRcdGFjdGlvbl9ncm91cDogJ2p1bXBfdG8nLFxuXHRcdFx0XHRcdGdyb3VwOiAnbmF2aWdhdGlvbicsXG5cdFx0XHRcdH1cblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNvbnRleHRfbWVudV9tb2RlbDtcblx0fVxuXG5cdHNldEN1cnJlbnRFZGl0UmVjb3JkRGF0YSgpIHtcblx0XHQvLyBXaGVuIG1hc3MgZWRpdGluZywgdGhlc2UgZmllbGRzIG1heSBub3QgYmUgdGhlIGNvbW1vbiBkYXRhLCBzbyB0aGVpciB2YWx1ZSB3aWxsIGJlIHVuZGVmaW5lZCwgc28gdGhpcyB3aWxsIGNhdXNlIHRoZWlyIGNoYW5nZSBldmVudCBjYW5ub3Qgd29yayBwcm9wZXJseS5cblx0XHR0aGlzLnNldERlZmF1bHREYXRhKCB7XG5cdFx0XHQndHlwZV9pZCc6IDMwLFxuXHRcdFx0J2JhbmtfYWNjb3VudF90eXBlX2lkJzogMjAwXG5cdFx0fSApO1xuXG5cdFx0Ly9TZXQgY3VycmVudCBlZGl0IHJlY29yZCBkYXRhIHRvIGFsbCB3aWRnZXRzXG5cdFx0Zm9yICggdmFyIGtleSBpbiB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmQgKSB7XG5cblx0XHRcdGlmICggIXRoaXMuY3VycmVudF9lZGl0X3JlY29yZC5oYXNPd25Qcm9wZXJ0eSgga2V5ICkgKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHR2YXIgd2lkZ2V0ID0gdGhpcy5lZGl0X3ZpZXdfdWlfZGljW2tleV07XG5cdFx0XHRpZiAoIEdsb2JhbC5pc1NldCggd2lkZ2V0ICkgKSB7XG5cdFx0XHRcdHdpZGdldC5zZXRWYWx1ZSggdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkW2tleV0gKTtcblxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICggdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkLnNpZ25hdHVyZV9leGlzdHMgJiYgdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkLmlkICYmIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZC5jbGllbnRfaWQgKSB7XG5cdFx0XHR2YXIgdXJsID0gU2VydmljZUNhbGxlci5nZXRVUkxCeU9iamVjdFR5cGUoICdmaWxlX2Rvd25sb2FkJyApICsgJyZvYmplY3RfdHlwZT1jbGllbnRfcGF5bWVudF9zaWduYXR1cmUmb2JqZWN0X2lkPScgKyB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmQuaWQgKyAnJnBhcmVudF9pZD0nICsgdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkLmNsaWVudF9pZDtcblx0XHRcdHRoaXMuZmlsZV9icm93c2VyLnNldEltYWdlKCB1cmwgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAnc2lnbmF0dXJlJyApO1xuXHRcdH1cblxuXHRcdHRoaXMuY29sbGVjdFVJRGF0YVRvQ3VycmVudEVkaXRSZWNvcmQoKTtcblx0XHR0aGlzLnNldEVkaXRWaWV3RGF0YURvbmUoKTtcblx0fVxuXG5cdHNldEN1c3RvbURlZmF1bHRNZW51SWNvbiggaWQsIGNvbnRleHRfYnRuLCBncmlkX3NlbGVjdGVkX2xlbmd0aCApIHtcblx0XHRzd2l0Y2ggKCBpZCApIHtcblx0XHRcdGNhc2UgJ2xvZ2luJzpcblx0XHRcdFx0dGhpcy5zZXREZWZhdWx0TWVudUxvZ2luSWNvbiggY29udGV4dF9idG4sIGdyaWRfc2VsZWN0ZWRfbGVuZ3RoICk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnZWRpdF9jbGllbnQnOlxuXHRcdFx0XHR0aGlzLnNldERlZmF1bHRNZW51RWRpdENsaWVudEljb24oIGNvbnRleHRfYnRuLCBncmlkX3NlbGVjdGVkX2xlbmd0aCApO1xuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblxuXHRzZXREZWZhdWx0TWVudUVkaXRDbGllbnRJY29uKCBjb250ZXh0X2J0biwgZ3JpZF9zZWxlY3RlZF9sZW5ndGgsIHBJZCApIHtcblx0XHRpZiAoIGdyaWRfc2VsZWN0ZWRfbGVuZ3RoID09PSAxICkge1xuXHRcdFx0Q29udGV4dE1lbnVNYW5hZ2VyLmRpc2FibGVNZW51SXRlbSggdGhpcy5kZXRlcm1pbmVDb250ZXh0TWVudU1vdW50QXR0cmlidXRlcygpLmlkLCBjb250ZXh0X2J0bi5pZCwgdHJ1ZSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRDb250ZXh0TWVudU1hbmFnZXIuZGlzYWJsZU1lbnVJdGVtKCB0aGlzLmRldGVybWluZUNvbnRleHRNZW51TW91bnRBdHRyaWJ1dGVzKCkuaWQsIGNvbnRleHRfYnRuLmlkLCBmYWxzZSApO1xuXHRcdH1cblx0fVxuXG5cdG9uQ3VzdG9tQ29udGV4dENsaWNrKCBpZCApIHtcblx0XHRzd2l0Y2ggKCBpZCApIHtcblx0XHRcdGNhc2UgJ2Rvd25sb2FkJzpcblx0XHRcdFx0dGhpcy5vbkRvd25sb2FkQ2xpY2soKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdlZGl0X2NsaWVudCc6XG5cdFx0XHRjYXNlICdjbGllbnRfY29udGFjdCc6XG5cdFx0XHRjYXNlICdpbnZvaWNlJzpcblx0XHRcdGNhc2UgJ3RyYW5zYWN0aW9uJzpcblx0XHRcdGNhc2UgJ2V4cG9ydF9leGNlbCc6XG5cdFx0XHRcdHRoaXMub25OYXZpZ2F0aW9uQ2xpY2soIGlkICk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxuXG5cdGdldEZpbHRlckNvbHVtbnNGcm9tRGlzcGxheUNvbHVtbnMoKSB7XG5cdFx0dmFyIGNvbHVtbl9maWx0ZXIgPSB7fTtcblx0XHRjb2x1bW5fZmlsdGVyLmlzX293bmVyID0gdHJ1ZTtcblx0XHRjb2x1bW5fZmlsdGVyLmlkID0gdHJ1ZTtcblx0XHRjb2x1bW5fZmlsdGVyLmlzX2NoaWxkID0gdHJ1ZTtcblx0XHRjb2x1bW5fZmlsdGVyLmluX3VzZSA9IHRydWU7XG5cdFx0Y29sdW1uX2ZpbHRlci5maXJzdF9uYW1lID0gdHJ1ZTtcblx0XHRjb2x1bW5fZmlsdGVyLmxhc3RfbmFtZSA9IHRydWU7XG5cdFx0Y29sdW1uX2ZpbHRlci5jbGllbnRfaWQgPSB0cnVlO1xuXG5cdFx0Ly8gRXJyb3I6IFVuYWJsZSB0byBnZXQgcHJvcGVydHkgJ2dldEdyaWRQYXJhbScgb2YgdW5kZWZpbmVkIG9yIG51bGwgcmVmZXJlbmNlXG5cdFx0dmFyIGRpc3BsYXlfY29sdW1ucyA9IFtdO1xuXHRcdGlmICggdGhpcy5ncmlkICkge1xuXHRcdFx0ZGlzcGxheV9jb2x1bW5zID0gdGhpcy5ncmlkLmdldEdyaWRQYXJhbSggJ2NvbE1vZGVsJyApO1xuXHRcdH1cblxuXHRcdGlmICggZGlzcGxheV9jb2x1bW5zICkge1xuXHRcdFx0dmFyIGxlbiA9IGRpc3BsYXlfY29sdW1ucy5sZW5ndGg7XG5cblx0XHRcdGZvciAoIHZhciBpID0gMDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdFx0XHR2YXIgY29sdW1uX2luZm8gPSBkaXNwbGF5X2NvbHVtbnNbaV07XG5cdFx0XHRcdGNvbHVtbl9maWx0ZXJbY29sdW1uX2luZm8ubmFtZV0gPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBjb2x1bW5fZmlsdGVyO1xuXHR9XG5cblx0b25OYXZpZ2F0aW9uQ2xpY2soIGljb25OYW1lICkge1xuXG5cdFx0dmFyICR0aGlzID0gdGhpcztcblxuXHRcdHZhciBncmlkX3NlbGVjdGVkX2lkX2FycmF5O1xuXG5cdFx0dmFyIGZpbHRlciA9IHsgZmlsdGVyX2RhdGE6IHt9IH07XG5cblx0XHR2YXIgY2xpZW50X2lkcyA9IFtdO1xuXG5cdFx0aWYgKCAkdGhpcy5lZGl0X3ZpZXcgJiYgJHRoaXMuY3VycmVudF9lZGl0X3JlY29yZC5pZCApIHtcblx0XHRcdGNsaWVudF9pZHMucHVzaCggJHRoaXMuY3VycmVudF9lZGl0X3JlY29yZC5jbGllbnRfaWQgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Z3JpZF9zZWxlY3RlZF9pZF9hcnJheSA9IHRoaXMuZ2V0R3JpZFNlbGVjdElkQXJyYXkoKTtcblx0XHRcdCQuZWFjaCggZ3JpZF9zZWxlY3RlZF9pZF9hcnJheSwgZnVuY3Rpb24oIGluZGV4LCB2YWx1ZSApIHtcblx0XHRcdFx0dmFyIGdyaWRfc2VsZWN0ZWRfcm93ID0gJHRoaXMuZ2V0UmVjb3JkRnJvbUdyaWRCeUlkKCB2YWx1ZSApO1xuXHRcdFx0XHRjbGllbnRfaWRzLnB1c2goIGdyaWRfc2VsZWN0ZWRfcm93LmNsaWVudF9pZCApO1xuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdGZpbHRlci5maWx0ZXJfZGF0YS5jbGllbnRfaWQgPSBjbGllbnRfaWRzO1xuXG5cdFx0c3dpdGNoICggaWNvbk5hbWUgKSB7XG5cdFx0XHRjYXNlICdlZGl0X2NsaWVudCc6XG5cdFx0XHRcdGlmICggY2xpZW50X2lkcy5sZW5ndGggPiAwICkge1xuXHRcdFx0XHRcdEluZGV4Vmlld0NvbnRyb2xsZXIub3BlbkVkaXRWaWV3KCB0aGlzLCAnQ2xpZW50JywgY2xpZW50X2lkc1swXSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnY2xpZW50X2NvbnRhY3QnOlxuXHRcdFx0XHRHbG9iYWwuYWRkVmlld1RhYiggJHRoaXMudmlld0lkLCAkLmkxOG4uXyggJ1BheW1lbnQgTWV0aG9kcycgKSwgd2luZG93LmxvY2F0aW9uLmhyZWYgKTtcblx0XHRcdFx0SW5kZXhWaWV3Q29udHJvbGxlci5nb1RvVmlldyggJ0NsaWVudENvbnRhY3QnLCBmaWx0ZXIgKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdpbnZvaWNlJzpcblx0XHRcdFx0R2xvYmFsLmFkZFZpZXdUYWIoICR0aGlzLnZpZXdJZCwgJC5pMThuLl8oICdQYXltZW50IE1ldGhvZHMnICksIHdpbmRvdy5sb2NhdGlvbi5ocmVmICk7XG5cdFx0XHRcdEluZGV4Vmlld0NvbnRyb2xsZXIuZ29Ub1ZpZXcoICdJbnZvaWNlJywgZmlsdGVyICk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAndHJhbnNhY3Rpb24nOlxuXHRcdFx0XHRHbG9iYWwuYWRkVmlld1RhYiggJHRoaXMudmlld0lkLCAkLmkxOG4uXyggJ1BheW1lbnQgTWV0aG9kcycgKSwgd2luZG93LmxvY2F0aW9uLmhyZWYgKTtcblx0XHRcdFx0SW5kZXhWaWV3Q29udHJvbGxlci5nb1RvVmlldyggJ0ludm9pY2VUcmFuc2FjdGlvbicsIGZpbHRlciApO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ2V4cG9ydF9leGNlbCc6XG5cdFx0XHRcdHRoaXMub25FeHBvcnRDbGljayggJ2V4cG9ydCcgKyB0aGlzLmFwaS5rZXlfbmFtZSApO1xuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblxuXHRidWlsZEVkaXRWaWV3VUkoKSB7XG5cblx0XHRzdXBlci5idWlsZEVkaXRWaWV3VUkoKTtcblxuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cblx0XHR2YXIgdGFiX21vZGVsID0ge1xuXHRcdFx0J3RhYl9wYXltZW50X21ldGhvZCc6IHsgJ2xhYmVsJzogJC5pMThuLl8oICdQYXltZW50IE1ldGhvZCcgKSB9LFxuXHRcdFx0J3RhYl9hdHRhY2htZW50JzogdHJ1ZSxcblx0XHRcdCd0YWJfYXVkaXQnOiB0cnVlLFxuXHRcdH07XG5cdFx0dGhpcy5zZXRUYWJNb2RlbCggdGFiX21vZGVsICk7XG5cblx0XHR0aGlzLm5hdmlnYXRpb24uQUNvbWJvQm94KCB7XG5cdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSUNsaWVudFBheW1lbnQsXG5cdFx0XHRpZDogdGhpcy5zY3JpcHRfbmFtZSArICdfbmF2aWdhdGlvbicsXG5cdFx0XHRhbGxvd19tdWx0aXBsZV9zZWxlY3Rpb246IGZhbHNlLFxuXHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfY2xpZW50X3BheW1lbnQnLFxuXHRcdFx0bmF2aWdhdGlvbl9tb2RlOiB0cnVlLFxuXHRcdFx0c2hvd19zZWFyY2hfaW5wdXRzOiB0cnVlXG5cdFx0fSApO1xuXG5cdFx0dGhpcy5zZXROYXZpZ2F0aW9uKCk7XG5cblx0XHQvL1RhYiAwIHN0YXJ0XG5cblx0XHR2YXIgdGFiX3BheW1lbnRfbWV0aG9kID0gdGhpcy5lZGl0X3ZpZXdfdGFiLmZpbmQoICcjdGFiX3BheW1lbnRfbWV0aG9kJyApO1xuXG5cdFx0dmFyIHRhYl9wYXltZW50X21ldGhvZF9jb2x1bW4xID0gdGFiX3BheW1lbnRfbWV0aG9kLmZpbmQoICcuZmlyc3QtY29sdW1uJyApO1xuXG5cdFx0dGhpcy5lZGl0X3ZpZXdfdGFic1swXSA9IFtdO1xuXG5cdFx0dGhpcy5lZGl0X3ZpZXdfdGFic1swXS5wdXNoKCB0YWJfcGF5bWVudF9tZXRob2RfY29sdW1uMSApO1xuXG5cdFx0Ly8gQ2xpZW50XG5cdFx0dmFyIGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1ggKTtcblxuXHRcdGZvcm1faXRlbV9pbnB1dC5BQ29tYm9Cb3goIHtcblx0XHRcdGFwaV9jbGFzczogVFRBUEkuQVBJQ2xpZW50LFxuXHRcdFx0YWxsb3dfbXVsdGlwbGVfc2VsZWN0aW9uOiBmYWxzZSxcblx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX2NsaWVudCcsXG5cdFx0XHRzaG93X3NlYXJjaF9pbnB1dHM6IHRydWUsXG5cdFx0XHRzZXRfZW1wdHk6IHRydWUsXG5cdFx0XHRmaWVsZDogJ2NsaWVudF9pZCdcblx0XHR9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdDbGllbnQnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX3BheW1lbnRfbWV0aG9kX2NvbHVtbjEsICcnICk7XG5cblx0XHQvLyBTdGF0dXNcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkNPTUJPX0JPWCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UQ29tYm9Cb3goIHsgZmllbGQ6ICdzdGF0dXNfaWQnIH0gKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuc2V0U291cmNlRGF0YSggJHRoaXMuc3RhdHVzX2FycmF5ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdTdGF0dXMnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX3BheW1lbnRfbWV0aG9kX2NvbHVtbjEgKTtcblxuXHRcdC8vIFR5cGVcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkNPTUJPX0JPWCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UQ29tYm9Cb3goIHsgZmllbGQ6ICd0eXBlX2lkJyB9ICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LnNldFNvdXJjZURhdGEoICR0aGlzLnR5cGVfYXJyYXkgKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ1R5cGUnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX3BheW1lbnRfbWV0aG9kX2NvbHVtbjEgKTtcblxuXHRcdC8vIERlZmF1bHRcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkNIRUNLQk9YICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRDaGVja2JveCggeyBmaWVsZDogJ2lzX2RlZmF1bHQnIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0RlZmF1bHQnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX3BheW1lbnRfbWV0aG9kX2NvbHVtbjEgKTtcblxuXHRcdC8vIEJhbmsgVHlwZVxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQ09NQk9fQk9YICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRDb21ib0JveCggeyBmaWVsZDogJ2JhbmtfYWNjb3VudF90eXBlX2lkJyB9ICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LnNldFNvdXJjZURhdGEoICR0aGlzLmJhbmtfYWNjb3VudF90eXBlX2FycmF5ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdCYW5rIFR5cGUnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX3BheW1lbnRfbWV0aG9kX2NvbHVtbjEsICcnLCBudWxsLCB0cnVlICk7XG5cblx0XHQvLyBJbnN0aXR1dGlvbiBOdW1iZXJcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHRJbnB1dCggeyBmaWVsZDogJ2JhbmtfaW5zdGl0dXRpb24nLCB3aWR0aDogMzAgfSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnSW5zdGl0dXRpb24gTnVtYmVyJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9wYXltZW50X21ldGhvZF9jb2x1bW4xLCAnJywgbnVsbCwgdHJ1ZSApO1xuXG5cdFx0Ly8gQmFuayBUcmFuc2l0XG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUX0lOUFVUICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0SW5wdXQoIHsgZmllbGQ6ICdiYW5rX3RyYW5zaXQnLCB3aWR0aDogMTAwIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0JhbmsgVHJhbnNpdCcgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfcGF5bWVudF9tZXRob2RfY29sdW1uMSwgJycsIG51bGwsIHRydWUgKTtcblxuXHRcdC8vIEJhbmsgdHlwZSBjaGFuZ2VcblxuXHRcdC8vIEFjY291bnQgTnVtYmVyXG5cblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHRJbnB1dCggeyBmaWVsZDogJ2JhbmtfYWNjb3VudCcsIHdpZHRoOiAxMjAgfSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnQWNjb3VudCBOdW1iZXInICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX3BheW1lbnRfbWV0aG9kX2NvbHVtbjEsICcnLCBudWxsLCB0cnVlICk7XG5cblx0XHQvLyBDcmVkaXQgQ2FyZCBUeXBlXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5DT01CT19CT1ggKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuVENvbWJvQm94KCB7IGZpZWxkOiAnY2NfdHlwZV9pZCcgfSApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5zZXRTb3VyY2VEYXRhKCAkdGhpcy5jcmVkaXRfY2FyZF90eXBlX2FycmF5ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdDcmVkaXQgQ2FyZCBUeXBlJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9wYXltZW50X21ldGhvZF9jb2x1bW4xLCAnJywgbnVsbCwgdHJ1ZSApO1xuXG5cdFx0Ly8gQ3JlZGl0IENhcmQgTnVtYmVyXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUX0lOUFVUICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0SW5wdXQoIHsgZmllbGQ6ICdjY19udW1iZXInLCB3aWR0aDogMTIwIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0NyZWRpdCBDYXJkIE51bWJlcicgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfcGF5bWVudF9tZXRob2RfY29sdW1uMSwgJycsIG51bGwsIHRydWUgKTtcblxuXHRcdC8vIEV4cGlyeSBEYXRlXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5EQVRFX1BJQ0tFUiApO1xuXG5cdFx0Zm9ybV9pdGVtX2lucHV0LlREYXRlUGlja2VyKCB7IGZpZWxkOiAnY2NfZXhwaXJlJyB9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdFeHBpcnkgRGF0ZScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfcGF5bWVudF9tZXRob2RfY29sdW1uMSwgJycsIG51bGwsIHRydWUgKTtcblxuXHRcdC8vIENyZWRpdCBDYXJkIFNlY3VyaXR5IENvZGUgKENTQylcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHRJbnB1dCggeyBmaWVsZDogJ2NjX2NoZWNrJywgd2lkdGg6IDYwIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0NyZWRpdCBDYXJkIFNlY3VyaXR5IENvZGUgKENTQyknICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX3BheW1lbnRfbWV0aG9kX2NvbHVtbjEsICcnLCBudWxsLCB0cnVlICk7XG5cblx0XHQvLyBDYXJkIEhvbGRlciBOYW1lXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUX0lOUFVUICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0SW5wdXQoIHsgZmllbGQ6ICdjY19uYW1lJyB9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdDYXJkIEhvbGRlciBOYW1lJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9wYXltZW50X21ldGhvZF9jb2x1bW4xLCAnJywgbnVsbCwgdHJ1ZSApO1xuXG5cdFx0Ly8gQ2FyZCBJc3N1aW5nIEJhbmtzIFBob25lIE51bWJlclxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVF9JTlBVVCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dElucHV0KCB7IGZpZWxkOiAnY2NfYmFua19waG9uZScgfSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnQ2FyZCBJc3N1aW5nIEJhbmtzIFBob25lIE51bWJlcicgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfcGF5bWVudF9tZXRob2RfY29sdW1uMSwgJycsIG51bGwsIHRydWUgKTtcblxuXHRcdC8vIFNpZ25hdHVyZVxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuSU1BR0VfQVZEX0JST1dTRVIgKTtcblxuXHRcdHRoaXMuZmlsZV9icm93c2VyID0gZm9ybV9pdGVtX2lucHV0LlRJbWFnZUFkdkJyb3dzZXIoIHsgZmllbGQ6ICdzaWduYXR1cmUnLCBzaG93X2Jyb3dzZXI6IGZhbHNlIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ1NpZ25hdHVyZScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfcGF5bWVudF9tZXRob2RfY29sdW1uMSwgJycsIG51bGwsIHRydWUsIHRydWUgKTtcblxuXHRcdC8vIE5vdGVcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfQVJFQSApO1xuXG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0QXJlYSggeyBmaWVsZDogJ25vdGUnLCB3aWR0aDogJzEwMCUnIH0gKTtcblxuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnTm90ZScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfcGF5bWVudF9tZXRob2RfY29sdW1uMSwgJycsIG51bGwsIG51bGwsIHRydWUgKTtcblxuXHRcdGZvcm1faXRlbV9pbnB1dC5wYXJlbnQoKS53aWR0aCggJzQ1JScgKTtcblx0fVxuXG5cdGJ1aWxkU2VhcmNoRmllbGRzKCkge1xuXG5cdFx0c3VwZXIuYnVpbGRTZWFyY2hGaWVsZHMoKTtcblx0XHR0aGlzLnNlYXJjaF9maWVsZHMgPSBbXG5cblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdDbGllbnQnICksXG5cdFx0XHRcdGluX2NvbHVtbjogMSxcblx0XHRcdFx0ZmllbGQ6ICdjbGllbnRfaWQnLFxuXHRcdFx0XHRsYXlvdXRfbmFtZTogJ2dsb2JhbF9jbGllbnQnLFxuXHRcdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSUNsaWVudCxcblx0XHRcdFx0bXVsdGlwbGU6IHRydWUsXG5cdFx0XHRcdGJhc2ljX3NlYXJjaDogdHJ1ZSxcblx0XHRcdFx0YWR2X3NlYXJjaDogZmFsc2UsXG5cdFx0XHRcdGZvcm1faXRlbV90eXBlOiBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1hcblx0XHRcdH0gKSxcblxuXHRcdFx0bmV3IFNlYXJjaEZpZWxkKCB7XG5cdFx0XHRcdGxhYmVsOiAkLmkxOG4uXyggJ1N0YXR1cycgKSxcblx0XHRcdFx0aW5fY29sdW1uOiAxLFxuXHRcdFx0XHRmaWVsZDogJ3N0YXR1c19pZCcsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IGZhbHNlLFxuXHRcdFx0XHRsYXlvdXRfbmFtZTogJ2dsb2JhbF9vcHRpb25fY29sdW1uJyxcblx0XHRcdFx0Zm9ybV9pdGVtX3R5cGU6IEZvcm1JdGVtVHlwZS5BV0VTT01FX0JPWFxuXHRcdFx0fSApLFxuXG5cdFx0XHRuZXcgU2VhcmNoRmllbGQoIHtcblx0XHRcdFx0bGFiZWw6ICQuaTE4bi5fKCAnVHlwZScgKSxcblx0XHRcdFx0aW5fY29sdW1uOiAxLFxuXHRcdFx0XHRmaWVsZDogJ3R5cGVfaWQnLFxuXHRcdFx0XHRtdWx0aXBsZTogdHJ1ZSxcblx0XHRcdFx0YmFzaWNfc2VhcmNoOiB0cnVlLFxuXHRcdFx0XHRhZHZfc2VhcmNoOiBmYWxzZSxcblx0XHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfb3B0aW9uX2NvbHVtbicsXG5cdFx0XHRcdGZvcm1faXRlbV90eXBlOiBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1hcblx0XHRcdH0gKSxcblxuXHRcdFx0bmV3IFNlYXJjaEZpZWxkKCB7XG5cdFx0XHRcdGxhYmVsOiAkLmkxOG4uXyggJ0RlZmF1bHQnICksXG5cdFx0XHRcdGluX2NvbHVtbjogMixcblx0XHRcdFx0ZmllbGQ6ICdpc19kZWZhdWx0Jyxcblx0XHRcdFx0bXVsdGlwbGU6IHRydWUsXG5cdFx0XHRcdGJhc2ljX3NlYXJjaDogdHJ1ZSxcblx0XHRcdFx0YWR2X3NlYXJjaDogZmFsc2UsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX29wdGlvbl9jb2x1bW4nLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9ICksXG5cblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdDcmVhdGVkIEJ5JyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDIsXG5cdFx0XHRcdGZpZWxkOiAnY3JlYXRlZF9ieScsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX3VzZXInLFxuXHRcdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSVVzZXIsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IGZhbHNlLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9ICksXG5cblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdVcGRhdGVkIEJ5JyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDIsXG5cdFx0XHRcdGZpZWxkOiAndXBkYXRlZF9ieScsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX3VzZXInLFxuXHRcdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSVVzZXIsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IGZhbHNlLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9IClcblx0XHRdO1xuXHR9XG5cblx0b25Gb3JtSXRlbUNoYW5nZSggdGFyZ2V0LCBkb05vdFZhbGlkYXRlICkge1xuXHRcdHRoaXMuc2V0SXNDaGFuZ2VkKCB0YXJnZXQgKTtcblx0XHR0aGlzLnNldE1hc3NFZGl0aW5nRmllbGRzV2hlbkZvcm1DaGFuZ2UoIHRhcmdldCApO1xuXG5cdFx0dmFyIGtleSA9IHRhcmdldC5nZXRGaWVsZCgpO1xuXHRcdHZhciBjX3ZhbHVlID0gdGFyZ2V0LmdldFZhbHVlKCk7XG5cblx0XHR0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRba2V5XSA9IGNfdmFsdWU7XG5cblx0XHRpZiAoIGtleSA9PT0gJ3R5cGVfaWQnICkge1xuXHRcdFx0dGhpcy5vblR5cGVDaGFuZ2UoKTtcblx0XHR9XG5cblx0XHRpZiAoIGtleSA9PT0gJ2JhbmtfYWNjb3VudF90eXBlX2lkJyApIHtcblx0XHRcdHRoaXMub25CYW5rQWNjb3VudFR5cGVDaGFuZ2UoKTtcblx0XHR9XG5cblx0XHRpZiAoICFkb05vdFZhbGlkYXRlICkge1xuXHRcdFx0dGhpcy52YWxpZGF0ZSgpO1xuXHRcdH1cblx0fVxuXG5cdHNldEVkaXRWaWV3RGF0YURvbmUoKSB7XG5cdFx0c3VwZXIuc2V0RWRpdFZpZXdEYXRhRG9uZSgpO1xuXHRcdHRoaXMub25UeXBlQ2hhbmdlKCk7XG5cdH1cblxuXHRvblR5cGVDaGFuZ2UoKSB7XG5cdFx0aWYgKCB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRbJ3R5cGVfaWQnXSA9PSAzMCApIHtcblxuXHRcdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAnYmFua19hY2NvdW50X3R5cGVfaWQnICk7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdiYW5rX2luc3RpdHV0aW9uJyApO1xuXHRcdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAnYmFua190cmFuc2l0JyApO1xuXHRcdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAnYmFua19hY2NvdW50JyApO1xuXG5cdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICdjY190eXBlX2lkJyApO1xuXHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAnY2NfbnVtYmVyJyApO1xuXHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAnY2NfZXhwaXJlJyApO1xuXHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAnY2NfY2hlY2snICk7XG5cdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICdjY19uYW1lJyApO1xuXHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAnY2NfYmFua19waG9uZScgKTtcblxuXHRcdH0gZWxzZSBpZiAoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFsndHlwZV9pZCddID09IDQwICkge1xuXHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAnYmFua19hY2NvdW50X3R5cGVfaWQnICk7XG5cdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICdiYW5rX2luc3RpdHV0aW9uJyApO1xuXHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAnYmFua190cmFuc2l0JyApO1xuXHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAnYmFua19hY2NvdW50JyApO1xuXG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdjY190eXBlX2lkJyApO1xuXHRcdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAnY2NfbnVtYmVyJyApO1xuXHRcdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAnY2NfZXhwaXJlJyApO1xuXHRcdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAnY2NfY2hlY2snICk7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdjY19uYW1lJyApO1xuXHRcdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAnY2NfYmFua19waG9uZScgKTtcblxuXHRcdFx0dGhpcy5vbkJhbmtBY2NvdW50VHlwZUNoYW5nZSgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdiYW5rX2FjY291bnRfdHlwZV9pZCcgKTtcblx0XHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ2JhbmtfaW5zdGl0dXRpb24nICk7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdiYW5rX3RyYW5zaXQnICk7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdiYW5rX2FjY291bnQnICk7XG5cblx0XHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ2NjX3R5cGVfaWQnICk7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdjY19udW1iZXInICk7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdjY19leHBpcmUnICk7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdjY19jaGVjaycgKTtcblx0XHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ2NjX25hbWUnICk7XG5cdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICdjY19iYW5rX3Bob25lJyApO1xuXHRcdH1cblxuXHRcdHRoaXMuZWRpdEZpZWxkUmVzaXplKCk7XG5cdH1cblxuXHRvbkJhbmtBY2NvdW50VHlwZUNoYW5nZSgpIHtcblx0XHRpZiAoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFsnYmFua19hY2NvdW50X3R5cGVfaWQnXSA9PSAyMDAgJiYgdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkWyd0eXBlX2lkJ10gPT0gNDAgKSB7XG5cdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICdiYW5rX2luc3RpdHV0aW9uJyApO1xuXHRcdFx0dGhpcy5lZGl0X3ZpZXdfZm9ybV9pdGVtX2RpY1snYmFua190cmFuc2l0J10uZmluZCggJy5lZGl0LXZpZXctZm9ybS1pdGVtLWxhYmVsJyApLnRleHQoICQuaTE4bi5fKCAnQmFuayBUcmFuc2l0JyApICk7XG5cdFx0fSBlbHNlIGlmICggdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkWydiYW5rX2FjY291bnRfdHlwZV9pZCddID09IDIwMSApIHtcblx0XHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ2JhbmtfaW5zdGl0dXRpb24nICk7XG5cdFx0XHR0aGlzLmVkaXRfdmlld19mb3JtX2l0ZW1fZGljWydiYW5rX3RyYW5zaXQnXS5maW5kKCAnLmVkaXQtdmlldy1mb3JtLWl0ZW0tbGFiZWwnICkudGV4dCggJC5pMThuLl8oICdSb3V0aW5nIE51bWJlcicgKSApO1xuXHRcdH1cblxuXHRcdHRoaXMuZWRpdEZpZWxkUmVzaXplKCk7XG5cblx0fVxufVxuXG5DbGllbnRQYXltZW50Vmlld0NvbnRyb2xsZXIubG9hZFN1YlZpZXcgPSBmdW5jdGlvbiggY29udGFpbmVyLCBiZWZvcmVWaWV3TG9hZGVkRnVuLCBhZnRlclZpZXdMb2FkZWRGdW4gKSB7XG5cblx0R2xvYmFsLmxvYWRWaWV3U291cmNlKCAnQ2xpZW50UGF5bWVudCcsICdTdWJDbGllbnRQYXltZW50Vmlldy5odG1sJywgZnVuY3Rpb24oIHJlc3VsdCApIHtcblx0XHR2YXIgYXJncyA9IHt9O1xuXHRcdHZhciB0ZW1wbGF0ZSA9IF8udGVtcGxhdGUoIHJlc3VsdCApO1xuXG5cdFx0aWYgKCBHbG9iYWwuaXNTZXQoIGJlZm9yZVZpZXdMb2FkZWRGdW4gKSApIHtcblx0XHRcdGJlZm9yZVZpZXdMb2FkZWRGdW4oKTtcblx0XHR9XG5cblx0XHRpZiAoIEdsb2JhbC5pc1NldCggY29udGFpbmVyICkgKSB7XG5cdFx0XHRjb250YWluZXIuaHRtbCggdGVtcGxhdGUoIGFyZ3MgKSApO1xuXHRcdFx0aWYgKCBHbG9iYWwuaXNTZXQoIGFmdGVyVmlld0xvYWRlZEZ1biApICkge1xuXHRcdFx0XHRhZnRlclZpZXdMb2FkZWRGdW4oIHN1Yl9jbGllbnRfcGF5bWVudF92aWV3X2NvbnRyb2xsZXIgKTtcblx0XHRcdH1cblx0XHR9XG5cdH0gKTtcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8253\n")}}]);