TimeTrex/interface/html5/dist/company-remittance_source_account-RemittanceSourceAccountViewController.bundle.js

1 line
94 KiB
JavaScript

(self.webpackChunktimetrex=self.webpackChunktimetrex||[]).push([["company-remittance_source_account-RemittanceSourceAccountViewController","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 = $( '<div class=\"file_browser_overlay\"><img src=\"theme/default/images/delete-512.png\" style=\"position:absolute;width:32px;height:32px;top:' + top + 'px;left:' + left + 'px;\"></div>' );\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<div class=\"file-browser\">\n\t\t<img class=\"image\">\n\t\t<button id=\"upload_image\" class=\"t-button file-browser-btn\" style=\"display: block\"></button>\n\t</div>\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")},3401:(__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 */ \"RemittanceSourceAccountViewController\": () => (/* binding */ RemittanceSourceAccountViewController)\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 RemittanceSourceAccountViewController extends BaseViewController {\n\tconstructor( options = {} ) {\n\t\t_.defaults( options, {\n\t\t\tel: '#remittance_source_account_view_container',\n\n\t\t\tstatus_array: null,\n\t\t\ttype_array: null,\n\t\t\tcountry_array: null,\n\t\t\tdata_format_array: null,\n\t\t\tach_transaction_type_array: null,\n\t\t\tach_transaction_type_data: null,\n\t\t\tcompany_api: null\n\t\t} );\n\n\t\tsuper( options );\n\t}\n\n\tinit() {\n\t\t//this._super('initialize' );\n\t\tthis.edit_view_tpl = 'RemittanceSourceAccountEditView.html';\n\t\tthis.permission_id = 'remittance_source_account';\n\t\tthis.viewId = 'RemittanceSourceAccount';\n\t\tthis.script_name = 'RemittanceSourceAccountView';\n\t\tthis.table_name_key = 'remittance_source_account';\n\t\tthis.context_menu_name = $.i18n._( 'Remittance Source Accounts' );\n\t\tthis.navigation_label = $.i18n._( 'Remittance Source Account' );\n\t\tthis.api = TTAPI.APIRemittanceSourceAccount;\n\t\tthis.company_api = TTAPI.APICompany;\n\n\t\tthis.render();\n\t\tthis.buildContextMenu();\n\n\t\tthis.initData();\n\n\t\t$( '#tab_advanced_content_div .edit-view-form-item-div .edit-view-form-item-label-div' ).css( 'border-top-left-radius', '0px' );\n\t\t$( '#tab_advanced_content_div .edit-view-form-item-div:first .edit-view-form-item-label-div' ).css( 'border-top-left-radius', '5px' );\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: 'country', field_name: 'country', api: this.company_api },\n\t\t];\n\n\t\tthis.initDropDownOptions( options );\n\n\t\tthis.api.getOptions( 'ach_transaction_type', {\n\t\t\tonResult: function( res ) {\n\t\t\t\tvar result = res.getResult();\n\t\t\t\t$this.ach_transaction_type_data = result;\n\t\t\t\t$this.ach_transaction_type_array = Global.buildRecordArray( result );\n\t\t\t}\n\t\t} );\n\t}\n\n\tgetSignatureUrl() {\n\t\tvar url = false;\n\t\tif ( this.current_edit_record.id ) {\n\t\t\turl = Global.getBaseURL() + '../send_file.php?api=1&object_type=remittance_source_account&object_id=' + this.current_edit_record.id;\n\t\t}\n\t\tDebug.Text( url, 'RemittanceSourceAccountViewController.js', 'RemittanceSourceAccountViewController', 'getSignatureUrl', 10 );\n\t\treturn url;\n\t}\n\n\tsetEditViewDataDone() {\n\t\tsuper.setEditViewDataDone();\n\t\tthis.file_browser.setImage( this.getSignatureUrl() );\n\t}\n\n\tuniformVariable( record ) {\n\t\t//ensure that the variable variable fields are set to false if they aren't showing.\n\t\tif ( this.edit_view_ui_dic && this.current_edit_record.remittance_source_account_id != TTUUID.zero_id ) { //Keep accountd data if UUID == zero_id\n\t\t\tfor ( var i = 1; i <= 10; i++ ) {\n\t\t\t\tif ( i == 1 ) {\n\t\t\t\t\tif ( this.edit_view_ui_dic['country'].getValue() == 'US' ) {\n\t\t\t\t\t\tif ( this.edit_view_ui_dic['value1_2'] ) {\n\t\t\t\t\t\t\trecord['value1'] = record['value1_2'] ? record['value1_2'] : this.edit_view_ui_dic['value1_2'].getValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif ( this.edit_view_ui_dic['value1_1'] ) {\n\t\t\t\t\t\t\trecord['value1'] = record['value1_1'] ? record['value1_1'] : this.edit_view_ui_dic['value1_1'].getValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif ( !this.is_mass_editing && record['value' + i] && ( typeof this.edit_view_ui_dic['value' + i] == 'undefined' ) ) {\n\t\t\t\t\t\trecord['value' + i] = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn record;\n\t}\n\n\tgetCustomContextMenuModel() {\n\t\tvar context_menu_model = {\n\t\t\texclude: ['export_excel'],\n\t\t\tinclude: [\n\t\t\t\t{\n\t\t\t\t\tlabel: '', //Empty label. vue_icon is displayed instead of text.\n\t\t\t\t\tid: 'other_header',\n\t\t\t\t\tmenu_align: 'right',\n\t\t\t\t\taction_group: 'other',\n\t\t\t\t\taction_group_header: true,\n\t\t\t\t\tvue_icon: 'tticon tticon-more_vert_black_24dp',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: $.i18n._( 'Sample File' ),\n\t\t\t\t\tid: 'export_export',\n\t\t\t\t\taction_group: 'other',\n\t\t\t\t\tmenu_align: 'right',\n\t\t\t\t\tvue_icon: 'tticon tticon-file_download_black_24dp',\n\t\t\t\t}]\n\t\t};\n\n\t\treturn context_menu_model;\n\t}\n\n\tsetCustomDefaultMenuIcon( id, context_btn, grid_selected_length ) {\n\t\tswitch ( id ) {\n\t\t\tcase 'export_export':\n\t\t\t\tContextMenuManager.hideMenuItem( this.determineContextMenuMountAttributes().id, context_btn.id, true );\n\t\t\t\tthis.setMenuExportIcon( context_btn, grid_selected_length );\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tsetCustomEditMenuIcon( id, context_btn ) {\n\t\tswitch ( id ) {\n\t\t\tcase 'export_export':\n\t\t\t\tContextMenuManager.hideMenuItem( this.determineContextMenuMountAttributes().id, context_btn.id, true );\n\t\t\t\tthis.setMenuExportIcon( context_btn );\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tsetMenuExportIcon( context_btn ) {\n\t\t//do not show for edit screens or non-grid screens.\n\t\tif ( this.getSelectedItems().length > 0 ) {\n\t\t\tContextMenuManager.disableMenuItem( this.determineContextMenuMountAttributes().id, context_btn.id, true );\n\t\t} else if ( this.edit_only_mode || this.grid == undefined || this.sub_view_mode ) {\n\t\t\tContextMenuManager.hideMenuItem( this.determineContextMenuMountAttributes().id, context_btn.id, false )\n\t\t} else {\n\t\t\tContextMenuManager.disableMenuItem( this.determineContextMenuMountAttributes().id, context_btn.id, false );\n\t\t}\n\t}\n\n\tonExportClick() {\n\t\tvar post_data = { 0: this.getGridSelectIdArray() };\n\t\tGlobal.APIFileDownload( this.api.className, 'testExport', post_data );\n\t}\n\n\tonFormItemChange( target, doNotValidate ) {\n\t\tthis.setIsChanged( target );\n\t\tthis.setMassEditingFieldsWhenFormChange( target );\n\t\tvar key = target.getField();\n\t\tvar c_value = target.getValue();\n\n\t\tswitch ( key ) {\n\t\t\tcase 'value1_1':\n\t\t\tcase 'value1_2':\n\t\t\t\tthis.current_edit_record['value1'] = c_value;\n\t\t\t\tbreak;\n\t\t\tcase 'country':\n\t\t\tcase 'type_id':\n\t\t\t\tthis.onTypeChange();\n\t\t\t\tbreak;\n\t\t\tcase 'data_format_id':\n\t\t\t\tthis.onDataFormatChange();\n\t\t\t\tbreak;\n\t\t\tcase 'value24':\n\t\t\t\tif ( c_value != false ) {\n\t\t\t\t\tthis.attachElement( 'value25' ).text( $.i18n._( 'Offset Description' ) );\n\t\t\t\t\tthis.attachElement( 'value27' ).text( $.i18n._( 'Offset Routing' ) );\n\t\t\t\t\tthis.attachElement( 'value28' ).text( $.i18n._( 'Offset Account' ) );\n\t\t\t\t\tif ( this.edit_view_ui_dic.value25.getValue().length == 0 ) {\n\t\t\t\t\t\tthis.edit_view_ui_dic.value25.setValue( 'OFFSET' );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.detachElement( 'value25' );\n\t\t\t\t\tthis.detachElement( 'value27' );\n\t\t\t\t\tthis.detachElement( 'value28' );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t\tfor ( var evud_key in this.edit_view_ui_dic ) {\n\t\t\tthis.current_edit_record[evud_key] = this.edit_view_ui_dic[evud_key].getValue();\n\t\t}\n\n\t\tthis.current_edit_record[key] = c_value;\n\n\t\tif ( !doNotValidate ) {\n\t\t\tthis.validate();\n\t\t}\n\t}\n\n\tonCustomContextClick( id ) {\n\t\tswitch ( id ) {\n\t\t\tcase 'export_export':\n\t\t\t\tthis.onExportClick();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tonSaveClick( ignoreWarning ) {\n\t\tsuper.onSaveClick( ignoreWarning );\n\t\tGlobal.clearCache( 'getOptions_type' ); //Needs to clear cache so if they add a source account of a new type, it will immediately appear in the Type dropdown for Payment Methods.\n\t}\n\n\tattachElement( key ) {\n\t\t//Error: Uncaught TypeError: Cannot read property 'insertBefore' of undefined in interface/html5/views/BaseViewController.js?v=9.0.0-20150822-210544 line 6439\n\t\tif ( !this.edit_view_form_item_dic || !this.edit_view_form_item_dic[key] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar place_holder = $( '.place_holder_' + key );\n\t\tthis.edit_view_form_item_dic[key].insertBefore( place_holder );\n\t\tplace_holder.remove();\n\n\t\treturn $( this.edit_view_form_item_dic[key].find( '.edit-view-form-item-label' ) );\n\t}\n\n\tsetCurrentEditRecordData() {\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\n\t\t\tif ( key === 'value1' && this.current_edit_record[key] && !this.is_mass_editing ) {\n\t\t\t\tif ( Global.isSet( this.ach_transaction_type_data[this.current_edit_record[key]] ) ) {\n\t\t\t\t\tthis.edit_view_ui_dic['value1_2'].setValue( this.current_edit_record[key] );\n\t\t\t\t} else {\n\t\t\t\t\tthis.edit_view_ui_dic['value1_1'].setValue( this.current_edit_record[key] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( Global.isSet( widget ) ) {\n\t\t\t\tswitch ( key ) {\n\t\t\t\t\tcase 'value1_1':\n\t\t\t\t\tcase 'value1_2':\n\t\t\t\t\t break;\n\t\t\t\t\tcase 'type_id': //popular case\n\t\t\t\t\t\twidget.setValue( this.current_edit_record[key] );\n\t\t\t\t\t\tthis.onTypeChange();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'data_format_id': //popular case\n\t\t\t\t\t\twidget.setValue( this.current_edit_record[key] );\n\t\t\t\t\t\tthis.onDataFormatChange();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\twidget.setValue( this.current_edit_record[key] );\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t\tthis.collectUIDataToCurrentEditRecord();\n\t\tthis.setEditViewDataDone();\n\t}\n\n\tonDataFormatChange() {\n\t\tvar $this = this;\n\t\tvar type_id = this.edit_view_ui_dic.type_id.getValue();\n\t\tvar data_format_id = this.edit_view_ui_dic.data_format_id.getValue();\n\n\t\t//alert(' DataFormatChange: Type: '+ type_id + ' Data Format: '+ data_format_id );\n\n\t\tif ( type_id == false || data_format_id == false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t$( this.edit_view_tab.find( 'ul li' )[1] ).hide(); //Hide Advanced tab\n\n\t\tthis.detachElement( 'value4' );\n\t\tthis.detachElement( 'value5' );\n\t\tthis.detachElement( 'value6' );\n\t\tthis.detachElement( 'value7' );\n\t\tthis.detachElement( 'value8' );\n\t\tthis.detachElement( 'value9' );\n\t\tthis.detachElement( 'value10' );\n\t\tthis.detachElement( 'value11' );\n\t\tthis.detachElement( 'value12' );\n\t\tthis.detachElement( 'value13' );\n\t\tthis.detachElement( 'value14' );\n\t\tthis.detachElement( 'value15' );\n\t\tthis.detachElement( 'value16' );\n\t\tthis.detachElement( 'value17' );\n\t\tthis.detachElement( 'value18' );\n\t\tthis.detachElement( 'value19' );\n\t\tthis.detachElement( 'value20' );\n\t\tthis.detachElement( 'value21' );\n\t\tthis.detachElement( 'value22' );\n\t\tthis.detachElement( 'value23' );\n\t\tthis.detachElement( 'value24' );\n\t\tthis.detachElement( 'value25' );\n\t\tthis.detachElement( 'value26' );\n\t\tthis.detachElement( 'value27' );\n\t\tthis.detachElement( 'value28' );\n\t\tthis.detachElement( 'value29' );\n\t\tthis.detachElement( 'value30' );\n\n\t\tthis.detachElement( 'signature' );\n\t\tthis.edit_view_ui_dic.value5.parent().find( '.mm_field_unit_text' ).remove();\n\t\tthis.edit_view_ui_dic.value6.parent().find( '.mm_field_unit_text' ).remove();\n\t\tif ( type_id != 2000 ) {\n\t\t\tTTPromise.wait( null, null, function() {\n\t\t\t\t$this.edit_view_ui_dic.value5.setWidth( 200 );\n\t\t\t\t$this.edit_view_ui_dic.value6.setWidth( 200 );\n\t\t\t} );\n\t\t}\n\n\t\tif ( type_id == 2000 ) {\n\t\t\tif ( Global.getProductEdition() >= 15 ) { //All cheque formats.\n\t\t\t\t$( this.edit_view_tab.find( 'ul li' )[1] ).show(); //Show Advanced Tab\n\n\t\t\t\tthis.attachElement( 'value5' ).text( $.i18n._( 'Vertical Alignment' ) );\n\t\t\t\tthis.attachElement( 'value6' ).text( $.i18n._( 'Horizontal Alignment' ) );\n\t\t\t\tthis.attachElement( 'signature' );\n\n\t\t\t\tthis.edit_view_ui_dic.value5.parent().append( '<span class=\"mm_field_unit_text\">&nbsp;mm</span>' );\n\t\t\t\tthis.edit_view_ui_dic.value6.parent().append( '<span class=\"mm_field_unit_text\">&nbsp;mm</span>' );\n\n\t\t\t\tTTPromise.wait( null, null, function() {\n\t\t\t\t\tif ( $this.edit_view_ui_dic && $this.edit_view_ui_dic.value5 ) {\n\t\t\t\t\t\t$this.edit_view_ui_dic.value5.setWidth( 42 );\n\t\t\t\t\t}\n\t\t\t\t\tif ( $this.edit_view_ui_dic && $this.edit_view_ui_dic.value6 ) {\n\t\t\t\t\t\t$this.edit_view_ui_dic.value6.setWidth( 42 );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t} else if ( type_id == 3000 ) {\n\t\t\tif ( data_format_id == 5 ) { //TimeTrex Remittances\n\t\t\t\t// this.attachElement('value5').text($.i18n._('User Name') );\n\t\t\t\t// this.attachElement('value6').text($.i18n._('API Key') );\n\t\t\t} else if ( data_format_id == 10 ) { //US - ACH\n\t\t\t\t$( this.edit_view_tab.find( 'ul li' )[1] ).show(); //Show Advanced Tab\n\n\t\t\t\tthis.attachElement( 'value4' ).text( $.i18n._( 'Business Number' ) );\n\t\t\t\tthis.attachElement( 'value5' ).text( $.i18n._( 'Immediate Origin' ) );\n\t\t\t\tthis.attachElement( 'value6' ).text( $.i18n._( 'Immediate Origin Name' ) );\n\t\t\t\tthis.attachElement( 'value7' ).text( $.i18n._( 'Immediate Dest.' ) );\n\t\t\t\tthis.attachElement( 'value8' ).text( $.i18n._( 'Immediate Dest. Name' ) );\n\t\t\t\tthis.attachElement( 'value9' ).text( $.i18n._( 'Trace Number' ) );\n\t\t\t\tthis.attachElement( 'value10' ).text( $.i18n._( 'Discretionary Data' ) );\n\t\t\t\tthis.attachElement( 'value11' ).text( $.i18n._( 'Company Name' ) );\n\n\t\t\t\tthis.attachElement( 'value24' ).text( $.i18n._( 'Offset Transaction' ) );\n\t\t\t\tif ( this.current_edit_record.value24 == 1 ) {\n\t\t\t\t\tthis.current_edit_record.value24 = true;\n\t\t\t\t\tthis.attachElement( 'value25' ).text( $.i18n._( 'Offset Description' ) );\n\t\t\t\t\tthis.attachElement( 'value27' ).text( $.i18n._( 'Offset Routing' ) );\n\t\t\t\t\tthis.attachElement( 'value28' ).text( $.i18n._( 'Offset Account' ) );\n\t\t\t\t}\n\t\t\t\tthis.attachElement( 'value29' ).text( $.i18n._( 'File Header Line' ) );\n\t\t\t\tthis.attachElement( 'value30' ).text( $.i18n._( 'File Trailer Line' ) );\n\t\t\t} else if ( data_format_id == 20 || data_format_id == 30 || data_format_id == 50 ) { //CA - EFT\n\t\t\t\t$( this.edit_view_tab.find( 'ul li' )[1] ).show(); //Show Advanced Tab\n\n\t\t\t\tthis.attachElement( 'value5' ).text( $.i18n._( 'Originator ID' ) );\n\t\t\t\tthis.attachElement( 'value6' ).text( $.i18n._( 'Originator Short Name' ) );\n\t\t\t\tthis.attachElement( 'value7' ).text( $.i18n._( 'Data Center ID' ) );\n\t\t\t\t//this.attachElement( 'value7' ).text( $.i18n._('Data Center Name') );\n\n\t\t\t\tthis.attachElement( 'value26' ).text( $.i18n._( 'Return Institution' ) );\n\t\t\t\tthis.attachElement( 'value27' ).text( $.i18n._( 'Return Transit' ) );\n\t\t\t\tthis.attachElement( 'value28' ).text( $.i18n._( 'Return Account' ) );\n\t\t\t\tthis.attachElement( 'value29' ).text( $.i18n._( 'File Header Line' ) );\n\t\t\t\tthis.attachElement( 'value30' ).text( $.i18n._( 'File Trailer Line' ) );\n\t\t\t}\n\t\t}\n\t}\n\n\tonTypeChange() {\n\t\tvar $this = this;\n\t\tvar type_id = this.edit_view_ui_dic.type_id.getValue();\n\t\tvar country = ( this.edit_view_ui_dic.country.getValue() && this.edit_view_ui_dic.country.getValue() != TTUUID.zero_id ) ? this.edit_view_ui_dic.country.getValue() : this.current_edit_record.country; //sometimes it's false for no reason.\n\n\t\t$( this.edit_view_tab.find( 'ul li' )[1] ).show(); //Show Advanced tab\n\n\t\tthis.detachElement( 'data_format_id' );\n\t\tthis.detachElement( 'last_transaction_number' );\n\t\tthis.detachElement( 'value1_1' );\n\t\tthis.detachElement( 'value1_2' );\n\t\t//this.detachElement( 'value1' );\n\t\tthis.detachElement( 'value2' );\n\t\tthis.detachElement( 'value3' );\n\n\t\tif ( country == false || type_id == false ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type_id == 2000 ) {\n\t\t\tthis.attachElement( 'last_transaction_number' ).text( $.i18n._( 'Last Check Number' ) );\n\t\t} else if ( type_id == 3000 ) {\n\t\t\tthis.attachElement( 'last_transaction_number' ).text( $.i18n._( 'Last Batch Number' ) );\n\n\t\t\tif ( !this.is_mass_editing && country != null ) {\n\t\t\t\tif ( country == 'US' ) { //ACH\n\t\t\t\t\tthis.attachElement( 'value1_2' ).text( $.i18n._( 'Account Type' ) );\n\t\t\t\t\tthis.attachElement( 'value2' ).text( $.i18n._( 'Routing' ) );\n\t\t\t\t\tthis.attachElement( 'value3' ).text( $.i18n._( 'Account' ) );\n\t\t\t\t\tif ( Global.isFalseOrNull( this.current_edit_record['value1'] ) ) {\n\t\t\t\t\t\tthis.current_edit_record['value1'] = this.edit_view_ui_dic['value1_2'].getValue();\n\t\t\t\t\t\tthis.current_edit_record['value1_2'] = this.edit_view_ui_dic['value1_2'].getValue();\n\t\t\t\t\t}\n\t\t\t\t} else if ( country == 'CA' ) { //Canadian EFT\n\t\t\t\t\tthis.attachElement( 'value1_1' ).text( $.i18n._( 'Institution' ) );\n\t\t\t\t\tthis.attachElement( 'value2' ).text( $.i18n._( 'Bank Transit' ) );\n\t\t\t\t\tthis.attachElement( 'value3' ).text( $.i18n._( 'Account' ) );\n\t\t\t\t} else if ( $.inArray( country, ['AG', 'BS', 'BB', 'BZ', 'DO', 'GY', 'HT', 'JM', 'DM', 'GD', 'KN', 'LC', 'VC', 'SR', 'TT'] ) != -1 ) { //Carribbean countries.\n\t\t\t\t\tthis.attachElement( 'value1_1' ).text( $.i18n._( 'Institution' ) );\n\t\t\t\t\tthis.attachElement( 'value2' ).text( $.i18n._( 'Bank Transit' ) );\n\t\t\t\t\tthis.attachElement( 'value3' ).text( $.i18n._( 'Account' ) );\n\t\t\t\t} else {\n\t\t\t\t\tthis.attachElement( 'value1_2' ).text( $.i18n._( 'Account Type' ) );\n\t\t\t\t\tthis.attachElement( 'value2' ).text( $.i18n._( 'Routing' ) );\n\t\t\t\t\tthis.attachElement( 'value3' ).text( $.i18n._( 'Account' ) );\n\t\t\t\t\tif ( Global.isFalseOrNull( this.current_edit_record['value1'] ) ) {\n\t\t\t\t\t\tthis.current_edit_record['value1'] = this.edit_view_ui_dic['value1_2'].getValue();\n\t\t\t\t\t\tthis.current_edit_record['value1_2'] = this.edit_view_ui_dic['value1_2'].getValue();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t$( '#tab_advanced_content_div .edit-view-form-item-div .edit-view-form-item-label-div' ).css( 'border-top-left-radius', '0px' );\n\t\t$( '#tab_advanced_content_div .edit-view-form-item-div:first .edit-view-form-item-label-div' ).css( 'border-top-left-radius', '5px' );\n\n\t\tvar $this = this;\n\t\tthis.api.getOptions( 'data_format', { 'type_id': type_id, 'country': country }, {\n\t\t\tasync: false,\n\t\t\tonResult: function( res ) {\n\t\t\t\t$this.attachElement( 'data_format_id' );\n\t\t\t\tvar result = res.getResult();\n\n\t\t\t\t$this.data_format_array = Global.buildRecordArray( result );\n\n\t\t\t\tif ( Global.isSet( $this.basic_search_field_ui_dic['data_format_id'] ) ) {\n\t\t\t\t\t$this.basic_search_field_ui_dic['data_format_id'].setSourceData( $this.data_format_array );\n\t\t\t\t}\n\n\t\t\t\tif ( Global.isSet( $this.adv_search_field_ui_dic['data_format_id'] ) ) {\n\t\t\t\t\t$this.adv_search_field_ui_dic['data_format_id'].setSourceData( $this.data_format_array );\n\t\t\t\t}\n\n\t\t\t\t$this.edit_view_ui_dic['data_format_id'].setSourceData( $this.data_format_array );\n\t\t\t\tif ( $this.current_edit_record['data_format_id'] && result[$this.current_edit_record['data_format_id']] ) {\n\t\t\t\t\t$this.edit_view_ui_dic['data_format_id'].setValue( $this.current_edit_record['data_format_id'] );\n\t\t\t\t} else {\n\t\t\t\t\t$this.current_edit_record['data_format_id'] = $this.edit_view_ui_dic['data_format_id'].getValue();\n\t\t\t\t}\n\n\t\t\t\t$this.onDataFormatChange();\n\t\t\t}\n\t\t} );\n\n\t\tthis.editFieldResize();\n\t}\n\n\tbuildEditViewUI() {\n\n\t\tsuper.buildEditViewUI();\n\t\tvar $this = this;\n\n\t\tvar tab_model = {\n\t\t\t'tab_remittance_source_account': { 'label': $.i18n._( 'Remittance Source Account' ) },\n\t\t\t'tab_advanced': {\n\t\t\t\t'label': $.i18n._( 'Advanced' )\n\t\t\t},\n\t\t\t'tab_audit': true,\n\t\t};\n\t\tthis.setTabModel( tab_model );\n\n\t\tthis.navigation.AComboBox( {\n\t\t\tapi_class: TTAPI.APIRemittanceSourceAccount,\n\t\t\tid: this.script_name + '_navigation',\n\t\t\tallow_multiple_selection: false,\n\t\t\tlayout_name: 'global_remittance_source_account',\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\t\tvar tab_remittance_source_account = this.edit_view_tab.find( '#tab_remittance_source_account' );\n\t\tvar tab_remittance_source_account_column1 = tab_remittance_source_account.find( '.first-column' );\n\t\tthis.edit_view_tabs[0] = [];\n\t\tthis.edit_view_tabs[0].push( tab_remittance_source_account_column1 );\n\n\t\t//Advanced tab\n\t\tvar tab_advanced = this.edit_view_tab.find( '#tab_advanced' );\n\t\tvar tab_advanced_column1 = tab_advanced.find( '.first-column' );\n\t\tthis.edit_view_tabs[1] = [];\n\t\tthis.edit_view_tabs[1].push( tab_advanced_column1 );\n\n\t\t// Legal Entity\n\t\tvar form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\t\tform_item_input.AComboBox( {\n\t\t\tapi_class: TTAPI.APILegalEntity,\n\t\t\tallow_multiple_selection: false,\n\t\t\tlayout_name: 'global_legal_entity',\n\t\t\tfield: 'legal_entity_id',\n\t\t\t//set_empty: true,\n\t\t\tset_any: true,\n\t\t\tshow_search_inputs: true\n\t\t} );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Legal Entity' ), form_item_input, tab_remittance_source_account_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_remittance_source_account_column1, '' );\n\n\t\t// Name\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'name', width: '100%' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Name' ), form_item_input, tab_remittance_source_account_column1 );\n\t\tform_item_input.parent().width( '45%' );\n\n\t\t// Description\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_AREA );\n\t\tform_item_input.TTextArea( { field: 'description', width: '100%' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Description' ), form_item_input, tab_remittance_source_account_column1 );\n\t\tform_item_input.parent().width( '45%' );\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_remittance_source_account_column1, '' );\n\n\t\t//Country\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\tform_item_input.TComboBox( { field: 'country', set_empty: true } );\n\t\tform_item_input.setSourceData( $this.country_array );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Country' ), form_item_input, tab_remittance_source_account_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_remittance_source_account_column1 );\n\n\t\t// Data Format\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\tform_item_input.TComboBox( { field: 'data_format_id' } );\n\t\tform_item_input.setSourceData( $this.data_format_array );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Format' ), form_item_input, tab_remittance_source_account_column1, '', null, true );\n\n\t\t// Last Transaction Number\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\tform_item_input.TTextInput( { field: 'last_transaction_number', width: '60' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Last Transaction Number' ), form_item_input, tab_remittance_source_account_column1, '', null, true );\n\n\n\t\t//generate Value# fields 1-30\n\t\t//shorter and easier to read than 150 extra lines\n\t\tfor ( var i = 1; i <= 30; i++ ) {\n\t\t\tvar width = '200';\n\n\t\t\tvar type_id = this.edit_view_ui_dic.type_id.getValue();\n\t\t\tif ( type_id == 2000 && Global.getProductEdition() >= 15 && ( i == 5 || i == 6 ) ) { //5=Vertical Alignment, 6=Horizaontal Alignment\n\t\t\t\twidth = 42;\n\t\t\t}\n\n\t\t\tif ( i == 29 || i == 30 ) { //29: file header line. 30: file trailer line.\n\t\t\t\twidth = '500';\n\t\t\t}\n\t\t\tvar tab_for_values = tab_remittance_source_account_column1;\n\t\t\tif ( i > 3 ) {\n\t\t\t\ttab_for_values = tab_advanced_column1;\n\t\t\t}\n\n\t\t\tif ( i == 1 ) { //ACH\n\t\t\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\t\t\tform_item_input.TTextInput( { field: 'value1_1', validation_field: 'value1', width: width } );\n\t\t\t\tthis.addEditFieldToColumn( $.i18n._( 'Value' + i ), form_item_input, tab_for_values, '', null, true );\n\n\t\t\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\t\t\tform_item_input.TComboBox( { field: 'value1_2', validation_field: 'value1' } );\n\t\t\t\tform_item_input.setSourceData( $this.ach_transaction_type_array );\n\t\t\t\tthis.addEditFieldToColumn( $.i18n._( 'Value' + i ), form_item_input, tab_for_values, '', null, true );\n\t\t\t} else {\n\t\t\t\tif ( i == 24 ) { //24: Offset Transaction\n\t\t\t\t\tform_item_input = Global.loadWidgetByName( FormItemType.CHECKBOX );\n\t\t\t\t\tform_item_input.TCheckbox( { field: 'value' + i } );\n\t\t\t\t} else {\n\t\t\t\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\t\t\t\t\tform_item_input.TTextInput( { field: 'value' + i, width: width } );\n\t\t\t\t}\n\t\t\t\tthis.addEditFieldToColumn( $.i18n._( 'Value' + i ), form_item_input, tab_for_values, '', null, true );\n\t\t\t}\n\n\t\t}\n\n\t\t//Signature Upload\n\t\tif ( typeof FormData == 'undefined' ) {\n\t\t\tform_item_input = Global.loadWidgetByName( FormItemType.IMAGE_BROWSER );\n\n\t\t\tthis.file_browser = form_item_input.TImageBrowser( {\n\t\t\t\tfield: 'signature',\n\t\t\t\tdefault_width: 256,\n\t\t\t\tdefault_height: 47\n\t\t\t} );\n\n\t\t\tthis.file_browser.bind( 'imageChange', function( e, target ) {\n\t\t\t\tnew ServiceCaller().uploadFile( target.getValue(), 'object_type=remittance_source_account&object_id=' + $this.current_edit_record.id, {\n\t\t\t\t\tonResult: function( result ) {\n\n\t\t\t\t\t\tif ( result.toLowerCase() === 'true' ) {\n\t\t\t\t\t\t\t$this.file_browser.setImage( $this.getSignatureUrl() );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tTAlertManager.showAlert( result, 'Error' );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t} );\n\t\t} else {\n\t\t\tform_item_input = Global.loadWidgetByName( FormItemType.IMAGE_AVD_BROWSER );\n\n\t\t\tthis.file_browser = form_item_input.TImageAdvBrowser( {\n\t\t\t\tfield: 'signature', callBack: function( form_data ) {\n\t\t\t\t\tnew ServiceCaller().uploadFile( form_data, 'object_type=remittance_source_account&object_id=' + $this.current_edit_record.id, {\n\t\t\t\t\t\tonResult: function( result ) {\n\n\t\t\t\t\t\t\tif ( result.toLowerCase() === 'true' ) {\n\t\t\t\t\t\t\t\t$this.file_browser.setImage( $this.getSignatureUrl() );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tTAlertManager.showAlert( result, 'Error' );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\tif ( this.is_edit ) {\n\t\t\tthis.attachElement( 'signature' );\n\t\t\tthis.file_browser.setEnableDelete( true );\n\t\t\tthis.file_browser.bind( 'deleteClick', function( e, target ) {\n\t\t\t\t$this.api.deleteImage( $this.current_edit_record.id, {\n\t\t\t\t\tonResult: function( result ) {\n\t\t\t\t\t\t$this.onDeleteImage();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\t} else {\n\t\t\tthis.detachElement( 'signature' );\n\t\t}\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Signature' ), this.file_browser, tab_advanced_column1, '', null, true, true );\n\t}\n\n\tbuildSearchFields() {\n\n\t\tsuper.buildSearchFields();\n\t\tthis.search_fields = [\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Legal Entity' ),\n\t\t\t\tin_column: 1,\n\t\t\t\tfield: 'legal_entity_id',\n\t\t\t\tlayout_name: 'global_legal_entity',\n\t\t\t\tapi_class: TTAPI.APILegalEntity,\n\t\t\t\tmultiple: true,\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: false,\n\t\t\t\tscript_name: 'LegalEntityView',\n\t\t\t\tform_item_type: FormItemType.AWESOME_BOX\n\t\t\t} ),\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\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Name' ),\n\t\t\t\tin_column: 1,\n\t\t\t\tfield: 'name',\n\t\t\t\tmultiple: true,\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: false,\n\t\t\t\tform_item_type: FormItemType.TEXT_INPUT\n\t\t\t} ),\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Created By' ),\n\t\t\t\tin_column: 3,\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\tscript_name: 'EmployeeView',\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: 3,\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\tscript_name: 'EmployeeView',\n\t\t\t\tform_item_type: FormItemType.AWESOME_BOX\n\t\t\t} )\n\n\t\t];\n\t}\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzQwMS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQTZDO0FBQ1U7O0FBRWhEO0FBQ1AsMkJBQTJCO0FBQzNCLEVBQUUsQ0FBQztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLENBQUM7QUFDNUIsMEJBQTBCLENBQUM7QUFDM0I7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBLEVBQUUsQ0FBQztBQUNILEVBQUUsQ0FBQztBQUNIOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLLHNDQUFzQztBQUMzQyxLQUFLLG9DQUFvQztBQUN6QyxLQUFLLHNFQUFzRTtBQUMzRTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNEdBQTRHO0FBQzVHLG9CQUFvQixTQUFTO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLFlBQVksQ0FBQztBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQyxDQUFDO0FBQzVDLDJDQUEyQyxDQUFDO0FBQzVDLDJDQUEyQyxDQUFDO0FBQzVDO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDBDQUEwQztBQUMxQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHFCQUFxQixDQUFDO0FBQ3RCO0FBQ0E7O0FBRUEsU0FBUyxDQUFDO0FBQ1Y7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBLEVBQUUsQ0FBQyxrREFBa0Q7O0FBRXJEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBLDZDQUE2QztBQUM3QyxJQUFJLENBQUMsa0RBQWtEOztBQUV2RCx5Q0FBeUMsQ0FBQztBQUMxQyx5Q0FBeUMsQ0FBQztBQUMxQzs7QUFFQSwwRkFBMEY7QUFDMUYsMEZBQTBGOztBQUUxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLElBQUk7QUFDSixnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBLEtBQUssbUNBQW1DO0FBQ3hDLElBQUksQ0FBQyxrREFBa0Q7O0FBRXZELHlDQUF5QyxDQUFDO0FBQzFDLHlDQUF5QyxDQUFDO0FBQzFDLHlDQUF5QyxDQUFDO0FBQzFDLHlDQUF5QyxDQUFDO0FBQzFDLHlDQUF5QyxDQUFDO0FBQzFDLHlDQUF5QyxDQUFDO0FBQzFDLDBDQUEwQyxDQUFDO0FBQzNDLDBDQUEwQyxDQUFDOztBQUUzQywwQ0FBMEMsQ0FBQztBQUMzQztBQUNBO0FBQ0EsMkNBQTJDLENBQUM7QUFDNUMsMkNBQTJDLENBQUM7QUFDNUMsMkNBQTJDLENBQUM7QUFDNUM7QUFDQSwwQ0FBMEMsQ0FBQztBQUMzQywwQ0FBMEMsQ0FBQztBQUMzQyxLQUFLLG1GQUFtRjtBQUN4RixJQUFJLENBQUMsa0RBQWtEOztBQUV2RCx5Q0FBeUMsQ0FBQztBQUMxQyx5Q0FBeUMsQ0FBQztBQUMxQyx5Q0FBeUMsQ0FBQztBQUMxQzs7QUFFQSwwQ0FBMEMsQ0FBQztBQUMzQywwQ0FBMEMsQ0FBQztBQUMzQywwQ0FBMEMsQ0FBQztBQUMzQywwQ0FBMEMsQ0FBQztBQUMzQywwQ0FBMEMsQ0FBQztBQUMzQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsME1BQTBNOztBQUUxTSxFQUFFLENBQUMsa0RBQWtEOztBQUVyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5REFBeUQsQ0FBQztBQUMxRCxJQUFJO0FBQ0oseURBQXlELENBQUM7O0FBRTFEO0FBQ0EsNkJBQTZCO0FBQzdCLDRDQUE0QyxDQUFDO0FBQzdDLDBDQUEwQyxDQUFDO0FBQzNDLDBDQUEwQyxDQUFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSw4QkFBOEI7QUFDcEMsNENBQTRDLENBQUM7QUFDN0MsMENBQTBDLENBQUM7QUFDM0MsMENBQTBDLENBQUM7QUFDM0MsTUFBTSxVQUFVLENBQUMsMEhBQTBIO0FBQzNJLDRDQUE0QyxDQUFDO0FBQzdDLDBDQUEwQyxDQUFDO0FBQzNDLDBDQUEwQyxDQUFDO0FBQzNDLE1BQU07QUFDTiw0Q0FBNEMsQ0FBQztBQUM3QywwQ0FBMEMsQ0FBQztBQUMzQywwQ0FBMEMsQ0FBQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxFQUFFLENBQUM7QUFDSCxFQUFFLENBQUM7O0FBRUg7QUFDQSx3Q0FBd0Msd0NBQXdDO0FBQ2hGO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0Esc0NBQXNDLFNBQVMsQ0FBQyx3Q0FBd0M7QUFDeEY7QUFDQSxhQUFhLENBQUM7QUFDZCxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKLDZCQUE2QixDQUFDOztBQUU5QjtBQUNBO0FBQ0EsK0JBQStCLHFCQUFxQjtBQUNwRDtBQUNBLDZCQUE2QixDQUFDOztBQUU5QjtBQUNBO0FBQ0EsZ0NBQWdDLCtCQUErQjtBQUMvRCw2QkFBNkIsQ0FBQztBQUM5Qjs7QUFFQTtBQUNBO0FBQ0EsK0JBQStCLHNDQUFzQztBQUNyRSw2QkFBNkIsQ0FBQztBQUM5Qjs7QUFFQTtBQUNBO0FBQ0EsK0JBQStCLG1CQUFtQjtBQUNsRDtBQUNBLDZCQUE2QixDQUFDOztBQUU5QjtBQUNBO0FBQ0EsK0JBQStCLG9DQUFvQztBQUNuRTtBQUNBLDZCQUE2QixDQUFDOztBQUU5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osNkJBQTZCLENBQUM7O0FBRTlCO0FBQ0E7QUFDQSwrQkFBK0IsMEJBQTBCO0FBQ3pEO0FBQ0EsNkJBQTZCLENBQUM7O0FBRTlCO0FBQ0E7QUFDQSxnQ0FBZ0MsZ0RBQWdEO0FBQ2hGLDZCQUE2QixDQUFDOzs7QUFHOUI7QUFDQTtBQUNBLG1CQUFtQixTQUFTO0FBQzVCOztBQUVBO0FBQ0Esd0ZBQXdGO0FBQ3hGO0FBQ0E7O0FBRUEsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxtQkFBbUI7QUFDbkI7QUFDQSxrQ0FBa0MsOERBQThEO0FBQ2hHLCtCQUErQixDQUFDOztBQUVoQztBQUNBLGlDQUFpQyxnREFBZ0Q7QUFDakY7QUFDQSwrQkFBK0IsQ0FBQztBQUNoQyxLQUFLO0FBQ0wscUJBQXFCO0FBQ3JCO0FBQ0Esa0NBQWtDLHFCQUFxQjtBQUN2RCxNQUFNO0FBQ047QUFDQSxtQ0FBbUMsbUNBQW1DO0FBQ3RFO0FBQ0EsK0JBQStCLENBQUM7QUFDaEM7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOLEtBQUs7QUFDTCxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxPQUFPOztBQUVQO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sS0FBSztBQUNMLElBQUk7QUFDSjtBQUNBOztBQUVBLDZCQUE2QixDQUFDO0FBQzlCOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsQ0FBQztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLFdBQVcsQ0FBQztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsV0FBVyxDQUFDO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsV0FBVyxDQUFDO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLFdBQVcsQ0FBQztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vaW50ZXJmYWNlL2h0bWw1L3ZpZXdzL2NvbXBhbnkvcmVtaXR0YW5jZV9zb3VyY2VfYWNjb3VudC9SZW1pdHRhbmNlU291cmNlQWNjb3VudFZpZXdDb250cm9sbGVyLmpzPzU1ZDAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdAL2dsb2JhbC93aWRnZXRzL2ZpbGVicm93c2VyL1RJbWFnZSc7XG5pbXBvcnQgJ0AvZ2xvYmFsL3dpZGdldHMvZmlsZWJyb3dzZXIvVEltYWdlQWR2QnJvd3Nlcic7XG5cbmV4cG9ydCBjbGFzcyBSZW1pdHRhbmNlU291cmNlQWNjb3VudFZpZXdDb250cm9sbGVyIGV4dGVuZHMgQmFzZVZpZXdDb250cm9sbGVyIHtcblx0Y29uc3RydWN0b3IoIG9wdGlvbnMgPSB7fSApIHtcblx0XHRfLmRlZmF1bHRzKCBvcHRpb25zLCB7XG5cdFx0XHRlbDogJyNyZW1pdHRhbmNlX3NvdXJjZV9hY2NvdW50X3ZpZXdfY29udGFpbmVyJyxcblxuXHRcdFx0c3RhdHVzX2FycmF5OiBudWxsLFxuXHRcdFx0dHlwZV9hcnJheTogbnVsbCxcblx0XHRcdGNvdW50cnlfYXJyYXk6IG51bGwsXG5cdFx0XHRkYXRhX2Zvcm1hdF9hcnJheTogbnVsbCxcblx0XHRcdGFjaF90cmFuc2FjdGlvbl90eXBlX2FycmF5OiBudWxsLFxuXHRcdFx0YWNoX3RyYW5zYWN0aW9uX3R5cGVfZGF0YTogbnVsbCxcblx0XHRcdGNvbXBhbnlfYXBpOiBudWxsXG5cdFx0fSApO1xuXG5cdFx0c3VwZXIoIG9wdGlvbnMgKTtcblx0fVxuXG5cdGluaXQoKSB7XG5cdFx0Ly90aGlzLl9zdXBlcignaW5pdGlhbGl6ZScgKTtcblx0XHR0aGlzLmVkaXRfdmlld190cGwgPSAnUmVtaXR0YW5jZVNvdXJjZUFjY291bnRFZGl0Vmlldy5odG1sJztcblx0XHR0aGlzLnBlcm1pc3Npb25faWQgPSAncmVtaXR0YW5jZV9zb3VyY2VfYWNjb3VudCc7XG5cdFx0dGhpcy52aWV3SWQgPSAnUmVtaXR0YW5jZVNvdXJjZUFjY291bnQnO1xuXHRcdHRoaXMuc2NyaXB0X25hbWUgPSAnUmVtaXR0YW5jZVNvdXJjZUFjY291bnRWaWV3Jztcblx0XHR0aGlzLnRhYmxlX25hbWVfa2V5ID0gJ3JlbWl0dGFuY2Vfc291cmNlX2FjY291bnQnO1xuXHRcdHRoaXMuY29udGV4dF9tZW51X25hbWUgPSAkLmkxOG4uXyggJ1JlbWl0dGFuY2UgU291cmNlIEFjY291bnRzJyApO1xuXHRcdHRoaXMubmF2aWdhdGlvbl9sYWJlbCA9ICQuaTE4bi5fKCAnUmVtaXR0YW5jZSBTb3VyY2UgQWNjb3VudCcgKTtcblx0XHR0aGlzLmFwaSA9IFRUQVBJLkFQSVJlbWl0dGFuY2VTb3VyY2VBY2NvdW50O1xuXHRcdHRoaXMuY29tcGFueV9hcGkgPSBUVEFQSS5BUElDb21wYW55O1xuXG5cdFx0dGhpcy5yZW5kZXIoKTtcblx0XHR0aGlzLmJ1aWxkQ29udGV4dE1lbnUoKTtcblxuXHRcdHRoaXMuaW5pdERhdGEoKTtcblxuXHRcdCQoICcjdGFiX2FkdmFuY2VkX2NvbnRlbnRfZGl2IC5lZGl0LXZpZXctZm9ybS1pdGVtLWRpdiAuZWRpdC12aWV3LWZvcm0taXRlbS1sYWJlbC1kaXYnICkuY3NzKCAnYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cycsICcwcHgnICk7XG5cdFx0JCggJyN0YWJfYWR2YW5jZWRfY29udGVudF9kaXYgLmVkaXQtdmlldy1mb3JtLWl0ZW0tZGl2OmZpcnN0IC5lZGl0LXZpZXctZm9ybS1pdGVtLWxhYmVsLWRpdicgKS5jc3MoICdib3JkZXItdG9wLWxlZnQtcmFkaXVzJywgJzVweCcgKTtcblx0fVxuXG5cdGluaXRPcHRpb25zKCkge1xuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cblx0XHR2YXIgb3B0aW9ucyA9IFtcblx0XHRcdHsgb3B0aW9uX25hbWU6ICdzdGF0dXMnLCBhcGk6IHRoaXMuYXBpIH0sXG5cdFx0XHR7IG9wdGlvbl9uYW1lOiAndHlwZScsIGFwaTogdGhpcy5hcGkgfSxcblx0XHRcdHsgb3B0aW9uX25hbWU6ICdjb3VudHJ5JywgZmllbGRfbmFtZTogJ2NvdW50cnknLCBhcGk6IHRoaXMuY29tcGFueV9hcGkgfSxcblx0XHRdO1xuXG5cdFx0dGhpcy5pbml0RHJvcERvd25PcHRpb25zKCBvcHRpb25zICk7XG5cblx0XHR0aGlzLmFwaS5nZXRPcHRpb25zKCAnYWNoX3RyYW5zYWN0aW9uX3R5cGUnLCB7XG5cdFx0XHRvblJlc3VsdDogZnVuY3Rpb24oIHJlcyApIHtcblx0XHRcdFx0dmFyIHJlc3VsdCA9IHJlcy5nZXRSZXN1bHQoKTtcblx0XHRcdFx0JHRoaXMuYWNoX3RyYW5zYWN0aW9uX3R5cGVfZGF0YSA9IHJlc3VsdDtcblx0XHRcdFx0JHRoaXMuYWNoX3RyYW5zYWN0aW9uX3R5cGVfYXJyYXkgPSBHbG9iYWwuYnVpbGRSZWNvcmRBcnJheSggcmVzdWx0ICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9XG5cblx0Z2V0U2lnbmF0dXJlVXJsKCkge1xuXHRcdHZhciB1cmwgPSBmYWxzZTtcblx0XHRpZiAoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZC5pZCApIHtcblx0XHRcdHVybCA9IEdsb2JhbC5nZXRCYXNlVVJMKCkgKyAnLi4vc2VuZF9maWxlLnBocD9hcGk9MSZvYmplY3RfdHlwZT1yZW1pdHRhbmNlX3NvdXJjZV9hY2NvdW50Jm9iamVjdF9pZD0nICsgdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkLmlkO1xuXHRcdH1cblx0XHREZWJ1Zy5UZXh0KCB1cmwsICdSZW1pdHRhbmNlU291cmNlQWNjb3VudFZpZXdDb250cm9sbGVyLmpzJywgJ1JlbWl0dGFuY2VTb3VyY2VBY2NvdW50Vmlld0NvbnRyb2xsZXInLCAnZ2V0U2lnbmF0dXJlVXJsJywgMTAgKTtcblx0XHRyZXR1cm4gdXJsO1xuXHR9XG5cblx0c2V0RWRpdFZpZXdEYXRhRG9uZSgpIHtcblx0XHRzdXBlci5zZXRFZGl0Vmlld0RhdGFEb25lKCk7XG5cdFx0dGhpcy5maWxlX2Jyb3dzZXIuc2V0SW1hZ2UoIHRoaXMuZ2V0U2lnbmF0dXJlVXJsKCkgKTtcblx0fVxuXG5cdHVuaWZvcm1WYXJpYWJsZSggcmVjb3JkICkge1xuXHRcdC8vZW5zdXJlIHRoYXQgdGhlIHZhcmlhYmxlIHZhcmlhYmxlIGZpZWxkcyBhcmUgc2V0IHRvIGZhbHNlIGlmIHRoZXkgYXJlbid0IHNob3dpbmcuXG5cdFx0aWYgKCB0aGlzLmVkaXRfdmlld191aV9kaWMgJiYgdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkLnJlbWl0dGFuY2Vfc291cmNlX2FjY291bnRfaWQgIT0gVFRVVUlELnplcm9faWQgKSB7IC8vS2VlcCBhY2NvdW50ZCBkYXRhIGlmIFVVSUQgPT0gemVyb19pZFxuXHRcdFx0Zm9yICggdmFyIGkgPSAxOyBpIDw9IDEwOyBpKysgKSB7XG5cdFx0XHRcdGlmICggaSA9PSAxICkge1xuXHRcdFx0XHRcdGlmICggdGhpcy5lZGl0X3ZpZXdfdWlfZGljWydjb3VudHJ5J10uZ2V0VmFsdWUoKSA9PSAnVVMnICkge1xuXHRcdFx0XHRcdFx0aWYgKCB0aGlzLmVkaXRfdmlld191aV9kaWNbJ3ZhbHVlMV8yJ10gICkge1xuXHRcdFx0XHRcdFx0XHRyZWNvcmRbJ3ZhbHVlMSddID0gcmVjb3JkWyd2YWx1ZTFfMiddID8gcmVjb3JkWyd2YWx1ZTFfMiddIDogdGhpcy5lZGl0X3ZpZXdfdWlfZGljWyd2YWx1ZTFfMiddLmdldFZhbHVlKCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGlmICggdGhpcy5lZGl0X3ZpZXdfdWlfZGljWyd2YWx1ZTFfMSddICApIHtcblx0XHRcdFx0XHRcdFx0cmVjb3JkWyd2YWx1ZTEnXSA9IHJlY29yZFsndmFsdWUxXzEnXSA/IHJlY29yZFsndmFsdWUxXzEnXSA6IHRoaXMuZWRpdF92aWV3X3VpX2RpY1sndmFsdWUxXzEnXS5nZXRWYWx1ZSgpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRpZiAoICF0aGlzLmlzX21hc3NfZWRpdGluZyAmJiByZWNvcmRbJ3ZhbHVlJyArIGldICYmICggdHlwZW9mIHRoaXMuZWRpdF92aWV3X3VpX2RpY1sndmFsdWUnICsgaV0gPT0gJ3VuZGVmaW5lZCcgKSApIHtcblx0XHRcdFx0XHRcdHJlY29yZFsndmFsdWUnICsgaV0gPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gcmVjb3JkO1xuXHR9XG5cblx0Z2V0Q3VzdG9tQ29udGV4dE1lbnVNb2RlbCgpIHtcblx0XHR2YXIgY29udGV4dF9tZW51X21vZGVsID0ge1xuXHRcdFx0ZXhjbHVkZTogWydleHBvcnRfZXhjZWwnXSxcblx0XHRcdGluY2x1ZGU6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGxhYmVsOiAnJywgLy9FbXB0eSBsYWJlbC4gdnVlX2ljb24gaXMgZGlzcGxheWVkIGluc3RlYWQgb2YgdGV4dC5cblx0XHRcdFx0XHRpZDogJ290aGVyX2hlYWRlcicsXG5cdFx0XHRcdFx0bWVudV9hbGlnbjogJ3JpZ2h0Jyxcblx0XHRcdFx0XHRhY3Rpb25fZ3JvdXA6ICdvdGhlcicsXG5cdFx0XHRcdFx0YWN0aW9uX2dyb3VwX2hlYWRlcjogdHJ1ZSxcblx0XHRcdFx0XHR2dWVfaWNvbjogJ3R0aWNvbiB0dGljb24tbW9yZV92ZXJ0X2JsYWNrXzI0ZHAnLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bGFiZWw6ICQuaTE4bi5fKCAnU2FtcGxlIEZpbGUnICksXG5cdFx0XHRcdFx0aWQ6ICdleHBvcnRfZXhwb3J0Jyxcblx0XHRcdFx0XHRhY3Rpb25fZ3JvdXA6ICdvdGhlcicsXG5cdFx0XHRcdFx0bWVudV9hbGlnbjogJ3JpZ2h0Jyxcblx0XHRcdFx0XHR2dWVfaWNvbjogJ3R0aWNvbiB0dGljb24tZmlsZV9kb3dubG9hZF9ibGFja18yNGRwJyxcblx0XHRcdFx0fV1cblx0XHR9O1xuXG5cdFx0cmV0dXJuIGNvbnRleHRfbWVudV9tb2RlbDtcblx0fVxuXG5cdHNldEN1c3RvbURlZmF1bHRNZW51SWNvbiggaWQsIGNvbnRleHRfYnRuLCBncmlkX3NlbGVjdGVkX2xlbmd0aCApIHtcblx0XHRzd2l0Y2ggKCBpZCApIHtcblx0XHRcdGNhc2UgJ2V4cG9ydF9leHBvcnQnOlxuXHRcdFx0XHRDb250ZXh0TWVudU1hbmFnZXIuaGlkZU1lbnVJdGVtKCB0aGlzLmRldGVybWluZUNvbnRleHRNZW51TW91bnRBdHRyaWJ1dGVzKCkuaWQsIGNvbnRleHRfYnRuLmlkLCB0cnVlICk7XG5cdFx0XHRcdHRoaXMuc2V0TWVudUV4cG9ydEljb24oIGNvbnRleHRfYnRuLCBncmlkX3NlbGVjdGVkX2xlbmd0aCApO1xuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblxuXHRzZXRDdXN0b21FZGl0TWVudUljb24oIGlkLCBjb250ZXh0X2J0biApIHtcblx0XHRzd2l0Y2ggKCBpZCApIHtcblx0XHRcdGNhc2UgJ2V4cG9ydF9leHBvcnQnOlxuXHRcdFx0XHRDb250ZXh0TWVudU1hbmFnZXIuaGlkZU1lbnVJdGVtKCB0aGlzLmRldGVybWluZUNvbnRleHRNZW51TW91bnRBdHRyaWJ1dGVzKCkuaWQsIGNvbnRleHRfYnRuLmlkLCB0cnVlICk7XG5cdFx0XHRcdHRoaXMuc2V0TWVudUV4cG9ydEljb24oIGNvbnRleHRfYnRuICk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxuXG5cdHNldE1lbnVFeHBvcnRJY29uKCBjb250ZXh0X2J0biApIHtcblx0XHQvL2RvIG5vdCBzaG93IGZvciBlZGl0IHNjcmVlbnMgb3Igbm9uLWdyaWQgc2NyZWVucy5cblx0XHRpZiAoIHRoaXMuZ2V0U2VsZWN0ZWRJdGVtcygpLmxlbmd0aCA+IDAgKSB7XG5cdFx0XHRDb250ZXh0TWVudU1hbmFnZXIuZGlzYWJsZU1lbnVJdGVtKCB0aGlzLmRldGVybWluZUNvbnRleHRNZW51TW91bnRBdHRyaWJ1dGVzKCkuaWQsIGNvbnRleHRfYnRuLmlkLCB0cnVlICk7XG5cdFx0fSBlbHNlIGlmICggdGhpcy5lZGl0X29ubHlfbW9kZSB8fCB0aGlzLmdyaWQgPT0gdW5kZWZpbmVkIHx8IHRoaXMuc3ViX3ZpZXdfbW9kZSApIHtcblx0XHRcdENvbnRleHRNZW51TWFuYWdlci5oaWRlTWVudUl0ZW0oIHRoaXMuZGV0ZXJtaW5lQ29udGV4dE1lbnVNb3VudEF0dHJpYnV0ZXMoKS5pZCwgY29udGV4dF9idG4uaWQsIGZhbHNlIClcblx0XHR9IGVsc2Uge1xuXHRcdFx0Q29udGV4dE1lbnVNYW5hZ2VyLmRpc2FibGVNZW51SXRlbSggdGhpcy5kZXRlcm1pbmVDb250ZXh0TWVudU1vdW50QXR0cmlidXRlcygpLmlkLCBjb250ZXh0X2J0bi5pZCwgZmFsc2UgKTtcblx0XHR9XG5cdH1cblxuXHRvbkV4cG9ydENsaWNrKCkge1xuXHRcdHZhciBwb3N0X2RhdGEgPSB7IDA6IHRoaXMuZ2V0R3JpZFNlbGVjdElkQXJyYXkoKSB9O1xuXHRcdEdsb2JhbC5BUElGaWxlRG93bmxvYWQoIHRoaXMuYXBpLmNsYXNzTmFtZSwgJ3Rlc3RFeHBvcnQnLCBwb3N0X2RhdGEgKTtcblx0fVxuXG5cdG9uRm9ybUl0ZW1DaGFuZ2UoIHRhcmdldCwgZG9Ob3RWYWxpZGF0ZSApIHtcblx0XHR0aGlzLnNldElzQ2hhbmdlZCggdGFyZ2V0ICk7XG5cdFx0dGhpcy5zZXRNYXNzRWRpdGluZ0ZpZWxkc1doZW5Gb3JtQ2hhbmdlKCB0YXJnZXQgKTtcblx0XHR2YXIga2V5ID0gdGFyZ2V0LmdldEZpZWxkKCk7XG5cdFx0dmFyIGNfdmFsdWUgPSB0YXJnZXQuZ2V0VmFsdWUoKTtcblxuXHRcdHN3aXRjaCAoIGtleSApIHtcblx0XHRcdGNhc2UgJ3ZhbHVlMV8xJzpcblx0XHRcdGNhc2UgJ3ZhbHVlMV8yJzpcblx0XHRcdFx0dGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkWyd2YWx1ZTEnXSA9IGNfdmFsdWU7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnY291bnRyeSc6XG5cdFx0XHRjYXNlICd0eXBlX2lkJzpcblx0XHRcdFx0dGhpcy5vblR5cGVDaGFuZ2UoKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdkYXRhX2Zvcm1hdF9pZCc6XG5cdFx0XHRcdHRoaXMub25EYXRhRm9ybWF0Q2hhbmdlKCk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAndmFsdWUyNCc6XG5cdFx0XHRcdGlmICggY192YWx1ZSAhPSBmYWxzZSApIHtcblx0XHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTI1JyApLnRleHQoICQuaTE4bi5fKCAnT2Zmc2V0IERlc2NyaXB0aW9uJyApICk7XG5cdFx0XHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAndmFsdWUyNycgKS50ZXh0KCAkLmkxOG4uXyggJ09mZnNldCBSb3V0aW5nJyApICk7XG5cdFx0XHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAndmFsdWUyOCcgKS50ZXh0KCAkLmkxOG4uXyggJ09mZnNldCBBY2NvdW50JyApICk7XG5cdFx0XHRcdFx0aWYgKCB0aGlzLmVkaXRfdmlld191aV9kaWMudmFsdWUyNS5nZXRWYWx1ZSgpLmxlbmd0aCA9PSAwICkge1xuXHRcdFx0XHRcdFx0dGhpcy5lZGl0X3ZpZXdfdWlfZGljLnZhbHVlMjUuc2V0VmFsdWUoICdPRkZTRVQnICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ3ZhbHVlMjUnICk7XG5cdFx0XHRcdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAndmFsdWUyNycgKTtcblx0XHRcdFx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICd2YWx1ZTI4JyApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblx0XHRmb3IgKCB2YXIgZXZ1ZF9rZXkgaW4gdGhpcy5lZGl0X3ZpZXdfdWlfZGljICkge1xuXHRcdFx0dGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkW2V2dWRfa2V5XSA9IHRoaXMuZWRpdF92aWV3X3VpX2RpY1tldnVkX2tleV0uZ2V0VmFsdWUoKTtcblx0XHR9XG5cblx0XHR0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRba2V5XSA9IGNfdmFsdWU7XG5cblx0XHRpZiAoICFkb05vdFZhbGlkYXRlICkge1xuXHRcdFx0dGhpcy52YWxpZGF0ZSgpO1xuXHRcdH1cblx0fVxuXG5cdG9uQ3VzdG9tQ29udGV4dENsaWNrKCBpZCApIHtcblx0XHRzd2l0Y2ggKCBpZCApIHtcblx0XHRcdGNhc2UgJ2V4cG9ydF9leHBvcnQnOlxuXHRcdFx0XHR0aGlzLm9uRXhwb3J0Q2xpY2soKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cblx0b25TYXZlQ2xpY2soIGlnbm9yZVdhcm5pbmcgKSB7XG5cdFx0c3VwZXIub25TYXZlQ2xpY2soIGlnbm9yZVdhcm5pbmcgKTtcblx0XHRHbG9iYWwuY2xlYXJDYWNoZSggJ2dldE9wdGlvbnNfdHlwZScgKTsgLy9OZWVkcyB0byBjbGVhciBjYWNoZSBzbyBpZiB0aGV5IGFkZCBhIHNvdXJjZSBhY2NvdW50IG9mIGEgbmV3IHR5cGUsIGl0IHdpbGwgaW1tZWRpYXRlbHkgYXBwZWFyIGluIHRoZSBUeXBlIGRyb3Bkb3duIGZvciBQYXltZW50IE1ldGhvZHMuXG5cdH1cblxuXHRhdHRhY2hFbGVtZW50KCBrZXkgKSB7XG5cdFx0Ly9FcnJvcjogVW5jYXVnaHQgVHlwZUVycm9yOiBDYW5ub3QgcmVhZCBwcm9wZXJ0eSAnaW5zZXJ0QmVmb3JlJyBvZiB1bmRlZmluZWQgaW4gaW50ZXJmYWNlL2h0bWw1L3ZpZXdzL0Jhc2VWaWV3Q29udHJvbGxlci5qcz92PTkuMC4wLTIwMTUwODIyLTIxMDU0NCBsaW5lIDY0Mzlcblx0XHRpZiAoICF0aGlzLmVkaXRfdmlld19mb3JtX2l0ZW1fZGljIHx8ICF0aGlzLmVkaXRfdmlld19mb3JtX2l0ZW1fZGljW2tleV0gKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dmFyIHBsYWNlX2hvbGRlciA9ICQoICcucGxhY2VfaG9sZGVyXycgKyBrZXkgKTtcblx0XHR0aGlzLmVkaXRfdmlld19mb3JtX2l0ZW1fZGljW2tleV0uaW5zZXJ0QmVmb3JlKCBwbGFjZV9ob2xkZXIgKTtcblx0XHRwbGFjZV9ob2xkZXIucmVtb3ZlKCk7XG5cblx0XHRyZXR1cm4gJCggdGhpcy5lZGl0X3ZpZXdfZm9ybV9pdGVtX2RpY1trZXldLmZpbmQoICcuZWRpdC12aWV3LWZvcm0taXRlbS1sYWJlbCcgKSApO1xuXHR9XG5cblx0c2V0Q3VycmVudEVkaXRSZWNvcmREYXRhKCkge1xuXHRcdC8vU2V0IGN1cnJlbnQgZWRpdCByZWNvcmQgZGF0YSB0byBhbGwgd2lkZ2V0c1xuXHRcdGZvciAoIHZhciBrZXkgaW4gdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkICkge1xuXG5cdFx0XHRpZiAoICF0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmQuaGFzT3duUHJvcGVydHkoIGtleSApICkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0dmFyIHdpZGdldCA9IHRoaXMuZWRpdF92aWV3X3VpX2RpY1trZXldO1xuXG5cdFx0XHRpZiAoIGtleSA9PT0gJ3ZhbHVlMScgJiYgdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkW2tleV0gJiYgIXRoaXMuaXNfbWFzc19lZGl0aW5nICkge1xuXHRcdFx0XHRpZiAoIEdsb2JhbC5pc1NldCggdGhpcy5hY2hfdHJhbnNhY3Rpb25fdHlwZV9kYXRhW3RoaXMuY3VycmVudF9lZGl0X3JlY29yZFtrZXldXSApICkge1xuXHRcdFx0XHRcdHRoaXMuZWRpdF92aWV3X3VpX2RpY1sndmFsdWUxXzInXS5zZXRWYWx1ZSggdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkW2tleV0gKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmVkaXRfdmlld191aV9kaWNbJ3ZhbHVlMV8xJ10uc2V0VmFsdWUoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFtrZXldICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0aWYgKCBHbG9iYWwuaXNTZXQoIHdpZGdldCApICkge1xuXHRcdFx0XHRzd2l0Y2ggKCBrZXkgKSB7XG5cdFx0XHRcdFx0Y2FzZSAndmFsdWUxXzEnOlxuXHRcdFx0XHRcdGNhc2UgJ3ZhbHVlMV8yJzpcblx0XHRcdFx0XHQgICAgYnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAndHlwZV9pZCc6IC8vcG9wdWxhciBjYXNlXG5cdFx0XHRcdFx0XHR3aWRnZXQuc2V0VmFsdWUoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFtrZXldICk7XG5cdFx0XHRcdFx0XHR0aGlzLm9uVHlwZUNoYW5nZSgpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAnZGF0YV9mb3JtYXRfaWQnOiAvL3BvcHVsYXIgY2FzZVxuXHRcdFx0XHRcdFx0d2lkZ2V0LnNldFZhbHVlKCB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRba2V5XSApO1xuXHRcdFx0XHRcdFx0dGhpcy5vbkRhdGFGb3JtYXRDaGFuZ2UoKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHR3aWRnZXQuc2V0VmFsdWUoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFtrZXldICk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dGhpcy5jb2xsZWN0VUlEYXRhVG9DdXJyZW50RWRpdFJlY29yZCgpO1xuXHRcdHRoaXMuc2V0RWRpdFZpZXdEYXRhRG9uZSgpO1xuXHR9XG5cblx0b25EYXRhRm9ybWF0Q2hhbmdlKCkge1xuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0dmFyIHR5cGVfaWQgPSB0aGlzLmVkaXRfdmlld191aV9kaWMudHlwZV9pZC5nZXRWYWx1ZSgpO1xuXHRcdHZhciBkYXRhX2Zvcm1hdF9pZCA9IHRoaXMuZWRpdF92aWV3X3VpX2RpYy5kYXRhX2Zvcm1hdF9pZC5nZXRWYWx1ZSgpO1xuXG5cdFx0Ly9hbGVydCgnIERhdGFGb3JtYXRDaGFuZ2U6IFR5cGU6ICcrIHR5cGVfaWQgKyAnIERhdGEgRm9ybWF0OiAnKyBkYXRhX2Zvcm1hdF9pZCApO1xuXG5cdFx0aWYgKCB0eXBlX2lkID09IGZhbHNlIHx8IGRhdGFfZm9ybWF0X2lkID09IGZhbHNlICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdCQoIHRoaXMuZWRpdF92aWV3X3RhYi5maW5kKCAndWwgbGknIClbMV0gKS5oaWRlKCk7IC8vSGlkZSBBZHZhbmNlZCB0YWJcblxuXHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ3ZhbHVlNCcgKTtcblx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICd2YWx1ZTUnICk7XG5cdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAndmFsdWU2JyApO1xuXHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ3ZhbHVlNycgKTtcblx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICd2YWx1ZTgnICk7XG5cdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAndmFsdWU5JyApO1xuXHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ3ZhbHVlMTAnICk7XG5cdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAndmFsdWUxMScgKTtcblx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICd2YWx1ZTEyJyApO1xuXHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ3ZhbHVlMTMnICk7XG5cdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAndmFsdWUxNCcgKTtcblx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICd2YWx1ZTE1JyApO1xuXHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ3ZhbHVlMTYnICk7XG5cdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAndmFsdWUxNycgKTtcblx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICd2YWx1ZTE4JyApO1xuXHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ3ZhbHVlMTknICk7XG5cdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAndmFsdWUyMCcgKTtcblx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICd2YWx1ZTIxJyApO1xuXHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ3ZhbHVlMjInICk7XG5cdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAndmFsdWUyMycgKTtcblx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICd2YWx1ZTI0JyApO1xuXHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ3ZhbHVlMjUnICk7XG5cdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAndmFsdWUyNicgKTtcblx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICd2YWx1ZTI3JyApO1xuXHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ3ZhbHVlMjgnICk7XG5cdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAndmFsdWUyOScgKTtcblx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICd2YWx1ZTMwJyApO1xuXG5cdFx0dGhpcy5kZXRhY2hFbGVtZW50KCAnc2lnbmF0dXJlJyApO1xuXHRcdHRoaXMuZWRpdF92aWV3X3VpX2RpYy52YWx1ZTUucGFyZW50KCkuZmluZCggJy5tbV9maWVsZF91bml0X3RleHQnICkucmVtb3ZlKCk7XG5cdFx0dGhpcy5lZGl0X3ZpZXdfdWlfZGljLnZhbHVlNi5wYXJlbnQoKS5maW5kKCAnLm1tX2ZpZWxkX3VuaXRfdGV4dCcgKS5yZW1vdmUoKTtcblx0XHRpZiAoIHR5cGVfaWQgIT0gMjAwMCApIHtcblx0XHRcdFRUUHJvbWlzZS53YWl0KCBudWxsLCBudWxsLCBmdW5jdGlvbigpIHtcblx0XHRcdFx0JHRoaXMuZWRpdF92aWV3X3VpX2RpYy52YWx1ZTUuc2V0V2lkdGgoIDIwMCApO1xuXHRcdFx0XHQkdGhpcy5lZGl0X3ZpZXdfdWlfZGljLnZhbHVlNi5zZXRXaWR0aCggMjAwICk7XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0aWYgKCB0eXBlX2lkID09IDIwMDAgKSB7XG5cdFx0XHRpZiAoIEdsb2JhbC5nZXRQcm9kdWN0RWRpdGlvbigpID49IDE1ICkgeyAvL0FsbCBjaGVxdWUgZm9ybWF0cy5cblx0XHRcdFx0JCggdGhpcy5lZGl0X3ZpZXdfdGFiLmZpbmQoICd1bCBsaScgKVsxXSApLnNob3coKTsgLy9TaG93IEFkdmFuY2VkIFRhYlxuXG5cdFx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ3ZhbHVlNScgKS50ZXh0KCAkLmkxOG4uXyggJ1ZlcnRpY2FsIEFsaWdubWVudCcgKSApO1xuXHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTYnICkudGV4dCggJC5pMThuLl8oICdIb3Jpem9udGFsIEFsaWdubWVudCcgKSApO1xuXHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICdzaWduYXR1cmUnICk7XG5cblx0XHRcdFx0dGhpcy5lZGl0X3ZpZXdfdWlfZGljLnZhbHVlNS5wYXJlbnQoKS5hcHBlbmQoICc8c3BhbiBjbGFzcz1cIm1tX2ZpZWxkX3VuaXRfdGV4dFwiPiZuYnNwO21tPC9zcGFuPicgKTtcblx0XHRcdFx0dGhpcy5lZGl0X3ZpZXdfdWlfZGljLnZhbHVlNi5wYXJlbnQoKS5hcHBlbmQoICc8c3BhbiBjbGFzcz1cIm1tX2ZpZWxkX3VuaXRfdGV4dFwiPiZuYnNwO21tPC9zcGFuPicgKTtcblxuXHRcdFx0XHRUVFByb21pc2Uud2FpdCggbnVsbCwgbnVsbCwgZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0aWYgKCAkdGhpcy5lZGl0X3ZpZXdfdWlfZGljICYmICR0aGlzLmVkaXRfdmlld191aV9kaWMudmFsdWU1ICkge1xuXHRcdFx0XHRcdFx0JHRoaXMuZWRpdF92aWV3X3VpX2RpYy52YWx1ZTUuc2V0V2lkdGgoIDQyICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICggJHRoaXMuZWRpdF92aWV3X3VpX2RpYyAmJiAkdGhpcy5lZGl0X3ZpZXdfdWlfZGljLnZhbHVlNiApIHtcblx0XHRcdFx0XHRcdCR0aGlzLmVkaXRfdmlld191aV9kaWMudmFsdWU2LnNldFdpZHRoKCA0MiApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSApO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoIHR5cGVfaWQgPT0gMzAwMCApIHtcblx0XHRcdGlmICggZGF0YV9mb3JtYXRfaWQgPT0gNSApIHsgLy9UaW1lVHJleCBSZW1pdHRhbmNlc1xuXHRcdFx0XHQvLyB0aGlzLmF0dGFjaEVsZW1lbnQoJ3ZhbHVlNScpLnRleHQoJC5pMThuLl8oJ1VzZXIgTmFtZScpICk7XG5cdFx0XHRcdC8vIHRoaXMuYXR0YWNoRWxlbWVudCgndmFsdWU2JykudGV4dCgkLmkxOG4uXygnQVBJIEtleScpICk7XG5cdFx0XHR9IGVsc2UgaWYgKCBkYXRhX2Zvcm1hdF9pZCA9PSAxMCApIHsgLy9VUyAtIEFDSFxuXHRcdFx0XHQkKCB0aGlzLmVkaXRfdmlld190YWIuZmluZCggJ3VsIGxpJyApWzFdICkuc2hvdygpOyAvL1Nob3cgQWR2YW5jZWQgVGFiXG5cblx0XHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAndmFsdWU0JyApLnRleHQoICQuaTE4bi5fKCAnQnVzaW5lc3MgTnVtYmVyJyApICk7XG5cdFx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ3ZhbHVlNScgKS50ZXh0KCAkLmkxOG4uXyggJ0ltbWVkaWF0ZSBPcmlnaW4nICkgKTtcblx0XHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAndmFsdWU2JyApLnRleHQoICQuaTE4bi5fKCAnSW1tZWRpYXRlIE9yaWdpbiBOYW1lJyApICk7XG5cdFx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ3ZhbHVlNycgKS50ZXh0KCAkLmkxOG4uXyggJ0ltbWVkaWF0ZSBEZXN0LicgKSApO1xuXHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTgnICkudGV4dCggJC5pMThuLl8oICdJbW1lZGlhdGUgRGVzdC4gTmFtZScgKSApO1xuXHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTknICkudGV4dCggJC5pMThuLl8oICdUcmFjZSBOdW1iZXInICkgKTtcblx0XHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAndmFsdWUxMCcgKS50ZXh0KCAkLmkxOG4uXyggJ0Rpc2NyZXRpb25hcnkgRGF0YScgKSApO1xuXHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTExJyApLnRleHQoICQuaTE4bi5fKCAnQ29tcGFueSBOYW1lJyApICk7XG5cblx0XHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAndmFsdWUyNCcgKS50ZXh0KCAkLmkxOG4uXyggJ09mZnNldCBUcmFuc2FjdGlvbicgKSApO1xuXHRcdFx0XHRpZiAoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZC52YWx1ZTI0ID09IDEgKSB7XG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkLnZhbHVlMjQgPSB0cnVlO1xuXHRcdFx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ3ZhbHVlMjUnICkudGV4dCggJC5pMThuLl8oICdPZmZzZXQgRGVzY3JpcHRpb24nICkgKTtcblx0XHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTI3JyApLnRleHQoICQuaTE4bi5fKCAnT2Zmc2V0IFJvdXRpbmcnICkgKTtcblx0XHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTI4JyApLnRleHQoICQuaTE4bi5fKCAnT2Zmc2V0IEFjY291bnQnICkgKTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTI5JyApLnRleHQoICQuaTE4bi5fKCAnRmlsZSBIZWFkZXIgTGluZScgKSApO1xuXHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTMwJyApLnRleHQoICQuaTE4bi5fKCAnRmlsZSBUcmFpbGVyIExpbmUnICkgKTtcblx0XHRcdH0gZWxzZSBpZiAoIGRhdGFfZm9ybWF0X2lkID09IDIwIHx8IGRhdGFfZm9ybWF0X2lkID09IDMwIHx8IGRhdGFfZm9ybWF0X2lkID09IDUwICkgeyAvL0NBIC0gRUZUXG5cdFx0XHRcdCQoIHRoaXMuZWRpdF92aWV3X3RhYi5maW5kKCAndWwgbGknIClbMV0gKS5zaG93KCk7IC8vU2hvdyBBZHZhbmNlZCBUYWJcblxuXHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTUnICkudGV4dCggJC5pMThuLl8oICdPcmlnaW5hdG9yIElEJyApICk7XG5cdFx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ3ZhbHVlNicgKS50ZXh0KCAkLmkxOG4uXyggJ09yaWdpbmF0b3IgU2hvcnQgTmFtZScgKSApO1xuXHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTcnICkudGV4dCggJC5pMThuLl8oICdEYXRhIENlbnRlciBJRCcgKSApO1xuXHRcdFx0XHQvL3RoaXMuYXR0YWNoRWxlbWVudCggJ3ZhbHVlNycgKS50ZXh0KCAkLmkxOG4uXygnRGF0YSBDZW50ZXIgTmFtZScpICk7XG5cblx0XHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAndmFsdWUyNicgKS50ZXh0KCAkLmkxOG4uXyggJ1JldHVybiBJbnN0aXR1dGlvbicgKSApO1xuXHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTI3JyApLnRleHQoICQuaTE4bi5fKCAnUmV0dXJuIFRyYW5zaXQnICkgKTtcblx0XHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAndmFsdWUyOCcgKS50ZXh0KCAkLmkxOG4uXyggJ1JldHVybiBBY2NvdW50JyApICk7XG5cdFx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ3ZhbHVlMjknICkudGV4dCggJC5pMThuLl8oICdGaWxlIEhlYWRlciBMaW5lJyApICk7XG5cdFx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ3ZhbHVlMzAnICkudGV4dCggJC5pMThuLl8oICdGaWxlIFRyYWlsZXIgTGluZScgKSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdG9uVHlwZUNoYW5nZSgpIHtcblx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdHZhciB0eXBlX2lkID0gdGhpcy5lZGl0X3ZpZXdfdWlfZGljLnR5cGVfaWQuZ2V0VmFsdWUoKTtcblx0XHR2YXIgY291bnRyeSA9ICggdGhpcy5lZGl0X3ZpZXdfdWlfZGljLmNvdW50cnkuZ2V0VmFsdWUoKSAmJiB0aGlzLmVkaXRfdmlld191aV9kaWMuY291bnRyeS5nZXRWYWx1ZSgpICE9IFRUVVVJRC56ZXJvX2lkICkgPyB0aGlzLmVkaXRfdmlld191aV9kaWMuY291bnRyeS5nZXRWYWx1ZSgpIDogdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkLmNvdW50cnk7IC8vc29tZXRpbWVzIGl0J3MgZmFsc2UgZm9yIG5vIHJlYXNvbi5cblxuXHRcdCQoIHRoaXMuZWRpdF92aWV3X3RhYi5maW5kKCAndWwgbGknIClbMV0gKS5zaG93KCk7IC8vU2hvdyBBZHZhbmNlZCB0YWJcblxuXHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ2RhdGFfZm9ybWF0X2lkJyApO1xuXHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ2xhc3RfdHJhbnNhY3Rpb25fbnVtYmVyJyApO1xuXHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ3ZhbHVlMV8xJyApO1xuXHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ3ZhbHVlMV8yJyApO1xuXHRcdC8vdGhpcy5kZXRhY2hFbGVtZW50KCAndmFsdWUxJyApO1xuXHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ3ZhbHVlMicgKTtcblx0XHR0aGlzLmRldGFjaEVsZW1lbnQoICd2YWx1ZTMnICk7XG5cblx0XHRpZiAoIGNvdW50cnkgPT0gZmFsc2UgfHwgdHlwZV9pZCA9PSBmYWxzZSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoIHR5cGVfaWQgPT0gMjAwMCApIHtcblx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ2xhc3RfdHJhbnNhY3Rpb25fbnVtYmVyJyApLnRleHQoICQuaTE4bi5fKCAnTGFzdCBDaGVjayBOdW1iZXInICkgKTtcblx0XHR9IGVsc2UgaWYgKCB0eXBlX2lkID09IDMwMDAgKSB7XG5cdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICdsYXN0X3RyYW5zYWN0aW9uX251bWJlcicgKS50ZXh0KCAkLmkxOG4uXyggJ0xhc3QgQmF0Y2ggTnVtYmVyJyApICk7XG5cblx0XHRcdGlmICggIXRoaXMuaXNfbWFzc19lZGl0aW5nICYmIGNvdW50cnkgIT0gbnVsbCApIHtcblx0XHRcdFx0aWYgKCBjb3VudHJ5ID09ICdVUycgKSB7IC8vQUNIXG5cdFx0XHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAndmFsdWUxXzInICkudGV4dCggJC5pMThuLl8oICdBY2NvdW50IFR5cGUnICkgKTtcblx0XHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTInICkudGV4dCggJC5pMThuLl8oICdSb3V0aW5nJyApICk7XG5cdFx0XHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAndmFsdWUzJyApLnRleHQoICQuaTE4bi5fKCAnQWNjb3VudCcgKSApO1xuXHRcdFx0XHRcdGlmICggR2xvYmFsLmlzRmFsc2VPck51bGwoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFsndmFsdWUxJ10gKSApIHtcblx0XHRcdFx0XHRcdHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFsndmFsdWUxJ10gPSB0aGlzLmVkaXRfdmlld191aV9kaWNbJ3ZhbHVlMV8yJ10uZ2V0VmFsdWUoKTtcblx0XHRcdFx0XHRcdHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFsndmFsdWUxXzInXSA9IHRoaXMuZWRpdF92aWV3X3VpX2RpY1sndmFsdWUxXzInXS5nZXRWYWx1ZSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmICggY291bnRyeSA9PSAnQ0EnICkgeyAvL0NhbmFkaWFuIEVGVFxuXHRcdFx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ3ZhbHVlMV8xJyApLnRleHQoICQuaTE4bi5fKCAnSW5zdGl0dXRpb24nICkgKTtcblx0XHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTInICkudGV4dCggJC5pMThuLl8oICdCYW5rIFRyYW5zaXQnICkgKTtcblx0XHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTMnICkudGV4dCggJC5pMThuLl8oICdBY2NvdW50JyApICk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoICQuaW5BcnJheSggY291bnRyeSwgWydBRycsICdCUycsICdCQicsICdCWicsICdETycsICdHWScsICdIVCcsICdKTScsICdETScsICdHRCcsICdLTicsICdMQycsICdWQycsICdTUicsICdUVCddICkgIT0gLTEgKSB7IC8vQ2FycmliYmVhbiBjb3VudHJpZXMuXG5cdFx0XHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAndmFsdWUxXzEnICkudGV4dCggJC5pMThuLl8oICdJbnN0aXR1dGlvbicgKSApO1xuXHRcdFx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ3ZhbHVlMicgKS50ZXh0KCAkLmkxOG4uXyggJ0JhbmsgVHJhbnNpdCcgKSApO1xuXHRcdFx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ3ZhbHVlMycgKS50ZXh0KCAkLmkxOG4uXyggJ0FjY291bnQnICkgKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTFfMicgKS50ZXh0KCAkLmkxOG4uXyggJ0FjY291bnQgVHlwZScgKSApO1xuXHRcdFx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ3ZhbHVlMicgKS50ZXh0KCAkLmkxOG4uXyggJ1JvdXRpbmcnICkgKTtcblx0XHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICd2YWx1ZTMnICkudGV4dCggJC5pMThuLl8oICdBY2NvdW50JyApICk7XG5cdFx0XHRcdFx0aWYgKCBHbG9iYWwuaXNGYWxzZU9yTnVsbCggdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkWyd2YWx1ZTEnXSApICkge1xuXHRcdFx0XHRcdFx0dGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkWyd2YWx1ZTEnXSA9IHRoaXMuZWRpdF92aWV3X3VpX2RpY1sndmFsdWUxXzInXS5nZXRWYWx1ZSgpO1xuXHRcdFx0XHRcdFx0dGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkWyd2YWx1ZTFfMiddID0gdGhpcy5lZGl0X3ZpZXdfdWlfZGljWyd2YWx1ZTFfMiddLmdldFZhbHVlKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JCggJyN0YWJfYWR2YW5jZWRfY29udGVudF9kaXYgLmVkaXQtdmlldy1mb3JtLWl0ZW0tZGl2IC5lZGl0LXZpZXctZm9ybS1pdGVtLWxhYmVsLWRpdicgKS5jc3MoICdib3JkZXItdG9wLWxlZnQtcmFkaXVzJywgJzBweCcgKTtcblx0XHQkKCAnI3RhYl9hZHZhbmNlZF9jb250ZW50X2RpdiAuZWRpdC12aWV3LWZvcm0taXRlbS1kaXY6Zmlyc3QgLmVkaXQtdmlldy1mb3JtLWl0ZW0tbGFiZWwtZGl2JyApLmNzcyggJ2JvcmRlci10b3AtbGVmdC1yYWRpdXMnLCAnNXB4JyApO1xuXG5cdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHR0aGlzLmFwaS5nZXRPcHRpb25zKCAnZGF0YV9mb3JtYXQnLCB7ICd0eXBlX2lkJzogdHlwZV9pZCwgJ2NvdW50cnknOiBjb3VudHJ5IH0sIHtcblx0XHRcdGFzeW5jOiBmYWxzZSxcblx0XHRcdG9uUmVzdWx0OiBmdW5jdGlvbiggcmVzICkge1xuXHRcdFx0XHQkdGhpcy5hdHRhY2hFbGVtZW50KCAnZGF0YV9mb3JtYXRfaWQnICk7XG5cdFx0XHRcdHZhciByZXN1bHQgPSByZXMuZ2V0UmVzdWx0KCk7XG5cblx0XHRcdFx0JHRoaXMuZGF0YV9mb3JtYXRfYXJyYXkgPSBHbG9iYWwuYnVpbGRSZWNvcmRBcnJheSggcmVzdWx0ICk7XG5cblx0XHRcdFx0aWYgKCBHbG9iYWwuaXNTZXQoICR0aGlzLmJhc2ljX3NlYXJjaF9maWVsZF91aV9kaWNbJ2RhdGFfZm9ybWF0X2lkJ10gKSApIHtcblx0XHRcdFx0XHQkdGhpcy5iYXNpY19zZWFyY2hfZmllbGRfdWlfZGljWydkYXRhX2Zvcm1hdF9pZCddLnNldFNvdXJjZURhdGEoICR0aGlzLmRhdGFfZm9ybWF0X2FycmF5ICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoIEdsb2JhbC5pc1NldCggJHRoaXMuYWR2X3NlYXJjaF9maWVsZF91aV9kaWNbJ2RhdGFfZm9ybWF0X2lkJ10gKSApIHtcblx0XHRcdFx0XHQkdGhpcy5hZHZfc2VhcmNoX2ZpZWxkX3VpX2RpY1snZGF0YV9mb3JtYXRfaWQnXS5zZXRTb3VyY2VEYXRhKCAkdGhpcy5kYXRhX2Zvcm1hdF9hcnJheSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JHRoaXMuZWRpdF92aWV3X3VpX2RpY1snZGF0YV9mb3JtYXRfaWQnXS5zZXRTb3VyY2VEYXRhKCAkdGhpcy5kYXRhX2Zvcm1hdF9hcnJheSApO1xuXHRcdFx0XHRpZiAoICR0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRbJ2RhdGFfZm9ybWF0X2lkJ10gJiYgcmVzdWx0WyR0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRbJ2RhdGFfZm9ybWF0X2lkJ11dICkge1xuXHRcdFx0XHRcdCR0aGlzLmVkaXRfdmlld191aV9kaWNbJ2RhdGFfZm9ybWF0X2lkJ10uc2V0VmFsdWUoICR0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRbJ2RhdGFfZm9ybWF0X2lkJ10gKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQkdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkWydkYXRhX2Zvcm1hdF9pZCddID0gJHRoaXMuZWRpdF92aWV3X3VpX2RpY1snZGF0YV9mb3JtYXRfaWQnXS5nZXRWYWx1ZSgpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JHRoaXMub25EYXRhRm9ybWF0Q2hhbmdlKCk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXG5cdFx0dGhpcy5lZGl0RmllbGRSZXNpemUoKTtcblx0fVxuXG5cdGJ1aWxkRWRpdFZpZXdVSSgpIHtcblxuXHRcdHN1cGVyLmJ1aWxkRWRpdFZpZXdVSSgpO1xuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cblx0XHR2YXIgdGFiX21vZGVsID0ge1xuXHRcdFx0J3RhYl9yZW1pdHRhbmNlX3NvdXJjZV9hY2NvdW50JzogeyAnbGFiZWwnOiAkLmkxOG4uXyggJ1JlbWl0dGFuY2UgU291cmNlIEFjY291bnQnICkgfSxcblx0XHRcdCd0YWJfYWR2YW5jZWQnOiB7XG5cdFx0XHRcdCdsYWJlbCc6ICQuaTE4bi5fKCAnQWR2YW5jZWQnIClcblx0XHRcdH0sXG5cdFx0XHQndGFiX2F1ZGl0JzogdHJ1ZSxcblx0XHR9O1xuXHRcdHRoaXMuc2V0VGFiTW9kZWwoIHRhYl9tb2RlbCApO1xuXG5cdFx0dGhpcy5uYXZpZ2F0aW9uLkFDb21ib0JveCgge1xuXHRcdFx0YXBpX2NsYXNzOiBUVEFQSS5BUElSZW1pdHRhbmNlU291cmNlQWNjb3VudCxcblx0XHRcdGlkOiB0aGlzLnNjcmlwdF9uYW1lICsgJ19uYXZpZ2F0aW9uJyxcblx0XHRcdGFsbG93X211bHRpcGxlX3NlbGVjdGlvbjogZmFsc2UsXG5cdFx0XHRsYXlvdXRfbmFtZTogJ2dsb2JhbF9yZW1pdHRhbmNlX3NvdXJjZV9hY2NvdW50Jyxcblx0XHRcdG5hdmlnYXRpb25fbW9kZTogdHJ1ZSxcblx0XHRcdHNob3dfc2VhcmNoX2lucHV0czogdHJ1ZVxuXHRcdH0gKTtcblxuXHRcdHRoaXMuc2V0TmF2aWdhdGlvbigpO1xuXG5cdFx0Ly9UYWIgMCBzdGFydFxuXHRcdHZhciB0YWJfcmVtaXR0YW5jZV9zb3VyY2VfYWNjb3VudCA9IHRoaXMuZWRpdF92aWV3X3RhYi5maW5kKCAnI3RhYl9yZW1pdHRhbmNlX3NvdXJjZV9hY2NvdW50JyApO1xuXHRcdHZhciB0YWJfcmVtaXR0YW5jZV9zb3VyY2VfYWNjb3VudF9jb2x1bW4xID0gdGFiX3JlbWl0dGFuY2Vfc291cmNlX2FjY291bnQuZmluZCggJy5maXJzdC1jb2x1bW4nICk7XG5cdFx0dGhpcy5lZGl0X3ZpZXdfdGFic1swXSA9IFtdO1xuXHRcdHRoaXMuZWRpdF92aWV3X3RhYnNbMF0ucHVzaCggdGFiX3JlbWl0dGFuY2Vfc291cmNlX2FjY291bnRfY29sdW1uMSApO1xuXG5cdFx0Ly9BZHZhbmNlZCB0YWJcblx0XHR2YXIgdGFiX2FkdmFuY2VkID0gdGhpcy5lZGl0X3ZpZXdfdGFiLmZpbmQoICcjdGFiX2FkdmFuY2VkJyApO1xuXHRcdHZhciB0YWJfYWR2YW5jZWRfY29sdW1uMSA9IHRhYl9hZHZhbmNlZC5maW5kKCAnLmZpcnN0LWNvbHVtbicgKTtcblx0XHR0aGlzLmVkaXRfdmlld190YWJzWzFdID0gW107XG5cdFx0dGhpcy5lZGl0X3ZpZXdfdGFic1sxXS5wdXNoKCB0YWJfYWR2YW5jZWRfY29sdW1uMSApO1xuXG5cdFx0Ly8gTGVnYWwgRW50aXR5XG5cdFx0dmFyIGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1ggKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuQUNvbWJvQm94KCB7XG5cdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSUxlZ2FsRW50aXR5LFxuXHRcdFx0YWxsb3dfbXVsdGlwbGVfc2VsZWN0aW9uOiBmYWxzZSxcblx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX2xlZ2FsX2VudGl0eScsXG5cdFx0XHRmaWVsZDogJ2xlZ2FsX2VudGl0eV9pZCcsXG5cdFx0XHQvL3NldF9lbXB0eTogdHJ1ZSxcblx0XHRcdHNldF9hbnk6IHRydWUsXG5cdFx0XHRzaG93X3NlYXJjaF9pbnB1dHM6IHRydWVcblx0XHR9ICk7XG5cblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0xlZ2FsIEVudGl0eScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfcmVtaXR0YW5jZV9zb3VyY2VfYWNjb3VudF9jb2x1bW4xLCAnJyApO1xuXG5cdFx0Ly9TdGF0dXNcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkNPTUJPX0JPWCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UQ29tYm9Cb3goIHsgZmllbGQ6ICdzdGF0dXNfaWQnIH0gKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuc2V0U291cmNlRGF0YSggJHRoaXMuc3RhdHVzX2FycmF5ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdTdGF0dXMnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX3JlbWl0dGFuY2Vfc291cmNlX2FjY291bnRfY29sdW1uMSwgJycgKTtcblxuXHRcdC8vIE5hbWVcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHRJbnB1dCggeyBmaWVsZDogJ25hbWUnLCB3aWR0aDogJzEwMCUnIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ05hbWUnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX3JlbWl0dGFuY2Vfc291cmNlX2FjY291bnRfY29sdW1uMSApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5wYXJlbnQoKS53aWR0aCggJzQ1JScgKTtcblxuXHRcdC8vIERlc2NyaXB0aW9uXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUX0FSRUEgKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHRBcmVhKCB7IGZpZWxkOiAnZGVzY3JpcHRpb24nLCB3aWR0aDogJzEwMCUnIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0Rlc2NyaXB0aW9uJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9yZW1pdHRhbmNlX3NvdXJjZV9hY2NvdW50X2NvbHVtbjEgKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQucGFyZW50KCkud2lkdGgoICc0NSUnICk7XG5cblx0XHQvL1RZUEVcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkNPTUJPX0JPWCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UQ29tYm9Cb3goIHsgZmllbGQ6ICd0eXBlX2lkJyB9ICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LnNldFNvdXJjZURhdGEoICR0aGlzLnR5cGVfYXJyYXkgKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ1R5cGUnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX3JlbWl0dGFuY2Vfc291cmNlX2FjY291bnRfY29sdW1uMSwgJycgKTtcblxuXHRcdC8vQ291bnRyeVxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQ09NQk9fQk9YICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRDb21ib0JveCggeyBmaWVsZDogJ2NvdW50cnknLCBzZXRfZW1wdHk6IHRydWUgfSApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5zZXRTb3VyY2VEYXRhKCAkdGhpcy5jb3VudHJ5X2FycmF5ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdDb3VudHJ5JyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9yZW1pdHRhbmNlX3NvdXJjZV9hY2NvdW50X2NvbHVtbjEgKTtcblxuXHRcdC8vIEN1cnJlbmN5XG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5BV0VTT01FX0JPWCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5BQ29tYm9Cb3goIHtcblx0XHRcdGFwaV9jbGFzczogVFRBUEkuQVBJQ3VycmVuY3ksXG5cdFx0XHRhbGxvd19tdWx0aXBsZV9zZWxlY3Rpb246IGZhbHNlLFxuXHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfY3VycmVuY3knLFxuXHRcdFx0ZmllbGQ6ICdjdXJyZW5jeV9pZCcsXG5cdFx0XHRzZXRfZW1wdHk6IHRydWUsXG5cdFx0XHRzaG93X3NlYXJjaF9pbnB1dHM6IHRydWVcblx0XHR9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdDdXJyZW5jeScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfcmVtaXR0YW5jZV9zb3VyY2VfYWNjb3VudF9jb2x1bW4xICk7XG5cblx0XHQvLyBEYXRhIEZvcm1hdFxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQ09NQk9fQk9YICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRDb21ib0JveCggeyBmaWVsZDogJ2RhdGFfZm9ybWF0X2lkJyB9ICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LnNldFNvdXJjZURhdGEoICR0aGlzLmRhdGFfZm9ybWF0X2FycmF5ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdGb3JtYXQnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX3JlbWl0dGFuY2Vfc291cmNlX2FjY291bnRfY29sdW1uMSwgJycsIG51bGwsIHRydWUgKTtcblxuXHRcdC8vIExhc3QgVHJhbnNhY3Rpb24gTnVtYmVyXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUX0lOUFVUICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0SW5wdXQoIHsgZmllbGQ6ICdsYXN0X3RyYW5zYWN0aW9uX251bWJlcicsIHdpZHRoOiAnNjAnIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0xhc3QgVHJhbnNhY3Rpb24gTnVtYmVyJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9yZW1pdHRhbmNlX3NvdXJjZV9hY2NvdW50X2NvbHVtbjEsICcnLCBudWxsLCB0cnVlICk7XG5cblxuXHRcdC8vZ2VuZXJhdGUgVmFsdWUjIGZpZWxkcyAxLTMwXG5cdFx0Ly9zaG9ydGVyIGFuZCBlYXNpZXIgdG8gcmVhZCB0aGFuIDE1MCBleHRyYSBsaW5lc1xuXHRcdGZvciAoIHZhciBpID0gMTsgaSA8PSAzMDsgaSsrICkge1xuXHRcdFx0dmFyIHdpZHRoID0gJzIwMCc7XG5cblx0XHRcdHZhciB0eXBlX2lkID0gdGhpcy5lZGl0X3ZpZXdfdWlfZGljLnR5cGVfaWQuZ2V0VmFsdWUoKTtcblx0XHRcdGlmICggdHlwZV9pZCA9PSAyMDAwICYmIEdsb2JhbC5nZXRQcm9kdWN0RWRpdGlvbigpID49IDE1ICYmICggaSA9PSA1IHx8IGkgPT0gNiApICkgeyAvLzU9VmVydGljYWwgQWxpZ25tZW50LCA2PUhvcml6YW9udGFsIEFsaWdubWVudFxuXHRcdFx0XHR3aWR0aCA9IDQyO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIGkgPT0gMjkgfHwgaSA9PSAzMCApIHsgLy8yOTogZmlsZSBoZWFkZXIgbGluZS4gMzA6IGZpbGUgdHJhaWxlciBsaW5lLlxuXHRcdFx0XHR3aWR0aCA9ICc1MDAnO1xuXHRcdFx0fVxuXHRcdFx0dmFyIHRhYl9mb3JfdmFsdWVzID0gdGFiX3JlbWl0dGFuY2Vfc291cmNlX2FjY291bnRfY29sdW1uMTtcblx0XHRcdGlmICggaSA+IDMgKSB7XG5cdFx0XHRcdHRhYl9mb3JfdmFsdWVzID0gdGFiX2FkdmFuY2VkX2NvbHVtbjE7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggaSA9PSAxICkgeyAvL0FDSFxuXHRcdFx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblx0XHRcdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0SW5wdXQoIHsgZmllbGQ6ICd2YWx1ZTFfMScsIHZhbGlkYXRpb25fZmllbGQ6ICd2YWx1ZTEnLCB3aWR0aDogd2lkdGggfSApO1xuXHRcdFx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ1ZhbHVlJyArIGkgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfZm9yX3ZhbHVlcywgJycsIG51bGwsIHRydWUgKTtcblxuXHRcdFx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkNPTUJPX0JPWCApO1xuXHRcdFx0XHRmb3JtX2l0ZW1faW5wdXQuVENvbWJvQm94KCB7IGZpZWxkOiAndmFsdWUxXzInLCB2YWxpZGF0aW9uX2ZpZWxkOiAndmFsdWUxJyB9ICk7XG5cdFx0XHRcdGZvcm1faXRlbV9pbnB1dC5zZXRTb3VyY2VEYXRhKCAkdGhpcy5hY2hfdHJhbnNhY3Rpb25fdHlwZV9hcnJheSApO1xuXHRcdFx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ1ZhbHVlJyArIGkgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfZm9yX3ZhbHVlcywgJycsIG51bGwsIHRydWUgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlmICggaSA9PSAyNCApIHsgLy8yNDogT2Zmc2V0IFRyYW5zYWN0aW9uXG5cdFx0XHRcdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5DSEVDS0JPWCApO1xuXHRcdFx0XHRcdGZvcm1faXRlbV9pbnB1dC5UQ2hlY2tib3goIHsgZmllbGQ6ICd2YWx1ZScgKyBpIH0gKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblx0XHRcdFx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHRJbnB1dCggeyBmaWVsZDogJ3ZhbHVlJyArIGksIHdpZHRoOiB3aWR0aCB9ICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdWYWx1ZScgKyBpICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2Zvcl92YWx1ZXMsICcnLCBudWxsLCB0cnVlICk7XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQvL1NpZ25hdHVyZSBVcGxvYWRcblx0XHRpZiAoIHR5cGVvZiBGb3JtRGF0YSA9PSAndW5kZWZpbmVkJyApIHtcblx0XHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuSU1BR0VfQlJPV1NFUiApO1xuXG5cdFx0XHR0aGlzLmZpbGVfYnJvd3NlciA9IGZvcm1faXRlbV9pbnB1dC5USW1hZ2VCcm93c2VyKCB7XG5cdFx0XHRcdGZpZWxkOiAnc2lnbmF0dXJlJyxcblx0XHRcdFx0ZGVmYXVsdF93aWR0aDogMjU2LFxuXHRcdFx0XHRkZWZhdWx0X2hlaWdodDogNDdcblx0XHRcdH0gKTtcblxuXHRcdFx0dGhpcy5maWxlX2Jyb3dzZXIuYmluZCggJ2ltYWdlQ2hhbmdlJywgZnVuY3Rpb24oIGUsIHRhcmdldCApIHtcblx0XHRcdFx0bmV3IFNlcnZpY2VDYWxsZXIoKS51cGxvYWRGaWxlKCB0YXJnZXQuZ2V0VmFsdWUoKSwgJ29iamVjdF90eXBlPXJlbWl0dGFuY2Vfc291cmNlX2FjY291bnQmb2JqZWN0X2lkPScgKyAkdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkLmlkLCB7XG5cdFx0XHRcdFx0b25SZXN1bHQ6IGZ1bmN0aW9uKCByZXN1bHQgKSB7XG5cblx0XHRcdFx0XHRcdGlmICggcmVzdWx0LnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyApIHtcblx0XHRcdFx0XHRcdFx0JHRoaXMuZmlsZV9icm93c2VyLnNldEltYWdlKCAkdGhpcy5nZXRTaWduYXR1cmVVcmwoKSApO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0VEFsZXJ0TWFuYWdlci5zaG93QWxlcnQoIHJlc3VsdCwgJ0Vycm9yJyApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSApO1xuXG5cdFx0XHR9ICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuSU1BR0VfQVZEX0JST1dTRVIgKTtcblxuXHRcdFx0dGhpcy5maWxlX2Jyb3dzZXIgPSBmb3JtX2l0ZW1faW5wdXQuVEltYWdlQWR2QnJvd3Nlcigge1xuXHRcdFx0XHRmaWVsZDogJ3NpZ25hdHVyZScsIGNhbGxCYWNrOiBmdW5jdGlvbiggZm9ybV9kYXRhICkge1xuXHRcdFx0XHRcdG5ldyBTZXJ2aWNlQ2FsbGVyKCkudXBsb2FkRmlsZSggZm9ybV9kYXRhLCAnb2JqZWN0X3R5cGU9cmVtaXR0YW5jZV9zb3VyY2VfYWNjb3VudCZvYmplY3RfaWQ9JyArICR0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmQuaWQsIHtcblx0XHRcdFx0XHRcdG9uUmVzdWx0OiBmdW5jdGlvbiggcmVzdWx0ICkge1xuXG5cdFx0XHRcdFx0XHRcdGlmICggcmVzdWx0LnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyApIHtcblx0XHRcdFx0XHRcdFx0XHQkdGhpcy5maWxlX2Jyb3dzZXIuc2V0SW1hZ2UoICR0aGlzLmdldFNpZ25hdHVyZVVybCgpICk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0VEFsZXJ0TWFuYWdlci5zaG93QWxlcnQoIHJlc3VsdCwgJ0Vycm9yJyApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSApO1xuXG5cdFx0XHRcdH1cblx0XHRcdH0gKTtcblx0XHR9XG5cblx0XHRpZiAoIHRoaXMuaXNfZWRpdCApIHtcblx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ3NpZ25hdHVyZScgKTtcblx0XHRcdHRoaXMuZmlsZV9icm93c2VyLnNldEVuYWJsZURlbGV0ZSggdHJ1ZSApO1xuXHRcdFx0dGhpcy5maWxlX2Jyb3dzZXIuYmluZCggJ2RlbGV0ZUNsaWNrJywgZnVuY3Rpb24oIGUsIHRhcmdldCApIHtcblx0XHRcdFx0JHRoaXMuYXBpLmRlbGV0ZUltYWdlKCAkdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkLmlkLCB7XG5cdFx0XHRcdFx0b25SZXN1bHQ6IGZ1bmN0aW9uKCByZXN1bHQgKSB7XG5cdFx0XHRcdFx0XHQkdGhpcy5vbkRlbGV0ZUltYWdlKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9ICk7XG5cdFx0XHR9ICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuZGV0YWNoRWxlbWVudCggJ3NpZ25hdHVyZScgKTtcblx0XHR9XG5cblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ1NpZ25hdHVyZScgKSwgdGhpcy5maWxlX2Jyb3dzZXIsIHRhYl9hZHZhbmNlZF9jb2x1bW4xLCAnJywgbnVsbCwgdHJ1ZSwgdHJ1ZSApO1xuXHR9XG5cblx0YnVpbGRTZWFyY2hGaWVsZHMoKSB7XG5cblx0XHRzdXBlci5idWlsZFNlYXJjaEZpZWxkcygpO1xuXHRcdHRoaXMuc2VhcmNoX2ZpZWxkcyA9IFtcblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdMZWdhbCBFbnRpdHknICksXG5cdFx0XHRcdGluX2NvbHVtbjogMSxcblx0XHRcdFx0ZmllbGQ6ICdsZWdhbF9lbnRpdHlfaWQnLFxuXHRcdFx0XHRsYXlvdXRfbmFtZTogJ2dsb2JhbF9sZWdhbF9lbnRpdHknLFxuXHRcdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSUxlZ2FsRW50aXR5LFxuXHRcdFx0XHRtdWx0aXBsZTogdHJ1ZSxcblx0XHRcdFx0YmFzaWNfc2VhcmNoOiB0cnVlLFxuXHRcdFx0XHRhZHZfc2VhcmNoOiBmYWxzZSxcblx0XHRcdFx0c2NyaXB0X25hbWU6ICdMZWdhbEVudGl0eVZpZXcnLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9ICksXG5cdFx0XHRuZXcgU2VhcmNoRmllbGQoIHtcblx0XHRcdFx0bGFiZWw6ICQuaTE4bi5fKCAnU3RhdHVzJyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDEsXG5cdFx0XHRcdGZpZWxkOiAnc3RhdHVzX2lkJyxcblx0XHRcdFx0bXVsdGlwbGU6IHRydWUsXG5cdFx0XHRcdGJhc2ljX3NlYXJjaDogdHJ1ZSxcblx0XHRcdFx0YWR2X3NlYXJjaDogZmFsc2UsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX29wdGlvbl9jb2x1bW4nLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9ICksXG5cdFx0XHRuZXcgU2VhcmNoRmllbGQoIHtcblx0XHRcdFx0bGFiZWw6ICQuaTE4bi5fKCAnTmFtZScgKSxcblx0XHRcdFx0aW5fY29sdW1uOiAxLFxuXHRcdFx0XHRmaWVsZDogJ25hbWUnLFxuXHRcdFx0XHRtdWx0aXBsZTogdHJ1ZSxcblx0XHRcdFx0YmFzaWNfc2VhcmNoOiB0cnVlLFxuXHRcdFx0XHRhZHZfc2VhcmNoOiBmYWxzZSxcblx0XHRcdFx0Zm9ybV9pdGVtX3R5cGU6IEZvcm1JdGVtVHlwZS5URVhUX0lOUFVUXG5cdFx0XHR9ICksXG5cdFx0XHRuZXcgU2VhcmNoRmllbGQoIHtcblx0XHRcdFx0bGFiZWw6ICQuaTE4bi5fKCAnQ3JlYXRlZCBCeScgKSxcblx0XHRcdFx0aW5fY29sdW1uOiAzLFxuXHRcdFx0XHRmaWVsZDogJ2NyZWF0ZWRfYnknLFxuXHRcdFx0XHRsYXlvdXRfbmFtZTogJ2dsb2JhbF91c2VyJyxcblx0XHRcdFx0YXBpX2NsYXNzOiBUVEFQSS5BUElVc2VyLFxuXHRcdFx0XHRtdWx0aXBsZTogdHJ1ZSxcblx0XHRcdFx0YmFzaWNfc2VhcmNoOiB0cnVlLFxuXHRcdFx0XHRhZHZfc2VhcmNoOiBmYWxzZSxcblx0XHRcdFx0c2NyaXB0X25hbWU6ICdFbXBsb3llZVZpZXcnLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YXG5cdFx0XHR9ICksXG5cblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdVcGRhdGVkIEJ5JyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDMsXG5cdFx0XHRcdGZpZWxkOiAndXBkYXRlZF9ieScsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX3VzZXInLFxuXHRcdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSVVzZXIsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IGZhbHNlLFxuXHRcdFx0XHRzY3JpcHRfbmFtZTogJ0VtcGxveWVlVmlldycsXG5cdFx0XHRcdGZvcm1faXRlbV90eXBlOiBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1hcblx0XHRcdH0gKVxuXG5cdFx0XTtcblx0fVxufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///3401\n")}}]);