diff --git a/client/galaxy/scripts/mvc/collection/list-of-pairs-collection-creator.js b/client/galaxy/scripts/mvc/collection/list-of-pairs-collection-creator.js index 269650b427b..e4137a1db9f 100644 --- a/client/galaxy/scripts/mvc/collection/list-of-pairs-collection-creator.js +++ b/client/galaxy/scripts/mvc/collection/list-of-pairs-collection-creator.js @@ -568,7 +568,8 @@ var PairedCollectionCreator = Backbone.View.extend( baseMVC.LoggableMixin ).exte */ createList : function( name ){ var creator = this, - url = '/api/histories/' + this.historyId + '/contents/dataset_collections'; + root = ( window.Galaxy && Galaxy.options.root )? Galaxy.options.root : '/', + url = root + 'api/histories/' + this.historyId + '/contents/dataset_collections'; //TODO: use ListPairedCollection.create() var ajaxData = { diff --git a/config/galaxy.ini.sample b/config/galaxy.ini.sample index 7653d1e90be..92006b3dc99 100644 --- a/config/galaxy.ini.sample +++ b/config/galaxy.ini.sample @@ -973,9 +973,10 @@ use_interactive = True # Very large metadata values can cause Galaxy crashes. This will allow # limiting the maximum metadata key size (in bytes used in memory, not the end -# result database value size) Galaxy will attempt to save with a dataset. 0 to -# disable this feature. 5000000 seems to be a reasonable size. -#max_metadata_value_size = 0 +# result database value size) Galaxy will attempt to save with a dataset. Use +# 0 to disable this feature. The default is 5MB, but as low as 1MB seems to be +# a reasonable size. +#max_metadata_value_size = 5242880 # If (for example) you run on a cluster and your datasets (by default, # database/files/) are mounted read-only, this option will override tool output diff --git a/lib/galaxy/config.py b/lib/galaxy/config.py index 52c65ea9741..d8ef4f90a75 100644 --- a/lib/galaxy/config.py +++ b/lib/galaxy/config.py @@ -146,7 +146,7 @@ class Configuration( object ): self.tool_secret = kwargs.get( "tool_secret", "" ) self.id_secret = kwargs.get( "id_secret", "USING THE DEFAULT IS NOT SECURE!" ) self.retry_metadata_internally = string_as_bool( kwargs.get( "retry_metadata_internally", "True" ) ) - self.max_metadata_value_size = int( kwargs.get( "max_metadata_value_size", 0 ) ) + self.max_metadata_value_size = int( kwargs.get( "max_metadata_value_size", 5242880 ) ) self.use_remote_user = string_as_bool( kwargs.get( "use_remote_user", "False" ) ) self.normalize_remote_user_email = string_as_bool( kwargs.get( "normalize_remote_user_email", "False" ) ) self.remote_user_maildomain = kwargs.get( "remote_user_maildomain", None ) diff --git a/lib/galaxy/datatypes/metadata.py b/lib/galaxy/datatypes/metadata.py index 85e88bcace9..51683d6a052 100644 --- a/lib/galaxy/datatypes/metadata.py +++ b/lib/galaxy/datatypes/metadata.py @@ -754,7 +754,7 @@ class JobExternalOutputMetadataWrapper( object ): if dataset_path.real_path == metadata_files.dataset.file_name: return dataset_path.false_path or dataset_path.real_path return "" - line = "%s,%s,%s,%s,%s,%s" % ( + line = '"%s,%s,%s,%s,%s,%s"' % ( metadata_path_on_compute(metadata_files.filename_in), metadata_path_on_compute(metadata_files.filename_kwds), metadata_path_on_compute(metadata_files.filename_out), @@ -826,16 +826,16 @@ class JobExternalOutputMetadataWrapper( object ): sa_session.add( metadata_files ) sa_session.flush() metadata_files_list.append( metadata_files ) - args = "%s %s %s %s" % ( datatypes_config, - job_metadata, - " ".join( map( __metadata_files_list_to_cmd_line, metadata_files_list ) ), - max_metadata_value_size) + args = '"%s" "%s" %s %s' % ( datatypes_config, + job_metadata, + " ".join( map( __metadata_files_list_to_cmd_line, metadata_files_list ) ), + max_metadata_value_size) if include_command: # return command required to build fd, fp = tempfile.mkstemp( suffix='.py', dir=tmp_dir, prefix="set_metadata_" ) metadata_script_file = abspath( fp ) os.fdopen( fd, 'w' ).write( 'from galaxy_ext.metadata.set_metadata import set_metadata; set_metadata()' ) - return "python %s %s" % ( metadata_path_on_compute(metadata_script_file), args ) + return 'python "%s" %s' % ( metadata_path_on_compute(metadata_script_file), args ) else: # return args to galaxy_ext.metadata.set_metadata required to build return args diff --git a/lib/galaxy/datatypes/registry.py b/lib/galaxy/datatypes/registry.py index 9a8ddd75ab2..884a60b9546 100644 --- a/lib/galaxy/datatypes/registry.py +++ b/lib/galaxy/datatypes/registry.py @@ -652,11 +652,13 @@ class Registry( object ): samtools - python $set_metadata $__SET_EXTERNAL_METADATA_COMMAND_LINE__ + python "${set_metadata}" ${__SET_EXTERNAL_METADATA_COMMAND_LINE__} - + + + from galaxy_ext.metadata.set_metadata import set_metadata; set_metadata() diff --git a/lib/galaxy/webapps/galaxy/controllers/cloudlaunch.py b/lib/galaxy/webapps/galaxy/controllers/cloudlaunch.py index 59272b921e3..158cdb2d260 100644 --- a/lib/galaxy/webapps/galaxy/controllers/cloudlaunch.py +++ b/lib/galaxy/webapps/galaxy/controllers/cloudlaunch.py @@ -60,13 +60,17 @@ class CloudController(BaseUIController): """ Get EC2 Account Info """ - account_info = {} - cml = cloudman.launch.CloudManLauncher(key_id, secret) - ec2_conn = cml.connect_ec2(key_id, secret) - kps = ec2_conn.get_all_key_pairs() - account_info['clusters'] = cml.get_clusters_pd() - account_info['keypairs'] = [akp.name for akp in kps] - return dumps(account_info) + try: + account_info = {} + cml = cloudman.launch.CloudManLauncher(key_id, secret) + ec2_conn = cml.connect_ec2(key_id, secret) + kps = ec2_conn.get_all_key_pairs() + account_info['clusters'] = cml.get_clusters_pd() + account_info['keypairs'] = [akp.name for akp in kps] + return dumps(account_info) + except EC2ResponseError as e: + trans.response.status = 400 + return e.message @web.expose def launch_instance(self, trans, cluster_name, password, key_id, secret, diff --git a/static/maps/mvc/collection/list-of-pairs-collection-creator.js.map b/static/maps/mvc/collection/list-of-pairs-collection-creator.js.map index 710d4449038..74d9373c8eb 100644 --- a/static/maps/mvc/collection/list-of-pairs-collection-creator.js.map +++ b/static/maps/mvc/collection/list-of-pairs-collection-creator.js.map @@ -1 +1 @@ -{"version":3,"file":"list-of-pairs-collection-creator.js","sources":["../../../src/mvc/collection/list-of-pairs-collection-creator.js"],"names":["define","levenshteinDistance","naturalSort","LIST_COLLECTION_CREATOR","baseMVC","_l","autoPairFnBuilder","options","getRegExps","_regexps","length","RegExp","this","filters","createPair","params","debug","listA","indexA","name","listB","indexB","_pair","splice","silent","preprocessMatch","regexps","call","_","extend","matchTo","replace","possible","bestMatch","score","index","paired","JSON","stringify","match","scoreThreshold","push","createListOfPairsCollection","collection","elements","toJSON","pairedCollectionCreatorModal","historyId","PairView","Backbone","View","LoggableMixin","tagName","className","initialize","attributes","pair","template","join","render","$el","attr","data","html","addClass","events","dragstart","dragend","dragover","drop","_dragstart","ev","currentTarget","style","opacity","originalEvent","dataTransfer","effectAllowed","setData","parent","trigger","_dragend","_sendToParent","toString","PairedCollectionCreator","metric","defaults","datasets","DEFAULT_FILTERS","automaticallyPair","strategy","matchPercentage","twoPassAutopairing","initialList","commonFilters","isArray","strategies","DEFAULT_STRATEGY","isFunction","removeExtensions","oncancel","oncreate","autoscrollDist","unpairedPanelHidden","pairedPanelHidden","$dragging","blocking","_setUpBehaviors","_dataSetUp","illumina","Rs","simple","lcs","levenshtein","unpaired","selectedIds","_sortInitialList","_ensureIds","slice","autoPair","once","_sortDatasetList","list","sort","a","b","forEach","dataset","hasOwnProperty","id","uniqueId","_splitByFilters","_filter","filter","test","regexFilters","map","stringFilter","split","i","_addToUnpaired","binSearchSortedIndex","low","hi","mid","Math","floor","compared","bind","autopairSimple","concat","autopairLevenshtein","distance","max","autopairLCS","_naiveStartingAndEndingLCS","s1","s2","fwdLCS","revLCS","j","fwd","rev","_createPair","without","Error","_guessNameForPair","forward","reverse","undefined","fwdName","revName","lastDotIndex","lastIndexOf","extension","_unpair","unpairAll","pairs","_pairToJSON","src","collection_type","element_identifiers","createList","creator","url","ajaxData","type","escape","$","val","jQuery","ajax","contentType","dataType","always","fail","xhr","status","message","_ajaxErrHandler","done","response","error","content","readyState","responseJSON","_showAlert","speed","empty","templates","main","_renderHeader","_renderMiddle","_renderFooter","_addPluginComponents","$header","header","find","prepend","helpContent","_renderFilters","add","$middle","middle","hide","_renderUnpaired","_renderPaired","$fwd","$rev","$prd","text","_renderUnpairedDisplayStr","toggle","_renderUnpairedEmpty","_renderPairButton","_renderUnpairedDataset","append","_adjUnpairedOnScrollbar","_renderUnpairedNotShown","numFiltered","selected","$msg","$unpairedColumns","last","$firstDataset","first","size","ucRight","offset","left","outerWidth","dsRight","rightDiff","css","_renderPairedEmpty","show","pairView","$footer","footer","prop","_chooseFiltersPopover","hoverhighlight","selector","filterChoice","val1","val2","$popoverContent","values","filterSet","popover","container","placement","_validationWarning","what","clear","VALIDATION_CLASS","focus","select","removeClass","on","scrollTop","splitView","msgClass","hideUnpaired","click .more-help","click .less-help","click .header .alert button","click .forward-column .column-title","click .reverse-column .column-title","click .unpair-all-link","change .forward-unpaired-filter input","focus .forward-unpaired-filter input","click .autopair-link","click .choose-filters .filter-choice","click .clear-filters-link","change .reverse-unpaired-filter input","focus .reverse-unpaired-filter input","click .forward-column .dataset.unpaired","click .reverse-column .dataset.unpaired","click .paired-column .dataset.unpaired","click .unpaired-columns","mousedown .unpaired-columns .dataset","click .paired-column-title","mousedown .flexible-partition-drag","click .paired-columns .dataset.paired","click .paired-columns","click .paired-columns .pair-name","click .unpair-btn","dragover .paired-columns .column-datasets","drop .paired-columns .column-datasets","pair.dragstart .paired-columns .column-datasets","pair.dragend .paired-columns .column-datasets","change .remove-extensions","toggleExtensions","change .collection-name","keydown .collection-name","click .cancel-create","click .create-collection","_clickMoreHelp","_clickLessHelp","alertClass","_hideAlert","_clickShowOnlyUnpaired","is","hidePaired","_clickShowOnlyPaired","callback","_clickUnpairAll","_clickAutopair","_clickFilterChoice","$selected","_hideChooseFilters","_clearFilters","_clickUnpairedDataset","stopPropagation","toggleSelectUnpaired","$dataset","force","hasClass","waitToPair","pairAllSelected","fwds","revs","each","min","err","clearSelectedUnpaired","_mousedownUnpaired","shiftKey","$startTarget","target","moveListener","document","one","off","_clickPairRow","rowIndex","eq","_startPartitionDrag","endDrag","unbind","trackMouse","pageY","startingY","adjPartition","mousemove","adj","$unpaired","$paired","unpairedHi","parseInt","pairedHi","movingUpwards","height","flex","selectPair","toggleClass","clearSelectedPaired","_clickPairName","$name","$pair","prompt","customizedName","_clickUnpair","pairIndex","_dragoverPairedColumns","preventDefault","$list","_checkForAutoscroll","clientY","$nearest","_getNearestPairedDatasetLi","remove","$placeholder","before","$element","y","AUTOSCROLL_SPEED","upperDist","top","lowerDist","outerHeight","WIGGLE","lis","toArray","$li","halfHeight","_dropPairedColumns","dropEffect","insertBefore","insertAfter","_syncPairsToDom","newPaired","_pairDragstart","_pairDragend","_changeName","_getName","_nameCheckForEnter","keyCode","_clickCreate","_printList","e","_printPair","deferred","Deferred","Galaxy","modal","reject","resolve","window","title","body","width","closing_events"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"list-of-pairs-collection-creator.js","sources":["../../../src/mvc/collection/list-of-pairs-collection-creator.js"],"names":["define","levenshteinDistance","naturalSort","LIST_COLLECTION_CREATOR","baseMVC","_l","autoPairFnBuilder","options","getRegExps","_regexps","length","RegExp","this","filters","createPair","params","debug","listA","indexA","name","listB","indexB","_pair","splice","silent","preprocessMatch","regexps","call","_","extend","matchTo","replace","possible","bestMatch","score","index","paired","JSON","stringify","match","scoreThreshold","push","createListOfPairsCollection","collection","elements","toJSON","pairedCollectionCreatorModal","historyId","PairView","Backbone","View","LoggableMixin","tagName","className","initialize","attributes","pair","template","join","render","$el","attr","data","html","addClass","events","dragstart","dragend","dragover","drop","_dragstart","ev","currentTarget","style","opacity","originalEvent","dataTransfer","effectAllowed","setData","parent","trigger","_dragend","_sendToParent","toString","PairedCollectionCreator","metric","defaults","datasets","DEFAULT_FILTERS","automaticallyPair","strategy","matchPercentage","twoPassAutopairing","initialList","commonFilters","isArray","strategies","DEFAULT_STRATEGY","isFunction","removeExtensions","oncancel","oncreate","autoscrollDist","unpairedPanelHidden","pairedPanelHidden","$dragging","blocking","_setUpBehaviors","_dataSetUp","illumina","Rs","simple","lcs","levenshtein","unpaired","selectedIds","_sortInitialList","_ensureIds","slice","autoPair","once","_sortDatasetList","list","sort","a","b","forEach","dataset","hasOwnProperty","id","uniqueId","_splitByFilters","_filter","filter","test","regexFilters","map","stringFilter","split","i","_addToUnpaired","binSearchSortedIndex","low","hi","mid","Math","floor","compared","bind","autopairSimple","concat","autopairLevenshtein","distance","max","autopairLCS","_naiveStartingAndEndingLCS","s1","s2","fwdLCS","revLCS","j","fwd","rev","_createPair","without","Error","_guessNameForPair","forward","reverse","undefined","fwdName","revName","lastDotIndex","lastIndexOf","extension","_unpair","unpairAll","pairs","_pairToJSON","src","collection_type","element_identifiers","createList","creator","root","window","Galaxy","url","ajaxData","type","escape","$","val","jQuery","ajax","contentType","dataType","always","fail","xhr","status","message","_ajaxErrHandler","done","response","error","content","readyState","responseJSON","_showAlert","speed","empty","templates","main","_renderHeader","_renderMiddle","_renderFooter","_addPluginComponents","$header","header","find","prepend","helpContent","_renderFilters","add","$middle","middle","hide","_renderUnpaired","_renderPaired","$fwd","$rev","$prd","text","_renderUnpairedDisplayStr","toggle","_renderUnpairedEmpty","_renderPairButton","_renderUnpairedDataset","append","_adjUnpairedOnScrollbar","_renderUnpairedNotShown","numFiltered","selected","$msg","$unpairedColumns","last","$firstDataset","first","size","ucRight","offset","left","outerWidth","dsRight","rightDiff","css","_renderPairedEmpty","show","pairView","$footer","footer","prop","_chooseFiltersPopover","hoverhighlight","selector","filterChoice","val1","val2","$popoverContent","values","filterSet","popover","container","placement","_validationWarning","what","clear","VALIDATION_CLASS","focus","select","removeClass","on","scrollTop","splitView","msgClass","hideUnpaired","click .more-help","click .less-help","click .header .alert button","click .forward-column .column-title","click .reverse-column .column-title","click .unpair-all-link","change .forward-unpaired-filter input","focus .forward-unpaired-filter input","click .autopair-link","click .choose-filters .filter-choice","click .clear-filters-link","change .reverse-unpaired-filter input","focus .reverse-unpaired-filter input","click .forward-column .dataset.unpaired","click .reverse-column .dataset.unpaired","click .paired-column .dataset.unpaired","click .unpaired-columns","mousedown .unpaired-columns .dataset","click .paired-column-title","mousedown .flexible-partition-drag","click .paired-columns .dataset.paired","click .paired-columns","click .paired-columns .pair-name","click .unpair-btn","dragover .paired-columns .column-datasets","drop .paired-columns .column-datasets","pair.dragstart .paired-columns .column-datasets","pair.dragend .paired-columns .column-datasets","change .remove-extensions","toggleExtensions","change .collection-name","keydown .collection-name","click .cancel-create","click .create-collection","_clickMoreHelp","_clickLessHelp","alertClass","_hideAlert","_clickShowOnlyUnpaired","is","hidePaired","_clickShowOnlyPaired","callback","_clickUnpairAll","_clickAutopair","_clickFilterChoice","$selected","_hideChooseFilters","_clearFilters","_clickUnpairedDataset","stopPropagation","toggleSelectUnpaired","$dataset","force","hasClass","waitToPair","pairAllSelected","fwds","revs","each","min","err","clearSelectedUnpaired","_mousedownUnpaired","shiftKey","$startTarget","target","moveListener","document","one","off","_clickPairRow","rowIndex","eq","_startPartitionDrag","endDrag","unbind","trackMouse","pageY","startingY","adjPartition","mousemove","adj","$unpaired","$paired","unpairedHi","parseInt","pairedHi","movingUpwards","height","flex","selectPair","toggleClass","clearSelectedPaired","_clickPairName","$name","$pair","prompt","customizedName","_clickUnpair","pairIndex","_dragoverPairedColumns","preventDefault","$list","_checkForAutoscroll","clientY","$nearest","_getNearestPairedDatasetLi","remove","$placeholder","before","$element","y","AUTOSCROLL_SPEED","upperDist","top","lowerDist","outerHeight","WIGGLE","lis","toArray","$li","halfHeight","_dropPairedColumns","dropEffect","insertBefore","insertAfter","_syncPairsToDom","newPaired","_pairDragstart","_pairDragend","_changeName","_getName","_nameCheckForEnter","keyCode","_clickCreate","_printList","e","_printPair","deferred","Deferred","modal","reject","resolve","title","body","width","closing_events"],"mappings":"AAAAA,QACI,oBACA,qBACA,yCACA,eACA,qBACA,qBACD,SAAUC,EAAqBC,EAAaC,EAAyBC,EAASC,GA+EjF,QAASC,GAAmBC,GAaxB,QAASC,KAOL,MANKC,GAASC,SACVD,GACI,GAAIE,QAAQC,KAAKC,QAAQ,IACzB,GAAIF,QAAQC,KAAKC,QAAQ,MAG1BJ,EAnBXF,EAAUA,MACVA,EAAQO,WAAaP,EAAQO,YAAc,SAA6BC,GAGpE,MAFAH,MAAKI,MAAO,iBAAkBD,EAAOE,MAAOF,EAAOG,QAASC,KAAMJ,EAAOK,MAAOL,EAAOM,QAASF,MAChGJ,EAASA,MACFH,KAAKU,MACRP,EAAOE,MAAMM,OAAQR,EAAOG,OAAQ,GAAI,GACxCH,EAAOK,MAAMG,OAAQR,EAAOM,OAAQ,GAAI,IACtCG,QAAQ,IAIlB,IAAIf,KAmBJ,OARAF,GAAQkB,gBAAkBlB,EAAQkB,iBAAmB,SAAkCV,GACnF,GAAIW,GAAUlB,EAAWmB,KAAMf,KAC/B,OAAOgB,GAAEC,OAAQd,GACbe,QAAcf,EAAOe,QAAQX,KAAKY,QAASL,EAAQ,GAAI,IACvDM,SAAcjB,EAAOiB,SAASb,KAAKY,QAASL,EAAQ,GAAI,OAIzD,SAAoBX,GACvBH,KAAKI,MAAO,kDACZD,EAASA,KACT,IAEgBM,GAFZJ,EAAQF,EAAOE,MACfG,EAAQL,EAAOK,MACfF,EAAS,EACTe,GACIC,MAAQ,EACRC,MAAQ,MAEZC,IAKJ,KAHAxB,KAAKI,MAAO,sBAAuBC,EAAMP,OAAQU,EAAMV,QACvDE,KAAKI,MAAO,wBAAyBqB,KAAKC,UAAWL,EAAW,KAAM,OAE/Df,EAASD,EAAMP,QAAQ,CAC1B,GAAIoB,GAAUb,EAAOC,EAGrB,KAFAe,EAAUC,MAAQ,EAEbb,EAAO,EAAGA,EAAOD,EAAMV,OAAQW,IAAU,CAC1C,GAAIW,GAAWZ,EAAOC,EAKtB,IAJAT,KAAKI,MAAOE,EAAS,IAAMY,EAAQX,MACnCP,KAAKI,MAAOK,EAAS,IAAMW,EAASb,MAGhCF,EAAOC,KAAaE,EAAOC,KAC3BY,EAAY1B,EAAQgC,MAAMZ,KAAMf,KAAML,EAAQkB,gBAAgBE,KAAMf,MAChEkB,QAAUA,EACVE,SAAUA,EACVG,MAAUd,EACVY,UAAYA,KAEhBrB,KAAKI,MAAO,aAAcqB,KAAKC,UAAWL,EAAW,KAAM,OACnC,IAApBA,EAAUC,OAAe,CACzBtB,KAAKI,MAAO,sCACZ,QAIZ,GAAIwB,GAAiBjC,EAAQiC,eAAeb,KAAMf,KAgBlD,IAfAA,KAAKI,MAAO,kBAAmBwB,GAC/B5B,KAAKI,MAAO,mBAAoBiB,EAAUC,OAEtCD,EAAUC,OAASM,GACnB5B,KAAKI,MAAO,iBACZoB,EAAOK,KAAMlC,EAAQO,WAAWa,KAAMf,MAClCK,MAAUA,EACVC,OAAUA,EACVE,MAAUA,EACVC,OAAUY,EAAUE,SAExBvB,KAAKI,MAAO,iBAAkBC,EAAMP,OAAQU,EAAMV,SAElDQ,GAAU,GAETD,EAAMP,SAAWU,EAAMV,OACxB,MAAO0B,GAKf,MAFAxB,MAAKI,MAAO,UAAWqB,KAAKC,UAAWF,EAAQ,KAAM,OACrDxB,KAAKI,MAAO,kDACLoB,GAk/Cf,QAASM,GAA6BC,GAClC,GAAIC,GAAWD,EAAWE,QAE1B,OAAOC,GAA8BF,GACjCG,UAAYJ,EAAWI,YAlpD/B,GAAIC,GAAWC,SAASC,KAAKrB,OAAQzB,EAAQ+C,eAAgBtB,QAEzDuB,QAAc,KACdC,UAAc,iBAEdC,WAAa,SAAUC,GACnB3C,KAAK4C,KAAOD,EAAWC,UAG3BC,SAAW7B,EAAE6B,UACT,iFACA,8CACI,kDACJ,UACA,kFACFC,KAAK,KAEPC,OAAS,WAML,MALA/C,MAAKgD,IACAC,KAAM,aAAa,GACnBC,KAAM,OAAQlD,KAAK4C,MACnBO,KAAMnD,KAAK6C,UAAWD,KAAM5C,KAAK4C,QACjCQ,SAAU,yBACRpD,MAGXqD,QACIC,UAAsB,aACtBC,QAAsB,WACtBC,SAAsB,gBACtBC,KAAsB,iBAI1BC,WAAa,SAAUC,GACnBA,EAAGC,cAAcC,MAAMC,QAAU,MAC7BH,EAAGI,gBAAiBJ,EAAKA,EAAGI,eAEhCJ,EAAGK,aAAaC,cAAgB,OAChCN,EAAGK,aAAaE,QAAS,aAAczC,KAAKC,UAAW1B,KAAK4C,OAE5D5C,KAAKgD,IAAImB,SAASC,QAAS,kBAAoBpE,QAInDqE,SAAW,SAAUV,GACjBA,EAAGC,cAAcC,MAAMC,QAAU,MACjC9D,KAAKgD,IAAImB,SAASC,QAAS,gBAAkBpE,QAIjDsE,cAAgB,SAAUX,GACtB3D,KAAKgD,IAAImB,SAASC,QAAST,IAI/BY,SAAW,WACP,MAAO,YAAcvE,KAAK4C,KAAKrC,KAAO,OA2G1CiE,EAA0BnC,SAASC,KAAKrB,OAAQzB,EAAQ+C,eAAgBtB,QAExEwB,UAAW,yEAGXC,WAAa,SAAUC,GACnB3C,KAAKyE,OAAQ,qCAAsC9B,GAGnDA,EAAa3B,EAAE0D,SAAU/B,GACrBgC,YACA1E,QAAsBD,KAAK4E,gBAC3BC,mBAAsB,EACtBC,SAAsB,MACtBC,gBAAsB,GACtBC,oBAAsB,IAI1BhF,KAAKiF,YAActC,EAAWgC,SAG9B3E,KAAKmC,UAAYQ,EAAWR,UAG5BnC,KAAKC,QAAUD,KAAKkF,cAAevC,EAAW1C,UAAaD,KAAKkF,cAAelF,KAAK4E,iBAChF5D,EAAEmE,QAASxC,EAAW1C,WACtBD,KAAKC,QAAU0C,EAAW1C,SAI9BD,KAAK6E,kBAAoBlC,EAAWkC,kBAGpC7E,KAAK8E,SAAW9E,KAAKoF,WAAYzC,EAAWmC,WAAc9E,KAAKoF,WAAYpF,KAAKqF,kBAC5ErE,EAAEsE,WAAY3C,EAAWmC,YACzB9E,KAAK8E,SAAWnC,EAAWmC,UAI/B9E,KAAK+E,gBAAkBpC,EAAWoC,gBAGlC/E,KAAKgF,mBAAqBrC,EAAWqC,mBAGrChF,KAAKuF,kBAAmB,EAIxBvF,KAAKwF,SAAW7C,EAAW6C,SAE3BxF,KAAKyF,SAAW9C,EAAW8C,SAG3BzF,KAAK0F,eAAiB/C,EAAW+C,gBAAkB,GAGnD1F,KAAK2F,qBAAsB,EAE3B3F,KAAK4F,mBAAoB,EAGzB5F,KAAK6F,UAAY,KAGjB7F,KAAK8F,UAAW,EAEhB9F,KAAK+F,kBACL/F,KAAKgG,cAITd,eACIe,UAAoB,KAAM,MAC1BC,IAAoB,MAAO,QAG/BtB,gBAAkB,WAGlBQ,YACIe,OAAkB,iBAClBC,IAAkB,cAClBC,YAAkB,uBAGtBhB,iBAAmB,MAInBW,WAAa,WAGThG,KAAKwB,UACLxB,KAAKsG,YAELtG,KAAKuG,eAGLvG,KAAKwG,mBACLxG,KAAKyG,aACLzG,KAAKsG,SAAWtG,KAAKiF,YAAYyB,MAAO,GAEpC1G,KAAK6E,oBACL7E,KAAK2G,WACL3G,KAAK4G,KAAM,mBAAoB,WAC3B5G,KAAKoE,QAAS,gBAM1BoC,iBAAmB,WAEfxG,KAAK6G,iBAAkB7G,KAAKiF,cAIhC4B,iBAAmB,SAAUC,GAGzB,MADAA,GAAKC,KAAM,SAAUC,EAAGC,GAAK,MAAO3H,GAAa0H,EAAEzG,KAAM0G,EAAE1G,QACpDuG,GAIXL,WAAa,WAMT,MALAzG,MAAKiF,YAAYiC,QAAS,SAAUC,GAC3BA,EAAQC,eAAgB,QACzBD,EAAQE,GAAKrG,EAAEsG,cAGhBtH,KAAKiF,aAIhBsC,gBAAkB,WAMd,QAASC,GAASlB,EAAUmB,GACxB,MAAOA,GAAOC,KAAMpB,EAAS/F,MANjC,GAAIoH,GAAe3H,KAAKC,QAAQ2H,IAAK,SAAUC,GACvC,MAAO,IAAI9H,QAAQ8H,KAEvBC,SAgBJ,OAVA9H,MAAKsG,SAASY,QAAS,SAAsBZ,GAIzCqB,EAAaT,QAAS,SAAUO,EAAQM,GAChCP,EAASlB,EAAUmB,IACnBK,EAAMC,GAAGlG,KAAMyE,OAIpBwB,GAIXE,eAAiB,SAAUb,GAEvB,GAAIc,GAAuB,SAAUC,EAAKC,GACtC,GAAID,IAAQC,EAAM,MAAOD,EAEzB,IAAIE,GAAMC,KAAKC,OAASH,EAAKD,GAAQ,GAAMA,EACvCK,EAAWjJ,EAAa6H,EAAQ5G,KAAMP,KAAKsG,SAAU8B,GAAM7H,KAE/D,IAAe,EAAXgI,EACA,MAAON,GAAsBC,EAAKE,EAC/B,IAAIG,EAAW,EAClB,MAAON,GAAsBG,EAAM,EAAGD,EAG1C,MAAOnI,KAAKsG,SAAU8B,IAASpI,KAAKsG,SAAU8B,GAAM7H,OAAS4G,EAAQ5G,MAAQ6H,GAC7E,OAAOA,IAETI,KAAMxI,KAERA,MAAKsG,SAAS3F,OAAQsH,EAAsB,EAAGjI,KAAKsG,SAASxG,QAAU,EAAGqH,IAO9ER,SAAW,SAAU7B,GAEjB,GAAIgD,GAAQ9H,KAAKuH,kBACb/F,IAmBJ,OAlBIxB,MAAKgF,qBACLxD,EAASxB,KAAKyI,gBACVpI,MAAQyH,EAAM,GACdtH,MAAQsH,EAAM,KAElBA,EAAQ9H,KAAKuH,mBAOjBzC,EAAWA,GAAY9E,KAAK8E,SAC5BgD,EAAQ9H,KAAKuH,kBACb/F,EAASA,EAAOkH,OAAQ1I,KAAM8E,GAAW/D,KAAMf,MACvCK,MAAQyH,EAAM,GACdtH,MAAQsH,EAAM,OAM1BW,eAAiB/I,GACbkC,eAAgB,WAAY,MAAO,IACnCD,MAAQ,SAAiBxB,GAErB,MADAA,GAASA,MACLA,EAAOe,UAAYf,EAAOiB,UAEtBG,MAAOpB,EAAOoB,MACdD,MAAO,GAGRnB,EAAOkB,aAKtBsH,oBAAsBjJ,GAClBkC,eAAgB,WAAY,MAAO5B,MAAK+E,iBACxCpD,MAAQ,SAAmBxB,GACvBA,EAASA,KACT,IAAIyI,GAAWvJ,EAAqBc,EAAOe,QAASf,EAAOiB,UACvDE,EAAQ,EAAQsH,EAAaP,KAAKQ,IAAK1I,EAAOe,QAAQpB,OAAQK,EAAOiB,SAAStB,OAClF,OAAIwB,GAAQnB,EAAOkB,UAAUC,OAErBC,MAAOpB,EAAOoB,MACdD,MAAOA,GAGRnB,EAAOkB,aAKtByH,YAAcpJ,GACVkC,eAAgB,WAAY,MAAO5B,MAAK+E,iBACxCpD,MAAQ,SAAmBxB,GACvBA,EAASA,KACT,IAAIwB,GAAQ3B,KAAK+I,2BAA4B5I,EAAOe,QAASf,EAAOiB,UAAWtB,OAC3EwB,EAAQK,EAAU0G,KAAKQ,IAAK1I,EAAOe,QAAQpB,OAAQK,EAAOiB,SAAStB,OACvE,OAAIwB,GAAQnB,EAAOkB,UAAUC,OAErBC,MAAOpB,EAAOoB,MACdD,MAAOA,GAGRnB,EAAOkB,aAKtB0H,2BAA6B,SAAUC,EAAIC,GAIvC,IAHA,GAAIC,GAAS,GACTC,EAAS,GACTpB,EAAI,EAAGqB,EAAI,EACRrB,EAAIiB,EAAGlJ,QAAUiI,EAAIkB,EAAGnJ,QACvBkJ,EAAIjB,KAAQkB,EAAIlB,IAGpBmB,GAAUF,EAAIjB,GACdA,GAAK,CAET,IAAIA,IAAMiB,EAAGlJ,OAAU,MAAOkJ,EAC9B,IAAIjB,IAAMkB,EAAGnJ,OAAU,MAAOmJ,EAI9B,KAFAlB,EAAMiB,EAAGlJ,OAAS,EAClBsJ,EAAMH,EAAGnJ,OAAS,EACXiI,GAAK,GAAKqB,GAAK,GACdJ,EAAIjB,KAAQkB,EAAIG,IAGpBD,GAAWH,EAAIjB,GAAKoB,GAASrG,KAAM,IACnCiF,GAAK,EACLqB,GAAK,CAET,OAAOF,GAASC,GAKpBzI,MAAQ,SAAU2I,EAAKC,EAAK3J,GACxBA,EAAUA,KAEV,IAAIiD,GAAO5C,KAAKuJ,YAAaF,EAAKC,EAAK3J,EAAQY,KAM/C,OALAP,MAAKwB,OAAOK,KAAMe,GAClB5C,KAAKsG,SAAWtF,EAAEwI,QAASxJ,KAAKsG,SAAU+C,EAAKC,GAC1C3J,EAAQiB,QACTZ,KAAKoE,QAAS,WAAYxB,GAEvBA,GAIX2G,YAAc,SAAUF,EAAKC,EAAK/I,GAE9B,IAAO8I,IAAOC,GAAWD,IAAQC,EAC7B,KAAM,IAAIG,OAAO,iBAAoBhI,KAAKC,UAAW2H,GAAO5H,KAAKC,UAAW4H,IAGhF,OADA/I,GAAOA,GAAQP,KAAK0J,kBAAmBL,EAAKC,IACnCK,QAAUN,EAAK9I,KAAOA,EAAMqJ,QAAUN,IAInDI,kBAAoB,SAAUL,EAAKC,EAAK/D,GACpCA,EAA0CsE,SAArBtE,EAAiC,EAAuBvF,KAAsB,gBACnG,IAAI8J,GAAUT,EAAI9I,KACdwJ,EAAUT,EAAI/I,KACd6F,EAAMpG,KAAK+I,2BACPe,EAAQ3I,QAASnB,KAAKC,QAAQ,GAAI,IAClC8J,EAAQ5I,QAASnB,KAAKC,QAAQ,GAAI,IAE1C,IAAIsF,EAAkB,CAClB,GAAIyE,GAAe5D,EAAI6D,YAAa,IACpC,IAAID,EAAe,EAAG,CAClB,GAAIE,GAAY9D,EAAIM,MAAOsD,EAAc5D,EAAItG,OAC7CsG,GAAMA,EAAIjF,QAAS+I,EAAW,IAC9BJ,EAAUA,EAAQ3I,QAAS+I,EAAW,IACtCH,EAAUA,EAAQ5I,QAAS+I,EAAW,KAG9C,MAAO9D,IAAS0D,EAAU,MAAQC,GAItCI,QAAU,SAAUvH,EAAMjD,GAEtB,GADAA,EAAUA,OACLiD,EACD,KAAM,IAAI6G,OAAO,aAAehI,KAAKC,UAAWkB,GASpD,OAPA5C,MAAKwB,OAASR,EAAEwI,QAASxJ,KAAKwB,OAAQoB,GACtC5C,KAAKgI,eAAgBpF,EAAK+G,SAC1B3J,KAAKgI,eAAgBpF,EAAKgH,SAErBjK,EAAQiB,QACTZ,KAAKoE,QAAS,eAAiBxB,IAE5BA,GAIXwH,UAAY,WAER,IADA,GAAIC,MACGrK,KAAKwB,OAAO1B,QACfuK,EAAMxI,KAAM7B,KAAKmK,QAASnK,KAAKwB,OAAQ,IAAOZ,QAAQ,IAE1DZ,MAAKoE,QAAS,cAAeiG,IAKjCC,YAAc,SAAU1H,EAAM2H,GAG1B,MAFAA,GAAMA,GAAO,OAGTC,gBAAkB,SAClBD,IAAkB,iBAClBhK,KAAkBqC,EAAKrC,KACvBkK,sBACIlK,KAAU,UACV8G,GAAUzE,EAAK+G,QAAQtC,GACvBkD,IAAUA,IAEVhK,KAAU,UACV8G,GAAUzE,EAAKgH,QAAQvC,GACvBkD,IAAUA,MAQtBG,WAAa,SAAUnK,GACnB,GAAIoK,GAAU3K,KACV4K,EAASC,OAAOC,QAAUA,OAAOnL,QAAQiL,KAAQE,OAAOnL,QAAQiL,KAAO,IACvEG,EAAMH,EAAO,iBAAmB5K,KAAKmC,UAAY,gCAGjD6I,GACAC,KAAkB,qBAClBT,gBAAkB,cAClBjK,KAAkBS,EAAEkK,OAAQ3K,GAAQoK,EAAQQ,EAAG,oBAAqBC,OACpEX,oBAAsBE,EAAQnJ,OAAOoG,IAAK,SAAUhF,GAChD,MAAO+H,GAAQL,YAAa1H,KAMpC,OADA+H,GAAQ7E,UAAW,EACZuF,OAAOC,KAAMP,GAChBE,KAAc,OACdM,YAAc,mBACdC,SAAc,OACdtI,KAAczB,KAAKC,UAAWsJ,KAEjCS,OAAQ,WACLd,EAAQ7E,UAAW,IAEtB4F,KAAM,SAAUC,EAAKC,EAAQC,GAC1BlB,EAAQmB,gBAAiBH,EAAKC,EAAQC,KAEzCE,KAAM,SAAUC,EAAUH,EAASF,GAEhChB,EAAQvG,QAAS,qBAAsB4H,EAAUH,EAASF,GAC1DhB,EAAQlG,OAAQ,qBAAsBuH,GACN,kBAArBrB,GAAQlF,UACfkF,EAAQlF,SAAS1E,KAAMf,KAAMgM,EAAUH,EAASF,MAM5DG,gBAAkB,SAAUH,EAAKC,EAAQC,GACrC7L,KAAKiM,MAAON,EAAKC,EAAQC,EACzB,IAAIK,GAAUzM,EAAI,mDACdkM,KAEIO,GADmB,IAAnBP,EAAIQ,YAAmC,IAAfR,EAAIC,OACjB,KAAOnM,EAAI,oDAChBA,EAAI,gCACHkM,EAAIS,aACA,cAAgB3K,KAAKC,UAAWiK,EAAIS,cAAiB,SAErD,KAAOP,GAG1BlB,QAAQ0B,WAAYH,EAAS,iBAKjCnJ,OAAS,SAAUuJ,GASf,MANAtM,MAAKgD,IAAIuJ,QAAQpJ,KAAMqB,EAAwBgI,UAAUC,QACzDzM,KAAK0M,cAAeJ,GACpBtM,KAAK2M,cAAeL,GACpBtM,KAAK4M,cAAeN,GACpBtM,KAAK6M,uBACL7M,KAAKoE,QAAS,WAAYpE,MACnBA,MAIX0M,cAAgB,WAEZ,GAAII,GAAU9M,KAAKmL,EAAG,WAAYoB,QAAQpJ,KAAMqB,EAAwBgI,UAAUO,UAC7EC,KAAM,iBAAkBC,QAAS9B,EAAG3G,EAAwBgI,UAAUU,eAG3E,OADAlN,MAAKmN,iBACEL,GAGXK,eAAiB,WACb,MAAUnN,MAAKmL,EAAG,wCAAyCC,IAAKpL,KAAKC,QAAQ,IACxEmN,IAAKpN,KAAKmL,EAAG,wCAAyCC,IAAKpL,KAAKC,QAAQ,MAIjF0M,cAAgB,WACZ,GAAIU,GAAUrN,KAAKmL,EAAG,WAAYoB,QAAQpJ,KAAMqB,EAAwBgI,UAAUc,SAWlF,OARItN,MAAK2F,oBACL3F,KAAKmL,EAAG,qBAAsBoC,OACvBvN,KAAK4F,mBACZ5F,KAAKmL,EAAG,mBAAoBoC,OAGhCvN,KAAKwN,kBACLxN,KAAKyN,gBACEJ,GAGXG,gBAAkB,WAEd,GACIE,GAAMC,EADNhD,EAAU3K,KACE4N,KACZ9F,EAAQ9H,KAAKuH,iBAejB,OAbAvH,MAAKmL,EAAG,0BACH0C,MAAO/F,EAAM,GAAGhI,OAAQL,EAAI,qBAAuBqD,KAAM,MAC9D9C,KAAKmL,EAAG,kCACH0C,KAAM7N,KAAK8N,0BAA2B9N,KAAKsG,SAASxG,OAASgI,EAAM,GAAGhI,SAC3EE,KAAKmL,EAAG,0BACH0C,MAAO/F,EAAM,GAAGhI,OAAQL,EAAI,qBAAuBqD,KAAM,MAC9D9C,KAAKmL,EAAG,kCACH0C,KAAM7N,KAAK8N,0BAA2B9N,KAAKsG,SAASxG,OAASgI,EAAM,GAAGhI,SAE3EE,KAAKmL,EAAG,sCAAuCoB,QAG/CvM,KAAKmL,EAAG,kBAAmB4C,OAAiC,IAAzB/N,KAAKsG,SAASxG,QACpB,IAAzBE,KAAKsG,SAASxG,WACdE,MAAKgO,wBAKTL,EAAO7F,EAAM,GAAGF,IAAK,SAAUT,EAASY,GAMpC,MAJwB8B,UAAlB/B,EAAM,GAAIC,IACVD,EAAM,GAAIC,KAAQZ,GACpByG,EAAK/L,KAAM8I,EAAQsD,qBAEhBtD,EAAQuD,uBAAwB/G,KAE3CuG,EAAO5F,EAAM,GAAGF,IAAK,SAAUT,GAC3B,MAAOwD,GAAQuD,uBAAwB/G,KAGtCuG,EAAK5N,QAAW6N,EAAK7N,QAO1BE,KAAKmL,EAAG,sDAAuDgD,OAAQT,GAClEN,IAAKpN,KAAKmL,EAAG,qDAAsDgD,OAAQP,IAC3ER,IAAKpN,KAAKmL,EAAG,sDAAuDgD,OAAQR,QACjF3N,MAAKoO,+BATDpO,MAAKqO,4BAYbP,0BAA4B,SAAUQ,GAClC,OAAS,IAAKA,EAAa,IAAK7O,EAAI,gBAAkB,KAAMqD,KAAK,KAGrEoL,uBAAyB,SAAU/G,GAE/B,MAAOgE,GAAG,SACLlI,KAAM,KAAM,WAAakE,EAAQE,IACjCjE,SAAU,oBACVH,KAAM,aAAa,GACnBG,SAAU+D,EAAQoH,SAAU,WAAY,IACxCJ,OAAQhD,EAAG,WAAY/H,SAAU,gBAAiByK,KAAM1G,EAAQ5G,OAEhE2C,KAAM,UAAWiE,IAG1B8G,kBAAoB,WAEhB,MAAO9C,GAAG,SAAS/H,SAAU,oBACxB+K,OAAQhD,EAAG,WAAY/H,SAAU,gBAAiByK,KAAMpO,EAAI,0BAGrEuO,qBAAuB,WAEnB,GAAIQ,GAAOrD,EAAG,qCACT0C,KAAM,IAAMpO,EAAI,kCAAqC,IAE1D,OADAO,MAAKmL,EAAG,qDAAsDoB,QAAQU,QAASuB,GACxEA,GAGXH,wBAA0B,WAEtB,GAAIG,GAAOrD,EAAG,qCACT0C,KAAM,IAAMpO,EAAI,uDAA0D,IAE/E,OADAO,MAAKmL,EAAG,qDAAsDoB,QAAQU,QAASuB,GACxEA,GAGXJ,wBAA0B,WACtB,GAAIK,GAAmBzO,KAAKmL,EAAG,qBAAsBuD,OACjDC,EAAgB3O,KAAKmL,EAAG,8CAA+CyD,OAC3E,IAAKD,EAAcE,OAAnB,CACA,GAAIC,GAAUL,EAAiBM,SAASC,KAAOP,EAAiBQ,aAC5DC,EAAUP,EAAcI,SAASC,KAAOL,EAAcM,aACtDE,EAAY9G,KAAKC,MAAOwG,GAAYzG,KAAKC,MAAO4G,EAEpDlP,MAAKmL,EAAG,qCACHiE,IAAK,cAAiBD,EAAY,EAAKA,EAAW,KAI3D1B,cAAgB,WAKZ,GAHAzN,KAAKmL,EAAG,+BAAgC0C,MAAO7N,KAAKwB,OAAO1B,OAAQL,EAAI,WAAaqD,KAAM,MAE1F9C,KAAKmL,EAAG,oBAAqB4C,OAA+B,IAAvB/N,KAAKwB,OAAO1B,QACtB,IAAvBE,KAAKwB,OAAO1B,OAEZ,WADAE,MAAKqP,oBAKLrP,MAAKmL,EAAG,2BAA4BmE,OAGxCtP,KAAKmL,EAAG,oCAAqCoB,OAC7C,IAAI5B,GAAU3K,IACdA,MAAKwB,OAAO0F,QAAS,SAAUtE,GAE3B,GAAI2M,GAAW,GAAInN,IAAWQ,KAAMA,GACpC+H,GAAQQ,EAAG,oCACNgD,OAAQoB,EAASxM,SAASC,KAC1BmL,QACG,8BACI,qCAAsC1O,EAAI,UAAY,YAC1D,aACFqD,KAAM,QAIpBuM,mBAAqB,WACjB,GAAIb,GAAOrD,EAAG,qCACT0C,KAAM,IAAMpO,EAAI,0BAA6B,IAElD,OADAO,MAAKmL,EAAG,oCAAqCoB,QAAQU,QAASuB,GACvDA,GAIX5B,cAAgB,WACZ,GAAI4C,GAAUxP,KAAKmL,EAAG,WAAYoB,QAAQpJ,KAAMqB,EAAwBgI,UAAUiD,SAKlF,OAJAzP,MAAKmL,EAAG,sBAAuBuE,KAAM,UAAW1P,KAAKuF,kBACxB,kBAAlBvF,MAAKwF,UACZxF,KAAKmL,EAAG,sBAAuBmE,OAE5BE,GAIX3C,qBAAuB,WACnB7M,KAAK2P,sBAAuB,wBAC5B3P,KAAKmL,EAAG,mBAAoByE,eAAgB,sBAAuB,8BAIvED,sBAAwB,SAAUE,GAC9B,QAASC,GAAcC,EAAMC,GACzB,OACI,qCACQ,iBAAkBD,EAAM,mBAAoBC,EAAM,KACtDvQ,EAAI,WAAa,KAAMsQ,EAAM,KAC7BtQ,EAAI,WAAa,KAAMuQ,EAC3B,aACFlN,KAAK,IAEX,GAAImN,GAAkB9E,EAAGnK,EAAE6B,UACvB,+BACI,qBACIpD,EAAI,6FACR,UACAuB,EAAEkP,OAAQlQ,KAAKkF,eAAgB0C,IAAK,SAAUuI,GAC1C,MAAOL,GAAcK,EAAU,GAAIA,EAAU,MAC9CrN,KAAM,IACb,UACFA,KAAK,SAEP,OAAO9C,MAAKmL,EAAG0E,GAAWO,SACtBC,UAAc,sBACdC,UAAc,SACdnN,MAAc,EAEd+I,QAAc+D,KAKtBM,mBAAqB,SAAUC,EAAMC,GACjC,GAAIC,GAAmB,oBACV,UAATF,IACAA,EAAOxQ,KAAKmL,EAAG,oBAAqBiC,IAAKpN,KAAKmL,EAAG,4BACjDnL,KAAKmL,EAAG,oBAAqBwF,QAAQC,UAErCH,GACAD,EAAOA,GAAQxQ,KAAKmL,EAAG,IAAMuF,GAC7BF,EAAKK,YAAaH,IAElBF,EAAKpN,SAAUsN,IAMvB3K,gBAAkB,WAyDd,MAxDA/F,MAAK4G,KAAM,WAAY,WACnB5G,KAAKoE,QAAS,mBAAoBpE,QAGtCA,KAAK8Q,GAAI,WAAY,WAEjB9Q,KAAKwN,kBACLxN,KAAKyN,gBAQLzN,KAAKmL,EAAG,mBAAoB4F,UAAW,OAE3C/Q,KAAK8Q,GAAI,cAAe,WAEpB9Q,KAAKwN,kBACLxN,KAAKyN,gBACLzN,KAAKgR,cAGThR,KAAK8Q,GAAI,gBAAiB,WACtB9Q,KAAKC,SACDD,KAAKmL,EAAG,kCAAmCC,MAC3CpL,KAAKmL,EAAG,kCAAmCC,OAE/CpL,KAAKyE,OAAQ,gBAAiBzE,KAAKC,SACnCD,KAAKmN,iBACLnN,KAAKwN,oBAGTxN,KAAK8Q,GAAI,WAAY,WACjB9Q,KAAKwN,kBACLxN,KAAKyN,eAEL,IAAI5B,GAASoF,EAAW,IACpBjR,MAAKwB,OAAO1B,QACZmR,EAAW,gBACXpF,EAAU7L,KAAKwB,OAAO1B,OAAS,IAAML,EAAI,iBACpCO,KAAKsG,SAASxG,SACf+L,GAAW,KAAOpM,EAAI,8CACtBO,KAAKkR,eACLlR,KAAKmL,EAAG,oBAAqBwF,UAGjC9E,EAAUpM,EAAI,yEAElBO,KAAKqM,WAAYR,EAASoF,KAMvBjR,MAGXqD,QAEI8N,mBAA8C,iBAC9CC,mBAA8C,iBAC9CC,8BAA8C,aAC9CC,sCAA8C,yBAC9CC,sCAA8C,yBAC9CC,yBAA8C,kBAE9CC,wCAA8C,WAAgBzR,KAAKoE,QAAS,kBAC5EsN,uCAA8C,SAAU/N,GAAMwH,EAAGxH,EAAGC,eAAgBgN,UACpFe,uBAA8C,iBAC9CC,uCAA8C,qBAC9CC,4BAA8C,gBAC9CC,wCAA8C,WAAgB9R,KAAKoE,QAAS,kBAC5E2N,uCAA8C,SAAUpO,GAAMwH,EAAGxH,EAAGC,eAAgBgN,UAEpFoB,0CAA8C,wBAC9CC,0CAA8C,wBAC9CC,yCAA8C,gBAC9CC,0BAA8C,wBAC9CC,uCAA8C,qBAE9CC,6BAA8C,uBAC9CC,qCAA8C,sBAE9CC,wCAA8C,aAC9CC,wBAA8C,sBAC9CC,mCAA8C,iBAC9CC,oBAA8C,eAI9CC,4CAA8C,yBAC9CC,wCAA8C,qBAE9CC,kDAAoD,iBACpDC,kDAAoD,eAGpDC,4BAA8C,WAAgB/S,KAAKgT,oBACnEC,0BAA8C,cAC9CC,2BAA8C,qBAC9CC,uBAA8C,WACb,kBAAlBnT,MAAKwF,UACZxF,KAAKwF,SAASzE,KAAMf,OAG5BoT,2BAA8C,gBAKlDC,eAAiB,WACbrT,KAAKmL,EAAG,cAAe/H,SAAU,YACjCpD,KAAKmL,EAAG,cAAeoC,QAG3B+F,eAAiB,WACbtT,KAAKmL,EAAG,cAAe0F,YAAa,YACpC7Q,KAAKmL,EAAG,cAAemE,QAI3BjD,WAAa,SAAUR,EAAS0H,GAC5BA,EAAaA,GAAc,eAC3BvT,KAAKmL,EAAG,cAAeoC,OACvBvN,KAAKmL,EAAG,kBAAmBlI,KAAM,QAAS,2BAA4BG,SAAUmQ,GAAajE,OACxFtC,KAAM,kBAAmB7J,KAAM0I,IAGxC2H,WAAa,WACTxT,KAAKmL,EAAG,cAAemE,OACvBtP,KAAKmL,EAAG,kBAAmBoC,QAI/BkG,uBAAyB,WAEjBzT,KAAKmL,EAAG,mBAAoBuI,GAAI,YAChC1T,KAAK2T,aAEL3T,KAAKgR,aAIb4C,qBAAuB,WAEf5T,KAAKmL,EAAG,qBAAsBuI,GAAI,YAClC1T,KAAKkR,eAELlR,KAAKgR,aAKbE,aAAe,SAAU5E,EAAOuH,GAC5B7T,KAAK2F,qBAAsB,EAC3B3F,KAAK4F,mBAAoB,EACzB5F,KAAK2M,cAAeL,EAAOuH,IAG/BF,WAAa,SAAUrH,EAAOuH,GAC1B7T,KAAK2F,qBAAsB,EAC3B3F,KAAK4F,mBAAoB,EACzB5F,KAAK2M,cAAeL,EAAOuH,IAG/B7C,UAAY,SAAU1E,EAAOuH,GAGzB,MAFA7T,MAAK2F,oBAAsB3F,KAAK4F,mBAAoB,EACpD5F,KAAK2M,cAAeL,EAAOuH,GACpB7T,MAIX8T,gBAAkB,WACd9T,KAAKyE,OAAQ,aACbzE,KAAKoK,aAIT2J,eAAiB,WACb,GAAIvS,GAASxB,KAAK2G,UAClB3G,MAAKyE,OAAQ,WAAYjD,EAAO1B,OAAQE,KAAKsG,SAASxG,QACtDE,KAAKoE,QAAS,aAIlB4P,mBAAqB,SAAUrQ,GAC3B,GAAIsQ,GAAY9I,EAAGxH,EAAGC,cACtB5D,MAAKmL,EAAG,kCAAmCC,IAAK6I,EAAU/Q,KAAM,YAChElD,KAAKmL,EAAG,kCAAmCC,IAAK6I,EAAU/Q,KAAM,YAChElD,KAAKkU,qBACLlU,KAAKoE,QAAS,kBAIlB8P,mBAAqB,WAGjBlU,KAAKmL,EAAG,wBAAyBiF,QAAS,QAC1CpQ,KAAKmL,EAAG,YAAaiE,IAAK,UAAW,SAIzC+E,cAAgB,WACZnU,KAAKmL,EAAG,kCAAmCC,IAAK,IAChDpL,KAAKmL,EAAG,kCAAmCC,IAAK,IAChDpL,KAAKoE,QAAS,kBAKlBgQ,sBAAwB,SAAUzQ,GAE9B,MADAA,GAAG0Q,kBACIrU,KAAKsU,qBAAsBnJ,EAAGxH,EAAGC,iBAO5C0Q,qBAAuB,SAAUC,EAAU5U,GACvCA,EAAUA,KACV,IAAIwH,GAAUoN,EAASrR,KAAM,WACzB0N,EAA2B/G,SAAlBlK,EAAQ6U,MAAqB7U,EAAQ6U,OAAQD,EAASE,SAAU,WAE7E,OAAKF,GAAS1F,QAAsBhF,SAAZ1C,GAEpByJ,GACA2D,EAASnR,SAAU,YACdzD,EAAQ+U,YACT1U,KAAK2U,mBAITJ,EAAS1D,YAAa,YAGnB0D,GAZiDA,GAgB5DI,gBAAkB,SAAUhV,GACxBA,EAAUA,KACV,IAAIgL,GAAU3K,KACV4U,KACAC,KACAxK,IAuBJ,OAtBAM,GAAQQ,EAAG,uDAAwD2J,KAAM,WACrEF,EAAK/S,KAAMsJ,EAAGnL,MAAOkD,KAAM,cAE/ByH,EAAQQ,EAAG,uDAAwD2J,KAAM,WACrED,EAAKhT,KAAMsJ,EAAGnL,MAAOkD,KAAM,cAE/B0R,EAAK9U,OAAS+U,EAAK/U,OAASuI,KAAK0M,IAAKH,EAAK9U,OAAQ+U,EAAK/U,QAGxD8U,EAAK1N,QAAS,SAAUmC,EAAKtB,GACzB,IACIsC,EAAMxI,KAAM8I,EAAQjK,MAAO2I,EAAKwL,EAAK9M,IAAMnH,QAAQ,KAErD,MAAOoU,GAGLrK,EAAQsB,MAAO+I,MAGnB3K,EAAMvK,SAAWH,EAAQiB,QACzBZ,KAAKoE,QAAS,WAAYiG,GAEvBA,GAIX4K,sBAAwB,WACpBjV,KAAKmL,EAAG,uCAAwC0F,YAAa,aAIjEqE,mBAAqB,SAAUvR,GAC3B,GAAIA,EAAGwR,SAAU,CACb,GAAIxK,GAAU3K,KACVoV,EAAejK,EAAGxH,EAAG0R,QAASjS,SAAU,YACxCkS,EAAe,SAAU3R,GACrBgH,EAAQQ,EAAGxH,EAAG0R,QAAS5N,OAAQ,YAAarE,SAAU,YAE9DgS,GAAajR,SAAS2M,GAAI,YAAawE,GAGvCnK,EAAGoK,UAAWC,IAAK,UAAW,WAC1BJ,EAAajR,SAASsR,IAAK,YAAaH,GACxC3K,EAAQgK,sBAMpBe,cAAgB,SAAU/R,GAEtB,GAAIgS,GAAWxK,EAAGxH,EAAGC,eAAgBrC,QACjC8H,EAAM8B,EAAG,8CAA+CyK,GAAID,GAAWzS,KAAM,WAC7EoG,EAAM6B,EAAG,8CAA+CyK,GAAID,GAAWzS,KAAM,UAEjFlD,MAAKU,MAAO2I,EAAKC,IAKrBuM,oBAAsB,SAAUlS,GAO5B,QAASmS,KAGLnL,EAAQQ,EAAG,4BAA6BiE,IAAK,QAAS,IACtDjE,EAAG,QAASiE,IAAK,SAAU,IAAK2G,OAAQ,YAAaC,GAEzD,QAASA,GAAYrS,GACjB,GAAIoL,GAASpL,EAAGsS,MAAQC,CAEnBvL,GAAQwL,aAAcpH,IAEvB5D,EAAG,QAAS/G,QAAS,WAEzBuG,EAAQyD,0BACR8H,GAAanH,EApBjB,GAAIpE,GAAU3K,KACVkW,EAAYvS,EAAGsS,KAEnB9K,GAAG,QAASiE,IAAK,SAAU,aAC3BzE,EAAQQ,EAAG,4BAA6BiE,IAAK,QAAS,SAkBtDjE,EAAG,QAASiL,UAAWJ,GACvB7K,EAAG,QAASqK,IAAK,UAAWM,IAIhCK,aAAe,SAAUE,GACrB,GAAIC,GAAYtW,KAAKmL,EAAG,qBACpBoL,EAAUvW,KAAKmL,EAAG,mBAClBqL,EAAaC,SAAUH,EAAUlH,IAAK,UAAY,IAClDsH,EAAWD,SAAUF,EAAQnH,IAAK,UAAY,GAGlDoH,GAAanO,KAAKQ,IAAK,GAAI2N,EAAaH,GACxCK,GAAsBL,CAEtB,IAAIM,GAAsB,EAANN,CAEpB,IAAIM,EAAe,CACf,GAAI3W,KAAK2F,oBACL,OAAO,CACJ,IAAkB,IAAd6Q,EAEP,MADAxW,MAAKkR,gBACE,MAGPlR,MAAK2F,sBACL2Q,EAAUhH,OACVtP,KAAK2F,qBAAsB,EAKnC,IAAKgR,EASG3W,KAAK4F,oBACL2Q,EAAQjH,OACRtP,KAAK4F,mBAAoB,OAXb,CAChB,GAAI5F,KAAK4F,kBACL,OAAO,CACJ,IAAgB,IAAZ8Q,EAEP,MADA1W,MAAK2T,cACE,EAcf,MAJA2C,GAAUlH,KACNwH,OAAUJ,EAAa,KACvBK,KAAU,cAEP,GAKXC,WAAa,SAAUnT,GACnBA,EAAG0Q,kBACHlJ,EAAGxH,EAAGC,eAAgBmT,YAAa,aAIvCC,oBAAsB,WAClBhX,KAAKmL,EAAG,qCAAsC0F,YAAa,aAI/DoG,eAAiB,SAAUtT,GACvBA,EAAG0Q,iBACH,IAAI6C,GAAQ/L,EAAGxH,EAAGC,eACduT,EAAQD,EAAM/S,SAASA,SACvB5C,EAAQ4V,EAAM5V,MAAO,mBACrBqB,EAAO5C,KAAKwB,OAAQD,GACpByK,EAAWoL,OAAQ,iCAAkCxU,EAAKrC,KAC1DyL,KACApJ,EAAKrC,KAAOyL,EAIZpJ,EAAKyU,gBAAiB,EACtBH,EAAMrJ,KAAMjL,EAAKrC,QAKzB+W,aAAe,SAAU3T,GAErB,GAAI4T,GAAYlP,KAAKC,MAAO6C,EAAGxH,EAAGC,eAAgBrC,MAAO,eAEzDvB,MAAKmK,QAASnK,KAAKwB,OAAQ+V,KAW/BC,uBAAyB,SAAU7T,GAE/BA,EAAG8T,gBAEH,IAAIC,GAAQ1X,KAAKmL,EAAG,mCACpBnL,MAAK2X,oBAAqBD,EAAO/T,EAAGI,cAAc6T,QAElD,IAAIC,GAAW7X,KAAK8X,2BAA4BnU,EAAGI,cAAc6T,QAEjEzM,GAAG,6BAA8B4M,QACjC,IAAIC,GAAe7M,EAAG,+CACjB0M,GAAShJ,OAGVgJ,EAASI,OAAQD,GAFjBN,EAAMvJ,OAAQ6J,IAOtBL,oBAAsB,SAAUO,EAAUC,GACtC,GAAIC,GAAmB,EACnBrJ,EAASmJ,EAASnJ,SAClBgC,EAAYmH,EAASnH,YACrBsH,EAAYF,EAAIpJ,EAAOuJ,IACvBC,EAAcxJ,EAAOuJ,IAAMJ,EAASM,cAAkBL,CAEtDE,IAAa,GAAKA,EAAYrY,KAAK0F,eACnCwS,EAASnH,UAAWA,EAAYqH,GACzBG,GAAa,GAAKA,EAAYvY,KAAK0F,gBAC1CwS,EAASnH,UAAWA,EAAYqH,IAOxCN,2BAA6B,SAAUK,GAGnC,IAAK,GAFDM,GAAS,EACTC,EAAM1Y,KAAKmL,EAAG,uCAAwCwN,UACjD5Q,EAAE,EAAGA,EAAE2Q,EAAI5Y,OAAQiI,IAAK,CAC7B,GAAI6Q,GAAMzN,EAAGuN,EAAI3Q,IACbuQ,EAAMM,EAAI7J,SAASuJ,IACnBO,EAAaxQ,KAAKC,MAAOsQ,EAAIJ,cAAgB,GAAMC,CACvD,IAAIH,EAAMO,EAAaV,GAAwBA,EAAnBG,EAAMO,EAE9B,MAAOD,GAGf,MAAOzN,MAGX2N,mBAAqB,SAAUnV,GAE3BA,EAAG8T,iBACH9T,EAAGK,aAAa+U,WAAa,MAE7B,IAAIlB,GAAW7X,KAAK8X,2BAA4BnU,EAAGI,cAAc6T,QAUjE,OATIC,GAAShJ,OACT7O,KAAK6F,UAAUmT,aAAcnB,GAI7B7X,KAAK6F,UAAUoT,YAAajZ,KAAKmL,EAAG,+BAAgCuD,QAGxE1O,KAAKkZ,mBACE,GAGXA,gBAAkB,WACd,GAAIC,KAEJnZ,MAAKmL,EAAG,mCAAoC2J,KAAM,WAC9CqE,EAAUtX,KAAMsJ,EAAGnL,MAAOkD,KAAM,WAGpClD,KAAKwB,OAAS2X,EACdnZ,KAAKyN,iBAGT2L,eAAiB,SAAUzV,EAAIf,GAG3BA,EAAKI,IAAII,SAAU,WACnB,IAAI6Q,GAAYjU,KAAKmL,EAAG,oCACxBnL,MAAK6F,UAAYoO,GAGrBoF,aAAe,WAEXlO,EAAG,6BAA8B4M,SACjC/X,KAAK6F,UAAY,MAIrBmN,iBAAmB,SAAUwB,GACzB,GAAI7J,GAAU3K,IACd2K,GAAQpF,iBAA+BsE,SAAV2K,EAAsB,GAAa7J,EAAQpF,iBAExEvE,EAAE8T,KAAMnK,EAAQnJ,OAAQ,SAAUoB,GAE1BA,EAAKyU,iBACTzU,EAAKrC,KAAOoK,EAAQjB,kBAAmB9G,EAAK+G,QAAS/G,EAAKgH,YAG9De,EAAQ8C,gBACR9C,EAAQiC,iBAIZ0M,YAAc,WACVtZ,KAAKuQ,mBAAoB,SAAUvQ,KAAKuZ,aAI5CC,mBAAqB,SAAU7V,GACR,KAAfA,EAAG8V,SAAmBzZ,KAAK8F,UAC3B9F,KAAK0Z,gBAKbH,SAAW,WACP,MAAOvY,GAAEkK,OAAQlL,KAAKmL,EAAG,oBAAqBC,QAIlDsO,aAAe,WACX,GAAInZ,GAAOP,KAAKuZ,UACXhZ,GAEOP,KAAK8F,UACb9F,KAAK0K,aAFL1K,KAAKuQ,mBAAoB,SAQjCoJ,WAAa,SAAU7S,GACnB,GAAI6D,GAAU3K,IACdgB,GAAE8T,KAAMhO,EAAM,SAAU8S,GAChB9S,IAAS6D,EAAQnJ,QACjBmJ,EAAQkP,WAAYD,MAQhCC,WAAa,SAAUjX,GACnB5C,KAAKI,MAAOwC,EAAK+G,QAAQpJ,KAAMqC,EAAKgH,QAAQrJ,KAAM,OAAQqC,EAAKrC,OAInEgE,SAAW,WAAY,MAAO,4BAQlCC,GAAwBgI,UAAYhI,EAAwBgI,YAGxDC,KAAOzL,EAAE6B,UACL,8CACA,yDACA,yCACFC,KAAK,KAGPiK,OAAS/L,EAAE6B,UACP,qCACI,mDAAoDpD,EAAI,aAAe,OACvE,6BACI,mDAAoDA,EAAI,QAAU,OACtE,SACJ,SACA,wCACI,+FACA,sCACJ,SAEA,uEACI,kDACI,8BACI,6BACI,uBAAwBA,EAAI,oBAAsB,UAClD,iDACJ,SACA,kEACI,4CAA6CA,EAAI,oBAAsB,OAC3E,SACJ,SACJ,SACA,yDACI,8BACI,4DACIA,EAAI,kBACR,OACA,4DACIA,EAAI,iBACR,aACA,uDACIA,EAAI,aACR,OACJ,SACJ,SACA,kDACI,8BACI,6BACI,uBAAwBA,EAAI,oBAAsB,UAClD,iDACJ,SACA,kEACI,4CAA6CA,EAAI,oBAAsB,OAC3E,SACJ,SACJ,SACJ,UACFqD,KAAK,KAGPwK,OAAStM,EAAE6B,UAEP,iFACI,kDACI,oCACJ,SACA,yDACI,oCACJ,SACA,kDACI,oCACJ,SACJ,SACA,mCACI,+CAAgDpD,EAAI,kBAAoB,WACxE,8BACI,iDACI,8BACJ,SACA,yDACIA,EAAI,cACR,OACJ,SACJ,SACA,+EACI,oCACJ,UACFqD,KAAK,KAGP2M,OAASzO,EAAE6B,UACP,iCACI,sBACI,sDACIpD,EAAI,0CAA4C,IAChD,iEACJ,WACJ,SACA,sBACI,0DACI,gBAAiBA,EAAI,kCAAoC,OAC7D,kDAAmDA,EAAI,QAAU,UACrE,SACJ,SAEA,gDACI,wCACI,mDAAoDA,EAAI,UAAY,YACpE,8CACI,0EACMA,EAAI,yCACJ,+BACN,YACA,yCACM,mBAAoBA,EAAI,+BAAiC,YACzD,mBAAoBA,EAAI,6CAA+C,YAC7E,QACJ,SACJ,SAEA,wCACI,qDAAsDA,EAAI,eAAiB,YAC/E,SACJ,UACFqD,KAAK,KAGPoK,YAAclM,EAAE6B,UACZ,MAAOpD,GACH,wGACA,2GACA,yGACA,sCACFqD,KAAM,KAAO,OACf,MAAOrD,GACH,8FACA,yDACA,wFACA,iCACI,8BACI,sEACgB,yDAChB,4CACA,sEACgB,yDACpB,QACA,6DACI,qEACgB,uDAChB,4CACJ,QACA,6DACI,4DACJ,QACJ,SACFqD,KAAM,KAAO,OACf,MAAOrD,GACH,gEACI,oDACI,yEACA,sEACJ,QACA,8DACI,mEACJ,QACA,iEACI,8FACI,uEACJ,6CACJ,QACA,4CACI,iEACJ,QACJ,SACFqD,KAAM,KAAO,OACf,MAAOrD,GACH,iDACI,2FACJ,0FACFqD,KAAM,KAAO,OACf,MAAOrD,GACH,sGACI,qGACNqD,KAAM,KAAO,OACf,MAAOrD,GACH,4FACA,gEACA,oEACFqD,KAAM,KAAO,QACjBA,KAAK,KAMX,IAAIZ,GAA+B,SAAwCyC,EAAUhF,GAEjF,GACIgL,GADAmP,EAAWzO,OAAO0O,UAetB,IAZApa,EAAUqB,EAAE0D,SAAU/E,OAClBgF,SAAcA,EACda,SAAc,WACVsF,OAAOkP,MAAMzM,OACbuM,EAASG,OAAQ,cAErBxU,SAAc,SAAUkF,EAASqB,GAC7BlB,OAAOkP,MAAMzM,OACbuM,EAASI,QAASlO,OAIrBnB,OAAOC,SAAWA,OAAOkP,MAC1B,KAAM,IAAIvQ,OAAO,mCAerB,OAZAkB,GAAU,GAAInG,GAAyB7E,GACvCmL,OAAOkP,MAAM1K,MACT6K,MAAU,yCACVC,KAAUzP,EAAQ3H,IAClBqX,MAAU,MACVzD,OAAU,QACV0D,gBAAgB,IAEpB3P,EAAQ5H,SACR8H,OAAOF,QAAUA,EAGVmP,EAeP,QACItV,wBAA0BA,EAC1BtC,6BAA+BA,EAC/BJ,4BAA8BA"} \ No newline at end of file diff --git a/static/scripts/mvc/collection/list-of-pairs-collection-creator.js b/static/scripts/mvc/collection/list-of-pairs-collection-creator.js index 5ed501e2a84..ebd395c3013 100644 --- a/static/scripts/mvc/collection/list-of-pairs-collection-creator.js +++ b/static/scripts/mvc/collection/list-of-pairs-collection-creator.js @@ -1,2 +1,2 @@ -define(["utils/levenshtein","utils/natural-sort","mvc/collection/list-collection-creator","mvc/base-mvc","utils/localization","ui/hoverhighlight"],function(a,b,c,d,e){function f(a){function b(){return c.length||(c=[new RegExp(this.filters[0]),new RegExp(this.filters[1])]),c}a=a||{},a.createPair=a.createPair||function(a){return this.debug("creating pair:",a.listA[a.indexA].name,a.listB[a.indexB].name),a=a||{},this._pair(a.listA.splice(a.indexA,1)[0],a.listB.splice(a.indexB,1)[0],{silent:!0})};var c=[];return a.preprocessMatch=a.preprocessMatch||function(a){var c=b.call(this);return _.extend(a,{matchTo:a.matchTo.name.replace(c[0],""),possible:a.possible.name.replace(c[1],"")})},function(b){this.debug("autopair _strategy ---------------------------"),b=b||{};var c,d=b.listA,e=b.listB,f=0,g={score:0,index:null},h=[];for(this.debug("starting list lens:",d.length,e.length),this.debug("bestMatch (starting):",JSON.stringify(g,null," "));f=k?(this.debug("creating pair"),h.push(a.createPair.call(this,{listA:d,indexA:f,listB:e,indexB:g.index})),this.debug("list lens now:",d.length,e.length)):f+=1,!d.length||!e.length)return h}return this.debug("paired:",JSON.stringify(h,null," ")),this.debug("autopair _strategy ---------------------------"),h}}function g(a){var b=a.toJSON();return j(b,{historyId:a.historyId})}var h=Backbone.View.extend(d.LoggableMixin).extend({tagName:"li",className:"dataset paired",initialize:function(a){this.pair=a.pair||{}},template:_.template(['<%= pair.forward.name %>','','<%= pair.name %>',"",'<%= pair.reverse.name %>'].join("")),render:function(){return this.$el.attr("draggable",!0).data("pair",this.pair).html(this.template({pair:this.pair})).addClass("flex-column-container"),this},events:{dragstart:"_dragstart",dragend:"_dragend",dragover:"_sendToParent",drop:"_sendToParent"},_dragstart:function(a){a.currentTarget.style.opacity="0.4",a.originalEvent&&(a=a.originalEvent),a.dataTransfer.effectAllowed="move",a.dataTransfer.setData("text/plain",JSON.stringify(this.pair)),this.$el.parent().trigger("pair.dragstart",[this])},_dragend:function(a){a.currentTarget.style.opacity="1.0",this.$el.parent().trigger("pair.dragend",[this])},_sendToParent:function(a){this.$el.parent().trigger(a)},toString:function(){return"PairView("+this.pair.name+")"}}),i=Backbone.View.extend(d.LoggableMixin).extend({className:"list-of-pairs-collection-creator collection-creator flex-row-container",initialize:function(a){this.metric("PairedCollectionCreator.initialize",a),a=_.defaults(a,{datasets:[],filters:this.DEFAULT_FILTERS,automaticallyPair:!0,strategy:"lcs",matchPercentage:.9,twoPassAutopairing:!0}),this.initialList=a.datasets,this.historyId=a.historyId,this.filters=this.commonFilters[a.filters]||this.commonFilters[this.DEFAULT_FILTERS],_.isArray(a.filters)&&(this.filters=a.filters),this.automaticallyPair=a.automaticallyPair,this.strategy=this.strategies[a.strategy]||this.strategies[this.DEFAULT_STRATEGY],_.isFunction(a.strategy)&&(this.strategy=a.strategy),this.matchPercentage=a.matchPercentage,this.twoPassAutopairing=a.twoPassAutopairing,this.removeExtensions=!0,this.oncancel=a.oncancel,this.oncreate=a.oncreate,this.autoscrollDist=a.autoscrollDist||24,this.unpairedPanelHidden=!1,this.pairedPanelHidden=!1,this.$dragging=null,this.blocking=!1,this._setUpBehaviors(),this._dataSetUp()},commonFilters:{illumina:["_1","_2"],Rs:["_R1","_R2"]},DEFAULT_FILTERS:"illumina",strategies:{simple:"autopairSimple",lcs:"autopairLCS",levenshtein:"autopairLevenshtein"},DEFAULT_STRATEGY:"lcs",_dataSetUp:function(){this.paired=[],this.unpaired=[],this.selectedIds=[],this._sortInitialList(),this._ensureIds(),this.unpaired=this.initialList.slice(0),this.automaticallyPair&&(this.autoPair(),this.once("rendered:initial",function(){this.trigger("autopair")}))},_sortInitialList:function(){this._sortDatasetList(this.initialList)},_sortDatasetList:function(a){return a.sort(function(a,c){return b(a.name,c.name)}),a},_ensureIds:function(){return this.initialList.forEach(function(a){a.hasOwnProperty("id")||(a.id=_.uniqueId())}),this.initialList},_splitByFilters:function(){function a(a,b){return b.test(a.name)}var b=this.filters.map(function(a){return new RegExp(a)}),c=[[],[]];return this.unpaired.forEach(function(d){b.forEach(function(b,e){a(d,b)&&c[e].push(d)})}),c},_addToUnpaired:function(a){var c=function(d,e){if(d===e)return d;var f=Math.floor((e-d)/2)+d,g=b(a.name,this.unpaired[f].name);if(0>g)return c(d,f);if(g>0)return c(f+1,e);for(;this.unpaired[f]&&this.unpaired[f].name===a.name;)f++;return f}.bind(this);this.unpaired.splice(c(0,this.unpaired.length),0,a)},autoPair:function(a){var b=this._splitByFilters(),c=[];return this.twoPassAutopairing&&(c=this.autopairSimple({listA:b[0],listB:b[1]}),b=this._splitByFilters()),a=a||this.strategy,b=this._splitByFilters(),c=c.concat(this[a].call(this,{listA:b[0],listB:b[1]}))},autopairSimple:f({scoreThreshold:function(){return 1},match:function(a){return a=a||{},a.matchTo===a.possible?{index:a.index,score:1}:a.bestMatch}}),autopairLevenshtein:f({scoreThreshold:function(){return this.matchPercentage},match:function(b){b=b||{};var c=a(b.matchTo,b.possible),d=1-c/Math.max(b.matchTo.length,b.possible.length);return d>b.bestMatch.score?{index:b.index,score:d}:b.bestMatch}}),autopairLCS:f({scoreThreshold:function(){return this.matchPercentage},match:function(a){a=a||{};var b=this._naiveStartingAndEndingLCS(a.matchTo,a.possible).length,c=b/Math.max(a.matchTo.length,a.possible.length);return c>a.bestMatch.score?{index:a.index,score:c}:a.bestMatch}}),_naiveStartingAndEndingLCS:function(a,b){for(var c="",d="",e=0,f=0;e=0&&f>=0&&a[e]===b[f];)d=[a[e],d].join(""),e-=1,f-=1;return c+d},_pair:function(a,b,c){c=c||{};var d=this._createPair(a,b,c.name);return this.paired.push(d),this.unpaired=_.without(this.unpaired,a,b),c.silent||this.trigger("pair:new",d),d},_createPair:function(a,b,c){if(!a||!b||a===b)throw new Error("Bad pairing: "+[JSON.stringify(a),JSON.stringify(b)]);return c=c||this._guessNameForPair(a,b),{forward:a,name:c,reverse:b}},_guessNameForPair:function(a,b,c){c=void 0!==c?c:this.removeExtensions;var d=a.name,e=b.name,f=this._naiveStartingAndEndingLCS(d.replace(this.filters[0],""),e.replace(this.filters[1],""));if(c){var g=f.lastIndexOf(".");if(g>0){var h=f.slice(g,f.length);f=f.replace(h,""),d=d.replace(h,""),e=e.replace(h,"")}}return f||d+" & "+e},_unpair:function(a,b){if(b=b||{},!a)throw new Error("Bad pair: "+JSON.stringify(a));return this.paired=_.without(this.paired,a),this._addToUnpaired(a.forward),this._addToUnpaired(a.reverse),b.silent||this.trigger("pair:unpair",[a]),a},unpairAll:function(){for(var a=[];this.paired.length;)a.push(this._unpair(this.paired[0],{silent:!0}));this.trigger("pair:unpair",a)},_pairToJSON:function(a,b){return b=b||"hda",{collection_type:"paired",src:"new_collection",name:a.name,element_identifiers:[{name:"forward",id:a.forward.id,src:b},{name:"reverse",id:a.reverse.id,src:b}]}},createList:function(a){var b=this,c="/api/histories/"+this.historyId+"/contents/dataset_collections",d={type:"dataset_collection",collection_type:"list:paired",name:_.escape(a||b.$(".collection-name").val()),element_identifiers:b.paired.map(function(a){return b._pairToJSON(a)})};return b.blocking=!0,jQuery.ajax(c,{type:"POST",contentType:"application/json",dataType:"json",data:JSON.stringify(d)}).always(function(){b.blocking=!1}).fail(function(a,c,d){b._ajaxErrHandler(a,c,d)}).done(function(a,c,d){b.trigger("collection:created",a,c,d),b.metric("collection:created",a),"function"==typeof b.oncreate&&b.oncreate.call(this,a,c,d)})},_ajaxErrHandler:function(a,b,c){this.error(a,b,c);var d=e("An error occurred while creating this collection");a&&(d+=0===a.readyState&&0===a.status?": "+e("Galaxy could not be reached and may be updating.")+e(" Try again in a few minutes."):a.responseJSON?"
"+JSON.stringify(a.responseJSON)+"
":": "+c),creator._showAlert(d,"alert-danger")},render:function(a){return this.$el.empty().html(i.templates.main()),this._renderHeader(a),this._renderMiddle(a),this._renderFooter(a),this._addPluginComponents(),this.trigger("rendered",this),this},_renderHeader:function(){var a=this.$(".header").empty().html(i.templates.header()).find(".help-content").prepend($(i.templates.helpContent()));return this._renderFilters(),a},_renderFilters:function(){return this.$(".forward-column .column-header input").val(this.filters[0]).add(this.$(".reverse-column .column-header input").val(this.filters[1]))},_renderMiddle:function(){var a=this.$(".middle").empty().html(i.templates.middle());return this.unpairedPanelHidden?this.$(".unpaired-columns").hide():this.pairedPanelHidden&&this.$(".paired-columns").hide(),this._renderUnpaired(),this._renderPaired(),a},_renderUnpaired:function(){var a,b,c=this,d=[],f=this._splitByFilters();return this.$(".forward-column .title").text([f[0].length,e("unpaired forward")].join(" ")),this.$(".forward-column .unpaired-info").text(this._renderUnpairedDisplayStr(this.unpaired.length-f[0].length)),this.$(".reverse-column .title").text([f[1].length,e("unpaired reverse")].join(" ")),this.$(".reverse-column .unpaired-info").text(this._renderUnpairedDisplayStr(this.unpaired.length-f[1].length)),this.$(".unpaired-columns .column-datasets").empty(),this.$(".autopair-link").toggle(0!==this.unpaired.length),0===this.unpaired.length?void this._renderUnpairedEmpty():(b=f[1].map(function(a,b){return void 0!==f[0][b]&&f[0][b]!==a&&d.push(c._renderPairButton()),c._renderUnpairedDataset(a)}),a=f[0].map(function(a){return c._renderUnpairedDataset(a)}),a.length||b.length?(this.$(".unpaired-columns .forward-column .column-datasets").append(a).add(this.$(".unpaired-columns .paired-column .column-datasets").append(d)).add(this.$(".unpaired-columns .reverse-column .column-datasets").append(b)),void this._adjUnpairedOnScrollbar()):void this._renderUnpairedNotShown())},_renderUnpairedDisplayStr:function(a){return["(",a," ",e("filtered out"),")"].join("")},_renderUnpairedDataset:function(a){return $("
  • ").attr("id","dataset-"+a.id).addClass("dataset unpaired").attr("draggable",!0).addClass(a.selected?"selected":"").append($("").addClass("dataset-name").text(a.name)).data("dataset",a)},_renderPairButton:function(){return $("
  • ").addClass("dataset unpaired").append($("").addClass("dataset-name").text(e("Pair these datasets")))},_renderUnpairedEmpty:function(){var a=$('
    ').text("("+e("no remaining unpaired datasets")+")");return this.$(".unpaired-columns .paired-column .column-datasets").empty().prepend(a),a},_renderUnpairedNotShown:function(){var a=$('
    ').text("("+e("no datasets were found matching the current filters")+")");return this.$(".unpaired-columns .paired-column .column-datasets").empty().prepend(a),a},_adjUnpairedOnScrollbar:function(){var a=this.$(".unpaired-columns").last(),b=this.$(".unpaired-columns .reverse-column .dataset").first();if(b.size()){var c=a.offset().left+a.outerWidth(),d=b.offset().left+b.outerWidth(),e=Math.floor(c)-Math.floor(d);this.$(".unpaired-columns .forward-column").css("margin-left",e>0?e:0)}},_renderPaired:function(){if(this.$(".paired-column-title .title").text([this.paired.length,e("paired")].join(" ")),this.$(".unpair-all-link").toggle(0!==this.paired.length),0===this.paired.length)return void this._renderPairedEmpty();this.$(".remove-extensions-link").show(),this.$(".paired-columns .column-datasets").empty();var a=this;this.paired.forEach(function(b){var c=new h({pair:b});a.$(".paired-columns .column-datasets").append(c.render().$el).append(['"].join(""))})},_renderPairedEmpty:function(){var a=$('
    ').text("("+e("no paired datasets yet")+")");return this.$(".paired-columns .column-datasets").empty().prepend(a),a},_renderFooter:function(){var a=this.$(".footer").empty().html(i.templates.footer());return this.$(".remove-extensions").prop("checked",this.removeExtensions),"function"==typeof this.oncancel&&this.$(".cancel-create.btn").show(),a},_addPluginComponents:function(){this._chooseFiltersPopover(".choose-filters-link"),this.$(".help-content i").hoverhighlight(".collection-creator","rgba( 64, 255, 255, 1.0 )")},_chooseFiltersPopover:function(a){function b(a,b){return['"].join("")}var c=$(_.template(['
    ','
    ',e("Choose from the following filters to change which unpaired reads are shown in the display"),":
    ",_.values(this.commonFilters).map(function(a){return b(a[0],a[1])}).join(""),"
    "].join(""))({}));return this.$(a).popover({container:".collection-creator",placement:"bottom",html:!0,content:c})},_validationWarning:function(a,b){var c="validation-warning";"name"===a&&(a=this.$(".collection-name").add(this.$(".collection-name-prompt")),this.$(".collection-name").focus().select()),b?(a=a||this.$("."+c),a.removeClass(c)):a.addClass(c)},_setUpBehaviors:function(){return this.once("rendered",function(){this.trigger("rendered:initial",this)}),this.on("pair:new",function(){this._renderUnpaired(),this._renderPaired(),this.$(".paired-columns").scrollTop(8e6)}),this.on("pair:unpair",function(){this._renderUnpaired(),this._renderPaired(),this.splitView()}),this.on("filter-change",function(){this.filters=[this.$(".forward-unpaired-filter input").val(),this.$(".reverse-unpaired-filter input").val()],this.metric("filter-change",this.filters),this._renderFilters(),this._renderUnpaired()}),this.on("autopair",function(){this._renderUnpaired(),this._renderPaired();var a,b=null;this.paired.length?(b="alert-success",a=this.paired.length+" "+e("pairs created"),this.unpaired.length||(a+=": "+e("all datasets have been successfully paired"),this.hideUnpaired(),this.$(".collection-name").focus())):a=e("Could not automatically create any pairs from the given dataset names"),this._showAlert(a,b)}),this},events:{"click .more-help":"_clickMoreHelp","click .less-help":"_clickLessHelp","click .header .alert button":"_hideAlert","click .forward-column .column-title":"_clickShowOnlyUnpaired","click .reverse-column .column-title":"_clickShowOnlyUnpaired","click .unpair-all-link":"_clickUnpairAll","change .forward-unpaired-filter input":function(){this.trigger("filter-change")},"focus .forward-unpaired-filter input":function(a){$(a.currentTarget).select()},"click .autopair-link":"_clickAutopair","click .choose-filters .filter-choice":"_clickFilterChoice","click .clear-filters-link":"_clearFilters","change .reverse-unpaired-filter input":function(){this.trigger("filter-change")},"focus .reverse-unpaired-filter input":function(a){$(a.currentTarget).select()},"click .forward-column .dataset.unpaired":"_clickUnpairedDataset","click .reverse-column .dataset.unpaired":"_clickUnpairedDataset","click .paired-column .dataset.unpaired":"_clickPairRow","click .unpaired-columns":"clearSelectedUnpaired","mousedown .unpaired-columns .dataset":"_mousedownUnpaired","click .paired-column-title":"_clickShowOnlyPaired","mousedown .flexible-partition-drag":"_startPartitionDrag","click .paired-columns .dataset.paired":"selectPair","click .paired-columns":"clearSelectedPaired","click .paired-columns .pair-name":"_clickPairName","click .unpair-btn":"_clickUnpair","dragover .paired-columns .column-datasets":"_dragoverPairedColumns","drop .paired-columns .column-datasets":"_dropPairedColumns","pair.dragstart .paired-columns .column-datasets":"_pairDragstart","pair.dragend .paired-columns .column-datasets":"_pairDragend","change .remove-extensions":function(){this.toggleExtensions()},"change .collection-name":"_changeName","keydown .collection-name":"_nameCheckForEnter","click .cancel-create":function(){"function"==typeof this.oncancel&&this.oncancel.call(this)},"click .create-collection":"_clickCreate"},_clickMoreHelp:function(){this.$(".main-help").addClass("expanded"),this.$(".more-help").hide()},_clickLessHelp:function(){this.$(".main-help").removeClass("expanded"),this.$(".more-help").show()},_showAlert:function(a,b){b=b||"alert-danger",this.$(".main-help").hide(),this.$(".header .alert").attr("class","alert alert-dismissable").addClass(b).show().find(".alert-message").html(a)},_hideAlert:function(){this.$(".main-help").show(),this.$(".header .alert").hide()},_clickShowOnlyUnpaired:function(){this.$(".paired-columns").is(":visible")?this.hidePaired():this.splitView()},_clickShowOnlyPaired:function(){this.$(".unpaired-columns").is(":visible")?this.hideUnpaired():this.splitView()},hideUnpaired:function(a,b){this.unpairedPanelHidden=!0,this.pairedPanelHidden=!1,this._renderMiddle(a,b)},hidePaired:function(a,b){this.unpairedPanelHidden=!1,this.pairedPanelHidden=!0,this._renderMiddle(a,b)},splitView:function(a,b){return this.unpairedPanelHidden=this.pairedPanelHidden=!1,this._renderMiddle(a,b),this},_clickUnpairAll:function(){this.metric("unpairAll"),this.unpairAll()},_clickAutopair:function(){var a=this.autoPair();this.metric("autopair",a.length,this.unpaired.length),this.trigger("autopair")},_clickFilterChoice:function(a){var b=$(a.currentTarget);this.$(".forward-unpaired-filter input").val(b.data("forward")),this.$(".reverse-unpaired-filter input").val(b.data("reverse")),this._hideChooseFilters(),this.trigger("filter-change")},_hideChooseFilters:function(){this.$(".choose-filters-link").popover("hide"),this.$(".popover").css("display","none")},_clearFilters:function(){this.$(".forward-unpaired-filter input").val(""),this.$(".reverse-unpaired-filter input").val(""),this.trigger("filter-change")},_clickUnpairedDataset:function(a){return a.stopPropagation(),this.toggleSelectUnpaired($(a.currentTarget))},toggleSelectUnpaired:function(a,b){b=b||{};var c=a.data("dataset"),d=void 0!==b.force?b.force:!a.hasClass("selected");return a.size()&&void 0!==c?(d?(a.addClass("selected"),b.waitToPair||this.pairAllSelected()):a.removeClass("selected"),a):a},pairAllSelected:function(a){a=a||{};var b=this,c=[],d=[],e=[];return b.$(".unpaired-columns .forward-column .dataset.selected").each(function(){c.push($(this).data("dataset"))}),b.$(".unpaired-columns .reverse-column .dataset.selected").each(function(){d.push($(this).data("dataset"))}),c.length=d.length=Math.min(c.length,d.length),c.forEach(function(a,c){try{e.push(b._pair(a,d[c],{silent:!0}))}catch(f){b.error(f)}}),e.length&&!a.silent&&this.trigger("pair:new",e),e},clearSelectedUnpaired:function(){this.$(".unpaired-columns .dataset.selected").removeClass("selected")},_mousedownUnpaired:function(a){if(a.shiftKey){var b=this,c=$(a.target).addClass("selected"),d=function(a){b.$(a.target).filter(".dataset").addClass("selected")};c.parent().on("mousemove",d),$(document).one("mouseup",function(){c.parent().off("mousemove",d),b.pairAllSelected()})}},_clickPairRow:function(a){var b=$(a.currentTarget).index(),c=$(".unpaired-columns .forward-column .dataset").eq(b).data("dataset"),d=$(".unpaired-columns .reverse-column .dataset").eq(b).data("dataset");this._pair(c,d)},_startPartitionDrag:function(a){function b(){d.$(".flexible-partition-drag").css("color",""),$("body").css("cursor","").unbind("mousemove",c)}function c(a){var b=a.pageY-e;d.adjPartition(b)||$("body").trigger("mouseup"),d._adjUnpairedOnScrollbar(),e+=b}var d=this,e=a.pageY;$("body").css("cursor","ns-resize"),d.$(".flexible-partition-drag").css("color","black"),$("body").mousemove(c),$("body").one("mouseup",b)},adjPartition:function(a){var b=this.$(".unpaired-columns"),c=this.$(".paired-columns"),d=parseInt(b.css("height"),10),e=parseInt(c.css("height"),10);d=Math.max(10,d+a),e-=a;var f=0>a;if(f){if(this.unpairedPanelHidden)return!1;if(10>=d)return this.hideUnpaired(),!1}else this.unpairedPanelHidden&&(b.show(),this.unpairedPanelHidden=!1);if(f)this.pairedPanelHidden&&(c.show(),this.pairedPanelHidden=!1);else{if(this.pairedPanelHidden)return!1;if(15>=e)return this.hidePaired(),!1}return b.css({height:d+"px",flex:"0 0 auto"}),!0},selectPair:function(a){a.stopPropagation(),$(a.currentTarget).toggleClass("selected")},clearSelectedPaired:function(){this.$(".paired-columns .dataset.selected").removeClass("selected")},_clickPairName:function(a){a.stopPropagation();var b=$(a.currentTarget),c=b.parent().parent(),d=c.index(".dataset.paired"),e=this.paired[d],f=prompt("Enter a new name for the pair:",e.name);f&&(e.name=f,e.customizedName=!0,b.text(e.name))},_clickUnpair:function(a){var b=Math.floor($(a.currentTarget).index(".unpair-btn"));this._unpair(this.paired[b])},_dragoverPairedColumns:function(a){a.preventDefault();var b=this.$(".paired-columns .column-datasets");this._checkForAutoscroll(b,a.originalEvent.clientY);var c=this._getNearestPairedDatasetLi(a.originalEvent.clientY);$(".element-drop-placeholder").remove();var d=$('
    ');c.size()?c.before(d):b.append(d)},_checkForAutoscroll:function(a,b){var c=2,d=a.offset(),e=a.scrollTop(),f=b-d.top,g=d.top+a.outerHeight()-b;f>=0&&f=0&&ga&&a>f-g)return e}return $()},_dropPairedColumns:function(a){a.preventDefault(),a.dataTransfer.dropEffect="move";var b=this._getNearestPairedDatasetLi(a.originalEvent.clientY);return b.size()?this.$dragging.insertBefore(b):this.$dragging.insertAfter(this.$(".paired-columns .unpair-btn").last()),this._syncPairsToDom(),!1},_syncPairsToDom:function(){var a=[];this.$(".paired-columns .dataset.paired").each(function(){a.push($(this).data("pair"))}),this.paired=a,this._renderPaired()},_pairDragstart:function(a,b){b.$el.addClass("selected");var c=this.$(".paired-columns .dataset.selected");this.$dragging=c},_pairDragend:function(){$(".element-drop-placeholder").remove(),this.$dragging=null},toggleExtensions:function(a){var b=this;b.removeExtensions=void 0!==a?a:!b.removeExtensions,_.each(b.paired,function(a){a.customizedName||(a.name=b._guessNameForPair(a.forward,a.reverse))}),b._renderPaired(),b._renderFooter()},_changeName:function(){this._validationWarning("name",!!this._getName())},_nameCheckForEnter:function(a){13!==a.keyCode||this.blocking||this._clickCreate()},_getName:function(){return _.escape(this.$(".collection-name").val())},_clickCreate:function(){var a=this._getName();a?this.blocking||this.createList():this._validationWarning("name")},_printList:function(a){var b=this;_.each(a,function(c){a===b.paired&&b._printPair(c)})},_printPair:function(a){this.debug(a.forward.name,a.reverse.name,": ->",a.name)},toString:function(){return"PairedCollectionCreator"}});i.templates=i.templates||{main:_.template(['
    ','
    ','
  • ").attr("id","dataset-"+a.id).addClass("dataset unpaired").attr("draggable",!0).addClass(a.selected?"selected":"").append($("").addClass("dataset-name").text(a.name)).data("dataset",a)},_renderPairButton:function(){return $("
  • ").addClass("dataset unpaired").append($("").addClass("dataset-name").text(e("Pair these datasets")))},_renderUnpairedEmpty:function(){var a=$('
    ').text("("+e("no remaining unpaired datasets")+")");return this.$(".unpaired-columns .paired-column .column-datasets").empty().prepend(a),a},_renderUnpairedNotShown:function(){var a=$('
    ').text("("+e("no datasets were found matching the current filters")+")");return this.$(".unpaired-columns .paired-column .column-datasets").empty().prepend(a),a},_adjUnpairedOnScrollbar:function(){var a=this.$(".unpaired-columns").last(),b=this.$(".unpaired-columns .reverse-column .dataset").first();if(b.size()){var c=a.offset().left+a.outerWidth(),d=b.offset().left+b.outerWidth(),e=Math.floor(c)-Math.floor(d);this.$(".unpaired-columns .forward-column").css("margin-left",e>0?e:0)}},_renderPaired:function(){if(this.$(".paired-column-title .title").text([this.paired.length,e("paired")].join(" ")),this.$(".unpair-all-link").toggle(0!==this.paired.length),0===this.paired.length)return void this._renderPairedEmpty();this.$(".remove-extensions-link").show(),this.$(".paired-columns .column-datasets").empty();var a=this;this.paired.forEach(function(b){var c=new h({pair:b});a.$(".paired-columns .column-datasets").append(c.render().$el).append(['"].join(""))})},_renderPairedEmpty:function(){var a=$('
    ').text("("+e("no paired datasets yet")+")");return this.$(".paired-columns .column-datasets").empty().prepend(a),a},_renderFooter:function(){var a=this.$(".footer").empty().html(i.templates.footer());return this.$(".remove-extensions").prop("checked",this.removeExtensions),"function"==typeof this.oncancel&&this.$(".cancel-create.btn").show(),a},_addPluginComponents:function(){this._chooseFiltersPopover(".choose-filters-link"),this.$(".help-content i").hoverhighlight(".collection-creator","rgba( 64, 255, 255, 1.0 )")},_chooseFiltersPopover:function(a){function b(a,b){return['"].join("")}var c=$(_.template(['
    ','
    ',e("Choose from the following filters to change which unpaired reads are shown in the display"),":
    ",_.values(this.commonFilters).map(function(a){return b(a[0],a[1])}).join(""),"
    "].join(""))({}));return this.$(a).popover({container:".collection-creator",placement:"bottom",html:!0,content:c})},_validationWarning:function(a,b){var c="validation-warning";"name"===a&&(a=this.$(".collection-name").add(this.$(".collection-name-prompt")),this.$(".collection-name").focus().select()),b?(a=a||this.$("."+c),a.removeClass(c)):a.addClass(c)},_setUpBehaviors:function(){return this.once("rendered",function(){this.trigger("rendered:initial",this)}),this.on("pair:new",function(){this._renderUnpaired(),this._renderPaired(),this.$(".paired-columns").scrollTop(8e6)}),this.on("pair:unpair",function(){this._renderUnpaired(),this._renderPaired(),this.splitView()}),this.on("filter-change",function(){this.filters=[this.$(".forward-unpaired-filter input").val(),this.$(".reverse-unpaired-filter input").val()],this.metric("filter-change",this.filters),this._renderFilters(),this._renderUnpaired()}),this.on("autopair",function(){this._renderUnpaired(),this._renderPaired();var a,b=null;this.paired.length?(b="alert-success",a=this.paired.length+" "+e("pairs created"),this.unpaired.length||(a+=": "+e("all datasets have been successfully paired"),this.hideUnpaired(),this.$(".collection-name").focus())):a=e("Could not automatically create any pairs from the given dataset names"),this._showAlert(a,b)}),this},events:{"click .more-help":"_clickMoreHelp","click .less-help":"_clickLessHelp","click .header .alert button":"_hideAlert","click .forward-column .column-title":"_clickShowOnlyUnpaired","click .reverse-column .column-title":"_clickShowOnlyUnpaired","click .unpair-all-link":"_clickUnpairAll","change .forward-unpaired-filter input":function(){this.trigger("filter-change")},"focus .forward-unpaired-filter input":function(a){$(a.currentTarget).select()},"click .autopair-link":"_clickAutopair","click .choose-filters .filter-choice":"_clickFilterChoice","click .clear-filters-link":"_clearFilters","change .reverse-unpaired-filter input":function(){this.trigger("filter-change")},"focus .reverse-unpaired-filter input":function(a){$(a.currentTarget).select()},"click .forward-column .dataset.unpaired":"_clickUnpairedDataset","click .reverse-column .dataset.unpaired":"_clickUnpairedDataset","click .paired-column .dataset.unpaired":"_clickPairRow","click .unpaired-columns":"clearSelectedUnpaired","mousedown .unpaired-columns .dataset":"_mousedownUnpaired","click .paired-column-title":"_clickShowOnlyPaired","mousedown .flexible-partition-drag":"_startPartitionDrag","click .paired-columns .dataset.paired":"selectPair","click .paired-columns":"clearSelectedPaired","click .paired-columns .pair-name":"_clickPairName","click .unpair-btn":"_clickUnpair","dragover .paired-columns .column-datasets":"_dragoverPairedColumns","drop .paired-columns .column-datasets":"_dropPairedColumns","pair.dragstart .paired-columns .column-datasets":"_pairDragstart","pair.dragend .paired-columns .column-datasets":"_pairDragend","change .remove-extensions":function(){this.toggleExtensions()},"change .collection-name":"_changeName","keydown .collection-name":"_nameCheckForEnter","click .cancel-create":function(){"function"==typeof this.oncancel&&this.oncancel.call(this)},"click .create-collection":"_clickCreate"},_clickMoreHelp:function(){this.$(".main-help").addClass("expanded"),this.$(".more-help").hide()},_clickLessHelp:function(){this.$(".main-help").removeClass("expanded"),this.$(".more-help").show()},_showAlert:function(a,b){b=b||"alert-danger",this.$(".main-help").hide(),this.$(".header .alert").attr("class","alert alert-dismissable").addClass(b).show().find(".alert-message").html(a)},_hideAlert:function(){this.$(".main-help").show(),this.$(".header .alert").hide()},_clickShowOnlyUnpaired:function(){this.$(".paired-columns").is(":visible")?this.hidePaired():this.splitView()},_clickShowOnlyPaired:function(){this.$(".unpaired-columns").is(":visible")?this.hideUnpaired():this.splitView()},hideUnpaired:function(a,b){this.unpairedPanelHidden=!0,this.pairedPanelHidden=!1,this._renderMiddle(a,b)},hidePaired:function(a,b){this.unpairedPanelHidden=!1,this.pairedPanelHidden=!0,this._renderMiddle(a,b)},splitView:function(a,b){return this.unpairedPanelHidden=this.pairedPanelHidden=!1,this._renderMiddle(a,b),this},_clickUnpairAll:function(){this.metric("unpairAll"),this.unpairAll()},_clickAutopair:function(){var a=this.autoPair();this.metric("autopair",a.length,this.unpaired.length),this.trigger("autopair")},_clickFilterChoice:function(a){var b=$(a.currentTarget);this.$(".forward-unpaired-filter input").val(b.data("forward")),this.$(".reverse-unpaired-filter input").val(b.data("reverse")),this._hideChooseFilters(),this.trigger("filter-change")},_hideChooseFilters:function(){this.$(".choose-filters-link").popover("hide"),this.$(".popover").css("display","none")},_clearFilters:function(){this.$(".forward-unpaired-filter input").val(""),this.$(".reverse-unpaired-filter input").val(""),this.trigger("filter-change")},_clickUnpairedDataset:function(a){return a.stopPropagation(),this.toggleSelectUnpaired($(a.currentTarget))},toggleSelectUnpaired:function(a,b){b=b||{};var c=a.data("dataset"),d=void 0!==b.force?b.force:!a.hasClass("selected");return a.size()&&void 0!==c?(d?(a.addClass("selected"),b.waitToPair||this.pairAllSelected()):a.removeClass("selected"),a):a},pairAllSelected:function(a){a=a||{};var b=this,c=[],d=[],e=[];return b.$(".unpaired-columns .forward-column .dataset.selected").each(function(){c.push($(this).data("dataset"))}),b.$(".unpaired-columns .reverse-column .dataset.selected").each(function(){d.push($(this).data("dataset"))}),c.length=d.length=Math.min(c.length,d.length),c.forEach(function(a,c){try{e.push(b._pair(a,d[c],{silent:!0}))}catch(f){b.error(f)}}),e.length&&!a.silent&&this.trigger("pair:new",e),e},clearSelectedUnpaired:function(){this.$(".unpaired-columns .dataset.selected").removeClass("selected")},_mousedownUnpaired:function(a){if(a.shiftKey){var b=this,c=$(a.target).addClass("selected"),d=function(a){b.$(a.target).filter(".dataset").addClass("selected")};c.parent().on("mousemove",d),$(document).one("mouseup",function(){c.parent().off("mousemove",d),b.pairAllSelected()})}},_clickPairRow:function(a){var b=$(a.currentTarget).index(),c=$(".unpaired-columns .forward-column .dataset").eq(b).data("dataset"),d=$(".unpaired-columns .reverse-column .dataset").eq(b).data("dataset");this._pair(c,d)},_startPartitionDrag:function(a){function b(){d.$(".flexible-partition-drag").css("color",""),$("body").css("cursor","").unbind("mousemove",c)}function c(a){var b=a.pageY-e;d.adjPartition(b)||$("body").trigger("mouseup"),d._adjUnpairedOnScrollbar(),e+=b}var d=this,e=a.pageY;$("body").css("cursor","ns-resize"),d.$(".flexible-partition-drag").css("color","black"),$("body").mousemove(c),$("body").one("mouseup",b)},adjPartition:function(a){var b=this.$(".unpaired-columns"),c=this.$(".paired-columns"),d=parseInt(b.css("height"),10),e=parseInt(c.css("height"),10);d=Math.max(10,d+a),e-=a;var f=0>a;if(f){if(this.unpairedPanelHidden)return!1;if(10>=d)return this.hideUnpaired(),!1}else this.unpairedPanelHidden&&(b.show(),this.unpairedPanelHidden=!1);if(f)this.pairedPanelHidden&&(c.show(),this.pairedPanelHidden=!1);else{if(this.pairedPanelHidden)return!1;if(15>=e)return this.hidePaired(),!1}return b.css({height:d+"px",flex:"0 0 auto"}),!0},selectPair:function(a){a.stopPropagation(),$(a.currentTarget).toggleClass("selected")},clearSelectedPaired:function(){this.$(".paired-columns .dataset.selected").removeClass("selected")},_clickPairName:function(a){a.stopPropagation();var b=$(a.currentTarget),c=b.parent().parent(),d=c.index(".dataset.paired"),e=this.paired[d],f=prompt("Enter a new name for the pair:",e.name);f&&(e.name=f,e.customizedName=!0,b.text(e.name))},_clickUnpair:function(a){var b=Math.floor($(a.currentTarget).index(".unpair-btn"));this._unpair(this.paired[b])},_dragoverPairedColumns:function(a){a.preventDefault();var b=this.$(".paired-columns .column-datasets");this._checkForAutoscroll(b,a.originalEvent.clientY);var c=this._getNearestPairedDatasetLi(a.originalEvent.clientY);$(".element-drop-placeholder").remove();var d=$('
    ');c.size()?c.before(d):b.append(d)},_checkForAutoscroll:function(a,b){var c=2,d=a.offset(),e=a.scrollTop(),f=b-d.top,g=d.top+a.outerHeight()-b;f>=0&&f=0&&ga&&a>f-g)return e}return $()},_dropPairedColumns:function(a){a.preventDefault(),a.dataTransfer.dropEffect="move";var b=this._getNearestPairedDatasetLi(a.originalEvent.clientY);return b.size()?this.$dragging.insertBefore(b):this.$dragging.insertAfter(this.$(".paired-columns .unpair-btn").last()),this._syncPairsToDom(),!1},_syncPairsToDom:function(){var a=[];this.$(".paired-columns .dataset.paired").each(function(){a.push($(this).data("pair"))}),this.paired=a,this._renderPaired()},_pairDragstart:function(a,b){b.$el.addClass("selected");var c=this.$(".paired-columns .dataset.selected");this.$dragging=c},_pairDragend:function(){$(".element-drop-placeholder").remove(),this.$dragging=null},toggleExtensions:function(a){var b=this;b.removeExtensions=void 0!==a?a:!b.removeExtensions,_.each(b.paired,function(a){a.customizedName||(a.name=b._guessNameForPair(a.forward,a.reverse))}),b._renderPaired(),b._renderFooter()},_changeName:function(){this._validationWarning("name",!!this._getName())},_nameCheckForEnter:function(a){13!==a.keyCode||this.blocking||this._clickCreate()},_getName:function(){return _.escape(this.$(".collection-name").val())},_clickCreate:function(){var a=this._getName();a?this.blocking||this.createList():this._validationWarning("name")},_printList:function(a){var b=this;_.each(a,function(c){a===b.paired&&b._printPair(c)})},_printPair:function(a){this.debug(a.forward.name,a.reverse.name,": ->",a.name)},toString:function(){return"PairedCollectionCreator"}});i.templates=i.templates||{main:_.template(['
    ','
    ','