From c4f8a30bbddffbf8e514a8112f46ec8e340f62fe Mon Sep 17 00:00:00 2001 From: carlfeberhard Date: Mon, 4 Apr 2016 11:12:54 -0400 Subject: [PATCH] UI, history: correct current dataset, tags, annos Correct the 'currently used dataset' indicator (the left, blue border) making sure it clears when non-dataset related content loads in the center panel. Correct the toggling of tags and annotations in the current history view forcing the subviews to show/hide based on the history view and not by toggling them individually. --- client/galaxy/scripts/layout/panel.js | 3 +- client/galaxy/scripts/mvc/annotation.js | 7 +- .../scripts/mvc/history/history-contents.js | 6 +- .../mvc/history/history-view-edit-current.js | 41 ++++++------ .../scripts/mvc/history/history-view-edit.js | 10 ++- static/maps/layout/panel.js.map | 2 +- static/maps/mvc/annotation.js.map | 2 +- .../maps/mvc/history/history-contents.js.map | 2 +- .../history/history-view-edit-current.js.map | 2 +- .../maps/mvc/history/history-view-edit.js.map | 2 +- static/scripts/bundled/analysis.bundled.js | 64 ++++++++----------- .../scripts/bundled/analysis.bundled.js.map | 2 +- static/scripts/bundled/libs.bundled.js | 3 +- static/scripts/bundled/libs.bundled.js.map | 2 +- static/scripts/layout/panel.js | 2 +- static/scripts/mvc/annotation.js | 2 +- .../scripts/mvc/history/history-contents.js | 2 +- .../mvc/history/history-view-edit-current.js | 2 +- .../scripts/mvc/history/history-view-edit.js | 2 +- 19 files changed, 70 insertions(+), 88 deletions(-) diff --git a/client/galaxy/scripts/layout/panel.js b/client/galaxy/scripts/layout/panel.js index 4ef8d7a8b19..52e666e2737 100644 --- a/client/galaxy/scripts/layout/panel.js +++ b/client/galaxy/scripts/layout/panel.js @@ -241,7 +241,6 @@ var CenterPanel = Backbone.View.extend( BASE_MVC.LoggableMixin ).extend({ search : location.search, hash : location.hash }); - this.trigger( 'galaxy_main:load', location ); } }, @@ -260,7 +259,7 @@ var CenterPanel = Backbone.View.extend( BASE_MVC.LoggableMixin ).extend({ this.prev = view; this.$( '#galaxy_main' ).attr( 'src', 'about:blank' ).hide(); this.$( '#center-panel' ).scrollTop( 0 ).append( view.$el ).show(); - this.trigger( 'center-panel:load', view ); + Galaxy.trigger( 'center-panel:load', view ); } else { if( view ){ diff --git a/client/galaxy/scripts/mvc/annotation.js b/client/galaxy/scripts/mvc/annotation.js index 3e891033545..49e2b98e6a7 100644 --- a/client/galaxy/scripts/mvc/annotation.js +++ b/client/galaxy/scripts/mvc/annotation.js @@ -29,7 +29,6 @@ var AnnotationEditor = Backbone.View render : function(){ var view = this; this.$el.html( this._template() ); - this.$el.find( "[title]" ).tooltip( this.tooltipConfig ); //TODO: handle empties better this.$annotation().make_text_editable({ @@ -48,15 +47,11 @@ var AnnotationEditor = Backbone.View /** @returns {String} the html text used to build the view's DOM */ _template : function(){ var annotation = this.model.get( 'annotation' ); - //if( !annotation ){ - // //annotation = [ '', _l( 'Click to add an annotation' ), '' ].join( '' ); - // annotation = [ '' ].join( '' ); - //} return [ //TODO: make prompt optional '', // set up initial tags by adding as CSV to input vals (necc. to init select2) - '
', + '
', _.escape( annotation ), '
' ].join( '' ); diff --git a/client/galaxy/scripts/mvc/history/history-contents.js b/client/galaxy/scripts/mvc/history/history-contents.js index 1f74f060e3e..cfe12eeb3e7 100644 --- a/client/galaxy/scripts/mvc/history/history-contents.js +++ b/client/galaxy/scripts/mvc/history/history-contents.js @@ -190,11 +190,7 @@ var HistoryContents = _super.extend( BASE_MVC.LoggableMixin ).extend({ visible : '' }; } - // console.log( 'fetching updated:', this.historyId, since ); - return this.fetch( options ) - // .done( function( r ){ console.log( 'updated:\n', JSON.stringify( r ) ); }) - .done( function( r ){ console.log( 'updated:', r.length, r ); }) - ; + return this.fetch( options ); }, /** */ diff --git a/client/galaxy/scripts/mvc/history/history-view-edit-current.js b/client/galaxy/scripts/mvc/history/history-view-edit-current.js index 5a922da872e..ad1a9dc812c 100644 --- a/client/galaxy/scripts/mvc/history/history-view-edit-current.js +++ b/client/galaxy/scripts/mvc/history/history-view-edit-current.js @@ -348,10 +348,15 @@ var CurrentHistoryView = _super.extend( // ........................................................................ external objects/MVC listenToGalaxy : function( galaxy ){ - // TODO: MEM: questionable reference island / closure practice - this.listenTo( galaxy, 'galaxy_main:load', function( data ){ - var pathToMatch = data.fullpath, - useToURLRegexMap = { + this.listenTo( galaxy, { + // when the galaxy_main iframe is loaded with a new page, + // compare the url to the following list and if there's a match + // pull the id from url and indicate in the history view that + // the dataset with that id is the 'current'ly active dataset + 'galaxy_main:load': function( data ){ + var pathToMatch = data.fullpath; + var hdaId = null; + var useToURLRegexMap = { 'display' : /datasets\/([a-f0-9]+)\/display/, 'edit' : /datasets\/([a-f0-9]+)\/edit/, 'report_error' : /dataset\/errors\?id=([a-f0-9]+)/, @@ -359,21 +364,19 @@ var CurrentHistoryView = _super.extend( 'show_params' : /datasets\/([a-f0-9]+)\/show_params/, // no great way to do this here? (leave it in the dataset event handlers above?) // 'visualization' : 'visualization', - }, - hdaId = null, - hdaUse = null; - _.find( useToURLRegexMap, function( regex, use ){ - var match = pathToMatch.match( regex ); - if( match && match.length == 2 ){ - hdaId = match[1]; - hdaUse = use; - return true; - } - return false; - }); - // need to type mangle to go from web route to history contents - hdaId = 'dataset-' + hdaId; - this._setCurrentContentById( hdaId ); + }; + _.find( useToURLRegexMap, function( regex, use ){ + // grab the more specific match result (1), save, and use it as the find flag + hdaId = _.result( pathToMatch.match( regex ), 1 ); + return hdaId; + }); + // need to type mangle to go from web route to history contents + this._setCurrentContentById( hdaId? ( 'dataset-' + hdaId ) : null ); + }, + // when the center panel is given a new view, clear the current indicator + 'center-panel:load': function( view ){ + this._setCurrentContentById(); + } }); }, diff --git a/client/galaxy/scripts/mvc/history/history-view-edit.js b/client/galaxy/scripts/mvc/history/history-view-edit.js index aa8403abd01..dcb24aae051 100644 --- a/client/galaxy/scripts/mvc/history/history-view-edit.js +++ b/client/galaxy/scripts/mvc/history/history-view-edit.js @@ -367,21 +367,19 @@ var HistoryViewEdit = _super.extend( }, /** toggle the visibility of each content's tagsEditor applying all the args sent to this function */ - toggleHDATagEditors : function( showOrHide ){ - var args = Array.prototype.slice.call( arguments, 1 ); + toggleHDATagEditors : function( showOrHide, speed ){ _.each( this.views, function( view ){ if( view.tagsEditor ){ - view.tagsEditor.toggle.apply( view.tagsEditor, args ); + view.tagsEditor.toggle( showOrHide, speed ); } }); }, /** toggle the visibility of each content's annotationEditor applying all the args sent to this function */ - toggleHDAAnnotationEditors : function( showOrHide ){ - var args = Array.prototype.slice.call( arguments, 1 ); + toggleHDAAnnotationEditors : function( showOrHide, speed ){ _.each( this.views, function( view ){ if( view.annotationEditor ){ - view.annotationEditor.toggle.apply( view.annotationEditor, args ); + view.annotationEditor.toggle( showOrHide, speed ); } }); }, diff --git a/static/maps/layout/panel.js.map b/static/maps/layout/panel.js.map index c4337d525a5..f6b297f20eb 100644 --- a/static/maps/layout/panel.js.map +++ b/static/maps/layout/panel.js.map @@ -1 +1 @@ -{"version":3,"file":"panel.js","sources":["../../src/layout/panel.js"],"names":["define","jQuery","_","Backbone","BASE_MVC","$","MIN_PANEL_WIDTH","MAX_PANEL_WIDTH","SidePanel","View","extend","LoggableMixin","_logNamespace","initialize","attributes","this","log","title","hidden","savedSize","hiddenByTool","$center","$el","siblings","$toggleButton","render","html","template","id","_templateHeader","_templateBody","_templateFooter","join","escape","events","mousedown .unified-panel-footer > .drag","click .unified-panel-footer > .panel-collapse","_mousedownDragHandler","ev","move","e","delta","pageX","prevX","oldWidth","self","width","newWidth","draggingLeft","Math","min","max","resize","show","on","one","hide","off","newSize","css","animation","whichSide","animate","removeClass","addClass","toggle","handle_minwidth_hint","hint","space","force_panel","op","toString","LeftPanel","RightPanel","CenterPanel","options","prev","bind","_iframeChangeHandler","iframe","currentTarget","location","contentWindow","host","remove","Galaxy","trigger","fullpath","pathname","search","hash","display","view","message","onbeforeunload","confirm","undefined","attr","scrollTop","append"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"panel.js","sources":["../../src/layout/panel.js"],"names":["define","jQuery","_","Backbone","BASE_MVC","$","MIN_PANEL_WIDTH","MAX_PANEL_WIDTH","SidePanel","View","extend","LoggableMixin","_logNamespace","initialize","attributes","this","log","title","hidden","savedSize","hiddenByTool","$center","$el","siblings","$toggleButton","render","html","template","id","_templateHeader","_templateBody","_templateFooter","join","escape","events","mousedown .unified-panel-footer > .drag","click .unified-panel-footer > .panel-collapse","_mousedownDragHandler","ev","move","e","delta","pageX","prevX","oldWidth","self","width","newWidth","draggingLeft","Math","min","max","resize","show","on","one","hide","off","newSize","css","animation","whichSide","animate","removeClass","addClass","toggle","handle_minwidth_hint","hint","space","force_panel","op","toString","LeftPanel","RightPanel","CenterPanel","options","prev","bind","_iframeChangeHandler","iframe","currentTarget","location","contentWindow","host","remove","Galaxy","trigger","fullpath","pathname","search","hash","display","view","message","onbeforeunload","confirm","undefined","attr","scrollTop","append"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/mvc/annotation.js.map b/static/maps/mvc/annotation.js.map index d156d2f81e2..8c38c436cc6 100644 --- a/static/maps/mvc/annotation.js.map +++ b/static/maps/mvc/annotation.js.map @@ -1 +1 @@ -{"version":3,"file":"annotation.js","sources":["../../src/mvc/annotation.js"],"names":["define","baseMVC","_l","AnnotationEditor","Backbone","View","extend","LoggableMixin","HiddenUntilActivatedViewMixin","tagName","className","initialize","options","this","tooltipConfig","placement","listenTo","model","render","hiddenUntilActivated","$activator","view","$el","html","_template","find","tooltip","$annotation","make_text_editable","use_textarea","on_finish","newAnnotation","text","save","annotation","silent","fail","previous","get","_","escape","join","remove","off","stopListening","prototype","call","toString"],"mappings":"AAAAA,QACI,eACA,qBACA,oBACD,SAAUC,EAASC,GAItB,GAAIC,GAAmBC,SAASC,KACvBC,OAAQL,EAAQM,eAChBD,OAAQL,EAAQO,+BAAgCF,QAErDG,QAAc,MACdC,UAAc,qBAGdC,WAAa,SAAUC,GACnBA,EAAUA,MACVC,KAAKC,cAAgBF,EAAQE,gBAAmBC,UAAW,UAG3DF,KAAKG,SAAUH,KAAKI,MAAO,oBAAqB,WAC5CJ,KAAKK,WAETL,KAAKM,qBAAsBP,EAAQQ,WAAYR,IAInDM,OAAS,WACL,GAAIG,GAAOR,IAeX,OAdAA,MAAKS,IAAIC,KAAMV,KAAKW,aACpBX,KAAKS,IAAIG,KAAM,WAAYC,QAASb,KAAKC,eAGzCD,KAAKc,cAAcC,oBACfC,cAAc,EACdC,UAAW,SAAUC,GACjBV,EAAKM,cAAcK,KAAMD,GACzBV,EAAKJ,MAAMgB,MAAOC,WAAYH,IAAmBI,QAAQ,IACpDC,KAAM,WACHf,EAAKM,cAAcK,KAAMX,EAAKJ,MAAMoB,SAAU,oBAIvDxB,MAIXW,UAAY,WACR,GAAIU,GAAarB,KAAKI,MAAMqB,IAAK,aAKjC,QAEI,yBAA0BpC,EAAI,cAAgB,WAE9C,kCAAmCA,EAAI,mBAAqB,KACxDqC,EAAEC,OAAQN,GACd,UACFO,KAAM,KAIZd,YAAc,WACV,MAAOd,MAAKS,IAAIG,KAAM,gBAI1BiB,OAAS,WACL7B,KAAKc,YAAYgB,MACjB9B,KAAK+B,cAAe/B,KAAKI,OACzBb,SAASC,KAAKwC,UAAUH,OAAOI,KAAMjC,OAIzCkC,SAAW,WAAY,OAAS,oBAAqBlC,KAAKI,MAAQ,GAAI,KAAMwB,KAAK,MAGrF,QACItC,iBAAmBA"} \ No newline at end of file +{"version":3,"file":"annotation.js","sources":["../../src/mvc/annotation.js"],"names":["define","baseMVC","_l","AnnotationEditor","Backbone","View","extend","LoggableMixin","HiddenUntilActivatedViewMixin","tagName","className","initialize","options","this","tooltipConfig","placement","listenTo","model","render","hiddenUntilActivated","$activator","view","$el","html","_template","$annotation","make_text_editable","use_textarea","on_finish","newAnnotation","text","save","annotation","silent","fail","previous","get","_","escape","join","find","remove","off","stopListening","prototype","call","toString"],"mappings":"AAAAA,QACI,eACA,qBACA,oBACD,SAAUC,EAASC,GAItB,GAAIC,GAAmBC,SAASC,KACvBC,OAAQL,EAAQM,eAChBD,OAAQL,EAAQO,+BAAgCF,QAErDG,QAAc,MACdC,UAAc,qBAGdC,WAAa,SAAUC,GACnBA,EAAUA,MACVC,KAAKC,cAAgBF,EAAQE,gBAAmBC,UAAW,UAG3DF,KAAKG,SAAUH,KAAKI,MAAO,oBAAqB,WAC5CJ,KAAKK,WAETL,KAAKM,qBAAsBP,EAAQQ,WAAYR,IAInDM,OAAS,WACL,GAAIG,GAAOR,IAcX,OAbAA,MAAKS,IAAIC,KAAMV,KAAKW,aAGpBX,KAAKY,cAAcC,oBACfC,cAAc,EACdC,UAAW,SAAUC,GACjBR,EAAKI,cAAcK,KAAMD,GACzBR,EAAKJ,MAAMc,MAAOC,WAAYH,IAAmBI,QAAQ,IACpDC,KAAM,WACHb,EAAKI,cAAcK,KAAMT,EAAKJ,MAAMkB,SAAU,oBAIvDtB,MAIXW,UAAY,WACR,GAAIQ,GAAanB,KAAKI,MAAMmB,IAAK,aACjC,QAEI,yBAA0BlC,EAAI,cAAgB,WAE9C,2BACImC,EAAEC,OAAQN,GACd,UACFO,KAAM,KAIZd,YAAc,WACV,MAAOZ,MAAKS,IAAIkB,KAAM,gBAI1BC,OAAS,WACL5B,KAAKY,YAAYiB,MACjB7B,KAAK8B,cAAe9B,KAAKI,OACzBb,SAASC,KAAKuC,UAAUH,OAAOI,KAAMhC,OAIzCiC,SAAW,WAAY,OAAS,oBAAqBjC,KAAKI,MAAQ,GAAI,KAAMsB,KAAK,MAGrF,QACIpC,iBAAmBA"} \ No newline at end of file diff --git a/static/maps/mvc/history/history-contents.js.map b/static/maps/mvc/history/history-contents.js.map index 450ce470fdb..e897f8f7454 100644 --- a/static/maps/mvc/history/history-contents.js.map +++ b/static/maps/mvc/history/history-contents.js.map @@ -1 +1 @@ -{"version":3,"file":"history-contents.js","sources":["../../../src/mvc/history/history-contents.js"],"names":["define","CONTROLLED_FETCH_COLLECTION","HDA_MODEL","HDCA_MODEL","HISTORY_PREFS","BASE_MVC","_super","PaginatedCollection","HistoryContents","extend","LoggableMixin","_logNamespace","model","attrs","options","history_content_type","HistoryDatasetAssociation","collection_type","HistoryListDatasetCollection","HistoryPairDatasetCollection","HistoryListPairedDatasetCollection","validationError","limitOnFirstFetch","limitPerFetch","order","initialize","models","this","historyId","prototype","idAttribute","includeDeleted","includeHidden","call","urlRoot","Galaxy","root","url","running","filterFn","c","inReadyState","filter","getByHid","hid","_","first","content","get","haveDetails","all","hasDetails","hidden","deleted","visibleAndUndeleted","setIncludeDeleted","setting","isBoolean","trigger","setIncludeHidden","fetch","details","prefs","HistoryPrefs","toJSON","values","expandedIds","join","_buildFetchData","v","_fetchParams","concat","_buildFetchFilters","superFilters","filters","purged","visible","defaults","fetchUpdated","since","update_time-ge","toISOString","done","r","console","log","length","fetchDeleted","self","undefined","always","fetchHidden","fetchAllDetails","detailsFlag","data","ajaxQueue","ajaxFn","deferred","jQuery","Deferred","startingLength","responses","resolve","ajaxFns","chain","reverse","map","i","xhr","response","notify","curr","total","push","shift","value","progressivelyFetchDetails","_notifyAndContinue","offset","limit","allFetched","_recursivelyFetch","_options","clone","view","keys","detailKeys","fetchFn","fetchFirst","fetchMore","defer","fail","reject","limitPerCall","searchAttributes","isCopyable","contentsJSON","copyableModelClasses","isObject","id","contains","model_class","copy","json","type","contentType","isString","LibraryDatasetDatasetAssociation","HistoryDatasetCollectionAssociation","collection","post","source","add","parse","createHDCA","elementIdentifiers","collectionType","name","contents","typeToModel","list","paired","hdca","history_id","element_identifiers","save","status","message","haveSearchDetails","has","attributes","matches","matchesWhat","Backbone","Collection","toString"],"mappings":"AAAAA,QACI,uCACA,wBACA,yBACA,kCACA,gBACD,SAAUC,EAA6BC,EAAWC,EAAYC,EAAeC,GAChF,YAGA,IAAIC,GAASL,EAA4BM,oBASrCC,EAAkBF,EAAOG,OAAQJ,EAASK,eAAgBD,QAC1DE,cAAgB,UAGhBC,MAAQ,SAAUC,EAAOC,GACrB,GAAmC,YAA/BD,EAAME,qBACN,MAAO,IAAIb,GAAUc,0BAA2BH,EAAOC,EAEpD,IAAmC,uBAA/BD,EAAME,qBAAgD,CAC7D,OAAQF,EAAMI,iBACV,IAAK,OACD,MAAO,IAAId,GAAWe,6BAA8BL,EAAOC,EAC/D,KAAK,SACD,MAAO,IAAIX,GAAWgB,6BAA8BN,EAAOC,EAC/D,KAAK,cACD,MAAO,IAAIX,GAAWiB,mCAAoCP,EAAOC,GAMzE,OAASO,gBAAkB,4BAA8BR,EAAME,sBAEnE,OAASM,gBAAkB,iCAAmCR,EAAME,uBAIxEO,kBAAsB,IAEtBC,cAAsB,GAGtBC,MAAQ,cAGRC,WAAa,SAAUC,EAAQZ,GAc3B,MAbAA,GAAUA,MACVa,KAAKC,UAAYd,EAAQc,WAAa,KAKtCD,KAAKf,MAAMiB,UAAUC,YAAc,UAGnCH,KAAKI,eAAiBjB,EAAQiB,iBAAkB,EAEhDJ,KAAKK,cAAgBlB,EAAQkB,gBAAiB,EAEvC1B,EAAOuB,UAAUJ,WAAWQ,KAAMN,KAAMD,EAAQZ,IAI3DoB,QAAUC,OAAOC,KAAO,gBAGxBC,IAAM,WACF,MAAOV,MAAKO,QAAU,IAAMP,KAAKC,UAAY,aAQjDU,QAAU,WACN,QAASC,GAAUC,GAAK,OAAQA,EAAEC,eAClC,MAAO,IAAIjC,GAAiBmB,KAAKe,OAAQH,KAO7CI,SAAW,SAAUC,GACjB,MAAOC,GAAEC,MAAOnB,KAAKe,OAAQ,SAAUK,GAAW,MAAOA,GAAQC,IAAK,SAAYJ,MAItFK,YAAc,WACV,MAAOtB,MAAKuB,IAAK,SAAUH,GAAW,MAAOA,GAAQI,gBAKzDC,OAAS,WACL,QAASb,GAAUC,GAAK,MAAOA,GAAEY,SACjC,MAAO,IAAI5C,GAAiBmB,KAAKe,OAAQH,KAI7Cc,QAAU,WACN,QAASd,GAAUC,GAAK,MAAOA,GAAEQ,IAAK,WACtC,MAAO,IAAIxC,GAAiBmB,KAAKe,OAAQH,KAI7Ce,oBAAsB,WAClB,QAASf,GAAUC,GAAK,MAAOA,GAAEQ,IAAK,aAAgBR,EAAEQ,IAAK,WAC7D,MAAO,IAAIxC,GAAiBmB,KAAKe,OAAQH,KAK7CgB,kBAAoB,SAAUC,GACtBX,EAAEY,UAAWD,IAAaA,IAAY7B,KAAKI,iBAC3CJ,KAAKI,eAAiByB,EACtB7B,KAAK+B,QAAS,yBAA0BF,EAAS7B,QAKzDgC,iBAAmB,SAAUH,GACrBX,EAAEY,UAAWD,IAAaA,IAAY7B,KAAKK,gBAC3CL,KAAKK,cAAgBwB,EACrB7B,KAAK+B,QAAS,wBAAyBF,EAAS7B,QAMxDiC,MAAQ,SAAU9C,GAEd,GADAA,EAAUA,MACNa,KAAKC,YAAcd,EAAQ+C,QAAS,CACpC,GAAIC,GAAQ1D,EAAc2D,aAAaf,IAAKrB,KAAKC,WAAYoC,QAC7DlD,GAAQ+C,QAAUhB,EAAEoB,OAAQH,EAAMI,aAAcC,KAAM,KAE1D,MAAO7D,GAAOuB,UAAU+B,MAAM3B,KAAMN,KAAMb,IAK9CsD,gBAAkB,SAAUtD,GACxB,MAAO+B,GAAEpC,OAAQH,EAAOuB,UAAUuC,gBAAgBnC,KAAMN,KAAMb,IAC1DuD,EAAI,SAKZC,aAAehE,EAAOuB,UAAUyC,aAAaC,QAGzC,IAEA,YAIJC,mBAAqB,SAAU1D,GAC3B,GAAI2D,GAAenE,EAAOuB,UAAU2C,mBAAmBvC,KAAMN,KAAMb,OAC/D4D,IAQJ,OAPK/C,MAAKI,iBACN2C,EAAQrB,SAAU,EAClBqB,EAAQC,QAAS,GAEhBhD,KAAKK,gBACN0C,EAAQE,SAAU,GAEf/B,EAAEgC,SAAUJ,EAAcC,IAIrCI,aAAe,SAAUC,EAAOjE,GAY5B,MAXIiE,KACAjE,EAAUA,IAAa4D,YACvB5D,EAAQ4D,SACJM,iBAAmBD,EAAME,cAIzBL,QAAmB,KAIpBjD,KAAKiC,MAAO9C,GAEdoE,KAAM,SAAUC,GAAKC,QAAQC,IAAK,WAAYF,EAAEG,OAAQH,MAKjEI,aAAe,SAAUzE,GACrBA,EAAUA,KACV,IAAI0E,GAAO7D,IAQX,OAPAb,GAAQ4D,QAAU7B,EAAEpC,OAAQK,EAAQ4D,SAEhCrB,SAAU,EACVsB,OAAUc,SAGdD,EAAK9B,QAAS,mBAAoB8B,GAC3BA,EAAK5B,MAAO9C,GACd4E,OAAQ,WAAYF,EAAK9B,QAAS,wBAAyB8B,MAIpEG,YAAc,SAAU7E,GACpBA,EAAUA,KACV,IAAI0E,GAAO7D,IAMX,OALAb,GAAQ4D,QAAU7B,EAAEpC,OAAQK,EAAQ4D,SAChCE,SAAU,IAGdY,EAAK9B,QAAS,kBAAmB8B,GAC1BA,EAAK5B,MAAO9C,GACd4E,OAAQ,WAAYF,EAAK9B,QAAS,uBAAwB8B,MAInEI,gBAAkB,SAAU9E,GACxBA,EAAUA,KACV,IAAI+E,IAAgBhC,QAAS,MAE7B,OADA/C,GAAQgF,KAAOjD,EAAEpC,OAAQK,EAAQgF,SAAYD,GACtClE,KAAKiC,MAAO9C,IAKvBiF,UAAY,SAAUC,EAAQlF,GAC1B,GAAImF,GAAWC,OAAOC,WAClBC,EAAiBzE,KAAK2D,OACtBe,IAEJ,KAAKD,EAED,MADAH,GAASK,YACFL,CAIX,IAAIM,GAAU5E,KAAK6E,QAAQC,UAAUC,IAAK,SAAU3D,EAAS4D,GACzD,MAAO,YACH,GAAIC,GAAMZ,EAAO/D,KAAMc,EAASjC,EAEhC8F,GAAI1B,KAAM,SAAU2B,GAChBZ,EAASa,QAASC,KAAMJ,EAAGK,MAAOZ,EAAgBS,SAAUA,EAAUjG,MAAOmC,MAIjF6D,EAAIlB,OAAQ,SAAUmB,GAClBR,EAAUY,KAAMJ,GACZN,EAAQjB,OACRiB,EAAQW,UAERjB,EAASK,QAASD,QAI/Bc,OAIH,OAFAZ,GAAQW,UAEDjB,GAIXmB,0BAA4B,SAAUtG,GAYlC,QAASuG,GAAoBR,EAAUS,GAGnC,MADArB,GAASa,OAAQD,EAAUU,EAAOD,IAC7BT,EAASvB,QAAUuB,EAASvB,OAASiC,GACtC/B,EAAKgC,YAAa,MAClBvB,GAASK,QAASO,EAAUU,EAAOD,QAGvCG,GAAmBH,EAASC,GAGhC,QAASE,GAAmBH,GACxBA,EAASA,GAAU,CAEnB,IAAII,GAAW7E,EAAEpC,OAAQoC,EAAE8E,MAAO7G,IAC9B8G,KAAU,UACVC,KAAUC,EACVP,MAAUA,EACVD,OAAUA,IAIVS,EAAqB,IAAXT,EAAc9B,EAAKwC,WAAaxC,EAAKyC,SAEnDpF,GAAEqF,MAAO,WACLH,EAAQ9F,KAAMuD,EAAMkC,GACfS,KAAMlC,EAASmC,QACflD,KAAM,SAAUC,GAAKkC,EAAoBlC,EAAGmC,OArCzDxG,EAAUA,KACV,IAAImF,GAAWC,OAAOC,WAClBX,EAAO7D,KACP4F,EAAQzG,EAAQuH,cAAgB,GAEhCC,EAAmBpI,EAAUc,0BAA0Ba,UAAUyG,iBACjER,EAAaQ,EAAiBnE,KAAM,IAmCxC,OADAsD,KACOxB,GAIXsC,WAAa,SAAUC,GACnB,GAAIC,IACA,4BACA,sCAEJ,OAAW5F,GAAE6F,SAAUF,IAAkBA,EAAaG,IAC3C9F,EAAE+F,SAAUH,EAAsBD,EAAaK,cAI9DC,KAAO,SAAUC,GAEb,GAAIJ,GAAIK,EAAMC,CACVpG,GAAEqG,SAAUH,IACZJ,EAAKI,EACLE,EAAc,MACdD,EAAO,YAEPL,EAAKI,EAAKJ,GACVM,GACIjI,0BAA8B,MAC9BmI,iCAAqC,OACrCC,oCAAwC,QACxCL,EAAKF,cAAiB,MAC1BG,EAAyB,SAAhBC,EAAwB,qBAAuB,UAE5D,IAAII,GAAa1H,KACbiF,EAAMV,OAAOoD,KAAM3H,KAAKU,OACpBU,QAAU4F,EACVY,OAAUN,EACVD,KAAUA,EACVpB,KAAU,WACVC,KAAU,4BAEb3C,KAAM,SAAU2B,GACbwC,EAAWG,KAAM3C,IAAc4C,OAAO,MAEzCtB,KAAM,WACHkB,EAAW3F,QAAS,QAAS2F,EAAYzC,KACrC,0BAA4BoC,KAAMA,EAAML,GAAIA,EAAIY,OAAQN,KAEpE,OAAOrC,IAIX8C,WAAa,SAAUC,EAAoBC,EAAgBC,GAGvD,GAAIC,GAAWnI,KACXoI,GACIC,KAAU7J,EAAWe,6BACrB+I,OAAU9J,EAAWgB,8BAEzB+I,EAAO,GAAKH,GAAaH,IACrBO,WAAsBxI,KAAKC,UAC3BiI,KAAsBA,EAEtBO,oBAAsBT,GAG9B,OAAOO,GAAKG,OACPnF,KAAM,WACH4E,EAASN,IAAKU,KAEjB/B,KAAM,SAAUvB,EAAK0D,EAAQC,GAC1BT,EAASpG,QAAS,QAASkD,EAAK0D,EAAQC,MAMpDC,kBAAoB,WAChB,MAAO7I,MAAK6F,YAAc7F,KAAKuB,IAAK,SAAUH,GAI1C,MAAOF,GAAE4H,IAAK1H,EAAQ2H,WAAY,iBAK1CC,QAAU,SAAUC,GAChB,MAAOjJ,MAAKe,OAAQ,SAAUK,GAC1B,MAAOA,GAAQ4H,QAASC,MAMhCjD,MAAQ,WACJ,GAAIA,GAAQkD,SAASC,WAAWjJ,UAAU8F,MAAM1F,KAAMN,KAEtD,OADAgG,GAAM/F,UAAYD,KAAKC,UAChB+F,GAIXoD,SAAW,WACN,OAAU,oBAAsBpJ,KAAKC,UAAWD,KAAK2D,QAASnB,OAAQ,KAAMA,KAAM,MAMvF,QACI3D,gBAAkBA"} \ No newline at end of file +{"version":3,"file":"history-contents.js","sources":["../../../src/mvc/history/history-contents.js"],"names":["define","CONTROLLED_FETCH_COLLECTION","HDA_MODEL","HDCA_MODEL","HISTORY_PREFS","BASE_MVC","_super","PaginatedCollection","HistoryContents","extend","LoggableMixin","_logNamespace","model","attrs","options","history_content_type","HistoryDatasetAssociation","collection_type","HistoryListDatasetCollection","HistoryPairDatasetCollection","HistoryListPairedDatasetCollection","validationError","limitOnFirstFetch","limitPerFetch","order","initialize","models","this","historyId","prototype","idAttribute","includeDeleted","includeHidden","call","urlRoot","Galaxy","root","url","running","filterFn","c","inReadyState","filter","getByHid","hid","_","first","content","get","haveDetails","all","hasDetails","hidden","deleted","visibleAndUndeleted","setIncludeDeleted","setting","isBoolean","trigger","setIncludeHidden","fetch","details","prefs","HistoryPrefs","toJSON","values","expandedIds","join","_buildFetchData","v","_fetchParams","concat","_buildFetchFilters","superFilters","filters","purged","visible","defaults","fetchUpdated","since","update_time-ge","toISOString","fetchDeleted","self","undefined","always","fetchHidden","fetchAllDetails","detailsFlag","data","ajaxQueue","ajaxFn","deferred","jQuery","Deferred","startingLength","length","responses","resolve","ajaxFns","chain","reverse","map","i","xhr","done","response","notify","curr","total","push","shift","value","progressivelyFetchDetails","_notifyAndContinue","offset","limit","allFetched","_recursivelyFetch","_options","clone","view","keys","detailKeys","fetchFn","fetchFirst","fetchMore","defer","fail","reject","r","limitPerCall","searchAttributes","isCopyable","contentsJSON","copyableModelClasses","isObject","id","contains","model_class","copy","json","type","contentType","isString","LibraryDatasetDatasetAssociation","HistoryDatasetCollectionAssociation","collection","post","source","add","parse","createHDCA","elementIdentifiers","collectionType","name","contents","typeToModel","list","paired","hdca","history_id","element_identifiers","save","status","message","haveSearchDetails","has","attributes","matches","matchesWhat","Backbone","Collection","toString"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/mvc/history/history-view-edit-current.js.map b/static/maps/mvc/history/history-view-edit-current.js.map index e2db2e187f6..8bbb9bc70d9 100644 --- a/static/maps/mvc/history/history-view-edit-current.js.map +++ b/static/maps/mvc/history/history-view-edit-current.js.map @@ -1 +1 @@ -{"version":3,"file":"history-view-edit-current.js","sources":["../../../src/mvc/history/history-view-edit-current.js"],"names":["define","HISTORY_MODEL","HISTORY_VIEW_EDIT","BASE_MVC","_l","HistoryViewPrefs","SessionStorageModel","extend","defaults","tagsEditorShown","annotationEditorShown","scrollPosition","toString","JSON","stringify","this","toJSON","storageKey","_super","HistoryViewEdit","CurrentHistoryView","className","prototype","emptyMsg","noneFoundMsg","HDCAViewClass","foldoutStyle","initialize","attributes","preferences","_","id","pick","keys","call","panelStack","currentContentId","_setUpListeners","panel","on","set","loadCurrentHistory","loadHistory","url","Galaxy","root","switchToHistory","historyId","user","isAnonymous","trigger","$","when","createNewHistory","setModel","model","render","log","checkForUpdates","_setUpModelListeners","listenTo","change:nice_size change:size","arguments","change:id","once","_setUpCollectionListeners","collection","get","storage","removeItemView","_setUpBehaviors","$where","$el","_debouncedScrollCaptureHandler","debounce","is","scrollTop","$scrollContainer","off","_buildNewRender","$newRender","find","prependTo","_renderQuotaMessage","$whereTo","templates","quotaMsg","_renderEmptyMessage","$emptyMsg","$emptyMessage","$toolMenu","isEmpty","views","searchFor","upload","size","empty","html","join","click","ev","show","parent","_renderTags","tagsEditor","toggle","hidden","_renderAnnotation","annotationEditor","_swapNewRender","delay","pos","scrollTo","_attachItems","_setCurrentContentById","addItemView","options","view","length","_collapseDrilldownPanel","_setUpItemViewListeners","expanded:drilldown","v","drilldown","_expandDrilldownPanel","collapsed:drilldown","setCurrentContent","removeClass","addClass","viewFromModelId","push","add","$list","hide","parentName","append","pop","listenToGalaxy","galaxy","data","pathToMatch","fullpath","useToURLRegexMap","display","edit","report_error","rerun","show_params","hdaId","hdaUse","regex","use","match","connectToQuotaMeter","quotaMeter","showQuotaMessage","hideQuotaMessage","isOverQuota","clearMessages","$target","isUndefined","$messages","children","currentTarget","not","fadeOut","fxSpeed","remove","$msg","slideDown","slideUp","quotaMsgTemplate","wrapTemplate","clone"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"history-view-edit-current.js","sources":["../../../src/mvc/history/history-view-edit-current.js"],"names":["define","HISTORY_MODEL","HISTORY_VIEW_EDIT","BASE_MVC","_l","HistoryViewPrefs","SessionStorageModel","extend","defaults","tagsEditorShown","annotationEditorShown","scrollPosition","toString","JSON","stringify","this","toJSON","storageKey","_super","HistoryViewEdit","CurrentHistoryView","className","prototype","emptyMsg","noneFoundMsg","HDCAViewClass","foldoutStyle","initialize","attributes","preferences","_","id","pick","keys","call","panelStack","currentContentId","_setUpListeners","panel","on","set","loadCurrentHistory","loadHistory","url","Galaxy","root","switchToHistory","historyId","user","isAnonymous","trigger","$","when","createNewHistory","setModel","model","render","log","checkForUpdates","_setUpModelListeners","listenTo","change:nice_size change:size","arguments","change:id","once","_setUpCollectionListeners","collection","get","storage","removeItemView","_setUpBehaviors","$where","$el","_debouncedScrollCaptureHandler","debounce","is","scrollTop","$scrollContainer","off","_buildNewRender","$newRender","find","prependTo","_renderQuotaMessage","$whereTo","templates","quotaMsg","_renderEmptyMessage","$emptyMsg","$emptyMessage","$toolMenu","isEmpty","views","searchFor","upload","size","empty","html","join","click","ev","show","parent","_renderTags","tagsEditor","toggle","hidden","_renderAnnotation","annotationEditor","_swapNewRender","delay","pos","scrollTo","_attachItems","_setCurrentContentById","addItemView","options","view","length","_collapseDrilldownPanel","_setUpItemViewListeners","expanded:drilldown","v","drilldown","_expandDrilldownPanel","collapsed:drilldown","setCurrentContent","removeClass","addClass","viewFromModelId","push","add","$list","hide","parentName","append","pop","listenToGalaxy","galaxy","galaxy_main:load","data","pathToMatch","fullpath","hdaId","useToURLRegexMap","display","edit","report_error","rerun","show_params","regex","result","match","center-panel:load","connectToQuotaMeter","quotaMeter","showQuotaMessage","hideQuotaMessage","isOverQuota","clearMessages","$target","isUndefined","$messages","children","currentTarget","not","fadeOut","fxSpeed","remove","$msg","slideDown","slideUp","quotaMsgTemplate","wrapTemplate","clone"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/mvc/history/history-view-edit.js.map b/static/maps/mvc/history/history-view-edit.js.map index c4466c43f35..be0d5e480f9 100644 --- a/static/maps/mvc/history/history-view-edit.js.map +++ b/static/maps/mvc/history/history-view-edit.js.map @@ -1 +1 @@ -{"version":3,"file":"history-view-edit.js","sources":["../../../src/mvc/history/history-view-edit.js"],"names":["define","HISTORY_VIEW","HISTORY_CONTENTS","STATES","HDA_MODEL","HDA_LI_EDIT","HDCA_LI_EDIT","TAGS","ANNOTATIONS","LIST_COLLECTION_CREATOR","PAIR_COLLECTION_CREATOR","LIST_OF_PAIRS_COLLECTION_CREATOR","faIconButton","PopupMenu","BASE_MVC","_l","_super","HistoryView","HistoryViewEdit","extend","HDAViewClass","HDAListItemEdit","HDCAViewClass","HDCAListItemEdit","initialize","attributes","prototype","call","this","tagsEditor","annotationEditor","purgeAllowed","annotationEditorShown","tagsEditorShown","_setUpListeners","panel","on","ev","data","dataDropped","dropTargetOff","_renderCounts","_setUpModelListeners","listenTo","model","updateHistoryDiskSize","_setUpCollectionListeners","collection","change:deleted","_handleHdaDeletionChange","change:visible","_handleHdaVisibleChange","change:purged","fetch","fetching-deleted","$","parent","html","fetching-hidden","fetching-deleted-done fetching-hidden-done","_buildNewRender","$newRender","Galaxy","user","id","get","_renderTags","_renderAnnotation","renderItems","$whereTo","views","jQuery","$el","templates","counts","toJSON","find","$where","TagsEditor","el","onshowFirstTime","render","onshow","toggleHDATagEditors","fxSpeed","onhide","$activator","title","classes","faIcon","appendTo","AnnotationEditor","toggleHDAAnnotationEditors","_setUpBehaviors","isAnonymous","nameSelector","attr","tooltip","placement","make_text_editable","on_finish","newName","previousName","text","save","name","fail","previous","multiselectActions","actions","func","action","HistoryDatasetAssociation","hide","getSelectedModels","ajaxQueue","unhide","undelete","push","confirm","purge","concat","_collectionActions","createListCollection","done","refresh","createPairCollection","createListOfPairsCollection","_getItemViewOptions","options","_","hidden","itemModel","contentsShown","deleted","showDeleted","shown","removeItemView","set","showHidden","args","Array","slice","arguments","each","view","toggle","apply","events","clone","click .show-selectors-btn","click .toggle-deleted-link","toggleShowDeleted","click .toggle-hidden-link","toggleShowHidden","dropTargetOn","dropTarget","dropHandlers","dragenter","bind","dragover","dragleave","drop","$dropTarget","_renderDropTarget","$list","before","_renderDropTargetHelp","evName","hasOwnProperty","remove","addClass","css","height","margin","border","border-radius","color","font-size","font-style","_dropHandlers","off","dropTargetToggle","preventDefault","stopPropagation","dataTransfer","originalEvent","dropEffect","getData","JSON","parse","err","warn","trigger","isObject","model_class","contents","copy","when","toString","countsTemplate","wrapTemplate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"history-view-edit.js","sources":["../../../src/mvc/history/history-view-edit.js"],"names":["define","HISTORY_VIEW","HISTORY_CONTENTS","STATES","HDA_MODEL","HDA_LI_EDIT","HDCA_LI_EDIT","TAGS","ANNOTATIONS","LIST_COLLECTION_CREATOR","PAIR_COLLECTION_CREATOR","LIST_OF_PAIRS_COLLECTION_CREATOR","faIconButton","PopupMenu","BASE_MVC","_l","_super","HistoryView","HistoryViewEdit","extend","HDAViewClass","HDAListItemEdit","HDCAViewClass","HDCAListItemEdit","initialize","attributes","prototype","call","this","tagsEditor","annotationEditor","purgeAllowed","annotationEditorShown","tagsEditorShown","_setUpListeners","panel","on","ev","data","dataDropped","dropTargetOff","_renderCounts","_setUpModelListeners","listenTo","model","updateHistoryDiskSize","_setUpCollectionListeners","collection","change:deleted","_handleHdaDeletionChange","change:visible","_handleHdaVisibleChange","change:purged","fetch","fetching-deleted","$","parent","html","fetching-hidden","fetching-deleted-done fetching-hidden-done","_buildNewRender","$newRender","Galaxy","user","id","get","_renderTags","_renderAnnotation","renderItems","$whereTo","views","jQuery","$el","templates","counts","toJSON","find","$where","TagsEditor","el","onshowFirstTime","render","onshow","toggleHDATagEditors","fxSpeed","onhide","$activator","title","classes","faIcon","appendTo","AnnotationEditor","toggleHDAAnnotationEditors","_setUpBehaviors","isAnonymous","nameSelector","attr","tooltip","placement","make_text_editable","on_finish","newName","previousName","text","save","name","fail","previous","multiselectActions","actions","func","action","HistoryDatasetAssociation","hide","getSelectedModels","ajaxQueue","unhide","undelete","push","confirm","purge","concat","_collectionActions","createListCollection","done","refresh","createPairCollection","createListOfPairsCollection","_getItemViewOptions","options","_","hidden","itemModel","contentsShown","deleted","showDeleted","shown","removeItemView","set","showHidden","showOrHide","speed","each","view","toggle","events","clone","click .show-selectors-btn","click .toggle-deleted-link","toggleShowDeleted","click .toggle-hidden-link","toggleShowHidden","dropTargetOn","dropTarget","dropHandlers","dragenter","bind","dragover","dragleave","drop","$dropTarget","_renderDropTarget","$list","before","_renderDropTargetHelp","evName","hasOwnProperty","remove","addClass","css","height","margin","border","border-radius","color","font-size","font-style","_dropHandlers","off","dropTargetToggle","preventDefault","stopPropagation","dataTransfer","originalEvent","dropEffect","getData","JSON","parse","err","warn","trigger","isObject","model_class","contents","copy","when","toString","countsTemplate","wrapTemplate"],"mappings":"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"} \ No newline at end of file diff --git a/static/scripts/bundled/analysis.bundled.js b/static/scripts/bundled/analysis.bundled.js index 5f383ab1435..278d5abb291 100644 --- a/static/scripts/bundled/analysis.bundled.js +++ b/static/scripts/bundled/analysis.bundled.js @@ -13464,10 +13464,15 @@ webpackJsonp([0,1],[ // ........................................................................ external objects/MVC listenToGalaxy : function( galaxy ){ - // TODO: MEM: questionable reference island / closure practice - this.listenTo( galaxy, 'galaxy_main:load', function( data ){ - var pathToMatch = data.fullpath, - useToURLRegexMap = { + this.listenTo( galaxy, { + // when the galaxy_main iframe is loaded with a new page, + // compare the url to the following list and if there's a match + // pull the id from url and indicate in the history view that + // the dataset with that id is the 'current'ly active dataset + 'galaxy_main:load': function( data ){ + var pathToMatch = data.fullpath; + var hdaId = null; + var useToURLRegexMap = { 'display' : /datasets\/([a-f0-9]+)\/display/, 'edit' : /datasets\/([a-f0-9]+)\/edit/, 'report_error' : /dataset\/errors\?id=([a-f0-9]+)/, @@ -13475,21 +13480,19 @@ webpackJsonp([0,1],[ 'show_params' : /datasets\/([a-f0-9]+)\/show_params/, // no great way to do this here? (leave it in the dataset event handlers above?) // 'visualization' : 'visualization', - }, - hdaId = null, - hdaUse = null; - _.find( useToURLRegexMap, function( regex, use ){ - var match = pathToMatch.match( regex ); - if( match && match.length == 2 ){ - hdaId = match[1]; - hdaUse = use; - return true; - } - return false; - }); - // need to type mangle to go from web route to history contents - hdaId = 'dataset-' + hdaId; - this._setCurrentContentById( hdaId ); + }; + _.find( useToURLRegexMap, function( regex, use ){ + // grab the more specific match result (1), save, and use it as the find flag + hdaId = _.result( pathToMatch.match( regex ), 1 ); + return hdaId; + }); + // need to type mangle to go from web route to history contents + this._setCurrentContentById( hdaId? ( 'dataset-' + hdaId ) : null ); + }, + // when the center panel is given a new view, clear the current indicator + 'center-panel:load': function( view ){ + this._setCurrentContentById(); + } }); }, @@ -14261,11 +14264,7 @@ webpackJsonp([0,1],[ visible : '' }; } - // console.log( 'fetching updated:', this.historyId, since ); - return this.fetch( options ) - // .done( function( r ){ console.log( 'updated:\n', JSON.stringify( r ) ); }) - .done( function( r ){ console.log( 'updated:', r.length, r ); }) - ; + return this.fetch( options ); }, /** */ @@ -16358,21 +16357,19 @@ webpackJsonp([0,1],[ }, /** toggle the visibility of each content's tagsEditor applying all the args sent to this function */ - toggleHDATagEditors : function( showOrHide ){ - var args = Array.prototype.slice.call( arguments, 1 ); + toggleHDATagEditors : function( showOrHide, speed ){ _.each( this.views, function( view ){ if( view.tagsEditor ){ - view.tagsEditor.toggle.apply( view.tagsEditor, args ); + view.tagsEditor.toggle( showOrHide, speed ); } }); }, /** toggle the visibility of each content's annotationEditor applying all the args sent to this function */ - toggleHDAAnnotationEditors : function( showOrHide ){ - var args = Array.prototype.slice.call( arguments, 1 ); + toggleHDAAnnotationEditors : function( showOrHide, speed ){ _.each( this.views, function( view ){ if( view.annotationEditor ){ - view.annotationEditor.toggle.apply( view.annotationEditor, args ); + view.annotationEditor.toggle( showOrHide, speed ); } }); }, @@ -22218,7 +22215,6 @@ webpackJsonp([0,1],[ render : function(){ var view = this; this.$el.html( this._template() ); - this.$el.find( "[title]" ).tooltip( this.tooltipConfig ); //TODO: handle empties better this.$annotation().make_text_editable({ @@ -22237,15 +22233,11 @@ webpackJsonp([0,1],[ /** @returns {String} the html text used to build the view's DOM */ _template : function(){ var annotation = this.model.get( 'annotation' ); - //if( !annotation ){ - // //annotation = [ '', _l( 'Click to add an annotation' ), '' ].join( '' ); - // annotation = [ '' ].join( '' ); - //} return [ //TODO: make prompt optional '', // set up initial tags by adding as CSV to input vals (necc. to init select2) - '
', + '
', _.escape( annotation ), '
' ].join( '' ); diff --git a/static/scripts/bundled/analysis.bundled.js.map b/static/scripts/bundled/analysis.bundled.js.map index 5aa0ab6e188..b5385dd0e8d 100644 --- a/static/scripts/bundled/analysis.bundled.js.map +++ b/static/scripts/bundled/analysis.bundled.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./galaxy/scripts/apps/analysis.js","webpack:///./galaxy/scripts/apps/tool-panel.js","webpack:///./galaxy/scripts/mvc/tool/tools.js","webpack:///./galaxy/scripts/viz/trackster/util.js","webpack:///./galaxy/scripts/mvc/dataset/data.js","webpack:///./galaxy/scripts/mvc/ui/icon-button.js","webpack:///./galaxy/scripts/mvc/tool/tool-form.js","webpack:///./galaxy/scripts/mvc/ui/ui-misc.js","webpack:///./galaxy/scripts/mvc/ui/ui-select-default.js","webpack:///./galaxy/scripts/mvc/ui/ui-buttons.js","webpack:///./galaxy/scripts/mvc/ui/ui-slider.js","webpack:///./galaxy/scripts/mvc/ui/ui-options.js","webpack:///./galaxy/scripts/mvc/ui/ui-drilldown.js","webpack:///./galaxy/scripts/mvc/tool/tool-form-base.js","webpack:///./galaxy/scripts/utils/deferred.js","webpack:///./galaxy/scripts/mvc/form/form-view.js","webpack:///./galaxy/scripts/mvc/ui/ui-portlet.js","webpack:///./galaxy/scripts/mvc/form/form-section.js","webpack:///./galaxy/scripts/mvc/ui/ui-table.js","webpack:///./galaxy/scripts/mvc/form/form-repeat.js","webpack:///./galaxy/scripts/mvc/form/form-input.js","webpack:///./galaxy/scripts/mvc/form/form-parameters.js","webpack:///./galaxy/scripts/mvc/ui/ui-select-content.js","webpack:///./galaxy/scripts/mvc/ui/ui-select-library.js","webpack:///./galaxy/scripts/mvc/ui/ui-list.js","webpack:///./galaxy/scripts/mvc/ui/ui-select-ftp.js","webpack:///./galaxy/scripts/mvc/ui/ui-color-picker.js","webpack:///./galaxy/scripts/mvc/form/form-data.js","webpack:///./galaxy/scripts/mvc/tool/tool-template.js","webpack:///./galaxy/scripts/mvc/citation/citation-model.js","webpack:///./galaxy/scripts/libs/bibtex.js","webpack:///./galaxy/scripts/mvc/citation/citation-view.js","webpack:///./galaxy/scripts/mvc/upload/upload-view.js","webpack:///./galaxy/scripts/mvc/ui/ui-tabs.js","webpack:///./galaxy/scripts/mvc/upload/upload-button.js","webpack:///./galaxy/scripts/mvc/upload/default/default-view.js","webpack:///./galaxy/scripts/mvc/upload/upload-model.js","webpack:///./galaxy/scripts/mvc/upload/default/default-row.js","webpack:///./galaxy/scripts/mvc/upload/upload-settings.js","webpack:///./galaxy/scripts/mvc/ui/ui-popover.js","webpack:///./galaxy/scripts/mvc/ui/ui-select.js","webpack:///./galaxy/scripts/mvc/upload/upload-ftp.js","webpack:///./galaxy/scripts/utils/uploadbox.js","webpack:///./galaxy/scripts/mvc/upload/composite/composite-view.js","webpack:///./galaxy/scripts/mvc/upload/composite/composite-row.js","webpack:///./galaxy/scripts/apps/history-panel.js","webpack:///./galaxy/scripts/mvc/history/options-menu.js","webpack:///./galaxy/scripts/mvc/ui/popup-menu.js","webpack:///./galaxy/scripts/mvc/history/copy-dialog.js","webpack:///./galaxy/scripts/mvc/history/history-view-edit-current.js","webpack:///./galaxy/scripts/mvc/history/history-model.js","webpack:///./galaxy/scripts/mvc/history/history-contents.js","webpack:///./galaxy/scripts/mvc/base/controlled-fetch-collection.js","webpack:///./galaxy/scripts/mvc/history/hda-model.js","webpack:///./galaxy/scripts/mvc/dataset/dataset-model.js","webpack:///./galaxy/scripts/mvc/dataset/states.js","webpack:///./galaxy/scripts/mvc/history/history-content-model.js","webpack:///./galaxy/scripts/mvc/history/hdca-model.js","webpack:///./galaxy/scripts/mvc/collection/collection-model.js","webpack:///./galaxy/scripts/mvc/history/history-preferences.js","webpack:///./galaxy/scripts/mvc/history/history-view-edit.js","webpack:///./galaxy/scripts/mvc/collection/list-collection-creator.js","webpack:///./galaxy/scripts/utils/natural-sort.js","webpack:///./galaxy/scripts/ui/hoverhighlight.js","webpack:///./galaxy/scripts/mvc/history/history-view.js","webpack:///./galaxy/scripts/mvc/list/list-view.js","webpack:///./galaxy/scripts/mvc/list/list-item.js","webpack:///./galaxy/scripts/ui/loading-indicator.js","webpack:///./galaxy/scripts/ui/search-input.js","webpack:///./galaxy/scripts/mvc/history/hda-li.js","webpack:///./galaxy/scripts/mvc/dataset/dataset-li.js","webpack:///./galaxy/scripts/ui/fa-icon-button.js","webpack:///./galaxy/scripts/mvc/history/hdca-li.js","webpack:///./galaxy/scripts/mvc/collection/collection-li.js","webpack:///./galaxy/scripts/mvc/collection/collection-view.js","webpack:///./galaxy/scripts/mvc/history/hda-li-edit.js","webpack:///./galaxy/scripts/mvc/dataset/dataset-li-edit.js","webpack:///./galaxy/scripts/mvc/tag.js","webpack:///./galaxy/scripts/mvc/annotation.js","webpack:///./galaxy/scripts/ui/editable-text.js","webpack:///./galaxy/scripts/mvc/history/hdca-li-edit.js","webpack:///./galaxy/scripts/mvc/collection/collection-view-edit.js","webpack:///./galaxy/scripts/mvc/collection/collection-li-edit.js","webpack:///./galaxy/scripts/mvc/collection/pair-collection-creator.js","webpack:///./galaxy/scripts/mvc/collection/list-of-pairs-collection-creator.js","webpack:///./galaxy/scripts/utils/levenshtein.js"],"names":[],"mappings":";;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B,qEAAqE;AACpG,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;AClLA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,oBAAmB,SAAS;AAC5B;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,yDAAwD,yBAAyB;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,2EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL,2BAA0B,oBAAoB;AAC9C,EAAC;;AAED,4B;;;;;;;;;;iEClHA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,gDAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA,2DAA0D,mBAAmB,EAAE;AAC/E;AACA,MAAK;;AAEL;AACA,4CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA,iBAAgB;AAChB;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,EAAC;AACD;;AAEA;AACA;AACA;AACA;;AAEA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;;AAEA;AACA;AACA,qCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,OAAO;AACzC;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;;AAEA,EAAC;AACD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,mEAAkE;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,iEAAgE;AAChE;AACA;AACA;AACA,gDAA+C,0DAA0D;AACzG;AACA;AACA,kBAAiB;AACjB,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAkD,mCAAmC;AACrF;AACA;AACA;AACA;AACA,4DAA2D,WAAW;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA,gDAA+C,uCAAuC;AACtF;AACA;;AAEA;AACA;AACA;AACA,+DAA8D,iBAAiB;AAC/E;AACA;AACA;AACA;AACA,mDAAkD,kDAAkD;AACpG;AACA;AACA;AACA;AACA,4DAA2D,iBAAiB;AAC5E;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAS;;AAET;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAkD,4BAA4B;AAC9E;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2EAA0E;AAC1E;AACA;AACA;;AAEA,+CAA8C;AAC9C;AACA;AACA,mDAAkD;AAClD;AACA;AACA;AACA,kBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA,gEAA+D;AAC/D;AACA;AACA,0CAAyC;AACzC;AACA,kBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,mBAAmB;AACpC;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;sFC91BD;;AAEA;AACA;AACA;AACA;AACA,kBAAiB;AACjB,yBAAwB,EAAE;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA,uCAAsC,aAAa;AACnD,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB;AAClB;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,oBAAoB;;AAEtC;AACA;AACA;AACA;;AAEA;AACA,oBAAmB,mBAAmB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC,KAAK;;AAEN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iECxID;AACA;;AAEA;AACA;AACA;AACA,+CAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,wEAAuE;AACvE;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA,yCAAwC,iBAAiB;AACzD,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;AACA;AACA,gCAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,4BAA2B,yCAAyC;AACpE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;;AAEA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA,2BAA0B,qBAAqB;;AAE/C;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAA+B,kBAAkB;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gCAA+B,4DAA4D;AAC3F;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kDAAiD;AACjD,8CAA6C;AAC7C;AACA;AACA,kCAAiC;AACjC,8BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAiC;AACjC;AACA;AACA,sBAAqB;AACrB;AACA,cAAa;AACb;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;;;uHClqBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA,iDAAgD;AAChD;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C;AAC7C;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA,qCAAoC,oBAAoB;AACxD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;ACtLD;AACA;AACA;AACA,8QACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC;AACjC;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA,mBAAkB,KAAK;AACvB,mBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA,mBAAkB,KAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,EAAC,gJ;;;;;;;;;;iEC9ID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;iEC/JD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sDAAqD,yDAAyD;;AAE9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uDAAsD,oDAAoD;AAC1G;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uDAAsD,oDAAoD;AAC1G,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAkC,wCAAwC;AAC1E;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iEC/SD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,oCAAmC,8CAA8C;AACjF,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,+GAA8G;AAC9G;AACA,6EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA,kBAAiB,QAAQ;AACzB;AACA,kBAAiB,QAAQ;AACzB,kBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA,oCAAmC,8CAA8C;AACjF,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;;AAEA;AACA,8FAA6F;AAC7F;AACA;AACA,iFAAgF;AAChF;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;;AAEA;AACA,6BAA4B,8CAA8C;AAC1E,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC;AACrC,cAAa;AACb,uCAAsC;AACtC;AACA,8FAA6F;AAC7F;AACA;AACA;AACA,wCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;oHCnYD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,EAAC,gJ;;;;;;;;;;iECxGD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,kCAAiC,iDAAiD;AAClF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iECjUD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAoG,mBAAmB;;AAEvH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iEC1ID;AACA;AACA;AACA;AACA,wNACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB,cAAa;AACb;AACA;AACA,kBAAiB;AACjB;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,8CAA6C;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,kFAAiF,yDAAyD;AAC1I,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAmD;AACnD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAA+D,yBAAyB;AACxF,kCAAiC;AACjC;AACA,0BAAyB;AACzB;AACA;AACA,cAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B,0BAAyB;AACzB;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA,kBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA4E,wCAAwC;AACpH;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,EAAC;;;;;;;;;;;iEC3SD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED,EAAC,gJ;;;;;;;;;;iECzDD;AACA;AACA;AACA,0TACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB,yCAAwC,uEAAuE;AAC/G,sBAAqB;AACrB,kDAAiD,kDAAkD;AACnG;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;;AAEA;AACA;AACA;AACA,MAAK;AACL,EAAC,gJ;;;;;;;;;;oHCtND;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,wCAAuC,eAAe,EAAE,OAAO,iBAAiB;AAChF,cAAa;AACb;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,2GAA0G;AAC1G;AACA;AACA,gFAA+E;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA,EAAC;;;;;;;;;;;iEC7MD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,mDAAkD;AAClD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA,6BAA4B,uEAAuE;AACnG;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,EAAC,gJ;;;;;;;;;;iEC5PD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iECnOD;AACA,iQACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iECrID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAiD,sBAAsB;AACvE,cAAa;AACb;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,EAAC,gJ;;;;;;;;;;iEC7HD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAA+B,yCAAyC;AACxE,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC,iCAAiC;AAClE,kCAAiC,iCAAiC;AAClE;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA,EAAC;;;;;;;;;;;uHC1PD;;AAEA;AACA;AACA;AACA,UAAS,uGAAuG;AAChH,UAAS,uGAAuG;AAChH,UAAS,uGAAuG;AAChH;AACA,UAAS,uGAAuG;AAChH,UAAS,uGAAuG;AAChH;AACA,UAAS,uGAAuG;AAChH;AACA,UAAS,uGAAuG;AAChH,UAAS,uGAAuG;AAChH;AACA,UAAS,uGAAuG;AAChH,UAAS,sGAAsG;AAC/G;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAuC,uDAAuD;AAC9F,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC;AAClC;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA,2DAA0D,uBAAuB;AACjF;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,8BAA8B;AAC3E,UAAS;AACT,4CAA2C,8BAA8B;AACzE;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,iDAAgD,0DAA0D;AAC1G,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,cAAa;AACb,UAAS;AACT;AACA,yGAAwG,uBAAuB;AAC/H,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,4BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iECxPD;AACA,8PACA;;AAEA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,2CAA0C,mBAAmB;AAC7D;AACA,yBAAwB,cAAc;AACtC,UAAS;AACT,MAAK;AACL;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB,cAAa;AACb;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA,kBAAiB;AACjB;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iEC9HD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0CAAyC,4BAA4B;;AAErE;AACA,2CAA0C,8BAA8B;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,kBAAiB;AACjB;AACA;AACA,kBAAiB;AACjB;AACA;AACA,cAAa;AACb,sCAAqC,wEAAwE;AAC7G;AACA,UAAS;AACT,kCAAiC,4DAA4D;AAC7F;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iEC5JD;AACA,+JACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iECpDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,oDAAmD;AACnD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,iHAAgH;AAChH,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,EAAC,gJ;;;;;;;;;;iEC1LD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kHAAiH;AACjH;AACA,cAAa;AACb;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAsE,cAAc,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA,mBAAkB,OAAO;AACzB;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,gBAAgB;AAC7D;AACA,kBAAiB;AACjB;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA,eAAc,KAAK;AACnB,eAAc,KAAK;AACnB;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAc,KAAK;AACnB,eAAc,KAAK;AACnB,eAAc,KAAK;AACnB;AACA;AACA,qCAAoC;AACpC;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA,eAAc,KAAK;AACnB,eAAc,KAAK;AACnB,eAAc,KAAK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC,gJ;;;;;;;;;;iEC/PD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,uDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,iFAAgF,0BAA0B;AAC1G;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC,gJ;;;;;;;;;;iHCvED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC,gJ;;;;;;;;;;AC1ED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C,oBAAoB;AAC9D;AACA;AACA;AACA;AACA;AACA,YAAW,sBAAsB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAmB,kBAAkB;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA,wBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mC;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oD;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAuC,aAAa;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA,uDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAA+C;AAC/C,uDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,uDAAsD;AACtD;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA,2BAA0B;AAC1B;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA,uDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,iCAAgC;AAChC;AACA,+BAA8B,kBAAkB;AAChD,wCAAuC;AACvC;AACA;AACA,wBAAuB;AACvB;AACA;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA,cAAa;AACb;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,MAAM;AACvB;AACA;AACA,aAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA,aAAY,GAAG;AACf,aAAY,GAAG;AACf,cAAa,GAAG;AAChB,aAAY,GAAG;AACf,aAAY,GAAG;AACf;AACA;AACA,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,cAAa,GAAG;AAChB,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,cAAa,GAAG;AAChB,aAAY,GAAG;AACf;AACA,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,cAAa,GAAG;AAChB,aAAY,GAAG;AACf,aAAY,GAAG;AACf;AACA;AACA,aAAY,GAAG;AACf,aAAY,GAAG;AACf,cAAa,GAAG;AAChB,aAAY,GAAG;AACf,aAAY,GAAG;AACf;AACA;AACA,aAAY,GAAG;AACf,aAAY,GAAG;AACf,cAAa,GAAG;AAChB,aAAY,GAAG;AACf,aAAY,GAAG;AACf;AACA;AACA,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,cAAa,GAAG;AAChB,aAAY,GAAG;AACf,aAAY,KAAK;AACjB,aAAY,KAAK;AACjB,cAAa,KAAK;AAClB,aAAY,KAAK;AACjB;AACA,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,cAAa,GAAG;AAChB,aAAY,GAAG;AACf,aAAY,GAAG;AACf;AACA;AACA,aAAY,GAAG;AACf,aAAY,GAAG;AACf,cAAa,GAAG;AAChB,aAAY,GAAG;AACf,aAAY,GAAG;AACf;AACA,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,cAAa,GAAG;AAChB,cAAa,GAAG;AAChB,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf;AACA;AACA,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,cAAa,GAAG;AAChB,cAAa,GAAG;AAChB,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,cAAa,GAAG;AAChB,cAAa,GAAG;AAChB;AACA,aAAY,GAAG;AACf,aAAY,KAAK;AACjB,aAAY,GAAG;AACf,aAAY,KAAK;AACjB,aAAY,GAAG;AACf,aAAY,KAAK;AACjB,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf;AACA,cAAa,GAAG;AAChB,cAAa,KAAK;AAClB,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf;AACA;AACA,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf;AACA;AACA,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf;AACA;AACA,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,cAAa,GAAG;AAChB,cAAa,GAAG;AAChB,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,cAAa,GAAG;AAChB,cAAa,GAAG;AAChB,cAAa,GAAG;AAChB,cAAa,GAAG;AAChB,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf;AACA;AACA;AACA;AACA,aAAY,GAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAY,EAAE;AACd,aAAY,EAAE;AACd;AACA,aAAY,EAAE;AACd,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,EAAE,EAAE,GAAG;AACnB,aAAY,EAAE;AACd,kBAAiB,IAAI;AACrB,kBAAiB,UAAU;AAC3B,iBAAgB,QAAQ,QAAQ,EAAE;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,QAAQ,GAAG,EAAE;AAC9B,kBAAiB,QAAQ,GAAG,EAAE;AAC9B,aAAY,aAAa;AACzB,iBAAgB,WAAW;AAC3B,iBAAgB,OAAO;AACvB,iBAAgB,QAAQ;AACxB,iBAAgB,QAAQ,WAAW,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,QAAQ;AACvB,gBAAe,WAAW;AAC1B,aAAY,GAAG;AACf,iBAAgB,WAAW;AAC3B,iBAAgB,SAAS;AACzB,oBAAmB,QAAQ,EAAE,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,OAAO;AACxB,kBAAiB,KAAK;AACtB,kBAAiB,QAAQ;AACzB,kBAAiB,QAAQ;AACzB,kBAAiB,SAAS;AAC1B,oBAAmB,GAAG;AACtB,oBAAmB,GAAG;AACtB,kBAAiB,SAAS;AAC1B;AACA;AACA;AACA,gBAAe,KAAK,EAAE,KAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,UAAU;AAC/B,gBAAe,YAAY;AAC3B;AACA;AACA,kBAAiB,GAAG;AACpB,mBAAkB,GAAG;AACrB,mBAAkB,GAAG;AACrB,oBAAmB,GAAG;AACtB,kBAAiB,GAAG;AACpB;AACA,mBAAkB,GAAG;AACrB,oBAAmB,GAAG;AACtB,mBAAkB,GAAG;AACrB,mBAAkB,GAAG;AACrB,kBAAiB,GAAG;AACpB;AACA;AACA,kBAAiB,GAAG;AACpB,kBAAiB,GAAG;AACpB,mBAAkB,GAAG;AACrB,oBAAmB,GAAG;AACtB,kBAAiB,GAAG;AACpB;AACA;AACA,kBAAiB,GAAG;AACpB;AACA;AACA,oBAAmB,GAAG;AACtB,yBAAwB,MAAM;AAC9B;AACA,mBAAkB,GAAG;AACrB,oBAAmB,GAAG;AACtB,mBAAkB,GAAG;AACrB,mBAAkB,GAAG;AACrB,mBAAkB,GAAG;AACrB,mBAAkB,GAAG;AACrB,mBAAkB,GAAG;AACrB;AACA;AACA;AACA;AACA,oBAAmB,GAAG,EAAE,GAAG;AAC3B,oBAAmB,GAAG,EAAE,GAAG;AAC3B,oBAAmB,GAAG,EAAE,GAAG;AAC3B,oBAAmB,GAAG,EAAE,GAAG;AAC3B,oBAAmB,GAAG,EAAE,GAAG;AAC3B,oBAAmB,GAAG,EAAE,GAAG;AAC3B,oBAAmB,GAAG,EAAE,GAAG;AAC3B,oBAAmB,GAAG,EAAE,GAAG;AAC3B,oBAAmB,GAAG,EAAE,GAAG;AAC3B,oBAAmB,GAAG,EAAE,GAAG;AAC3B,oBAAmB,GAAG,EAAE,GAAG;AAC3B,oBAAmB,GAAG,EAAE,GAAG;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,MAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B;AACA;AACA;AACA,yBAAwB,MAAM;AAC9B,mBAAkB,EAAE,GAAG,QAAQ,IAAI,QAAQ,GAAG,EAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,MAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,MAAM;AAC9B;AACA;AACA,yBAAwB,MAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,MAAM;AAC9B;AACA;AACA;AACA;AACA,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB;AACA;AACA;AACA;AACA,gBAAe,KAAK;AACpB;AACA;AACA,gBAAe,IAAI;AACnB;AACA,yBAAwB,MAAM;AAC9B,gBAAe,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA,gBAAe,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA,gBAAe,KAAK;AACpB;AACA;AACA,gBAAe,KAAK;AACpB;AACA;AACA;AACA,gBAAe,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,KAAK;AACpB;AACA,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,IAAI;AACnB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB,gBAAe,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,MAAM;AAC9B;AACA;AACA,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B;AACA,yBAAwB,MAAM;AAC9B;AACA,yBAAwB,MAAM;AAC9B;AACA;AACA;AACA,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,MAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,MAAM;AAC9B;AACA,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B;AACA,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B;AACA;AACA;AACA,yBAAwB,MAAM;AAC9B;AACA;AACA;AACA,yBAAwB,MAAM;AAC9B,oBAAmB,GAAG,EAAE,GAAG;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,QAAQ,EAAE,KAAK;AAClC,oBAAmB,QAAQ,EAAE,KAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,MAAM;AAC9B;AACA,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B,yBAAwB,MAAM;AAC9B;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA;AACA;;;;;;;;;;iHC10DA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA,+CAA8C,kBAAkB;AAChE;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAgF;AAChF;AACA;AACA,+CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iEC3LD;AACA;AACA;AACA;AACA;AACA;AACA,8GACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA,iEAAgE,WAAW;AAC3E,iEAAgE,UAAU;AAC1E;AACA,kBAAiB;AACjB;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA0C,cAAc;AACxD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,gBAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA8C,0DAA0D;AACxG;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED,EAAC;;;;;;;;;;;iECpOD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+BAA8B,iEAAiE;;AAE/F;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAA+B,mEAAmE;AAClG;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,sEAAqE,oBAAoB;AACzF;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,kDAAiD;AACjD;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iECpSD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,8CAA6C,sBAAsB,EAAE;;AAErE;AACA,4BAA2B,mDAAmD;;AAE9E;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,mBAAkB,sBAAsB;AACxC,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iEC5FD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,2CAA0C,qEAAqE,yBAAyB,EAAE,wBAAwB;AAClK,2CAA0C,qEAAqE,kBAAkB,EAAE,+BAA+B;AAClK,2CAA0C,qEAAqE,qBAAqB,EAAE,sBAAsB;AAC5J,2CAA0C,qEAAqE,oBAAoB,EAAE,EAAE;AACvI,2CAA0C,qEAAqE,mBAAmB,EAAE,EAAE;AACtI,2CAA0C,qEAAqE,oBAAoB,EAAE,EAAE;AACvI,2CAA0C,qEAAqE,uBAAuB,EAAE,EAAE;;AAE1I;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sDAAqD,mCAAmC;AACxF,gDAA+C,0EAA0E;AACzH,4DAA2D,yCAAyC;AACpG,yDAAwD,qCAAqC;AAC7F,yDAAwD,mCAAmC;AAC3F,2CAA0C,wBAAwB;AAClE,2CAA0C,6CAA6C,EAAE;AACzF,2CAA0C,gDAAgD;AAC1F,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,yEAAwE,8BAA8B;AACtG;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS,+BAA+B,oBAAoB,EAAE;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA,+CAA8C,mBAAmB;;AAEjE;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA6D,gBAAgB;;AAE7E;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB,kBAAiB;AACjB;AACA;AACA;AACA,cAAa;AACb;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAiC;AACjC,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA,cAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAgG;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED,EAAC;;;;;;;;;;;iECtjBD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iECtCD;AACA;AACA;AACA;AACA;AACA,2FAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mDAAkD,mBAAmB,EAAE;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS,+BAA+B,oBAAoB,EAAE;;AAE9D;AACA,uDAAsD,sBAAsB,EAAE;AAC9E,2DAA0D,oBAAoB,EAAE;;AAEhF;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,sCAAqC,2BAA2B;AAChE;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAAyF,SAAS;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;AAED,EAAC;;;;;;;;;;;iECnVD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C;AAC1C;AACA;AACA,UAAS;AACT;AACA;AACA,EAAC;AACD,EAAC,gJ;;;;;;;;;;iEC1CD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,iDAAgD;AAChD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kDAAiD,cAAc;AAC/D,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA,gBAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,gBAAe,SAAS;AACxB;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB;AAChB,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,EAAC,gJ;;;;;;;;;;iEC9KD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iEC3ND;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C;AAC3C,4CAA2C;AAC3C;AACA,UAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4CAA2C,uBAAuB,EAAE;AACpE,mCAAkC,cAAc;AAChD,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA,+CAA8C,gCAAgC;AAC9E;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA,uEAAsE;AACtE;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,kDAAiD,aAAa;AAC9D,kDAAiD,cAAc;AAC/D;AACA,0DAAyD,MAAM;AAC/D;AACA;AACA;AACA,yDAAwD;AACxD;AACA;AACA,+EAA8E;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED,EAAC;;;;;;;;;;;ACxMD;AACA;AACA;AACA,EAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B,iCAAgC;AAChC,4CAA2C;AAC3C,4CAA2C;AAC3C,4CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA,sBAAqB;AACrB;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B,wCAAuC;AACvC,wCAAuC;AACvC,wCAAuC;AACvC;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B,4CAA2C;AAC3C,4CAA2C;AAC3C,6CAA4C;AAC5C,6CAA4C;AAC5C,gDAA+C;AAC/C,gDAA+C;AAC/C,+CAA8C,UAAU,EAAE;AAC1D;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA2C,YAAY,EAAE;AACzD;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA8C,8BAA8B,YAAY;AACxF,+CAA8C,4BAA4B,YAAY;AACtF,kDAAiD,kCAAkC;AACnF,cAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;;iEC7SD;AACA;AACA;AACA;AACA;AACA;AACA,yFAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,wCAAuC,sCAAsC,oBAAoB,EAAE,EAAE;AACrG,wCAAuC,sCAAsC,uBAAuB,EAAE,EAAE;;AAExG;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yEAAwE,6BAA6B;AACrG;AACA;AACA,kEAAiE,iBAAiB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS,+BAA+B,oBAAoB,EAAE;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;;AAET;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA8C,gBAAgB;;AAE9D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,2CAA0C,6BAA6B,EAAE;AACzE,2CAA0C,2BAA2B,EAAE;AACvE,8CAA6C,iCAAiC;AAC9E,UAAS;AACT,MAAK;;AAEL;AACA;AACA,4CAA2C,kCAAkC,EAAE;AAC/E,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA6D,iBAAiB;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,oCAAmC,mBAAmB;AACtD;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAgG;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED,EAAC;;;;;;;;;;;iEChQD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA,uDAAsD,sBAAsB,EAAE;AAC9E,0DAAyD,oBAAoB,EAAE;;AAE/E;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,0CAAyC,2BAA2B;AACpE,UAAS;AACT;AACA,0CAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA,cAAa;AACb;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD,EAAC;;;;;;;;;;;ACjWD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,0CAAyC,0BAA0B;AACnE,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL,2BAA0B,uBAAuB;AACjD,EAAC;;AAED,+B;;;;;;;;;oHCpFA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB,UAAS;AACT,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;;AAGL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAoE,iBAAiB;AACrF;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,sBAAqB;AACrB;AACA,UAAS;AACT,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAoE,gCAAgC;AACpG;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,sBAAqB;AACrB;AACA,UAAS;AACT,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;;AAGL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,EAAC;;;;;;;;;;;+HChND;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,mBAAkB,wBAAwB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA,cAAa;AACb;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,wEAAuE;AACvE;AACA,6DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB,cAAa;AACb;AACA;AACA,kBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,wBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAY,kBAAkB;AAC9B,aAAY,OAAO;AACnB;AACA,eAAc,UAAU;AACxB;AACA;AACA;AACA;AACA,0BAAyB;;AAEzB;AACA,kCAAiC;AACjC;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA,aAAY,OAAO;AACnB,aAAY,OAAO;AACnB,eAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sEAAqE,QAAQ;;AAE7E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA,aAAY,OAAO;AACnB,aAAY,OAAO;AACnB,aAAY,OAAO;AACnB,eAAc,UAAU;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAY,WAAW;AACvB,aAAY,OAAO;AACnB,aAAY,SAAS;AACrB;AACA,oEAAmE;AACnE,eAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;;AAGA;AACA;AACA,EAAC;;;;;;;;;;;;qHCzTD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAkE,yBAAyB;AAC3F;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA;AACA;AACA,+DAA8D,oBAAoB,EAAE;AACpF;AACA;AACA;AACA,uDAAsD,oBAAoB,EAAE;AAC5E;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA,wEAAuE,sBAAsB;AAC7F,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kDAAiD,8BAA8B;AAC/E;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,qCAAoC,cAAc;AAClD,kBAAiB;AACjB;;AAEA;AACA;AACA,mCAAkC,8BAA8B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,oDAAmD,cAAc,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC,mBAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;AAED;AACA;AACA;AACA,aAAY,eAAe;AAC3B,aAAY,OAAO;AACnB,aAAY,gBAAgB;AAC5B;AACA;AACA;AACA,SAAQ,SAAS;AACjB,iDAAgD,gCAAgC;AAChF,SAAQ,KAAK;AACb,SAAQ,KAAK;AACb;AACA,SAAQ,OAAO;AACf;AACA;AACA;AACA;AACA,gEAA+D;AAC/D;AACA;AACA;AACA;;;AAGA;AACA;AACA,EAAC;;;;;;;;;;;6GCxMD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;;AAET;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA,yCAAwC,qDAAqD;AAC7F,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,+DAA+D;AAC5G,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,yCAAwC,mDAAmD;AAC3F,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,uDAAsD,8BAA8B,EAAE;AACtF;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,2BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,8CAA6C;AAC7C,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,qBAAoB,aAAa;AACjC,sCAAqC,uCAAuC;AAC5E;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL,wEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,oCAAmC,gCAAgC;AACnE,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,qCAAoC,8BAA8B;AAClE,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL,EAAC;;;AAGD;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;;ACrcD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA4B;AAC5B,MAAK;;AAEL;;AAEA;AACA;AACA,iBAAgB,OAAO;AACvB,iBAAgB,SAAS;AACzB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT,MAAK;;AAEL;AACA;AACA,8BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,4BAA2B,iBAAiB,+BAA+B,GAAG;AAC9E,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,QAAQ;;AAE/B;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;;AAEA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAqB;AACrB;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,qCAAoC,sBAAsB;AAC1D,4BAA2B,gBAAgB;AAC3C,MAAK;AACL;AACA;AACA,oCAAmC,sBAAsB;AACzD,4BAA2B,8BAA8B;AACzD,MAAK;AACL;AACA;AACA,sCAAqC,sBAAsB;AAC3D,4BAA2B,iBAAiB;AAC5C,MAAK;;AAEL;AACA,iBAAgB,QAAQ;AACxB,iBAAgB,OAAO;AACvB;AACA,mBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAe,OAAO;AACtB;AACA,gBAAe,OAAO;AACtB;AACA,gBAAe,OAAO;AACtB;;AAEA;AACA;AACA;AACA;;AAEA,oBAAmB,QAAQ;AAC3B;;AAEA,oBAAmB,OAAO;AAC1B;;AAEA;AACA,gEAA+D;AAC/D;AACA,MAAK;;AAEL;;AAEA,0BAAyB,qBAAqB,EAAE;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL,gBAAe,OAAO;AACtB;AACA,2DAA0D,kBAAkB;AAC5E,2DAA0D,mBAAmB;AAC7E,2DAA0D,mBAAmB;AAC7E,2DAA0D,kBAAkB;AAC5E,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,iEAAgE,eAAe;AAC/E,wCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,kFAAiF;AACjF,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,EAAC;AACD;;;AAGA;AACA;AACA;AACA;AACA,IAAG;;;;;;;;;;;4HC/dH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA,iBAAgB;AAChB,MAAK;;AAEL,gBAAe,OAAO;AACtB;AACA,gBAAe,OAAO;AACtB;;AAEA,gBAAe,OAAO;AACtB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAmB,QAAQ;AAC3B;AACA,oBAAmB,QAAQ;AAC3B;;AAEA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B,0BAA0B;AACzD;AACA,MAAK;;AAEL;AACA,iBAAgB,IAAI;AACpB,mBAAkB,0BAA0B;AAC5C;AACA;AACA,0DAAyD,qCAAqC,EAAE;AAChG,MAAK;;AAEL;AACA;AACA,8CAA6C,6BAA6B,EAAE;AAC5E,MAAK;;AAEL;AACA;AACA;AACA,gCAA+B,mBAAmB;AAClD;AACA,MAAK;;AAEL;AACA;AACA,gCAA+B,2BAA2B;AAC1D;AACA,MAAK;;AAEL;AACA;AACA,gCAA+B,kDAAkD;AACjF;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,mCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAoC,kDAAkD,EAAE;AACxF,kCAAiC,wCAAwC,EAAE;AAC3E;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,iCAAgC,+CAA+C,EAAE;AACjF,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,iCAAgC,8CAA8C,EAAE;AAChF,MAAK;;AAEL;AACA;AACA;AACA,4BAA2B;AAC3B,oDAAmD;AACnD;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,qEAAqE;AAC1G,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA,kBAAiB;AACjB;AACA,UAAS;AACT;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC,iCAAiC,EAAE;AAC5E,cAAa;AACb;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,+CAA8C,cAAc;AAC5D,cAAa;AACb;AACA,iEAAgE;AAChE,gDAA+C,0CAA0C;AACzF,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;+GC3aD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAU;AACV;AACA;;AAEA;AACA;AACA;AACA,sDAAqD,eAAe;AACpE,uCAAsC,2CAA2C,EAAE;AACnF,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA2B;AAC3B;AACA,+BAA8B;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA,4DAA2D,qBAAqB,MAAM,EAAE;AACxF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,0BAAyB,6BAA6B;AACtD;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8CAA6C;AAC7C,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA8C,QAAQ;AACtD;AACA,8BAA6B,YAAY;AACzC,+BAA8B,aAAa;AAC3C,8BAA6B,YAAY;AACzC;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA,gBAAe,OAAO;AACtB;AACA,yEAAwE,mBAAmB;AAC3F,yEAAwE,kBAAkB;AAC1F,yEAAwE,mBAAmB;AAC3F,yEAAwE,kBAAkB;AAC1F,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C,8CAA8C;AACxF,8CAA6C,QAAQ;AACrD,oDAAmD,QAAQ;;AAE3D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL,EAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA,gBAAe,OAAO;AACtB;AACA,gBAAe,OAAO;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA,yCAAwC;AACxC;;AAEA;AACA;AACA,0CAAyC;AACzC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;AACL,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;0GCvPD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA2B;AAC3B;AACA,MAAK;AACL,EAAC;;AAED;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;4HC1BD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,mBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL,4CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,qCAAoC,sBAAsB;AAC1D,4BAA2B,gBAAgB;AAC3C,MAAK;AACL;AACA;AACA,8DAA6D,sBAAsB;AACnF,4BAA2B,iBAAiB;AAC5C,MAAK;;AAEL;AACA;AACA,kDAAiD,cAAc;AAC/D,oCAAmC,sBAAsB;AACzD;AACA;AACA,qEAAoE,cAAc;AAClF;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA,0BAAyB,8BAA8B;AACvD;AACA,YAAW;AACX;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAqB,8BAA8B;AACnD,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,oEAAmE,eAAe;AAClF,UAAS;AACT;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,2CAA0C,uBAAuB,EAAE;AACnE,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA,8CAA6C,6BAA6B,EAAE;AAC5E,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,qEAAqE;AAC1G,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA,kBAAiB;AACjB;AACA,UAAS;AACT;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,QAAO;;AAEP;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;iECtWD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,EAAC;;;;;;;;;;+GC7DD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAQ;;AAER;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,iBAAgB,QAAQ;AACxB,iBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,sCAAqC,sBAAsB;AAC3D,4BAA2B,iBAAiB;AAC5C,MAAK;AACL;AACA;AACA,qCAAoC,sBAAsB;AAC1D,4BAA2B,gBAAgB;AAC3C,MAAK;;AAEL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;0GC/FD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;4HC/GD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,mDAAkD,4BAA4B;AAC9E;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa,gCAAgC;;;AAG7C;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL,4BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,kCAAiC,eAAe;AAChD;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,qCAAoC,sBAAsB;AAC1D,4BAA2B,gBAAgB;AAC3C,MAAK;AACL;AACA;AACA,8DAA6D,sBAAsB;AACnF,4BAA2B,iBAAiB;AAC5C,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA0B,mEAAmE;AAC7F,EAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA0B,mEAAmE;AAC7F,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;0GCzaD;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB;AACxB;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA,EAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,kCAAiC,kDAAkD;AACnF,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;qHCxED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,cAAa;AACb;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,2BAA0B,mBAAmB;;AAE7C;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC,eAAe,EAAE;AAC1D;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC,eAAe,EAAE;AAC1D;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,2BAA0B,QAAQ;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA,2CAA0C,gBAAgB;AAC1D;AACA;AACA,8BAA6B;AAC7B,sBAAqB;AACrB;AACA;AACA;AACA,cAAa;AACb,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,kBAAiB;AACjB,kBAAiB;AACjB;AACA;AACA;AACA,kBAAiB;AACjB,kBAAiB;AACjB;AACA;AACA;AACA,kBAAiB;AACjB,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,2CAA0C,uBAAuB,EAAE;AACnE;AACA,cAAa;AACb;AACA,cAAa;AACb;AACA,2CAA0C,uBAAuB,EAAE;AACnE;AACA,cAAa;AACb,cAAa;AACb;AACA,2CAA0C,uBAAuB,EAAE;AACnE;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,QAAO;;AAEP;AACA,iBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,iBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA,sEAAqE,0BAA0B,EAAE;AACjG,sEAAqE,yBAAyB;AAC9F,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,+BAA8B,aAAa;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA,gCAA+B,aAAa;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,yBAAwB,uCAAuC;AAC/D,kDAAiD;AACjD,wCAAuC;AACvC,4EAA2E;AAC3E;AACA;AACA,kBAAiB,OAAO;AACxB,kHAAiH;AACjH;AACA;AACA,kBAAiB;AACjB,cAAa,OAAO;AACpB;AACA,cAAa;AACb,iDAAgD;AAChD,uCAAsC;AACtC,2EAA0E;AAC1E;AACA;AACA,kBAAiB,OAAO;AACxB,gHAA+G;AAC/G;AACA;AACA,kBAAiB;AACjB,cAAa,OAAO;AACpB;AACA,cAAa;AACb;;AAEA;AACA;AACA,MAAK;AACL,EAAC;;;AAGD;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;;AChkBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,mCAAkC,wBAAwB;AAC1D;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA,2BAA0B,+BAA+B;AACzD;AACA;AACA,cAAa;AACb;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,gCAA+B,uBAAuB;AACtD;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iCAAgC,qDAAqD,EAAE;AACvF;AACA,kCAAiC;AACjC;AACA,kCAAiC;AACjC;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA,wDAAuD,sCAAsC,EAAE;AAC/F;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,0DAAyD,iCAAiC;AAC1F,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,SAAQ;;AAER;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,mBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA,2EAA0E;AAC1E;AACA,oEAAmE;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,YAAW;AACX;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,SAAQ;;AAER;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,gCAA+B,uBAAuB;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAiE,SAAS;AAC1E;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gEAA+D;AAC/D;AACA,oEAAmE;AACnE;AACA;AACA;AACA;AACA,+FAA8F;AAC9F;AACA;AACA;;AAEA;AACA;AACA;AACA,4DAA2D;AAC3D;AACA;AACA;AACA,qEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2DAA0D;AAC1D;AACA,kBAAiB,EAAE;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sDAAqD;AACrD;AACA,2EAA0E;AAC1E;AACA,kCAAiC,EAAE;AACnC,8BAA6B,mCAAmC;AAChE;AACA,8BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,2BAA0B,gCAAgC;AAC1D,EAAC;;;;AAID;AACA;AACA,eAAc,SAAS;AACvB;AACA;;AAEA;AACA;AACA;;AAEA,wCAAuC;AACvC;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,eAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;iECriCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,WAAW;AACnC,8BAA6B,UAAU;AACvC;AACA;AACA;AACA,+DAA8D,aAAa;AAC3E;AACA;AACA,+BAA8B,WAAW;AACzC,oCAAmC,UAAU;AAC7C;AACA;AACA;;AAEA;AACA,EAAC;;;;;;;;;;iGC7BD;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,EAAC;AACD;;AAEA;AACA;AACA;AACA,gCAA+B,aAAa;;AAE5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAAyB;AACzB,sBAAqB;AACrB;AACA;AACA;AACA,0BAAyB;AACzB,sBAAqB;AACrB;AACA,cAAa;AACb;AACA;AACA,MAAK;AACL,EAAC;;;;;;;;;;;qHCpCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT,uCAAsC,4BAA4B,EAAE;AACpE,MAAK;;AAEL;AACA,gBAAe,OAAO;AACtB;AACA,gBAAe,OAAO;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C,+BAA+B;AAC1E,qCAAoC,uBAAuB,EAAE;AAC7D;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,4DAA2D;AAC3D;AACA,WAAU;AACV,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,mDAAkD,iBAAiB;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA,mCAAkC,iDAAiD,EAAE;AACrF;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,6CAA4C,aAAa;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,kBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAoB,0CAA0C;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA2B;AAC3B,cAAa;AACb;AACA,gCAA+B,oBAAoB,EAAE;;AAErD;AACA,MAAK;;AAEL;AACA,kBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,gCAA+B,oBAAoB,EAAE;;AAErD;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAgD,eAAe;AAC/D,wDAAuD,eAAe;AACtE;AACA;AACA;AACA;AACA,+EAA8E;AAC9E,cAAa;AACb;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb,MAAK;;AAEL;AACA;AACA;AACA,iBAAgB,cAAc;AAC9B,iBAAgB,eAAe;AAC/B,iBAAgB,OAAO;AACvB,iBAAgB,OAAO;AACvB,iBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAS;AACT;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB,cAAa;AACb;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,iBAAgB,OAAO;AACvB,iBAAgB,OAAO;AACvB,iBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,wBAAuB;AACvB;;AAEA;AACA;AACA;AACA;;AAEA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4CAA2C,sDAAsD;AACjG;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA,iBAAgB,QAAQ;AACxB,mBAAkB,YAAY;AAC9B;AACA;AACA,kEAAiE,WAAW;AAC5E,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,6DAA4D;AAC5D;AACA;AACA;AACA,sBAAqB,4BAA4B;AACjD;AACA;AACA;AACA,sBAAqB,2BAA2B;AAChD;AACA;AACA;AACA,sBAAqB;;AAErB,2CAA0C;AAC1C;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL,EAAC;;;AAGD;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;uHClqBD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAmB,OAAO;AAC1B;AACA,oBAAmB,OAAO;AAC1B;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA,iBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,kDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,uDAAsD;AACtD;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,iBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA6B,iCAAiC,EAAE;AAChE;AACA;AACA;AACA,cAAa;AACb,8BAA6B,gCAAgC,EAAE;AAC/D;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,8BAA6B,yBAAyB;AACtD;AACA,MAAK;;AAEL;AACA;AACA;AACA,qDAAoD,sBAAsB;AAC1E;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA0D;AAC1D;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,6DAA4D,yBAAyB,EAAE;AACvF;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAgC,kBAAkB;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,6CAA4C,QAAQ;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA,8CAA6C,QAAQ;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,qBAAoB,kBAAkB;AACtC;AACA;;AAEA;AACA;AACA,aAAY;AACZ,8BAA6B,yCAAyC,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,wBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,sBAAqB,kBAAkB;AACvC;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA,+BAA8B,uCAAuC;;AAErE;AACA;;AAEA;AACA;AACA,qCAAoC,WAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,0CAAyC,iBAAiB;AAC1D;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,qBAAoB,aAAa;AACjC;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,wDAAuD;AACvD;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;+HCxhCD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA,iBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,iBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,2CAA0C,uBAAuB;AACjE,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,iBAAgB,QAAQ,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,MAAK;;AAEL;AACA,mBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT;;AAEA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA,YAAW;AACX;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,+BAA8B,wBAAwB;AACtD,8BAA6B,oBAAoB;AACjD;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAgD,uBAAuB;AACvE;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,QAAO;;AAEP;AACA;AACA;AACA,iDAAgD,YAAY;AAC5D;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,cAAa;AACb,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAuB;AACvB;AACA,MAAK;AACL,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;iGCngBD;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,EAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS,eAAe;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,kBAAiB;;AAEjB,cAAa;AACb;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAmC,YAAY;AAC/C,kBAAiB;AACjB,cAAa;AACb,gCAA+B,YAAY;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;;;;;;;;;iGCjGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,EAAC;AACD,yCAAwC,UAAU;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA8C;AAC9C;AACA,yDAAwD;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,4CAA2C,kBAAkB;;AAE7D;AACA;AACA;;AAEA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAsB,sBAAsB;AAC5C;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAiC,sBAAsB;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;AACL,EAAC;;;;;;;;;;;0GC9JD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAA+B;AAC/B;AACA;AACA,wCAAuC;AACvC;AACA;AACA;AACA,kBAAiB;AACjB;AACA,MAAK;;AAEL,wBAAuB;AACvB;AACA;AACA,MAAK;AACL,EAAC;;;;AAID;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;+HC3ED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,iCAAgC,qDAAqD;AACrF;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAa;AACb;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,eAAe;AACpD;AACA;AACA,MAAK;;AAEL;AACA;AACA,iBAAgB,iBAAiB;AACjC,iBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,4BAA2B,uBAAuB;AAClD,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB,iBAAiB;AACjC,mBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,UAAS;AACT;AACA;;AAEA;AACA,UAAS;AACT;AACA;;AAEA,UAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,mBAAkB,OAAO;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA,8CAA6C,WAAW;AACxD;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,mBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA,mBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,mEAAkE,aAAa;;AAE/E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,kDAAiD,qCAAqC,EAAE;AACxF,kDAAiD,oCAAoC,EAAE;AACvF,kDAAiD,sCAAsC;AACvF,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA,gCAA+B;AAC/B;AACA;AACA,yDAAwD;AACxD;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,mCAAkC;AAClC;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,oCAAmC;AACnC;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,sDAAqD;AACrD;AACA;AACA;AACA,kBAAiB;AACjB;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,2DAA0D;AAC1D;AACA;;AAEA;;AAEA,wCAAuC;AACvC;AACA,sBAAqB;AACrB,kBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sCAAqC;AACrC;AACA;AACA;AACA,cAAa;;AAEb,oCAAmC;AACnC;AACA;AACA;AACA;AACA,cAAa;;AAEb,0CAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb,qCAAoC;AACpC;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC;AAClC;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAwC;AACxC;AACA;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;AACA,2CAA0C;AAC1C;AACA;AACA;AACA,6DAA4D;AAC5D;AACA,0DAAyD;AACzD;AACA,0BAAyB,EAAE;AAC3B;AACA;AACA,cAAa,EAAE;AACf;;AAEA,wBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,EAAC;;;AAGD;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;iGCjfD;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA0D;;AAE1D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8GAA6G;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;;;;;;;;;0GC/CD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4EAA2E,eAAe,EAAE;AAC5F,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA,gCAA+B;AAC/B;AACA;AACA,2CAA0C;AAC1C;AACA;AACA;AACA,kBAAiB;AACjB;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAuB;AACvB;AACA;AACA,MAAK;AACL,EAAC;;;AAGD;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;qHCtGD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,gCAA+B;AAC/B;AACA;AACA,mCAAkC;AAClC;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,oCAAmC;AACnC;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,sDAAqD;AACrD;AACA;AACA;AACA,kBAAiB;AACjB;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAuB;AACvB;AACA;AACA,MAAK;AACL,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iCAAgC,qDAAqD;AACrF;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAuB;AACvB;AACA,MAAK;AACL,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,iCAAgC,qDAAqD;AACrF;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,eAAe;AACpD;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAuB;AACvB;AACA,MAAK;AACL,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;0GCtRD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qEAAoE;AACpE;AACA,0BAAyB,oDAAoD;AAC7E;AACA,0BAAyB,yDAAyD;AAClF;AACA,0BAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL,EAAC;;;;AAID;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;kHChOD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,eAAe;;AAEpD;AACA;AACA,UAAS;AACT,sCAAqC;AACrC;AACA;AACA,eAAc;AACd;AACA;AACA,MAAK;;AAEL;AACA;AACA,+CAA8C,qBAAqB,cAAc;AACjF,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA,gCAA+B;AAC/B;AACA,wCAAuC;AACvC;AACA;AACA;AACA,8EAA6E;AAC7E;AACA,kBAAiB;AACjB;AACA,MAAK;;AAEL,wBAAuB;AACvB;AACA;AACA;AACA,MAAK;AACL,EAAC;;;AAGD;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;6GClFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAsD,0BAA0B;AAChF;AACA;AACA,0BAAyB;AACzB,sB,6CAAqB;AACrB;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA,6BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA,0CAAyC,eAAe,EAAE;AAC1D;AACA,0CAAyC,6BAA6B,EAAE;AACxE,0CAAyC,8BAA8B,EAAE;AACzE;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT,oCAAmC,gCAAgC;AACnE,MAAK;;AAEL;AACA;AACA,6BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA,0CAAyC,eAAe,EAAE;AAC1D;AACA,0CAAyC,mCAAmC,EAAE;AAC9E,0CAAyC,oCAAoC,EAAE;AAC/E;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT,0CAAyC,sCAAsC;AAC/E,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA,kDAAiD,kCAAkC,EAAE;AACrF,kDAAiD,oCAAoC,EAAE;AACvF,kDAAiD,mCAAmC,EAAE;AACtF,kDAAiD,wCAAwC,EAAE;AAC3F,qDAAoD,uCAAuC,EAAE;AAC7F,kDAAiD,kCAAkC;AACnF,MAAK;;;AAGL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA,gCAA+B;AAC/B;AACA;AACA,2DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;;AAEA;AACA;AACA,0DAAyD;AACzD;AACA;AACA;AACA,8EAA6E;AAC7E,iDAAgD;AAChD,+EAA8E;AAC9E;AACA;AACA,0BAAyB;AACzB;AACA,kBAAiB;AACjB;AACA,MAAK;;AAEL;AACA,+CAA8C;AAC9C;AACA;AACA;AACA;AACA;;AAEA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,2EAA0E;AAC1E;AACA;AACA;AACA;AACA,0BAAyB,EAAE;AAC3B;AACA;AACA,cAAa;AACb;;AAEA,wBAAuB;AACvB;AACA;AACA,MAAK;AACL,EAAC;;;AAGD;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;oHC9XD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,MAAK;;AAEL,mBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL,mBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL,mBAAkB,OAAO;AACzB;AACA;AACA,MAAK;;AAEL,mBAAkB,SAAS;AAC3B;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,8BAA6B,kBAAkB,GAAG,eAAe;AACjE;AACA;AACA;AACA,gEAA+D,sBAAsB;AACrF;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,2BAA0B,yDAAyD;AACnF,EAAC;;AAED;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;oHCvHD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wDAAuD;AACvD;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAiC,4BAA4B,GAAG,eAAe;AAC/E;AACA;AACA,sBAAqB;AACrB;AACA,UAAS;AACT;AACA,MAAK;;AAEL,mBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL,mBAAkB,OAAO;AACzB;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,2BAA0B,+DAA+D;AACzF,EAAC;AACD;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;ACnFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,EAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA,4BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAa;AACb,4BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,wBAAuB,iCAAiC;AACxD;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,yDAAwD,0CAA0C;AAClG;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAC;;;;;;;;;;iECtHD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;iECxED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB,OAAO;AACvB;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,2BAA0B,QAAQ;;AAElC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA,2CAA0C,gBAAgB;AAC1D;AACA;AACA,8BAA6B;AAC7B,sBAAqB;AACrB;AACA;AACA;AACA,cAAa;AACb,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;kHC3JD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,eAAe;AACpD;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,wBAAuB;AACvB;AACA,MAAK;AACL,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;4HC1ID;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,mCAAkC,qDAAqD;AACvF;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAwC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,mEAAkE,wBAAwB;AAC1F,MAAK;;AAEL;AACA;AACA,mEAAkE,wBAAwB;AAC1F,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sDAAqD;AACrD;AACA,2EAA0E;AAC1E;AACA,kCAAiC,EAAE;AACnC,8BAA6B,qCAAqC;AAClE;AACA,8BAA6B,qCAAqC;AAClE;AACA,8BAA6B,mCAAmC;AAChE;AACA;AACA,8BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,2BAA0B,gCAAgC;AAC1D,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,eAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,kDAAkD;AACvE,sBAAqB;AACrB;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;+HC5PD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAkC,kBAAkB;AACpD;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,gCAA+B,uBAAuB;;AAEtD;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B,qCAAqC;AACpE,gCAA+B,qCAAqC;AACpE,mCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA0B,qBAAqB;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,qCAAoC,sCAAsC,EAAE;AAC5E;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,8BAA6B,YAAY;;AAEzC;AACA;;AAEA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,yFAAwF,OAAO;AAC/F;;AAEA,UAAS;;AAET;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;;AAEA;AACA,mCAAkC,yCAAyC;;AAE3E;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA,oCAAmC,YAAY,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,oCAAmC,6BAA6B,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,oCAAmC,6BAA6B,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA8B,WAAW;AACzC,+BAA8B,WAAW;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB;AAChB,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,0DAAyD,eAAe;AACxE;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA,mBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,qCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAAyC,aAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,uBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,YAAW;AACX;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAqE,iCAAiC,EAAE;AACxG,sEAAqE,gCAAgC,EAAE;AACvG;AACA;AACA;AACA,sEAAqE,iCAAiC,EAAE;AACxG,sEAAqE,gCAAgC,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sEAAqE,yBAAyB,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,kFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,yDAAwD,iBAAiB;;AAEzE;AACA;AACA;AACA;AACA;;AAEA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,2DAA0D,eAAe;;AAEzE,cAAa;AACb;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA,mCAAkC,aAAa;AAC/C;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;;AAEA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,mCAAkC,aAAa;AAC/C;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAsC,QAAQ;AAC9C;AACA,UAAS;;AAET;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA,2BAA0B,kCAAkC;AAC5D,EAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4DAA2D;AAC3D;AACA,gEAA+D;AAC/D;AACA;AACA;AACA,iGAAgG;AAChG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA4E;AAC5E;AACA;AACA,wEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA,wCAAuC;AACvC;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;iEC7rDD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,iBAAiB;AACtC,sBAAqB,iBAAiB;;AAEtC;;AAEA;AACA;AACA,aAAY,eAAe;AAC3B;AACA;;AAEA;AACA;AACA,aAAY,eAAe;AAC3B;AACA;;AAEA;AACA,aAAY,eAAe;AAC3B,eAAc,eAAe;AAC7B;AACA;AACA,QAAO;AACP;AACA;AACA,+DAA8D;AAC9D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAC","file":"analysis.bundled.js","sourcesContent":["\nvar jQuery = require( 'jquery' ),\n $ = jQuery,\n GalaxyApp = require( 'galaxy' ).GalaxyApp,\n QUERY_STRING = require( 'utils/query-string-parsing' ),\n PANEL = require( 'layout/panel' ),\n ToolPanel = require( './tool-panel' ),\n HistoryPanel = require( './history-panel' ),\n PAGE = require( 'layout/page' ),\n ToolForm = require( 'mvc/tool/tool-form' ),\n Tours = require( 'mvc/tours' );\n\n/** define the 'Analyze Data'/analysis/main/home page for Galaxy\n * * has a masthead\n * * a left tool menu to allow the user to load tools in the center panel\n * * a right history menu that shows the user's current data\n * * a center panel\n * Both panels (generally) persist while the center panel shows any\n * UI needed for the current step of an analysis, like:\n * * tool forms to set tool parameters,\n * * tables showing the contents of datasets\n * * etc.\n */\nwindow.app = function app( options, bootstrapped ){\n window.Galaxy = new GalaxyApp( options, bootstrapped );\n Galaxy.debug( 'analysis app' );\n // TODO: use router as App base (combining with Galaxy)\n\n // .................................................... panels and page\n var config = options.config,\n toolPanel = new ToolPanel({\n el : '#left',\n userIsAnonymous : Galaxy.user.isAnonymous(),\n search_url : config.search_url,\n toolbox : config.toolbox,\n toolbox_in_panel : config.toolbox_in_panel,\n stored_workflow_menu_entries : config.stored_workflow_menu_entries,\n nginx_upload_path : config.nginx_upload_path,\n ftp_upload_site : config.ftp_upload_site,\n default_genome : config.default_genome,\n default_extension : config.default_extension,\n }),\n centerPanel = new PANEL.CenterPanel({\n el : '#center'\n }),\n historyPanel = new HistoryPanel({\n el : '#right',\n galaxyRoot : Galaxy.root,\n userIsAnonymous : Galaxy.user.isAnonymous(),\n allow_user_dataset_purge: config.allow_user_dataset_purge,\n }),\n analysisPage = new PAGE.PageLayoutView( _.extend( options, {\n el : 'body',\n left : toolPanel,\n center : centerPanel,\n right : historyPanel,\n }));\n\n // .................................................... decorate the galaxy object\n // TODO: most of this is becoming unnecessary as we move to apps\n Galaxy.page = analysisPage;\n Galaxy.params = Galaxy.config.params;\n\n // add tool panel to Galaxy object\n Galaxy.toolPanel = toolPanel.tool_panel;\n Galaxy.upload = toolPanel.uploadButton;\n\n Galaxy.currHistoryPanel = historyPanel.historyView;\n Galaxy.currHistoryPanel.listenToGalaxy( Galaxy );\n\n //HACK: move there\n Galaxy.app = {\n display : function( view, target ){\n // TODO: Remove this line after select2 update\n $( '.select2-hidden-accessible' ).remove();\n centerPanel.display( view );\n },\n };\n\n // .................................................... routes\n /** */\n var router = new ( Backbone.Router.extend({\n // TODO: not many client routes at this point - fill and remove from server.\n // since we're at root here, this may be the last to be routed entirely on the client.\n initialize : function( options ){\n this.options = options;\n },\n\n /** override to parse query string into obj and send to each route */\n execute: function( callback, args, name ){\n Galaxy.debug( 'router execute:', callback, args, name );\n var queryObj = QUERY_STRING.parse( args.pop() );\n args.push( queryObj );\n if( callback ){\n callback.apply( this, args );\n }\n },\n\n routes : {\n '(/)' : 'home',\n // TODO: remove annoying 'root' from root urls\n '(/)root*' : 'home',\n '(/)tours(/)(:tour_id)' : 'show_tours',\n },\n\n show_tours : function( tour_id ){\n if (tour_id){\n Tours.giveTour(tour_id);\n }\n else{\n centerPanel.display( new Tours.ToursView() );\n }\n },\n\n /** */\n home : function( params ){\n // TODO: to router, remove Globals\n // load a tool by id (tool_id) or rerun a previous tool execution (job_id)\n if( params.tool_id || params.job_id ) {\n if ( params.tool_id === 'upload1' ) {\n Galaxy.upload.show();\n this._loadCenterIframe( 'welcome' );\n } else {\n this._loadToolForm( params );\n }\n } else {\n // show the workflow run form\n if( params.workflow_id ){\n this._loadCenterIframe( 'workflow/run?id=' + params.workflow_id );\n // load the center iframe with controller.action: galaxy.org/?m_c=history&m_a=list -> history/list\n } else if( params.m_c ){\n this._loadCenterIframe( params.m_c + '/' + params.m_a );\n // show the workflow run form\n } else {\n this._loadCenterIframe( 'welcome' );\n }\n }\n },\n\n /** load the center panel with a tool form described by the given params obj */\n _loadToolForm : function( params ){\n //TODO: load tool form code async\n params.id = params.tool_id;\n centerPanel.display( new ToolForm.View( params ) );\n },\n\n /** load the center panel iframe using the given url */\n _loadCenterIframe : function( url, root ){\n root = root || Galaxy.root;\n url = root + url;\n centerPanel.$( '#galaxy_main' ).prop( 'src', url );\n },\n\n }))( options );\n\n // .................................................... when the page is ready\n // render and start the router\n $(function(){\n analysisPage\n .render()\n .right.historyView.loadCurrentHistory();\n\n // use galaxy to listen to history size changes and then re-fetch the user's total size (to update the quota meter)\n // TODO: we have to do this here (and after every page.render()) because the masthead is re-created on each\n // page render. It's re-created each time because there is no render function and can't be re-rendered without\n // re-creating it.\n Galaxy.listenTo( analysisPage.right.historyView, 'history-size-change', function(){\n // fetch to update the quota meter adding 'current' for any anon-user's id\n Galaxy.user.fetch({ url: Galaxy.user.urlRoot() + '/' + ( Galaxy.user.id || 'current' ) });\n });\n analysisPage.right.historyView.connectToQuotaMeter( analysisPage.masthead.quotaMeter );\n\n // start the router - which will call any of the routes above\n Backbone.history.start({\n root : Galaxy.root,\n pushState : true,\n });\n });\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/apps/analysis.js\n ** module id = 0\n ** module chunks = 0\n **/","var LeftPanel = require( 'layout/panel' ).LeftPanel,\n Tools = require( 'mvc/tool/tools' ),\n Upload = require( 'mvc/upload/upload-view' ),\n _l = require( 'utils/localization' );\n\n/* Builds the tool menu panel on the left of the analysis page */\nvar ToolPanel = LeftPanel.extend({\n\n title : _l( 'Tools' ),\n\n initialize: function( options ){\n LeftPanel.prototype.initialize.call( this, options );\n this.log( this + '.initialize:', options );\n\n /** @type {Object[]} descriptions of user's workflows to be shown in the tool menu */\n this.stored_workflow_menu_entries = options.stored_workflow_menu_entries || [];\n\n // create tool search, tool panel, and tool panel view.\n var tool_search = new Tools.ToolSearch({\n search_url : options.search_url,\n hidden : false\n });\n var tools = new Tools.ToolCollection( options.toolbox );\n this.tool_panel = new Tools.ToolPanel({\n tool_search : tool_search,\n tools : tools,\n layout : options.toolbox_in_panel\n });\n this.tool_panel_view = new Tools.ToolPanelView({ model: this.tool_panel });\n\n // add upload modal\n this.uploadButton = new Upload({\n nginx_upload_path : options.nginx_upload_path,\n ftp_upload_site : options.ftp_upload_site,\n default_genome : options.default_genome,\n default_extension : options.default_extension,\n });\n },\n\n render : function(){\n var self = this;\n LeftPanel.prototype.render.call( self );\n self.$( '.panel-header-buttons' ).append( self.uploadButton.$el );\n\n // if there are tools, render panel and display everything\n if (self.tool_panel.get( 'layout' ).size() > 0) {\n self.tool_panel_view.render();\n //TODO: why the hide/show?\n self.$( '.toolMenu' ).show();\n }\n self.$( '.toolMenuContainer' ).prepend( self.tool_panel_view.$el );\n\n self._renderWorkflowMenu();\n\n // if a tool link has the minsizehint attribute, handle it here (gen. by hiding the tool panel)\n self.$( 'a[minsizehint]' ).click( function() {\n if ( parent.handle_minwidth_hint ) {\n parent.handle_minwidth_hint( $( self ).attr( 'minsizehint' ) );\n }\n });\n },\n\n /** build the dom for the workflow portion of the tool menu */\n _renderWorkflowMenu : function(){\n var self = this;\n // add internal workflow list\n self.$( '#internal-workflows' ).append( self._templateTool({\n title : _l( 'All workflows' ),\n href : 'workflow/list_for_run'\n }));\n _.each( self.stored_workflow_menu_entries, function( menu_entry ){\n self.$( '#internal-workflows' ).append( self._templateTool({\n title : menu_entry.stored_workflow.name,\n href : 'workflow/run?id=' + menu_entry.encoded_stored_workflow_id\n }));\n });\n },\n\n /** build a link to one tool */\n _templateTool: function( tool ) {\n return [\n '
',\n // global\n '', tool.title, '',\n '
'\n ].join('');\n },\n\n /** override to include inital menu dom and workflow section */\n _templateBody : function(){\n return [\n '
',\n '
',\n '
',\n '
',\n '', _l( 'Search did not match any tools.' ), '',\n '
',\n '
',\n '
',\n '
',\n '
',\n '', _l( 'Workflows' ), '',\n '
',\n '
',\n '
',\n '
',\n '
',\n '
'\n ].join('');\n },\n\n toString : function(){ return 'ToolPanel'; }\n});\n\nmodule.exports = ToolPanel;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/apps/tool-panel.js\n ** module id = 13\n ** module chunks = 0\n **/","/**\n * Model, view, and controller objects for Galaxy tools and tool panel.\n */\n\n define([\n \"libs/underscore\",\n \"viz/trackster/util\",\n \"mvc/dataset/data\",\n \"mvc/tool/tool-form\"\n\n], function(_, util, data, ToolForm) {\n 'use strict';\n\n/**\n * Mixin for tracking model visibility.\n */\nvar VisibilityMixin = {\n hidden: false,\n\n show: function() {\n this.set(\"hidden\", false);\n },\n\n hide: function() {\n this.set(\"hidden\", true);\n },\n\n toggle: function() {\n this.set(\"hidden\", !this.get(\"hidden\"));\n },\n\n is_visible: function() {\n return !this.attributes.hidden;\n }\n\n};\n\n/**\n * A tool parameter.\n */\nvar ToolParameter = Backbone.Model.extend({\n defaults: {\n name: null,\n label: null,\n type: null,\n value: null,\n html: null,\n num_samples: 5\n },\n\n initialize: function(options) {\n this.attributes.html = unescape(this.attributes.html);\n },\n\n copy: function() {\n return new ToolParameter(this.toJSON());\n },\n\n set_value: function(value) {\n this.set('value', value || '');\n }\n});\n\nvar ToolParameterCollection = Backbone.Collection.extend({\n model: ToolParameter\n});\n\n/**\n * A data tool parameter.\n */\nvar DataToolParameter = ToolParameter.extend({});\n\n/**\n * An integer tool parameter.\n */\nvar IntegerToolParameter = ToolParameter.extend({\n set_value: function(value) {\n this.set('value', parseInt(value, 10));\n },\n\n /**\n * Returns samples from a tool input.\n */\n get_samples: function() {\n return d3.scale.linear()\n .domain([this.get('min'), this.get('max')])\n .ticks(this.get('num_samples'));\n }\n});\n\nvar FloatToolParameter = IntegerToolParameter.extend({\n set_value: function(value) {\n this.set('value', parseFloat(value));\n }\n});\n\n/**\n * A select tool parameter.\n */\nvar SelectToolParameter = ToolParameter.extend({\n /**\n * Returns tool options.\n */\n get_samples: function() {\n return _.map(this.get('options'), function(option) {\n return option[0];\n });\n }\n});\n\n// Set up dictionary of parameter types.\nToolParameter.subModelTypes = {\n 'integer': IntegerToolParameter,\n 'float': FloatToolParameter,\n 'data': DataToolParameter,\n 'select': SelectToolParameter\n};\n\n/**\n * A Galaxy tool.\n */\nvar Tool = Backbone.Model.extend({\n // Default attributes.\n defaults: {\n id: null,\n name: null,\n description: null,\n target: null,\n inputs: [],\n outputs: []\n },\n\n urlRoot: Galaxy.root + 'api/tools',\n\n initialize: function(options) {\n\n // Set parameters.\n this.set('inputs', new ToolParameterCollection(_.map(options.inputs, function(p) {\n var p_class = ToolParameter.subModelTypes[p.type] || ToolParameter;\n return new p_class(p);\n })));\n },\n\n /**\n *\n */\n toJSON: function() {\n var rval = Backbone.Model.prototype.toJSON.call(this);\n\n // Convert inputs to JSON manually.\n rval.inputs = this.get('inputs').map(function(i) { return i.toJSON(); });\n return rval;\n },\n\n /**\n * Removes inputs of a particular type; this is useful because not all inputs can be handled by\n * client and server yet.\n */\n remove_inputs: function(types) {\n var tool = this,\n incompatible_inputs = tool.get('inputs').filter( function(input) {\n return ( types.indexOf( input.get('type') ) !== -1);\n });\n tool.get('inputs').remove(incompatible_inputs);\n },\n\n /**\n * Returns object copy, optionally including only inputs that can be sampled.\n */\n copy: function(only_samplable_inputs) {\n var copy = new Tool(this.toJSON());\n\n // Return only samplable inputs if flag is set.\n if (only_samplable_inputs) {\n var valid_inputs = new Backbone.Collection();\n copy.get('inputs').each(function(input) {\n if (input.get_samples()) {\n valid_inputs.push(input);\n }\n });\n copy.set('inputs', valid_inputs);\n }\n\n return copy;\n },\n\n apply_search_results: function(results) {\n ( _.indexOf(results, this.attributes.id) !== -1 ? this.show() : this.hide() );\n return this.is_visible();\n },\n\n /**\n * Set a tool input's value.\n */\n set_input_value: function(name, value) {\n this.get('inputs').find(function(input) {\n return input.get('name') === name;\n }).set('value', value);\n },\n\n /**\n * Set many input values at once.\n */\n set_input_values: function(inputs_dict) {\n var self = this;\n _.each(_.keys(inputs_dict), function(input_name) {\n self.set_input_value(input_name, inputs_dict[input_name]);\n });\n },\n\n /**\n * Run tool; returns a Deferred that resolves to the tool's output(s).\n */\n run: function() {\n return this._run();\n },\n\n /**\n * Rerun tool using regions and a target dataset.\n */\n rerun: function(target_dataset, regions) {\n return this._run({\n action: 'rerun',\n target_dataset_id: target_dataset.id,\n regions: regions\n });\n },\n\n /**\n * Returns input dict for tool's inputs.\n */\n get_inputs_dict: function() {\n var input_dict = {};\n this.get('inputs').each(function(input) {\n input_dict[input.get('name')] = input.get('value');\n });\n return input_dict;\n },\n\n /**\n * Run tool; returns a Deferred that resolves to the tool's output(s).\n * NOTE: this method is a helper method and should not be called directly.\n */\n _run: function(additional_params) {\n // Create payload.\n var payload = _.extend({\n tool_id: this.id,\n inputs: this.get_inputs_dict()\n }, additional_params);\n\n // Because job may require indexing datasets, use server-side\n // deferred to ensure that job is run. Also use deferred that\n // resolves to outputs from tool.\n var run_deferred = $.Deferred(),\n ss_deferred = new util.ServerStateDeferred({\n ajax_settings: {\n url: this.urlRoot,\n data: JSON.stringify(payload),\n dataType: \"json\",\n contentType: 'application/json',\n type: \"POST\"\n },\n interval: 2000,\n success_fn: function(response) {\n return response !== \"pending\";\n }\n });\n\n // Run job and resolve run_deferred to tool outputs.\n $.when(ss_deferred.go()).then(function(result) {\n run_deferred.resolve(new data.DatasetCollection(result));\n });\n return run_deferred;\n }\n});\n_.extend(Tool.prototype, VisibilityMixin);\n\n/**\n * Tool view.\n */\nvar ToolView = Backbone.View.extend({\n\n});\n\n/**\n * Wrap collection of tools for fast access/manipulation.\n */\nvar ToolCollection = Backbone.Collection.extend({\n model: Tool\n});\n\n/**\n * Label or section header in tool panel.\n */\nvar ToolSectionLabel = Backbone.Model.extend(VisibilityMixin);\n\n/**\n * Section of tool panel with elements (labels and tools).\n */\nvar ToolSection = Backbone.Model.extend({\n defaults: {\n elems: [],\n open: false\n },\n\n clear_search_results: function() {\n _.each(this.attributes.elems, function(elt) {\n elt.show();\n });\n\n this.show();\n this.set(\"open\", false);\n },\n\n apply_search_results: function(results) {\n var all_hidden = true,\n cur_label;\n _.each(this.attributes.elems, function(elt) {\n if (elt instanceof ToolSectionLabel) {\n cur_label = elt;\n cur_label.hide();\n }\n else if (elt instanceof Tool) {\n if (elt.apply_search_results(results)) {\n all_hidden = false;\n if (cur_label) {\n cur_label.show();\n }\n }\n }\n });\n\n if (all_hidden) {\n this.hide();\n }\n else {\n this.show();\n this.set(\"open\", true);\n }\n }\n});\n_.extend(ToolSection.prototype, VisibilityMixin);\n\n/**\n * Tool search that updates results when query is changed. Result value of null\n * indicates that query was not run; if not null, results are from search using\n * query.\n */\nvar ToolSearch = Backbone.Model.extend({\n defaults: {\n search_hint_string: \"search tools\",\n min_chars_for_search: 3,\n clear_btn_url: \"\",\n search_url: \"\",\n visible: true,\n query: \"\",\n results: null,\n // ESC (27) will clear the input field and tool search filters\n clear_key: 27\n },\n\n urlRoot: Galaxy.root + 'api/tools',\n\n initialize: function() {\n this.on(\"change:query\", this.do_search);\n },\n\n /**\n * Do the search and update the results.\n */\n do_search: function() {\n var query = this.attributes.query;\n\n // If query is too short, do not search.\n if (query.length < this.attributes.min_chars_for_search) {\n this.set(\"results\", null);\n return;\n }\n\n // Do search via AJAX.\n var q = query;\n // Stop previous ajax-request\n if (this.timer) {\n clearTimeout(this.timer);\n }\n // Start a new ajax-request in X ms\n $(\"#search-clear-btn\").hide();\n $(\"#search-spinner\").show();\n var self = this;\n this.timer = setTimeout(function () {\n // log the search to analytics if present\n if ( typeof ga !== 'undefined' ) {\n ga( 'send', 'pageview', Galaxy.root + '?q=' + q );\n }\n $.get( self.urlRoot, { q: q }, function (data) {\n self.set(\"results\", data);\n $(\"#search-spinner\").hide();\n $(\"#search-clear-btn\").show();\n }, \"json\" );\n }, 400 );\n },\n\n clear_search: function() {\n this.set(\"query\", \"\");\n this.set(\"results\", null);\n }\n\n});\n_.extend(ToolSearch.prototype, VisibilityMixin);\n\n/**\n * Tool Panel.\n */\nvar ToolPanel = Backbone.Model.extend({\n\n initialize: function(options) {\n this.attributes.tool_search = options.tool_search;\n this.attributes.tool_search.on(\"change:results\", this.apply_search_results, this);\n this.attributes.tools = options.tools;\n this.attributes.layout = new Backbone.Collection( this.parse(options.layout) );\n },\n\n /**\n * Parse tool panel dictionary and return collection of tool panel elements.\n */\n parse: function(response) {\n // Recursive function to parse tool panel elements.\n var self = this,\n // Helper to recursively parse tool panel.\n parse_elt = function(elt_dict) {\n var type = elt_dict.model_class;\n // There are many types of tools; for now, anything that ends in 'Tool'\n // is treated as a generic tool.\n if ( type.indexOf('Tool') === type.length - 4 ) {\n return self.attributes.tools.get(elt_dict.id);\n }\n else if (type === 'ToolSection') {\n // Parse elements.\n var elems = _.map(elt_dict.elems, parse_elt);\n elt_dict.elems = elems;\n return new ToolSection(elt_dict);\n }\n else if (type === 'ToolSectionLabel') {\n return new ToolSectionLabel(elt_dict);\n }\n };\n\n return _.map(response, parse_elt);\n },\n\n clear_search_results: function() {\n this.get('layout').each(function(panel_elt) {\n if (panel_elt instanceof ToolSection) {\n panel_elt.clear_search_results();\n }\n else {\n // Label or tool, so just show.\n panel_elt.show();\n }\n });\n },\n\n apply_search_results: function() {\n var results = this.get('tool_search').get('results');\n if (results === null) {\n this.clear_search_results();\n return;\n }\n\n var cur_label = null;\n this.get('layout').each(function(panel_elt) {\n if (panel_elt instanceof ToolSectionLabel) {\n cur_label = panel_elt;\n cur_label.hide();\n }\n else if (panel_elt instanceof Tool) {\n if (panel_elt.apply_search_results(results)) {\n if (cur_label) {\n cur_label.show();\n }\n }\n }\n else {\n // Starting new section, so clear current label.\n cur_label = null;\n panel_elt.apply_search_results(results);\n }\n });\n }\n});\n\n/**\n * View classes for Galaxy tools and tool panel.\n *\n * Views use the templates defined below for rendering. Views update as needed\n * based on (a) model/collection events and (b) user interactions; in this sense,\n * they are controllers are well and the HTML is the real view in the MVC architecture.\n */\n\n/**\n * Base view that handles visibility based on model's hidden attribute.\n */\nvar BaseView = Backbone.View.extend({\n initialize: function() {\n this.model.on(\"change:hidden\", this.update_visible, this);\n this.update_visible();\n },\n update_visible: function() {\n ( this.model.attributes.hidden ? this.$el.hide() : this.$el.show() );\n }\n});\n\n/**\n * Link to a tool.\n */\nvar ToolLinkView = BaseView.extend({\n tagName: 'div',\n\n render: function() {\n // create element\n var $link = $('
');\n $link.append(templates.tool_link(this.model.toJSON()));\n\n // open upload dialog for upload tool\n if (this.model.id === 'upload1') {\n $link.find('a').on('click', function(e) {\n e.preventDefault();\n Galaxy.upload.show();\n });\n }\n else if ( this.model.get( 'model_class' ) === 'Tool' ) { // regular tools\n var self = this;\n $link.find('a').on('click', function(e) {\n e.preventDefault();\n var form = new ToolForm.View( { id : self.model.id, version : self.model.get('version') } );\n form.deferred.execute(function() {\n Galaxy.app.display( form );\n });\n });\n }\n\n // add element\n this.$el.append($link);\n return this;\n }\n});\n\n/**\n * Panel label/section header.\n */\nvar ToolSectionLabelView = BaseView.extend({\n tagName: 'div',\n className: 'toolPanelLabel',\n\n render: function() {\n this.$el.append( $(\"\").text(this.model.attributes.text) );\n return this;\n }\n});\n\n/**\n * Panel section.\n */\nvar ToolSectionView = BaseView.extend({\n tagName: 'div',\n className: 'toolSectionWrapper',\n\n initialize: function() {\n BaseView.prototype.initialize.call(this);\n this.model.on(\"change:open\", this.update_open, this);\n },\n\n render: function() {\n // Build using template.\n this.$el.append( templates.panel_section(this.model.toJSON()) );\n\n // Add tools to section.\n var section_body = this.$el.find(\".toolSectionBody\");\n _.each(this.model.attributes.elems, function(elt) {\n if (elt instanceof Tool) {\n var tool_view = new ToolLinkView({model: elt, className: \"toolTitle\"});\n tool_view.render();\n section_body.append(tool_view.$el);\n }\n else if (elt instanceof ToolSectionLabel) {\n var label_view = new ToolSectionLabelView({model: elt});\n label_view.render();\n section_body.append(label_view.$el);\n }\n else {\n // TODO: handle nested section bodies?\n }\n });\n return this;\n },\n\n events: {\n 'click .toolSectionTitle > a': 'toggle'\n },\n\n /**\n * Toggle visibility of tool section.\n */\n toggle: function() {\n this.model.set(\"open\", !this.model.attributes.open);\n },\n\n /**\n * Update whether section is open or close.\n */\n update_open: function() {\n (this.model.attributes.open ?\n this.$el.children(\".toolSectionBody\").slideDown(\"fast\") :\n this.$el.children(\".toolSectionBody\").slideUp(\"fast\")\n );\n }\n});\n\nvar ToolSearchView = Backbone.View.extend({\n tagName: 'div',\n id: 'tool-search',\n className: 'bar',\n\n events: {\n 'click': 'focus_and_select',\n 'keyup :input': 'query_changed',\n 'click #search-clear-btn': 'clear'\n },\n\n render: function() {\n this.$el.append( templates.tool_search(this.model.toJSON()) );\n if (!this.model.is_visible()) {\n this.$el.hide();\n }\n this.$el.find('[title]').tooltip();\n return this;\n },\n\n focus_and_select: function() {\n this.$el.find(\":input\").focus().select();\n },\n\n clear: function() {\n this.model.clear_search();\n this.$el.find(\":input\").val('');\n this.focus_and_select();\n return false;\n },\n\n query_changed: function( evData ) {\n // check for the 'clear key' (ESC) first\n if( ( this.model.attributes.clear_key ) &&\n ( this.model.attributes.clear_key === evData.which ) ){\n this.clear();\n return false;\n }\n this.model.set(\"query\", this.$el.find(\":input\").val());\n }\n});\n\n/**\n * Tool panel view. Events triggered include:\n * tool_link_click(click event, tool_model)\n */\nvar ToolPanelView = Backbone.View.extend({\n tagName: 'div',\n className: 'toolMenu',\n\n /**\n * Set up view.\n */\n initialize: function() {\n this.model.get('tool_search').on(\"change:results\", this.handle_search_results, this);\n },\n\n render: function() {\n var self = this;\n\n // Render search.\n var search_view = new ToolSearchView( { model: this.model.get('tool_search') } );\n search_view.render();\n self.$el.append(search_view.$el);\n\n // Render panel.\n this.model.get('layout').each(function(panel_elt) {\n if (panel_elt instanceof ToolSection) {\n var section_title_view = new ToolSectionView({model: panel_elt});\n section_title_view.render();\n self.$el.append(section_title_view.$el);\n }\n else if (panel_elt instanceof Tool) {\n var tool_view = new ToolLinkView({model: panel_elt, className: \"toolTitleNoSection\"});\n tool_view.render();\n self.$el.append(tool_view.$el);\n }\n else if (panel_elt instanceof ToolSectionLabel) {\n var label_view = new ToolSectionLabelView({model: panel_elt});\n label_view.render();\n self.$el.append(label_view.$el);\n }\n });\n\n // Setup tool link click eventing.\n self.$el.find(\"a.tool-link\").click(function(e) {\n // Tool id is always the first class.\n var\n tool_id = $(this).attr('class').split(/\\s+/)[0],\n tool = self.model.get('tools').get(tool_id);\n\n self.trigger(\"tool_link_click\", e, tool);\n });\n\n return this;\n },\n\n handle_search_results: function() {\n var results = this.model.get('tool_search').get('results');\n if (results && results.length === 0) {\n $(\"#search-no-results\").show();\n }\n else {\n $(\"#search-no-results\").hide();\n }\n }\n});\n\n/**\n * View for working with a tool: setting parameters and inputs and executing the tool.\n */\nvar ToolFormView = Backbone.View.extend({\n className: 'toolForm',\n\n render: function() {\n this.$el.children().remove();\n this.$el.append( templates.tool_form(this.model.toJSON()) );\n }\n});\n\n/**\n * Integrated tool menu + tool execution.\n */\nvar IntegratedToolMenuAndView = Backbone.View.extend({\n className: 'toolMenuAndView',\n\n initialize: function() {\n this.tool_panel_view = new ToolPanelView({collection: this.collection});\n this.tool_form_view = new ToolFormView();\n },\n\n render: function() {\n // Render and append tool panel.\n this.tool_panel_view.render();\n this.tool_panel_view.$el.css(\"float\", \"left\");\n this.$el.append(this.tool_panel_view.$el);\n\n // Append tool form view.\n this.tool_form_view.$el.hide();\n this.$el.append(this.tool_form_view.$el);\n\n // On tool link click, show tool.\n var self = this;\n this.tool_panel_view.on(\"tool_link_click\", function(e, tool) {\n // Prevents click from activating link:\n e.preventDefault();\n // Show tool that was clicked on:\n self.show_tool(tool);\n });\n },\n\n /**\n * Fetch and display tool.\n */\n show_tool: function(tool) {\n var self = this;\n tool.fetch().done( function() {\n self.tool_form_view.model = tool;\n self.tool_form_view.render();\n self.tool_form_view.$el.show();\n $('#left').width(\"650px\");\n });\n }\n});\n\n// TODO: move into relevant views\nvar templates = {\n // the search bar at the top of the tool panel\n tool_search : _.template([\n '\" autocomplete=\"off\" type=\"text\" />',\n ' ',\n //TODO: replace with icon\n '',\n ].join('')),\n\n // the category level container in the tool panel (e.g. 'Get Data', 'Text Manipulation')\n panel_section : _.template([\n '
\">',\n '<%- name %>',\n '
',\n '
\" class=\"toolSectionBody\" style=\"display: none;\">',\n '
',\n '
'\n ].join('')),\n\n // a single tool's link in the tool panel; will load the tool form in the center panel\n tool_link : _.template([\n '',\n '<% _.each( labels, function( label ){ %>',\n '\">',\n '<%- label %>',\n '',\n '<% }); %>',\n '',\n ' tool-link\" href=\"<%= link %>\" target=\"<%- target %>\" minsizehint=\"<%- min_width %>\">',\n '<%- name %>',\n '',\n ' <%- description %>'\n ].join('')),\n\n // the tool form for entering tool parameters, viewing help and executing the tool\n // loaded when a tool link is clicked in the tool panel\n tool_form : _.template([\n '
<%- tool.name %> (version <%- tool.version %>)
',\n '
',\n '<% _.each( tool.inputs, function( input ){ %>',\n '
',\n '',\n '
',\n '<%= input.html %>',\n '
',\n '
',\n '<%- input.help %>',\n '
',\n '
',\n '
',\n '<% }); %>',\n '
',\n '
',\n '',\n '
',\n '
',\n '
<% tool.help %>
',\n '
',\n // TODO: we need scoping here because 'help' is the dom for the help menu in the masthead\n // which implies a leaky variable that I can't find\n ].join(''), { variable: 'tool' }),\n};\n\n\n// Exports\nreturn {\n ToolParameter: ToolParameter,\n IntegerToolParameter: IntegerToolParameter,\n SelectToolParameter: SelectToolParameter,\n Tool: Tool,\n ToolCollection: ToolCollection,\n ToolSearch: ToolSearch,\n ToolPanel: ToolPanel,\n ToolPanelView: ToolPanelView,\n ToolFormView: ToolFormView\n};\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/tool/tools.js\n ** module id = 14\n ** module chunks = 0 2\n **/","define(function(){\n\n/**\n * Stringifies a number adding commas for digit grouping as per North America.\n */\nfunction commatize( number ) {\n number += ''; // Convert to string\n var rgx = /(\\d+)(\\d{3})/;\n while (rgx.test(number)) {\n number = number.replace(rgx, '$1' + ',' + '$2');\n }\n return number;\n}\n\n/**\n * Helper to determine if object is jQuery deferred.\n */\nvar is_deferred = function ( d ) {\n return ('promise' in d);\n};\n\n/**\n * Implementation of a server-state based deferred. Server is repeatedly polled, and when\n * condition is met, deferred is resolved.\n */\nvar ServerStateDeferred = Backbone.Model.extend({\n defaults: {\n ajax_settings: {},\n interval: 1000,\n success_fn: function(result) { return true; }\n },\n\n /**\n * Returns a deferred that resolves when success function returns true.\n */\n go: function() {\n var deferred = $.Deferred(),\n self = this,\n ajax_settings = self.get('ajax_settings'),\n success_fn = self.get('success_fn'),\n interval = self.get('interval'),\n _go = function() {\n $.ajax(ajax_settings).success(function(result) {\n if (success_fn(result)) {\n // Result is good, so resolve.\n deferred.resolve(result);\n }\n else {\n // Result not good, try again.\n setTimeout(_go, interval);\n }\n });\n };\n _go();\n return deferred;\n }\n});\n\n/**\n * Returns a random color in hexadecimal format that is sufficiently different from a single color\n * or set of colors.\n * @param colors a color or list of colors in the format '#RRGGBB'\n */\nvar get_random_color = function(colors) {\n // Default for colors is white.\n if (!colors) { colors = \"#ffffff\"; }\n\n // If needed, create list of colors.\n if ( typeof(colors) === \"string\" ) {\n colors = [ colors ];\n }\n\n // Convert colors to numbers.\n for (var i = 0; i < colors.length; i++) {\n colors[i] = parseInt( colors[i].slice(1), 16 );\n }\n\n // -- Perceived brightness and difference formulas are from\n // -- http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\n // Compute perceived color brightness (based on RGB-YIQ transformation):\n var brightness = function(r, g, b) {\n return ( (r * 299) + (g * 587) + (b * 114) ) / 1000;\n };\n\n // Compute color difference:\n var difference = function(r1, g1, b1, r2, g2, b2) {\n return ( Math.max(r1, r2) - Math.min(r1, r2) ) +\n ( Math.max(g1, g2) - Math.min(g1, g2) ) +\n ( Math.max(b1, b2) - Math.min(b1, b2) );\n };\n\n // Create new random color.\n var new_color, nr, ng, nb,\n other_color, or, og, ob,\n n_brightness, o_brightness,\n diff, ok = false,\n num_tries = 0;\n do {\n // New color is never white b/c random in [0,1)\n new_color = Math.round( Math.random() * 0xffffff );\n nr = ( new_color & 0xff0000 ) >> 16;\n ng = ( new_color & 0x00ff00 ) >> 8;\n nb = new_color & 0x0000ff;\n n_brightness = brightness(nr, ng, nb);\n ok = true;\n for (i = 0; i < colors.length; i++) {\n other_color = colors[i];\n or = ( other_color & 0xff0000 ) >> 16;\n og = ( other_color & 0x00ff00 ) >> 8;\n ob = other_color & 0x0000ff;\n o_brightness = brightness(or, og, ob);\n diff = difference(nr, ng, nb, or, og, ob);\n // These thresholds may need to be adjusted. Brightness difference range is 125;\n // color difference range is 500.\n if ( ( Math.abs(n_brightness - o_brightness) < 40 ) ||\n ( diff < 200 ) ) {\n ok = false;\n break;\n }\n }\n\n num_tries++\n; } while (!ok && num_tries <= 10 );\n\n // Add 0x1000000 to left pad number with 0s.\n return '#' + ( 0x1000000 + new_color ).toString(16).substr(1,6);\n};\n\nreturn {\n commatize: commatize,\n is_deferred: is_deferred,\n ServerStateDeferred : ServerStateDeferred,\n get_random_color : get_random_color\n};\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/viz/trackster/util.js\n ** module id = 15\n ** module chunks = 0 2\n **/","// Additional dependencies: jQuery, underscore.\ndefine(['mvc/ui/ui-modal', 'mvc/ui/ui-frames', 'mvc/ui/icon-button'], function(Modal, Frames, mod_icon_btn) {\n\n/**\n * Dataset metedata.\n */\nvar DatasetMetadata = Backbone.Model.extend({});\n\n/**\n * A dataset. In Galaxy, datasets are associated with a history, so\n * this object is also known as a HistoryDatasetAssociation.\n */\nvar Dataset = Backbone.Model.extend({\n defaults: {\n id: '',\n type: '',\n name: '',\n hda_ldda: 'hda',\n metadata: null\n },\n\n initialize: function() {\n // Metadata can be passed in as a model or a set of attributes; if it's\n // already a model, there's no need to set metadata.\n if (!this.get('metadata')) {\n this._set_metadata();\n }\n\n // Update metadata on change.\n this.on('change', this._set_metadata, this);\n },\n\n _set_metadata: function() {\n var metadata = new DatasetMetadata();\n\n // Move metadata from dataset attributes to metadata object.\n _.each(_.keys(this.attributes), function(k) {\n if (k.indexOf('metadata_') === 0) {\n // Found metadata.\n var new_key = k.split('metadata_')[1];\n metadata.set(new_key, this.attributes[k]);\n delete this.attributes[k];\n }\n }, this);\n\n // Because this is an internal change, silence it.\n this.set('metadata', metadata, { 'silent': true });\n },\n\n /**\n * Returns dataset metadata for a given attribute.\n */\n get_metadata: function(attribute) {\n return this.attributes.metadata.get(attribute);\n },\n\n urlRoot: Galaxy.root + \"api/datasets\"\n});\n\n/**\n * A tabular dataset. This object extends dataset to provide incremental chunked data.\n */\nvar TabularDataset = Dataset.extend({\n defaults: _.extend({}, Dataset.prototype.defaults, {\n chunk_url: null,\n first_data_chunk: null,\n chunk_index: -1,\n at_eof: false\n }),\n\n initialize: function(options) {\n Dataset.prototype.initialize.call(this);\n\n // If first data chunk is available, next chunk is 1.\n this.attributes.chunk_index = (this.attributes.first_data_chunk ? 1 : 0);\n this.attributes.chunk_url = Galaxy.root + 'dataset/display?dataset_id=' + this.id;\n this.attributes.url_viz = Galaxy.root + 'visualization';\n },\n\n /**\n * Returns a jQuery Deferred object that resolves to the next data chunk or null if at EOF.\n */\n get_next_chunk: function() {\n // If already at end of file, do nothing.\n if (this.attributes.at_eof) {\n return null;\n }\n\n // Get next chunk.\n var self = this,\n next_chunk = $.Deferred();\n $.getJSON(this.attributes.chunk_url, {\n chunk: self.attributes.chunk_index++\n }).success(function(chunk) {\n var rval;\n if (chunk.ck_data !== '') {\n // Found chunk.\n rval = chunk;\n }\n else {\n // At EOF.\n self.attributes.at_eof = true;\n rval = null;\n }\n next_chunk.resolve(rval);\n });\n\n return next_chunk;\n }\n});\n\nvar DatasetCollection = Backbone.Collection.extend({\n model: Dataset\n});\n\n/**\n * Provides a base for table-based, dynamic view of a tabular dataset.\n * Do not instantiate directly; use either TopLevelTabularDatasetChunkedView\n * or EmbeddedTabularDatasetChunkedView.\n */\nvar TabularDatasetChunkedView = Backbone.View.extend({\n\n /**\n * Initialize view and, importantly, set a scroll element.\n */\n initialize: function(options) {\n // Row count for rendering.\n this.row_count = 0;\n this.loading_chunk = false;\n\n // load trackster button\n new TabularButtonTracksterView({\n model : options.model,\n $el : this.$el\n });\n },\n\n expand_to_container: function(){\n if (this.$el.height() < this.scroll_elt.height()){\n this.attempt_to_fetch();\n }\n },\n\n attempt_to_fetch: function( func ){\n var self = this;\n if ( !this.loading_chunk && this.scrolled_to_bottom() ) {\n this.loading_chunk = true;\n this.loading_indicator.show();\n $.when(self.model.get_next_chunk()).then(function(result) {\n if (result) {\n self._renderChunk(result);\n self.loading_chunk = false;\n }\n self.loading_indicator.hide();\n self.expand_to_container();\n });\n }\n },\n\n render: function() {\n // Add loading indicator.\n this.loading_indicator = $('
').attr('id', 'loading_indicator');\n this.$el.append(this.loading_indicator);\n\n // Add data table and header.\n var data_table = $('').attr({\n id: 'content_table',\n cellpadding: 0\n });\n this.$el.append(data_table);\n var column_names = this.model.get_metadata('column_names'),\n header_container = $('').appendTo(data_table),\n header_row = $('').appendTo(header_container);\n if (column_names) {\n header_row.append('');\n } else {\n for (var j = 1; j <= this.model.get_metadata('columns'); j++) {\n header_row.append('');\n }\n }\n\n // Render first chunk.\n var self = this,\n first_chunk = this.model.get('first_data_chunk');\n if (first_chunk) {\n // First chunk is bootstrapped, so render now.\n this._renderChunk(first_chunk);\n }\n else {\n // No bootstrapping, so get first chunk and then render.\n $.when(self.model.get_next_chunk()).then(function(result) {\n self._renderChunk(result);\n });\n }\n\n // -- Show new chunks during scrolling. --\n\n // Set up chunk loading when scrolling using the scrolling element.\n this.scroll_elt.scroll(function(){\n self.attempt_to_fetch();\n });\n },\n\n /**\n * Returns true if user has scrolled to the bottom of the view.\n */\n scrolled_to_bottom: function() {\n return false;\n },\n\n // -- Helper functions. --\n\n _renderCell: function(cell_contents, index, colspan) {\n var $cell = $(''),\n num_columns = this.model.get_metadata('columns');\n\n if (this.row_count % 2 !== 0) {\n row.addClass('dark_row');\n }\n\n if (cells.length === num_columns) {\n _.each(cells, function(cell_contents, index) {\n row.append(this._renderCell(cell_contents, index));\n }, this);\n }\n else if (cells.length > num_columns) {\n // SAM file or like format with optional metadata included.\n _.each(cells.slice(0, num_columns - 1), function(cell_contents, index) {\n row.append(this._renderCell(cell_contents, index));\n }, this);\n row.append(this._renderCell(cells.slice(num_columns - 1).join('\\t'), num_columns - 1));\n }\n else if (num_columns > 5 && cells.length === num_columns - 1 ) {\n // SAM file or like format with optional metadata missing.\n _.each(cells, function(cell_contents, index) {\n row.append(this._renderCell(cell_contents, index));\n }, this);\n row.append($('');\n wrapper.append($el);\n this.row.append(wrapper);\n },\n \n // header\n appendHeader: function() {\n // append header row\n this.$thead.append(this.row);\n\n // row\n this.row = $('');\n },\n \n // add row cell\n add: function($el, width, align) {\n var wrapper = $('');\n if (width) {\n wrapper.css('width', width);\n }\n if (align) {\n wrapper.css('text-align', align);\n }\n wrapper.append($el);\n this.row.append(wrapper);\n },\n \n // append\n append: function(id, fade) {\n this._commit(id, fade, false);\n },\n \n // prepend\n prepend: function(id, fade) {\n this._commit(id, fade, true);\n },\n \n // get element\n get: function(id) {\n return this.$el.find('#' + id);\n },\n \n // delete\n del: function(id) {\n var item = this.$tbody.find('#' + id);\n if (item.length > 0) {\n item.remove();\n this.row_count--;\n this._refresh();\n }\n },\n\n // delete all\n delAll: function() {\n this.$tbody.empty();\n this.row_count = 0;\n this._refresh();\n },\n \n // value\n value: function(new_value) {\n // get current id/value\n this.before = this.$tbody.find('.current').attr('id');\n \n // check if new_value is defined\n if (new_value !== undefined) {\n this.$tbody.find('tr').removeClass('current');\n if (new_value) {\n this.$tbody.find('#' + new_value).addClass('current');\n }\n }\n \n // get current id/value\n var after = this.$tbody.find('.current').attr('id');\n if(after === undefined) {\n return null;\n } else {\n // fire onchange\n if (after != this.before && this.options.onchange) {\n this.options.onchange(new_value);\n }\n \n // return current value\n return after;\n }\n },\n \n // size\n size: function() {\n return this.$tbody.find('tr').length;\n },\n \n // commit\n _commit: function(id, fade, prepend) {\n // remove previous item with same id\n this.del(id);\n \n // add\n this.row.attr('id', id);\n \n // add row\n if (prepend) {\n this.$tbody.prepend(this.row);\n } else {\n this.$tbody.append(this.row);\n }\n \n // fade mode\n if (fade) {\n this.row.hide();\n this.row.fadeIn();\n }\n \n // row\n this.row = this._row();\n \n // row count\n this.row_count++;\n this._refresh();\n },\n \n // create new row\n _row: function() {\n return $('');\n },\n \n // onclick\n _onclick: function(e) {\n // get values\n var old_value = this.value();\n var new_value = $(e.target).closest('tr').attr('id');\n if (new_value != ''){\n // check equality\n if (new_value && old_value != new_value) {\n if (this.options.onconfirm) {\n this.options.onconfirm(new_value);\n } else {\n this.value(new_value);\n }\n }\n }\n },\n\n // ondblclick\n _ondblclick: function(e) {\n var value = this.value();\n if (value && this.options.ondblclick) {\n this.options.ondblclick(value);\n }\n },\n \n // refresh\n _refresh: function() {\n if (this.row_count == 0) {\n this.$tmessage.show();\n } else {\n this.$tmessage.hide();\n }\n },\n \n // load html template\n _template: function(options) {\n return '
' +\n '
' + column_names.join('') + '' + j + '').text(cell_contents);\n var column_types = this.model.get_metadata('column_types');\n if (colspan !== undefined) {\n $cell.attr('colspan', colspan).addClass('stringalign');\n } else if (column_types) {\n if (index < column_types.length) {\n if (column_types[index] === 'str' || column_types[index] === 'list') {\n /* Left align all str columns, right align the rest */\n $cell.addClass('stringalign');\n }\n }\n }\n return $cell;\n },\n\n _renderRow: function(line) {\n // Check length of cells to ensure this is a complete row.\n var cells = line.split('\\t'),\n row = $('
'));\n }\n else {\n // Comment line, just return the one cell.\n row.append(this._renderCell(line, 0, num_columns));\n }\n\n this.row_count++;\n return row;\n },\n\n _renderChunk: function(chunk) {\n var data_table = this.$el.find('table');\n _.each(chunk.ck_data.split('\\n'), function(line, index) {\n if (line !== ''){\n data_table.append(this._renderRow(line));\n }\n }, this);\n }\n});\n\n/**\n * Tabular view that is placed at the top level of page. Scrolling occurs\n * view top-level elements outside of view.\n */\nvar TopLevelTabularDatasetChunkedView = TabularDatasetChunkedView.extend({\n\n initialize: function(options) {\n TabularDatasetChunkedView.prototype.initialize.call(this, options);\n\n // Scrolling happens in top-level elements.\n scroll_elt = _.find(this.$el.parents(), function(p) {\n return $(p).css('overflow') === 'auto';\n });\n\n // If no scrolling element found, use window.\n if (!scroll_elt) { scroll_elt = window; }\n\n // Wrap scrolling element for easy access.\n this.scroll_elt = $(scroll_elt);\n },\n\n /**\n * Returns true if user has scrolled to the bottom of the view.\n */\n scrolled_to_bottom: function() {\n return (this.$el.height() - this.scroll_elt.scrollTop() - this.scroll_elt.height() <= 0);\n }\n\n});\n\n/**\n * Tabular view tnat is embedded in a page. Scrolling occurs in view's el.\n */\nvar EmbeddedTabularDatasetChunkedView = TabularDatasetChunkedView.extend({\n\n initialize: function(options) {\n TabularDatasetChunkedView.prototype.initialize.call(this, options);\n\n // Because view is embedded, set up div to do scrolling.\n this.scroll_elt = this.$el.css({\n position: 'relative',\n overflow: 'scroll',\n height: options.height || '500px'\n });\n },\n\n /**\n * Returns true if user has scrolled to the bottom of the view.\n */\n scrolled_to_bottom: function() {\n return this.$el.scrollTop() + this.$el.innerHeight() >= this.el.scrollHeight;\n }\n\n});\n\n// button for trackster visualization\nvar TabularButtonTracksterView = Backbone.View.extend({\n\n // gene region columns\n col: {\n chrom : null,\n start : null,\n end : null\n },\n\n // url for trackster\n url_viz : null,\n\n // dataset id\n dataset_id : null,\n\n // database key\n genome_build: null,\n\n // data type\n file_ext : null,\n\n // backbone initialize\n initialize: function (options) {\n // check if environment is available\n var Galaxy = parent.Galaxy;\n\n // link galaxy modal or create one\n if (Galaxy && Galaxy.modal) {\n this.modal = Galaxy.modal;\n }\n\n // link galaxy frames\n if (Galaxy && Galaxy.frame) {\n this.frame = Galaxy.frame;\n }\n\n // check\n if (!this.modal || !this.frame) {\n return;\n }\n\n // model/metadata\n var model = options.model;\n var metadata = model.get('metadata');\n\n // check for datatype\n if (!model.get('file_ext')) {\n return;\n }\n\n // get data type\n this.file_ext = model.get('file_ext');\n\n // check for bed-file format\n if (this.file_ext == 'bed')\n {\n // verify that metadata exists\n if (metadata.get('chromCol') && metadata.get('startCol') && metadata.get('endCol'))\n {\n // read in columns\n this.col.chrom = metadata.get('chromCol') - 1;\n this.col.start = metadata.get('startCol') - 1;\n this.col.end = metadata.get('endCol') - 1;\n } else {\n console.log('TabularButtonTrackster : Bed-file metadata incomplete.');\n return;\n }\n }\n\n // check for vcf-file format\n if (this.file_ext == 'vcf')\n {\n // search array\n function search (str, array) {\n for (var j = 0; j < array.length; j++)\n if (array[j].match(str)) return j;\n return -1;\n };\n\n // load\n this.col.chrom = search('Chrom', metadata.get('column_names'));\n this.col.start = search('Pos', metadata.get('column_names'));\n this.col.end = null;\n\n // verify that metadata exists\n if (this.col.chrom == -1 || this.col.start == -1) {\n console.log('TabularButtonTrackster : VCF-file metadata incomplete.');\n return;\n }\n }\n\n // check\n if(this.col.chrom === undefined) {\n return;\n }\n\n // get dataset id\n if (model.id) {\n this.dataset_id = model.id;\n } else {\n console.log('TabularButtonTrackster : Dataset identification is missing.');\n return;\n }\n\n // get url\n if (model.get('url_viz')) {\n this.url_viz = model.get('url_viz');\n } else {\n console.log('TabularButtonTrackster : Url for visualization controller is missing.');\n return;\n }\n\n // get genome_build / database key\n if (model.get('genome_build')) {\n this.genome_build = model.get('genome_build');\n }\n\n // create the icon\n var btn_viz = new mod_icon_btn.IconButtonView({\n model : new mod_icon_btn.IconButton({\n title : 'Visualize',\n icon_class : 'chart_curve',\n id : 'btn_viz'\n })\n });\n\n // set element\n this.setElement(options.$el);\n\n // add to element\n this.$el.append(btn_viz.render().$el);\n\n // hide the button\n this.hide();\n },\n\n // backbone events\n events:\n {\n 'mouseover tr' : 'show',\n 'mouseleave' : 'hide'\n },\n\n // show button\n show: function (e) {\n // is numeric\n function is_numeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n };\n\n // check\n if(this.col.chrom === null)\n return;\n\n // get selected data line\n var row = $(e.target).parent();\n\n // verify that location has been found\n var chrom = row.children().eq(this.col.chrom).html();\n var start = row.children().eq(this.col.start).html();\n\n // end is optional\n var end = this.col.end ? row.children().eq(this.col.end).html() : start;\n\n // double check location\n if (!chrom.match(\"^#\") && chrom !== \"\" && is_numeric(start)) {\n\n // get target gene region\n var btn_viz_pars = {\n dataset_id : this.dataset_id,\n gene_region : chrom + \":\" + start + \"-\" + end\n };\n\n // get button position\n var offset = row.offset();\n var left = offset.left - 10;\n var top = offset.top - $(window).scrollTop() + 3;\n\n // update css\n $('#btn_viz').css({'position': 'fixed', 'top': top + 'px', 'left': left + 'px'});\n $('#btn_viz').off('click');\n $('#btn_viz').click(this.create_trackster_action(this.url_viz, btn_viz_pars, this.genome_build));\n\n // show the button\n $('#btn_viz').show();\n } else {\n // hide the button\n $('#btn_viz').hide();\n }\n },\n\n // hide button\n hide: function () {\n this.$el.find('#btn_viz').hide();\n },\n\n // create action\n create_trackster_action : function (vis_url, dataset_params, dbkey) {\n // link this\n var self = this;\n\n // create function\n return function() {\n var listTracksParams = {};\n if (dbkey) {\n listTracksParams[ 'f-dbkey' ] = dbkey;\n }\n $.ajax({\n url: vis_url + '/list_tracks?' + $.param( listTracksParams ),\n dataType: 'html',\n error: function() {\n // show error message\n self.modal.show({\n title : 'Something went wrong!',\n body : 'Unfortunately we could not add this dataset to the track browser. Please try again or contact us.',\n buttons : {\n 'Cancel': function(){\n self.modal.hide();\n }\n }\n });\n },\n success: function(table_html) {\n self.modal.show({\n title : 'View Data in a New or Saved Visualization',\n buttons :{\n 'Cancel': function(){\n self.modal.hide();\n },\n 'View in saved visualization': function(){\n // show modal with saved visualizations\n self.modal.show(\n {\n title : 'Add Data to Saved Visualization',\n body : table_html,\n buttons : {\n 'Cancel': function(){\n self.modal.hide();\n },\n 'Add to visualization': function(){\n // hide\n self.modal.hide();\n\n // search selected fields\n self.modal.$el.find('input[name=id]:checked').each(function(){\n // get visualization id\n var vis_id = $(this).val();\n dataset_params.id = vis_id;\n\n // add widget\n self.frame.add({\n title : 'Trackster',\n type : 'url',\n content : vis_url + '/trackster?' + $.param(dataset_params)\n });\n });\n }\n }\n });\n },\n 'View in new visualization': function(){\n // hide\n self.modal.hide();\n\n // add widget\n self.frame.add({\n title : 'Trackster',\n type : 'url',\n content : vis_url + '/trackster?' + $.param(dataset_params)\n });\n }\n }\n });\n }\n });\n return false;\n };\n }\n});\n\n// -- Utility functions. --\n\n/**\n * Create a model, attach it to a view, render view, and attach it to a parent element.\n */\nvar createModelAndView = function(model, view, model_config, parent_elt) {\n // Create model, view.\n var a_view = new view({\n model: new model(model_config)\n });\n\n // Render view and add to parent element.\n a_view.render();\n if (parent_elt) {\n parent_elt.append(a_view.$el);\n }\n\n return a_view;\n};\n\n/**\n * Create a tabular dataset chunked view (and requisite tabular dataset model)\n * and appends to parent_elt.\n */\nvar createTabularDatasetChunkedView = function(options) {\n // If no model, create and set model from dataset config.\n if (!options.model) {\n options.model = new TabularDataset(options.dataset_config);\n }\n\n var parent_elt = options.parent_elt;\n var embedded = options.embedded;\n\n // Clean up options so that only needed options are passed to view.\n delete options.embedded;\n delete options.parent_elt;\n delete options.dataset_config;\n\n // Create and set up view.\n var view = (embedded ? new EmbeddedTabularDatasetChunkedView(options) :\n new TopLevelTabularDatasetChunkedView(options));\n view.render();\n\n if (parent_elt) {\n parent_elt.append(view.$el);\n // If we're sticking this in another element, once it's appended check\n // to make sure we've filled enough space.\n // Without this, the scroll elements don't work.\n view.expand_to_container();\n }\n\n return view;\n};\n\nreturn {\n Dataset: Dataset,\n TabularDataset: TabularDataset,\n DatasetCollection: DatasetCollection,\n TabularDatasetChunkedView: TabularDatasetChunkedView,\n createTabularDatasetChunkedView: createTabularDatasetChunkedView\n};\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/dataset/data.js\n ** module id = 16\n ** module chunks = 0 1 2\n **/","define([\n //jquery\n //backbone\n], function(){\n//=============================================================================\n/**\n * backbone model for icon buttons\n */\nvar IconButton = Backbone.Model.extend({\n defaults: {\n title : \"\",\n icon_class : \"\",\n on_click : null,\n menu_options : null,\n is_menu_button : true,\n id : null,\n href : null,\n target : null,\n enabled : true,\n visible : true,\n tooltip_config : {}\n }\n});\n\n/**\n * backbone view for icon buttons\n */\nvar IconButtonView = Backbone.View.extend({\n\n initialize : function(){\n // better rendering this way\n this.model.attributes.tooltip_config = { placement : 'bottom' };\n this.model.bind( 'change', this.render, this );\n },\n\n render : function( ){\n // hide tooltip\n this.$el.tooltip( 'hide' );\n\n var new_elem = this.template( this.model.toJSON() );\n // configure tooltip\n new_elem.tooltip( this.model.get( 'tooltip_config' ));\n this.$el.replaceWith( new_elem );\n this.setElement( new_elem );\n return this;\n },\n\n events : {\n 'click' : 'click'\n },\n\n click : function( event ){\n // if on_click pass to that function\n if( _.isFunction( this.model.get( 'on_click' ) ) ){\n this.model.get( 'on_click' )( event );\n return false;\n }\n // otherwise, bubble up ( to href or whatever )\n return true;\n },\n\n // generate html element\n template: function( options ){\n var buffer = 'title=\"' + options.title + '\" class=\"icon-button';\n\n if( options.is_menu_button ){\n buffer += ' menu-button';\n }\n\n buffer += ' ' + options.icon_class;\n\n if( !options.enabled ){\n buffer += '_disabled';\n }\n\n // close class tag\n buffer += '\"';\n\n if( options.id ){\n buffer += ' id=\"' + options.id + '\"';\n }\n\n buffer += ' href=\"' + options.href + '\"';\n // add target for href\n if( options.target ){\n buffer += ' target=\"' + options.target + '\"';\n }\n // set visibility\n if( !options.visible ){\n buffer += ' style=\"display: none;\"';\n }\n\n // enabled/disabled\n if ( options.enabled ){\n buffer = '';\n } else {\n buffer = '';\n }\n\n // return element\n return $( buffer );\n }\n} );\n\n// define collection\nvar IconButtonCollection = Backbone.Collection.extend({\n model: IconButton\n});\n\n/**\n * menu with multiple icon buttons\n * views are not needed nor used for individual buttons\n */\nvar IconButtonMenuView = Backbone.View.extend({\n\n tagName: 'div',\n\n initialize: function(){\n this.render();\n },\n\n render: function(){\n // initialize icon buttons\n var self = this;\n this.collection.each(function(button){\n // create and add icon button to menu\n var elt = $('')\n .attr('href', 'javascript:void(0)')\n .attr('title', button.attributes.title)\n .addClass('icon-button menu-button')\n .addClass(button.attributes.icon_class)\n .appendTo(self.$el)\n .click(button.attributes.on_click);\n\n // configure tooltip\n if (button.attributes.tooltip_config){\n elt.tooltip(button.attributes.tooltip_config);\n }\n\n // add popup menu to icon\n var menu_options = button.get('options');\n if (menu_options){\n make_popupmenu(elt, menu_options);\n }\n });\n\n // return\n return this;\n }\n});\n\n/**\n * Returns an IconButtonMenuView for the provided configuration.\n * Configuration is a list of dictionaries where each dictionary\n * defines an icon button. Each dictionary must have the following\n * elements: icon_class, title, and on_click.\n */\nvar create_icon_buttons_menu = function(config, global_config)\n{\n // initialize global configuration\n if (!global_config) global_config = {};\n\n // create and initialize menu\n var buttons = new IconButtonCollection(\n _.map(config, function(button_config){\n return new IconButton(_.extend(button_config, global_config));\n })\n );\n\n // return menu\n return new IconButtonMenuView( {collection: buttons} );\n};\n\n\n//=============================================================================\n return {\n IconButton : IconButton,\n IconButtonView : IconButtonView,\n IconButtonCollection : IconButtonCollection,\n IconButtonMenuView : IconButtonMenuView,\n create_icon_buttons_menu: create_icon_buttons_menu\n };\n})\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/ui/icon-button.js\n ** module id = 19\n ** module chunks = 0 1 2\n **/","/**\n This is the regular tool form.\n*/\ndefine(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tool/tool-form-base', 'mvc/tool/tool-template'],\n function( Utils, Ui, ToolFormBase, ToolTemplate ) {\n var View = ToolFormBase.extend({\n initialize: function( options ) {\n var self = this;\n ToolFormBase.prototype.initialize.call( this, Utils.merge({\n customize : function( options ) {\n // build execute button\n options.buttons = {\n execute : execute_btn = new Ui.Button({\n icon : 'fa-check',\n tooltip : 'Execute: ' + options.name + ' (' + options.version + ')',\n title : 'Execute',\n cls : 'ui-button btn btn-primary',\n floating : 'clear',\n onclick : function() {\n execute_btn.wait();\n self.portlet.disable();\n self.submit( options, function() {\n execute_btn.unwait();\n self.portlet.enable();\n } );\n }\n })\n };\n // remap feature\n if ( options.job_id && options.job_remap ) {\n options.inputs[ 'rerun_remap_job_id' ] = {\n label : 'Resume dependencies from this job',\n name : 'rerun_remap_job_id',\n type : 'select',\n display : 'radio',\n ignore : '__ignore__',\n value : '__ignore__',\n options : [ [ 'Yes', options.job_id ], [ 'No', '__ignore__' ] ],\n help : 'The previous run of this tool failed and other tools were waiting for it to finish successfully. Use this option to resume those tools using the new output(s) of this tool run.'\n }\n }\n }\n }, options ) );\n },\n\n /** Submit a regular job.\n * @param{dict} options - Specifies tool id and version\n * @param{function} callback - Called when request has completed\n */\n submit: function( options, callback ) {\n var self = this;\n var job_def = {\n tool_id : options.id,\n tool_version : options.version,\n inputs : this.data.create()\n }\n this.trigger( 'reset' );\n if ( !self.validate( job_def ) ) {\n Galaxy.emit.debug( 'tool-form::submit()', 'Submission canceled. Validation failed.' );\n callback && callback();\n return;\n }\n Galaxy.emit.debug( 'tool-form::submit()', 'Validation complete.', job_def );\n Utils.request({\n type : 'POST',\n url : Galaxy.root + 'api/tools',\n data : job_def,\n success : function( response ) {\n callback && callback();\n self.$el.empty().append( ToolTemplate.success( response ) );\n parent.Galaxy && parent.Galaxy.currHistoryPanel && parent.Galaxy.currHistoryPanel.refreshContents();\n },\n error : function( response ) {\n callback && callback();\n Galaxy.emit.debug( 'tool-form::submit', 'Submission failed.', response );\n if ( response && response.err_data ) {\n var error_messages = self.data.matchResponse( response.err_data );\n for (var input_id in error_messages) {\n self.highlight( input_id, error_messages[ input_id ]);\n break;\n }\n } else {\n self.modal.show({\n title : 'Job submission failed',\n body : ( response && response.err_msg ) || ToolTemplate.error( job_def ),\n buttons : {\n 'Close' : function() {\n self.modal.hide();\n }\n }\n });\n }\n }\n });\n },\n\n /** Validate job dictionary.\n * @param{dict} job_def - Job execution dictionary\n */\n validate: function( job_def ) {\n var job_inputs = job_def.inputs;\n var batch_n = -1;\n var batch_src = null;\n for ( var job_input_id in job_inputs ) {\n var input_value = job_inputs[ job_input_id ];\n var input_id = this.data.match( job_input_id );\n var input_field = this.field_list[ input_id ];\n var input_def = this.input_list[ input_id ];\n if ( !input_id || !input_def || !input_field ) {\n Galaxy.emit.debug('tool-form::validate()', 'Retrieving input objects failed.');\n continue;\n }\n if ( !input_def.optional && input_value == null ) {\n this.highlight( input_id );\n return false;\n }\n if ( input_value && input_value.batch ) {\n var n = input_value.values.length;\n var src = n > 0 && input_value.values[ 0 ] && input_value.values[ 0 ].src;\n if ( src ) {\n if ( batch_src === null ) {\n batch_src = src;\n } else if ( batch_src !== src ) {\n this.highlight( input_id, 'Please select either dataset or dataset list fields for all batch mode fields.' );\n return false;\n }\n }\n if ( batch_n === -1 ) {\n batch_n = n;\n } else if ( batch_n !== n ) {\n this.highlight( input_id, 'Please make sure that you select the same number of inputs for all batch mode fields. This field contains ' + n + ' selection(s) while a previous field contains ' + batch_n + '.' );\n return false;\n }\n }\n }\n return true;\n }\n });\n\n return {\n View: View\n };\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/tool/tool-form.js\n ** module id = 20\n ** module chunks = 0 2\n **/","/**\n * This class contains backbone wrappers for basic ui elements such as Images, Labels, Buttons, Input fields etc.\n */\ndefine(['utils/utils',\n 'mvc/ui/ui-select-default',\n 'mvc/ui/ui-slider',\n 'mvc/ui/ui-options',\n 'mvc/ui/ui-drilldown',\n 'mvc/ui/ui-buttons',\n 'mvc/ui/ui-modal'],\n function( Utils, Select, Slider, Options, Drilldown, Buttons, Modal ) {\n\n /** Label wrapper */\n var Label = Backbone.View.extend({\n tagName: 'label',\n initialize: function( options ) {\n this.model = options && options.model || new Backbone.Model( options );\n this.tagName = options.tagName || this.tagName;\n this.setElement( $( '<' + this.tagName + '/>' ) );\n this.listenTo( this.model, 'change', this.render, this );\n this.render();\n },\n title: function( new_title ) {\n this.model.set( 'title', new_title );\n },\n value: function() {\n return this.model.get( 'title' );\n },\n render: function() {\n this.$el.removeClass()\n .addClass( 'ui-label' )\n .addClass( this.model.get( 'cls' ) )\n .html( this.model.get( 'title' ) );\n return this;\n }\n });\n\n /** Displays messages used e.g. in the tool form */\n var Message = Backbone.View.extend({\n initialize: function( options ) {\n this.model = options && options.model || new Backbone.Model({\n message : null,\n status : 'info',\n cls : '',\n persistent : false\n }).set( options );\n this.listenTo( this.model, 'change', this.render, this );\n this.render();\n },\n update: function( options ) {\n this.model.set( options );\n },\n render: function() {\n this.$el.removeClass().addClass( 'ui-message' ).addClass( this.model.get( 'cls' ) );\n var status = this.model.get( 'status' );\n if ( this.model.get( 'large' ) ) {\n this.$el.addClass((( status == 'success' && 'done' ) ||\n ( status == 'danger' && 'error' ) ||\n status ) + 'messagelarge' );\n } else {\n this.$el.addClass( 'alert' ).addClass( 'alert-' + status );\n }\n if ( this.model.get( 'message' ) ) {\n this.$el.html( this.model.get( 'message' ) );\n this.$el.fadeIn();\n this.timeout && window.clearTimeout( this.timeout );\n if ( !this.model.get( 'persistent' ) ) {\n var self = this;\n this.timeout = window.setTimeout( function() {\n self.$el.fadeOut();\n }, 3000 );\n }\n } else {\n this.$el.fadeOut();\n }\n return this;\n }\n });\n\n /** Renders an input element used e.g. in the tool form */\n var Input = Backbone.View.extend({\n initialize: function( options ) {\n this.model = options && options.model || new Backbone.Model({\n type : 'text',\n placeholder : '',\n disabled : false,\n visible : true,\n cls : '',\n area : false\n }).set( options );\n this.tagName = this.model.get( 'area' ) ? 'textarea' : 'input';\n this.setElement( $( '<' + this.tagName + '/>' ) );\n this.listenTo( this.model, 'change', this.render, this );\n this.render();\n },\n events: {\n 'input': '_onchange'\n },\n value: function( new_val ) {\n new_val !== undefined && this.model.set( 'value', typeof new_val === 'string' ? new_val : '' );\n return this.model.get( 'value' );\n },\n render: function() {\n this.$el.removeClass()\n .addClass( 'ui-' + this.tagName )\n .addClass( this.model.get( 'cls' ) )\n .attr( 'id', this.model.id )\n .attr( 'type', this.model.get( 'type' ) )\n .attr( 'placeholder', this.model.get( 'placeholder' ) )\n .val( this.model.get( 'value' ) );\n this.model.get( 'disabled' ) ? this.$el.attr( 'disabled', true ) : this.$el.removeAttr( 'disabled' );\n this.$el[ this.model.get( 'visible' ) ? 'show' : 'hide' ]();\n return this;\n },\n _onchange: function() {\n this.value( this.$el.val() );\n this.model.get( 'onchange' ) && this.model.get( 'onchange' )( this.model.get( 'value' ) );\n }\n });\n\n /** Creates a hidden element input field used e.g. in the tool form */\n var Hidden = Backbone.View.extend({\n initialize: function( options ) {\n this.model = options && options.model || new Backbone.Model( options );\n this.setElement( $ ( '
' ).append( this.$info = $( '
' ) )\n .append( this.$hidden = $( '
' ) ) );\n this.listenTo( this.model, 'change', this.render, this );\n this.render();\n },\n value: function( new_val ) {\n new_val !== undefined && this.model.set( 'value', new_val );\n return this.model.get( 'value' );\n },\n render: function() {\n this.$el.attr( 'id', this.model.id );\n this.$hidden.val( this.model.get( 'value' ) );\n this.model.get( 'info' ) ? this.$info.show().html( this.model.get( 'info' ) ) : this.$info.hide();\n return this;\n }\n });\n\n return {\n Button : Buttons.ButtonDefault,\n ButtonIcon : Buttons.ButtonIcon,\n ButtonCheck : Buttons.ButtonCheck,\n ButtonMenu : Buttons.ButtonMenu,\n ButtonLink : Buttons.ButtonLink,\n Input : Input,\n Label : Label,\n Message : Message,\n Modal : Modal,\n RadioButton : Options.RadioButton,\n Checkbox : Options.Checkbox,\n Radio : Options.Radio,\n Select : Select,\n Hidden : Hidden,\n Slider : Slider,\n Drilldown : Drilldown\n }\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/ui/ui-misc.js\n ** module id = 22\n ** module chunks = 0 2\n **/","/**\n * This class creates/wraps a default html select field as backbone class.\n */\ndefine(['utils/utils', 'mvc/ui/ui-buttons'], function(Utils, Buttons) {\nvar View = Backbone.View.extend({\n // options\n optionsDefault: {\n id : Utils.uid(),\n cls : 'ui-select',\n error_text : 'No options available',\n empty_text : 'Nothing selected',\n visible : true,\n wait : false,\n multiple : false,\n searchable : true,\n optional : false\n },\n\n // initialize\n initialize: function(options) {\n // link this\n var self = this;\n this.model = new Backbone.Model();\n\n // configure options\n this.options = Utils.merge(options, this.optionsDefault);\n\n // create new element\n this.setElement(this._template(this.options));\n\n // link elements\n this.$select = this.$el.find('.select');\n this.$icon_dropdown = this.$el.find('.icon-dropdown');\n this.$icon_dropdown.on( 'click', function() { self.$select.select2 && self.$select.select2( 'open' ) });\n\n // allow regular multi-select field to be resized\n var minHeight = null;\n this.$('.icon-resize').on('mousedown', function(event) {\n var currentY = event.pageY;\n var currentHeight = self.$select.height();\n minHeight = minHeight || currentHeight;\n $('#dd-helper').show().on('mousemove', function(event) {\n self.$select.height(Math.max(currentHeight + (event.pageY - currentY), minHeight));\n }).on('mouseup mouseleave', function() {\n $('#dd-helper').hide().off();\n });\n });\n\n // multiple select fields have an additional button and other custom properties\n if (this.options.multiple) {\n // create select all button\n if (this.options.searchable) {\n this.all_button = new Buttons.ButtonCheck({\n onclick: function() {\n var new_value = [];\n if (self.all_button.value() !== 0) {\n new_value = self._availableOptions();\n }\n self.value(new_value);\n self.trigger('change');\n }\n });\n this.$el.prepend(this.all_button.$el);\n } else {\n this.$el.addClass('ui-select-multiple');\n }\n this.$select.prop('multiple', true);\n this.$icon_dropdown.remove();\n }\n\n // update initial options\n this.update(this.options.data);\n\n // set initial value\n if (this.options.value !== undefined) {\n this.value(this.options.value);\n }\n\n // show/hide\n if (!this.options.visible) {\n this.hide();\n }\n\n // wait\n if (this.options.wait) {\n this.wait();\n } else {\n this.show();\n }\n\n // add change event. fires only on user activity\n this.$select.on('change', function() {\n self.trigger('change');\n });\n\n // add change event. fires on trigger\n this.on('change', function() {\n self.options.onchange && self.options.onchange(this.value());\n });\n },\n\n /** Return/Set current selection\n */\n value: function (new_value) {\n // set new value\n if (new_value !== undefined) {\n if (new_value === null) {\n new_value = '__null__';\n }\n if (this.exists(new_value) || this.options.multiple) {\n this.$select.val(new_value);\n if (this.$select.select2) {\n this.$select.select2('val', new_value);\n }\n }\n }\n // get current value\n var current = this._getValue();\n if (this.all_button) {\n this.all_button.value($.isArray(current) && current.length || 0, this._size());\n }\n return current;\n },\n\n /** Return the first select option\n */\n first: function() {\n var options = this.$select.find('option').first();\n if (options.length > 0) {\n return options.val();\n } else {\n return null;\n }\n },\n\n /** Return the label/text of the current selection\n */\n text: function () {\n return this.$select.find('option:selected').text();\n },\n\n /** Show the select field\n */\n show: function() {\n this.unwait();\n this.$select.show();\n this.$el.show();\n },\n\n /** Hide the select field\n */\n hide: function() {\n this.$el.hide();\n },\n\n /** Show a spinner indicating that the select options are currently loaded\n */\n wait: function() {\n this.$icon_dropdown.removeClass();\n this.$icon_dropdown.addClass('icon-dropdown fa fa-spinner fa-spin');\n },\n\n /** Hide spinner indicating that the request has been completed\n */\n unwait: function() {\n this.$icon_dropdown.removeClass();\n this.$icon_dropdown.addClass('icon-dropdown fa fa-caret-down');\n },\n\n /** Returns true if the field is disabled\n */\n disabled: function() {\n return this.$select.is(':disabled');\n },\n\n /** Enable the select field\n */\n enable: function() {\n this.$select.prop('disabled', false);\n },\n\n /** Disable the select field\n */\n disable: function() {\n this.$select.prop('disabled', true);\n },\n\n /** Update all available options at once\n */\n add: function( options, sorter ) {\n _.each( this.model.get( 'options' ), function( v ) {\n !_.findWhere( options, v ) && options.push( v );\n });\n sorter && options && options.sort( sorter );\n this.update( options );\n },\n update: function(options) {\n // backup current value\n var current = this._getValue();\n\n // remove all options\n this.$select.find('option').remove();\n\n // add optional field\n if (!this.options.multiple && this.options.optional) {\n this.$select.append(this._templateOption({value : '__null__', label : this.options.empty_text}));\n }\n\n // add new options\n this.model.set( 'options', options );\n for (var key in options) {\n this.$select.append(this._templateOption(options[key]));\n }\n\n // count remaining entries\n if (this._size() == 0) {\n // disable select field\n this.disable();\n\n // create placeholder\n this.$select.append(this._templateOption({value : '__null__', label : this.options.error_text}));\n } else {\n // enable select field\n this.enable();\n }\n\n // update to searchable field (in this case select2)\n if (this.options.searchable) {\n this.$select.select2('destroy');\n this.$select.select2({ closeOnSelect: !this.options.multiple });\n this.$( '.select2-container .select2-search input' ).off( 'blur' );\n }\n\n // set previous value\n this.value(current);\n\n // check if any value was set\n if (this._getValue() === null && !(this.options.multiple && this.options.optional)) {\n this.value(this.first());\n }\n },\n\n /** Set the custom onchange callback function\n */\n setOnChange: function(callback) {\n this.options.onchange = callback;\n },\n\n /** Check if a value is an existing option\n */\n exists: function(value) {\n return this.$select.find('option[value=\"' + value + '\"]').length > 0;\n },\n\n /** Get current value from dom\n */\n _getValue: function() {\n var val = this.$select.val();\n if (!Utils.validate(val)) {\n return null;\n }\n return val;\n },\n\n /** Returns all currently available options\n */\n _availableOptions: function() {\n var available = [];\n this.$select.find('option').each(function(i, e){\n available.push($(e).attr('value'));\n });\n return available;\n },\n\n /** Number of available options\n */\n _size: function() {\n return this.$select.find('option').length;\n },\n\n /** Template for select options\n */\n _templateOption: function(options) {\n return '';\n },\n\n /** Template for select view\n */\n _template: function(options) {\n return '
' +\n '' +\n '
' +\n '
';\n }\n});\n\nreturn {\n View : View\n};\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/ui/ui-slider.js\n ** module id = 25\n ** module chunks = 0 2\n **/","// dependencies\ndefine(['utils/utils', 'mvc/ui/ui-buttons'], function(Utils, Buttons) {\n\n/** Base class for options based ui elements **/\nvar Base = Backbone.View.extend({\n // initialize\n initialize: function(options) {\n // link this\n var self = this;\n\n // configure options\n this.options = Utils.merge(options, {\n visible : true,\n data : [],\n id : Utils.uid(),\n error_text : 'No options available.',\n wait_text : 'Please wait...',\n multiple : false\n });\n\n // create new element\n this.setElement('
');\n\n // create elements\n this.$message = $('
');\n this.$options = $(this._template(options));\n this.$menu = $('
');\n\n // append\n this.$el.append(this.$message);\n this.$el.append(this.$menu);\n this.$el.append(this.$options);\n\n // add select/unselect all button\n if (this.options.multiple) {\n this.all_button = new Buttons.ButtonCheck({\n onclick: function() {\n self.$('input').prop('checked', self.all_button.value() !== 0);\n self.trigger('change');\n }\n });\n this.$menu.append(this.all_button.$el);\n }\n\n // hide input field\n if (!this.options.visible) {\n this.$el.hide();\n }\n\n // initialize data\n this.update(this.options.data);\n\n // set initial value\n if (this.options.value !== undefined) {\n this.value(this.options.value);\n }\n\n // add change event. fires on trigger\n this.on('change', function() {\n this.options.onchange && this.options.onchange(this.value());\n });\n },\n\n /** Update options\n */\n update: function(options) {\n // backup current value\n var current = this._getValue();\n\n // remove all options\n this.$options.empty();\n\n // add new options using single option templates or full template\n if (this._templateOptions) {\n // rebuild options using full template\n this.$options.append(this._templateOptions(options));\n } else {\n // rebuild options using single option templates\n for (var key in options) {\n var $option = $(this._templateOption(options[key]));\n $option.addClass('ui-option');\n $option.tooltip({title: options[key].tooltip, placement: 'bottom'});\n this.$options.append($option);\n }\n }\n\n // add change events\n var self = this;\n this.$('input').on('change', function() {\n self.value(self._getValue());\n self.trigger('change');\n });\n\n // set previous value\n this.value(current);\n\n // data initialization has been completed\n this.unwait();\n },\n\n /** Return/Set current value\n */\n value: function (new_value) {\n // set new value if available\n if (new_value !== undefined) {\n // reset selection\n this.$('input').prop('checked', false);\n // set value\n if (new_value !== null) {\n // check if its an array\n if (!(new_value instanceof Array)) {\n new_value = [new_value];\n }\n // update to new selection\n for (var i in new_value) {\n this.$('input[value=\"' + new_value[i] + '\"]').first().prop('checked', true);\n }\n };\n }\n // get current value\n var current = this._getValue();\n if (this.all_button) {\n var value = current;\n if (!(value instanceof Array)) {\n value = 0;\n } else {\n value = value.length;\n }\n this.all_button.value(value, this._size());\n }\n return current;\n },\n\n /** Check if selected value exists (or any if multiple)\n */\n exists: function(value) {\n if (value !== undefined) {\n if (!(value instanceof Array)) {\n value = [value];\n }\n for (var i in value) {\n if (this.$('input[value=\"' + value[i] + '\"]').length > 0) {\n return true;\n }\n }\n }\n return false;\n },\n\n /** Return first available option\n */\n first: function() {\n var options = this.$('input').first();\n if (options.length > 0) {\n return options.val();\n } else {\n return null;\n }\n },\n\n /** Wait message during request processing\n */\n wait: function() {\n if (this._size() == 0) {\n this._messageShow(this.options.wait_text, 'info');\n this.$options.hide();\n this.$menu.hide();\n }\n },\n\n /** Hide wait message\n */\n unwait: function() {\n var total = this._size();\n if (total == 0) {\n this._messageShow(this.options.error_text, 'danger');\n this.$options.hide();\n this.$menu.hide();\n } else {\n this._messageHide();\n this.$options.css('display', 'inline-block');\n this.$menu.show();\n }\n },\n\n /** Return current selection\n */\n _getValue: function() {\n // track values in array\n var selected = [];\n this.$(':checked').each(function() {\n selected.push($(this).val());\n });\n\n // get selected elements\n if (!Utils.validate(selected)) {\n return null;\n }\n\n // return multiple or single value\n if (this.options.multiple) {\n return selected;\n } else {\n return selected[0];\n }\n },\n\n /** Returns the number of options\n */\n _size: function() {\n return this.$('.ui-option').length;\n },\n\n /** Show message instead if options\n */\n _messageShow: function(text, status) {\n this.$message.show();\n this.$message.removeClass();\n this.$message.addClass('ui-message alert alert-' + status);\n this.$message.html(text);\n },\n\n /** Hide message\n */\n _messageHide: function() {\n this.$message.hide();\n },\n\n /** Main template function\n */\n _template: function() {\n return '
';\n }\n});\n\n/** Iconized **/\nvar BaseIcons = Base.extend({\n _templateOption: function(pair) {\n var id = Utils.uid();\n return '
' +\n '' +\n '' +\n '
';\n }\n});\n\n/** Radio button field **/\nvar Radio = {};\nRadio.View = BaseIcons.extend({\n initialize: function(options) {\n options.type = 'radio';\n BaseIcons.prototype.initialize.call(this, options);\n }\n});\n\n/** Checkbox options field **/\nvar Checkbox = {};\nCheckbox.View = BaseIcons.extend({\n initialize: function(options) {\n options.multiple = true;\n options.type = 'checkbox';\n BaseIcons.prototype.initialize.call(this, options);\n }\n});\n\n/** Radio button options field styled as classic buttons **/\nvar RadioButton = {};\nRadioButton.View = Base.extend({\n // initialize\n initialize: function(options) {\n Base.prototype.initialize.call(this, options);\n },\n\n /** Return/Set current value\n */\n value: function (new_value) {\n // set new value\n if (new_value !== undefined) {\n this.$('input').prop('checked', false);\n this.$('label').removeClass('active');\n this.$('[value=\"' + new_value + '\"]').prop('checked', true).closest('label').addClass('active');\n }\n\n // get and return value\n return this._getValue();\n },\n\n /** Template for a single option\n */\n _templateOption: function(pair) {\n var cls = 'fa ' + pair.icon;\n if (!pair.label) {\n cls += ' no-padding';\n }\n var tmpl = '';\n return tmpl;\n },\n\n /** Main template function\n */\n _template: function() {\n return '
';\n }\n});\n\nreturn {\n Base : Base,\n BaseIcons : BaseIcons,\n Radio : Radio,\n RadioButton : RadioButton,\n Checkbox : Checkbox\n};\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/ui/ui-options.js\n ** module id = 26\n ** module chunks = 0 2\n **/","// dependencies\ndefine(['utils/utils', 'mvc/ui/ui-options'], function(Utils, Options) {\n\n/**\n * This class creates/wraps a drill down element.\n */\nvar View = Options.BaseIcons.extend({\n // initialize\n initialize: function(options) {\n options.type = options.display || 'checkbox';\n options.multiple = (options.display == 'checkbox');\n Options.BaseIcons.prototype.initialize.call(this, options);\n this.initial = true;\n },\n\n // set expand states for initial value\n value: function (new_val) {\n var val = Options.BaseIcons.prototype.value.call(this, new_val);\n if (this.initial && val !== null && this.header_index) {\n this.initial = false;\n var values = val;\n if (!$.isArray(values)) {\n values = [values];\n }\n for (var i in values) {\n var list = this.header_index[values[i]];\n for (var j in list) {\n this._setState(list[j], true);\n }\n }\n }\n return val;\n },\n\n /** Expand/collapse a sub group\n */\n _setState: function (header_id, is_expanded) {\n var $button = this.$('.button-' + header_id);\n var $subgroup = this.$('.subgroup-' + header_id);\n $button.data('is_expanded', is_expanded);\n if (is_expanded) {\n $subgroup.fadeIn('fast')\n $button.removeClass('fa-plus-square');\n $button.addClass('fa-minus-square');\n } else {\n $subgroup.hide();\n $button.removeClass('fa-minus-square');\n $button.addClass('fa-plus-square');\n }\n },\n\n /** Template to create options tree\n */\n _templateOptions: function(options) {\n // link this\n var self = this;\n\n // link data\n this.header_index = {};\n \n // attach event handler\n function attach($el, header_id) {\n var $button = $el.find('.button-' + header_id);\n $button.on('click', function() {\n self._setState(header_id, !$button.data('is_expanded'));\n });\n }\n\n // recursive function which iterates through options\n function iterate ($tmpl, options, header) {\n header = header || [];\n for (i in options) {\n // current option level in hierarchy\n var level = options[i];\n\n // check for options\n var has_options = level.options.length > 0;\n\n // copy current header list\n var new_header = header.slice(0);\n\n // keep track of header list\n self.header_index[level.value] = new_header.slice(0);\n\n // build template\n var $group = $('
');\n if (has_options) {\n // create button and subgroup\n var header_id = Utils.uid();\n var $button = $('');\n var $subgroup = $('
');\n\n // keep track of button and subgroup\n new_header.push(header_id);\n\n // create expandable header section\n var $buttongroup = $('
');\n $buttongroup.append($button);\n $buttongroup.append(self._templateOption({\n label: level.name,\n value: level.value\n }));\n $group.append($buttongroup);\n iterate($subgroup, level.options, new_header);\n $group.append($subgroup);\n\n // attach expand/collapse events\n attach($group, header_id);\n } else {\n // append child options\n $group.append(self._templateOption({\n label: level.name,\n value: level.value\n }));\n }\n $tmpl.append($group);\n }\n }\n\n // iterate through options and create dom\n var $tmpl = $('
');\n iterate($tmpl, options);\n\n // return template\n return $tmpl;\n },\n\n /** Template for drill down view\n */\n _template: function(options) {\n return '
';\n }\n});\n\nreturn {\n View: View\n}\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/ui/ui-drilldown.js\n ** module id = 27\n ** module chunks = 0 2\n **/","/**\n This is the base class of the tool form plugin. This class is e.g. inherited by the regular and the workflow tool form.\n*/\ndefine(['utils/utils', 'utils/deferred', 'mvc/ui/ui-misc', 'mvc/form/form-view',\n 'mvc/tool/tool-template', 'mvc/citation/citation-model', 'mvc/citation/citation-view'],\n function(Utils, Deferred, Ui, FormBase, ToolTemplate, CitationModel, CitationView) {\n return FormBase.extend({\n initialize: function(options) {\n var self = this;\n FormBase.prototype.initialize.call(this, options);\n this.deferred = new Deferred();\n if (options.inputs) {\n this._buildForm(options);\n options.needs_update && this.deferred.execute( function( process ) {\n self._updateModel( process );\n });\n } else {\n this.deferred.execute(function(process) {\n self._buildModel(process, options, true);\n });\n }\n },\n\n /** Wait for deferred build processes before removal */\n remove: function() {\n var self = this;\n this.$el.hide();\n this.deferred.execute(function(){\n FormBase.prototype.remove.call(self);\n Galaxy.emit.debug('tool-form-base::remove()', 'Destroy view.');\n });\n },\n\n /** Build form */\n _buildForm: function(options) {\n var self = this;\n this.options = Utils.merge(options, this.options);\n this.options = Utils.merge({\n icon : ( (options.icon === undefined) && 'fa-wrench' ) || '',\n title : '' + options.name + ' ' + options.description + ' (Galaxy Version ' + options.version + ')',\n operations : this._operations(),\n onchange : function() {\n self.deferred.reset();\n self.deferred.execute(function(process) {\n self._updateModel(process);\n });\n }\n }, this.options);\n this.options.customize && this.options.customize( this.options );\n this.render();\n if ( !this.options.collapsible ) {\n this.$el.append( $( '
' ).addClass( 'ui-margin-top-large' ).append( this._footer() ) );\n }\n },\n\n /** Builds a new model through api call and recreates the entire form\n */\n _buildModel: function(process, options, hide_message) {\n var self = this;\n this.options.id = options.id;\n this.options.version = options.version;\n\n // build request url\n var build_url = '';\n var build_data = {};\n if ( options.job_id ) {\n build_url = Galaxy.root + 'api/jobs/' + options.job_id + '/build_for_rerun';\n } else {\n build_url = Galaxy.root + 'api/tools/' + options.id + '/build';\n if ( Galaxy.params && Galaxy.params.tool_id == options.id ) {\n build_data = $.extend( {}, Galaxy.params );\n options.version && ( build_data[ 'tool_version' ] = options.version );\n }\n }\n\n // get initial model\n Utils.request({\n type : 'GET',\n url : build_url,\n data : build_data,\n success : function(new_model) {\n new_model = new_model.tool_model || new_model;\n if( !new_model.display ) {\n window.location = Galaxy.root;\n return;\n }\n self._buildForm(new_model);\n !hide_message && self.message.update({\n status : 'success',\n message : 'Now you are using \\'' + self.options.name + '\\' version ' + self.options.version + ', id \\'' + self.options.id + '\\'.',\n persistent : false\n });\n Galaxy.emit.debug('tool-form-base::initialize()', 'Initial tool model ready.', new_model);\n process.resolve();\n },\n error : function(response, xhr) {\n var error_message = ( response && response.err_msg ) || 'Uncaught error.';\n if ( xhr.status == 401 ) {\n window.location = Galaxy.root + 'user/login?' + $.param({ redirect : Galaxy.root + '?tool_id=' + self.options.id });\n } else if ( self.$el.is(':empty') ) {\n self.$el.prepend((new Ui.Message({\n message : error_message,\n status : 'danger',\n persistent : true,\n large : true\n })).$el);\n } else {\n Galaxy.modal.show({\n title : 'Tool request failed',\n body : error_message,\n buttons : {\n 'Close' : function() {\n Galaxy.modal.hide();\n }\n }\n });\n }\n Galaxy.emit.debug('tool-form::initialize()', 'Initial tool model request failed.', response);\n process.reject();\n }\n });\n },\n\n /** Request a new model for an already created tool form and updates the form inputs\n */\n _updateModel: function(process) {\n // link this\n var self = this;\n var model_url = this.options.update_url || Galaxy.root + 'api/tools/' + this.options.id + '/build';\n var current_state = {\n tool_id : this.options.id,\n tool_version : this.options.version,\n inputs : $.extend(true, {}, self.data.create())\n }\n this.wait(true);\n\n // log tool state\n Galaxy.emit.debug('tool-form-base::_updateModel()', 'Sending current state.', current_state);\n\n // post job\n Utils.request({\n type : 'POST',\n url : model_url,\n data : current_state,\n success : function(new_model) {\n self.update(new_model['tool_model'] || new_model);\n self.options.update && self.options.update(new_model);\n self.wait(false);\n Galaxy.emit.debug('tool-form-base::_updateModel()', 'Received new model.', new_model);\n process.resolve();\n },\n error : function(response) {\n Galaxy.emit.debug('tool-form-base::_updateModel()', 'Refresh request failed.', response);\n process.reject();\n }\n });\n },\n\n /** Create tool operation menu\n */\n _operations: function() {\n var self = this;\n var options = this.options;\n\n // button for version selection\n var versions_button = new Ui.ButtonMenu({\n icon : 'fa-cubes',\n title : (!options.narrow && 'Versions') || null,\n tooltip : 'Select another tool version'\n });\n if (!options.sustain_version && options.versions && options.versions.length > 1) {\n for (var i in options.versions) {\n var version = options.versions[i];\n if (version != options.version) {\n versions_button.addMenu({\n title : 'Switch to ' + version,\n version : version,\n icon : 'fa-cube',\n onclick : function() {\n // here we update the tool version (some tools encode the version also in the id)\n var id = options.id.replace(options.version, this.version);\n var version = this.version;\n // queue model request\n self.deferred.reset();\n self.deferred.execute(function(process) {\n self._buildModel(process, {id: id, version: version})\n });\n }\n });\n }\n }\n } else {\n versions_button.$el.hide();\n }\n\n // button for options e.g. search, help\n var menu_button = new Ui.ButtonMenu({\n icon : 'fa-caret-down',\n title : (!options.narrow && 'Options') || null,\n tooltip : 'View available options'\n });\n if(options.biostar_url) {\n menu_button.addMenu({\n icon : 'fa-question-circle',\n title : 'Question?',\n tooltip : 'Ask a question about this tool (Biostar)',\n onclick : function() {\n window.open(options.biostar_url + '/p/new/post/');\n }\n });\n menu_button.addMenu({\n icon : 'fa-search',\n title : 'Search',\n tooltip : 'Search help for this tool (Biostar)',\n onclick : function() {\n window.open(options.biostar_url + '/local/search/page/?q=' + options.name);\n }\n });\n };\n menu_button.addMenu({\n icon : 'fa-share',\n title : 'Share',\n tooltip : 'Share this tool',\n onclick : function() {\n prompt('Copy to clipboard: Ctrl+C, Enter', window.location.origin + Galaxy.root + 'root?tool_id=' + options.id);\n }\n });\n\n // add admin operations\n if (Galaxy.user && Galaxy.user.get('is_admin')) {\n menu_button.addMenu({\n icon : 'fa-download',\n title : 'Download',\n tooltip : 'Download this tool',\n onclick : function() {\n window.location.href = Galaxy.root + 'api/tools/' + options.id + '/download';\n }\n });\n }\n\n // button for version selection\n if (options.requirements && options.requirements.length > 0) {\n menu_button.addMenu({\n icon : 'fa-info-circle',\n title : 'Requirements',\n tooltip : 'Display tool requirements',\n onclick : function() {\n if (!this.visible) {\n this.visible = true;\n self.message.update({\n persistent : true,\n message : ToolTemplate.requirements(options),\n status : 'info'\n });\n } else {\n this.visible = false;\n self.message.update({\n message : ''\n });\n }\n }\n });\n }\n\n // add toolshed url\n if (options.sharable_url) {\n menu_button.addMenu({\n icon : 'fa-external-link',\n title : 'See in Tool Shed',\n tooltip : 'Access the repository',\n onclick : function() {\n window.open(options.sharable_url);\n }\n });\n }\n\n return {\n menu : menu_button,\n versions : versions_button\n }\n },\n\n /** Create footer\n */\n _footer: function() {\n var options = this.options;\n var $el = $( '
' ).append( ToolTemplate.help( options ) );\n if ( options.citations ) {\n var $citations = $( '
' );\n var citations = new CitationModel.ToolCitationCollection();\n citations.tool_id = options.id;\n var citation_list_view = new CitationView.CitationListView({ el: $citations, collection: citations });\n citation_list_view.render();\n citations.fetch();\n $el.append( $citations );\n }\n return $el;\n }\n });\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/tool/tool-form-base.js\n ** module id = 28\n ** module chunks = 0 2\n **/","/**\n * This class defines a queue to ensure that multiple deferred callbacks are executed sequentially.\n */\ndefine(['utils/utils'], function( Utils ) {\nreturn Backbone.Model.extend({\n initialize: function(){\n this.active = {};\n this.last = null;\n },\n\n /** Adds a callback to the queue. Upon execution a deferred object is parsed to the callback i.e. callback( deferred ).\n * If the callback does not take any arguments, the deferred is resolved instantly.\n */\n execute: function( callback ) {\n var self = this;\n var id = Utils.uid();\n var has_deferred = callback.length > 0;\n\n // register process\n this.active[ id ] = true;\n\n // deferred process\n var process = $.Deferred();\n process.promise().always(function() {\n delete self.active[ id ];\n has_deferred && Galaxy.emit.debug( 'deferred::execute()', this.state().charAt(0).toUpperCase() + this.state().slice(1) + ' ' + id );\n });\n\n // deferred queue\n $.when( this.last ).always(function() {\n if ( self.active[ id ] ) {\n has_deferred && Galaxy.emit.debug( 'deferred::execute()', 'Running ' + id );\n callback( process );\n !has_deferred && process.resolve();\n } else {\n process.reject();\n }\n });\n this.last = process.promise();\n },\n\n /** Resets the promise queue. All currently queued but unexecuted callbacks/promises will be rejected.\n */\n reset: function() {\n Galaxy.emit.debug('deferred::execute()', 'Reset');\n for ( var i in this.active ) {\n this.active[ i ] = false;\n }\n },\n\n /** Returns true if all processes are done.\n */\n ready: function() {\n return $.isEmptyObject( this.active );\n }\n});\n\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/utils/deferred.js\n ** module id = 29\n ** module chunks = 0 2\n **/","/**\n This is the main class of the form plugin. It is referenced as 'app' in all lower level modules.\n*/\ndefine(['utils/utils', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc', 'mvc/form/form-section', 'mvc/form/form-data'],\n function(Utils, Portlet, Ui, FormSection, FormData) {\n return Backbone.View.extend({\n initialize: function(options) {\n this.options = Utils.merge(options, {\n initial_errors : false,\n cls : 'ui-portlet-limited',\n icon : ''\n });\n this.modal = ( parent.Galaxy && parent.Galaxy.modal ) || new Ui.Modal.View();\n this.setElement('
');\n this.render();\n },\n\n /** Update available options */\n update: function(new_model){\n var self = this;\n this.data.matchModel(new_model, function(input_id, node) {\n var input = self.input_list[input_id];\n if (input && input.options) {\n if (!_.isEqual(input.options, node.options)) {\n // backup new options\n input.options = node.options;\n\n // get/update field\n var field = self.field_list[input_id];\n if (field.update) {\n var new_options = [];\n if ((['data', 'data_collection', 'drill_down']).indexOf(input.type) != -1) {\n new_options = input.options;\n } else {\n for (var i in node.options) {\n var opt = node.options[i];\n if (opt.length > 2) {\n new_options.push({\n 'label': opt[0],\n 'value': opt[1]\n });\n }\n }\n }\n field.update(new_options);\n field.trigger('change');\n Galaxy.emit.debug('form-view::update()', 'Updating options for ' + input_id);\n }\n }\n }\n });\n },\n\n /** Set form into wait mode */\n wait: function(active) {\n for (var i in this.input_list) {\n var field = this.field_list[i];\n var input = this.input_list[i];\n if (input.is_dynamic && field.wait && field.unwait) {\n if (active) {\n field.wait();\n } else {\n field.unwait();\n }\n }\n }\n },\n\n /** Highlight and scroll to input element (currently only used for error notifications)\n */\n highlight: function (input_id, message, silent) {\n // get input field\n var input_element = this.element_list[input_id];\n\n // check input element\n if (input_element) {\n // mark error\n input_element.error(message || 'Please verify this parameter.');\n\n // trigger expand event for parent containers\n this.trigger('expand', input_id);\n\n // scroll to first input element\n if (!silent) {\n if (self==top) {\n var $panel = this.$el.parents().filter(function() {\n return $(this).css('overflow') == 'auto';\n }).first();\n $panel.animate({ scrollTop : $panel.scrollTop() + input_element.$el.offset().top - 50 }, 500);\n } else {\n $('html, body').animate({ scrollTop : input_element.$el.offset().top - 20 }, 500);\n }\n }\n }\n },\n\n /** Highlights errors\n */\n errors: function(options) {\n // hide previous error statements\n this.trigger('reset');\n\n // highlight all errors\n if (options && options.errors) {\n var error_messages = this.data.matchResponse(options.errors);\n for (var input_id in this.element_list) {\n var input = this.element_list[input_id];\n if (error_messages[input_id]) {\n this.highlight(input_id, error_messages[input_id], true);\n }\n }\n }\n },\n\n /** Render tool form\n */\n render: function() {\n // link this\n var self = this;\n\n // reset events\n this.off('change');\n this.off('reset');\n\n // reset field list, which contains the input field elements\n this.field_list = {};\n\n // reset sequential input definition list, which contains the input definitions as provided from the api\n this.input_list = {};\n\n // reset input element list, which contains the dom elements of each input element (includes also the input field)\n this.element_list = {};\n\n // creates a json data structure from the input form\n this.data = new FormData.Manager(this);\n\n // create ui elements\n this._renderForm();\n\n // refresh data\n this.data.create();\n\n // show errors on startup\n if (this.options.initial_errors) {\n this.errors(this.options);\n }\n\n // add listener which triggers on checksum change\n var current_check = this.data.checksum();\n this.on('change', function() {\n var new_check = self.data.checksum();\n if (new_check != current_check) {\n current_check = new_check;\n self.options.onchange && self.options.onchange();\n }\n });\n\n // add reset listener\n this.on('reset', function() {\n for (var i in this.element_list) {\n this.element_list[i].reset();\n }\n });\n return this;\n },\n\n /** Renders the UI elements required for the form\n */\n _renderForm: function() {\n // create message view\n this.message = new Ui.Message();\n\n // create tool form section\n this.section = new FormSection.View(this, {\n inputs : this.options.inputs\n });\n\n // remove tooltips\n $( '.tooltip' ).remove();\n\n // create portlet\n this.portlet = new Portlet.View({\n icon : this.options.icon,\n title : this.options.title,\n cls : this.options.cls,\n operations : this.options.operations,\n buttons : this.options.buttons,\n collapsible : this.options.collapsible,\n collapsed : this.options.collapsed\n });\n\n // append message\n this.portlet.append(this.message.$el);\n\n // append tool section\n this.portlet.append(this.section.$el);\n\n // start form\n this.$el.empty();\n this.$el.append(this.portlet.$el);\n\n // show message if available in model\n if (this.options.message) {\n this.message.update({\n persistent : true,\n status : 'warning',\n message : this.options.message\n });\n }\n\n // log\n Galaxy.emit.debug('form-view::initialize()', 'Completed');\n }\n });\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/form/form-view.js\n ** module id = 30\n ** module chunks = 0 2\n **/","define(['utils/utils'], function( Utils ) {\nvar View = Backbone.View.extend({\n visible : false,\n initialize : function( options ) {\n var self = this;\n this.options = Utils.merge( options, {\n id : Utils.uid(),\n title : '',\n icon : '',\n buttons : null,\n body : null,\n scrollable : true,\n nopadding : false,\n operations : null,\n placement : 'bottom',\n cls : 'ui-portlet',\n operations_flt : 'right',\n collapsible : false,\n collapsed : false\n });\n this.setElement( this._template( this.options ) );\n\n // link content\n this.$body = this.$( '.portlet-body' );\n this.$title = this.$( '.portlet-title-text' );\n this.$header = this.$( '.portlet-header' );\n this.$content = this.$( '.portlet-content' );\n this.$footer = this.$( '.portlet-footer' );\n\n // set content padding\n if ( this.options.nopadding ) {\n this.$content.css( 'padding', '0px' );\n this.$body.css( 'padding', '0px' );\n }\n\n // append buttons\n this.$buttons = this.$( '.portlet-buttons' );\n if ( this.options.buttons ) {\n $.each( this.options.buttons, function( name, item ) {\n item.$el.prop( 'id', name );\n self.$buttons.append( item.$el );\n });\n } else {\n this.$buttons.remove();\n }\n\n // append operations\n this.$operations = this.$( '.portlet-operations' );\n if ( this.options.operations ) {\n $.each( this.options.operations, function( name, item ) {\n item.$el.prop( 'id', name );\n self.$operations.append( item.$el );\n });\n }\n\n // add body\n this.options.body && this.append( this.options.body );\n\n // make portlet collapsible\n this.collapsed = false;\n if ( this.options.collapsible ) {\n this.$title.addClass( 'no-highlight' ).css({\n 'cursor' : 'pointer',\n 'text-decoration' : 'underline'\n });\n this.$title.on( 'click', function() {\n if ( self.collapsed ) { self.expand(); } else { self.collapse(); }\n });\n this.options.collapsed && this.collapse();\n }\n },\n\n // append\n append: function( $el ) {\n this.$body.append( $el );\n },\n\n // remove all content\n empty: function() {\n this.$body.empty();\n },\n\n // header\n header: function() {\n return this.$header;\n },\n\n // body\n body: function() {\n return this.$body;\n },\n\n // footer\n footer: function() {\n return this.$footer;\n },\n\n // show\n show: function(){\n this.visible = true;\n this.$el.fadeIn( 'fast' );\n },\n\n // hide\n hide: function(){\n this.visible = false;\n this.$el.fadeOut( 'fast' );\n },\n\n // enable buttons\n enableButton: function( id ) {\n this.$buttons.find( '#' + id ).prop( 'disabled', false );\n },\n\n // disable buttons\n disableButton: function( id ) {\n this.$buttons.find( '#' + id ).prop( 'disabled', true );\n },\n\n // hide operation\n hideOperation: function( id ) {\n this.$operations.find( '#' + id ).hide();\n },\n\n // show operation\n showOperation: function( id ) {\n this.$operations.find( '#' + id ).show();\n },\n\n // set operation\n setOperation: function( id, callback ) {\n var $el = this.$operations.find( '#' + id );\n $el.off( 'click' );\n $el.on( 'click', callback );\n },\n\n // title\n title: function( new_title ) {\n var $el = this.$title;\n if ( new_title ) {\n $el.html( new_title );\n }\n return $el.html();\n },\n\n // collapse portlet\n collapse: function() {\n this.collapsed = true;\n this.$content.height( '0%' );\n this.$body.hide();\n this.$footer.hide();\n this.trigger( 'collapsed' );\n },\n\n // expand portlet\n expand: function() {\n this.collapsed = false;\n this.$content.height( '100%' );\n this.$body.fadeIn( 'fast' );\n this.$footer.fadeIn( 'fast' );\n this.trigger( 'expanded' );\n },\n\n // disable content access\n disable: function() {\n this.$( '.portlet-backdrop' ).show();\n },\n\n // enable content access\n enable: function() {\n this.$( '.portlet-backdrop' ).hide();\n },\n\n // fill regular modal template\n _template: function( options ) {\n var tmpl = '
';\n if ( options.title ) {\n tmpl += '
' +\n '
' +\n '
';\n if ( options.icon ) {\n tmpl += ' ';\n }\n tmpl += '' + options.title + '' +\n '
' +\n '
';\n }\n tmpl += '
';\n if ( options.placement == 'top' ) {\n tmpl += '
';\n }\n tmpl += '
';\n if ( options.placement == 'bottom' ) {\n tmpl += '
';\n }\n tmpl += '
' +\n '
' +\n '
' +\n '
';\n return tmpl;\n }\n});\nreturn {\n View : View\n}\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/ui/ui-portlet.js\n ** module id = 31\n ** module chunks = 0 2\n **/","/**\n This class creates a form section and populates it with input elements. It also handles repeat blocks and conditionals by recursively creating new sub sections.\n*/\ndefine(['utils/utils',\n 'mvc/ui/ui-table',\n 'mvc/ui/ui-misc',\n 'mvc/ui/ui-portlet',\n 'mvc/form/form-repeat',\n 'mvc/form/form-input',\n 'mvc/form/form-parameters'],\n function(Utils, Table, Ui, Portlet, Repeat, InputElement, Parameters) {\n var View = Backbone.View.extend({\n initialize: function(app, options) {\n this.app = app;\n this.inputs = options.inputs;\n\n // fix table style\n options.cls = 'ui-table-plain';\n\n // add table class for tr tag\n // this assist in transforming the form into a json structure\n options.cls_tr = 'section-row';\n\n // create/render views\n this.table = new Table.View(options);\n this.parameters = new Parameters(app, options);\n this.setElement(this.table.$el);\n this.render();\n },\n\n /** Render section view\n */\n render: function() {\n this.table.delAll();\n for (var i in this.inputs) {\n this.add(this.inputs[i]);\n }\n },\n\n /** Add a new input element\n */\n add: function(input) {\n var self = this;\n var input_def = jQuery.extend(true, {}, input);\n input_def.id = input.id = Utils.uid();\n\n // add to sequential list of inputs\n this.app.input_list[input_def.id] = input_def;\n\n // identify field type\n var type = input_def.type;\n switch(type) {\n case 'conditional':\n this._addConditional(input_def);\n break;\n case 'repeat':\n this._addRepeat(input_def);\n break;\n case 'section':\n this._addSection(input_def);\n break;\n default:\n this._addRow(input_def);\n }\n },\n\n /** Add a conditional block\n */\n _addConditional: function(input_def) {\n var self = this;\n input_def.test_param.id = input_def.id;\n this.app.options.sustain_conditionals && ( input_def.test_param.disabled = true );\n var field = this._addRow( input_def.test_param );\n\n // set onchange event for test parameter\n field.options.onchange = function(value) {\n var selectedCase = self.app.data.matchCase(input_def, value);\n for (var i in input_def.cases) {\n var case_def = input_def.cases[i];\n var section_id = input_def.id + '-section-' + i;\n var section_row = self.table.get(section_id);\n var nonhidden = false;\n for (var j in case_def.inputs) {\n if (!case_def.inputs[j].hidden) {\n nonhidden = true;\n break;\n }\n }\n if (i == selectedCase && nonhidden) {\n section_row.fadeIn('fast');\n } else {\n section_row.hide();\n }\n }\n self.app.trigger('change');\n };\n\n // add conditional sub sections\n for (var i in input_def.cases) {\n var sub_section_id = input_def.id + '-section-' + i;\n var sub_section = new View(this.app, {\n inputs : input_def.cases[i].inputs\n });\n sub_section.$el.addClass('ui-table-section');\n this.table.add(sub_section.$el);\n this.table.append(sub_section_id);\n }\n\n // trigger refresh on conditional input field after all input elements have been created\n field.trigger('change');\n },\n\n /** Add a repeat block\n */\n _addRepeat: function(input_def) {\n var self = this;\n var block_index = 0;\n\n // create repeat block element\n var repeat = new Repeat.View({\n title : input_def.title || 'Repeat',\n title_new : input_def.title || '',\n min : input_def.min,\n max : input_def.max,\n onnew : function() {\n create(input_def.inputs);\n self.app.trigger('change');\n }\n });\n\n // helper function to create new repeat blocks\n function create (inputs) {\n var sub_section_id = input_def.id + '-section-' + (block_index++);\n var sub_section = new View(self.app, {\n inputs : inputs\n });\n repeat.add({\n id : sub_section_id,\n $el : sub_section.$el,\n ondel : function() {\n repeat.del(sub_section_id);\n self.app.trigger('change');\n }\n });\n }\n\n //\n // add parsed/minimum number of repeat blocks\n //\n var n_cache = _.size( input_def.cache );\n for ( var i = 0; i < Math.max( Math.max( n_cache, input_def.min ), input_def.default ); i++ ) {\n create( i < n_cache ? input_def.cache[ i ] : input_def.inputs );\n }\n\n // hide options\n this.app.options.sustain_repeats && repeat.hideOptions();\n\n // create input field wrapper\n var input_element = new InputElement(this.app, {\n label : input_def.title || input_def.name,\n help : input_def.help,\n field : repeat\n });\n this.table.add(input_element.$el);\n this.table.append(input_def.id);\n },\n\n /** Add a customized section\n */\n _addSection: function(input_def) {\n var self = this;\n\n // create sub section\n var sub_section = new View(self.app, {\n inputs : input_def.inputs\n });\n\n // delete button\n var button_visible = new Ui.ButtonIcon({\n icon : 'fa-eye-slash',\n tooltip : 'Show/hide section',\n cls : 'ui-button-icon-plain'\n });\n\n // create portlet for sub section\n var portlet = new Portlet.View({\n title : input_def.title || input_def.name,\n cls : 'ui-portlet-section',\n collapsible : true,\n collapsed : true,\n operations : {\n button_visible: button_visible\n }\n });\n portlet.append( sub_section.$el );\n portlet.append( $( '
' ).addClass( 'ui-form-info' ).html( input_def.help ) );\n portlet.setOperation( 'button_visible', function() {\n if( portlet.collapsed ) {\n portlet.expand();\n } else {\n portlet.collapse();\n }\n });\n\n // add expansion event handler\n portlet.on( 'expanded', function() {\n button_visible.setIcon( 'fa-eye' );\n });\n portlet.on( 'collapsed', function() {\n button_visible.setIcon( 'fa-eye-slash' );\n });\n this.app.on( 'expand', function( input_id ) {\n ( portlet.$( '#' + input_id ).length > 0 ) && portlet.expand();\n });\n\n // show sub section if requested\n input_def.expanded && portlet.expand();\n\n // create table row\n this.table.add(portlet.$el);\n this.table.append(input_def.id);\n },\n\n /** Add a single input field element\n */\n _addRow: function(input_def) {\n var id = input_def.id;\n var field = this.parameters.create(input_def);\n this.app.field_list[id] = field;\n var input_element = new InputElement(this.app, {\n name : input_def.name,\n label : input_def.label || input_def.name,\n value : input_def.value,\n text_value : input_def.text_value || input_def.value,\n collapsible_value : input_def.collapsible_value,\n collapsible_preview : input_def.collapsible_preview,\n help : input_def.help,\n argument : input_def.argument,\n disabled : input_def.disabled,\n field : field\n });\n this.app.element_list[id] = input_element;\n this.table.add(input_element.$el);\n this.table.append(id);\n input_def.hidden && this.table.get(id).hide();\n return field;\n }\n });\n\n return {\n View: View\n };\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/form/form-section.js\n ** module id = 32\n ** module chunks = 0 2\n **/","// dependencies\ndefine(['utils/utils'], function(Utils) {\n\n/**\n * This class creates a ui table element.\n */\nvar View = Backbone.View.extend({\n // current row\n row: null,\n \n // count rows\n row_count: 0,\n \n // defaults options\n optionsDefault: {\n content : 'No content available.',\n onchange : null,\n ondblclick : null,\n onconfirm : null,\n cls : 'ui-table',\n cls_tr : ''\n },\n \n // events\n events : {\n 'click' : '_onclick',\n 'dblclick' : '_ondblclick'\n },\n \n // initialize\n initialize : function(options) {\n // configure options\n this.options = Utils.merge(options, this.optionsDefault);\n \n // create new element\n var $el = $(this._template(this.options));\n \n // link sub-elements\n this.$thead = $el.find('thead');\n this.$tbody = $el.find('tbody');\n this.$tmessage = $el.find('tmessage');\n \n // set element\n this.setElement($el);\n \n // initialize row\n this.row = this._row();\n },\n \n // add header cell\n addHeader: function($el) {\n var wrapper = $('
' +\n '' +\n '' +\n '
' +\n '' + options.content + '' +\n '
';\n }\n});\n\nreturn {\n View: View\n}\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/ui/ui-table.js\n ** module id = 33\n ** module chunks = 0 2\n **/","// dependencies\ndefine(['utils/utils', 'mvc/ui/ui-table', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc'],\n function(Utils, Table, Portlet, Ui) {\n\n/** This class creates a ui component which enables the dynamic creation of portlets\n*/\nvar View = Backbone.View.extend({\n initialize : function(options) {\n var self = this;\n this.options = Utils.merge(options, {\n title : 'Section',\n empty_text : 'Not available.',\n max : null,\n min : null\n });\n this.setElement('
');\n\n // create button\n this.button_new = new Ui.ButtonIcon({\n icon : 'fa-plus',\n title : 'Insert ' + this.options.title_new,\n tooltip : 'Add new ' + this.options.title_new + ' block',\n floating: 'clear',\n onclick : function() {\n if (options.onnew) {\n options.onnew();\n }\n }\n });\n\n // create table\n this.table = new Table.View({\n cls : 'ui-table-plain',\n content : ''\n });\n this.$el.append(this.table.$el);\n this.$el.append($('
').append(this.button_new.$el));\n\n // reset list\n this.list = {};\n this.n = 0;\n },\n\n /** Number of repeat blocks\n */\n size: function() {\n return this.n;\n },\n\n /** Add new repeat block\n */\n add: function(options) {\n if (!options.id || this.list[options.id]) {\n Galaxy.emit.debug('form-repeat::add()', 'Duplicate repeat block id.');\n return;\n }\n this.n++;\n var button_delete = new Ui.ButtonIcon({\n icon : 'fa-trash-o',\n tooltip : 'Delete this repeat block',\n cls : 'ui-button-icon-plain',\n onclick : function() {\n if (options.ondel) {\n options.ondel();\n }\n }\n });\n var portlet = new Portlet.View({\n id : options.id,\n title : 'placeholder',\n cls : 'ui-portlet-repeat',\n operations : {\n button_delete : button_delete\n }\n });\n portlet.append(options.$el);\n portlet.$el.addClass('section-row');\n this.list[options.id] = portlet;\n this.table.add(portlet.$el);\n this.table.append('row_' + options.id, true);\n if (this.options.max > 0 && this.n >= this.options.max) {\n this.button_new.disable();\n }\n this._refresh();\n },\n\n /** Delete repeat block\n */\n del: function(id) {\n if (!this.list[id]) {\n Galaxy.emit.debug('form-repeat::del()', 'Invalid repeat block id.');\n return;\n }\n this.n--;\n var table_row = this.table.get('row_' + id);\n table_row.remove();\n delete this.list[id];\n this.button_new.enable();\n this._refresh();\n },\n\n /** Hides add/del options\n */\n hideOptions: function() {\n this.button_new.$el.hide();\n _.each( this.list, function( portlet ) {\n portlet.hideOperation('button_delete');\n });\n if( _.isEmpty( this.list ) ) {\n this.$el.append( $('
').addClass( 'ui-form-info' ).html( this.options.empty_text ) );\n }\n },\n\n /** Refresh view\n */\n _refresh: function() {\n var index = 0;\n for (var id in this.list) {\n var portlet = this.list[id];\n portlet.title(++index + ': ' + this.options.title);\n if (this.n > this.options.min) {\n portlet.showOperation('button_delete');\n } else {\n portlet.hideOperation('button_delete');\n }\n }\n }\n});\n\nreturn {\n View : View\n}\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/form/form-repeat.js\n ** module id = 34\n ** module chunks = 0 2\n **/","/**\n This class creates a form input element wrapper\n*/\ndefine([], function() {\n return Backbone.View.extend({\n initialize: function( app, options ) {\n this.app = app;\n this.app_options = app.options || {};\n this.field = options && options.field || new Backbone.View();\n this.model = options && options.model || new Backbone.Model({\n text_enable : this.app_options.text_enable || 'Enable',\n text_disable : this.app_options.text_disable || 'Disable',\n cls_enable : this.app_options.cls_enable || 'fa fa-caret-square-o-down',\n cls_disable : this.app_options.cls_disable || 'fa fa-caret-square-o-up'\n }).set( options );\n\n // set element and link components\n this.setElement( this._template() );\n this.$field = this.$( '.ui-form-field' );\n this.$info = this.$( '.ui-form-info' );\n this.$preview = this.$( '.ui-form-preview' );\n this.$collapsible = this.$( '.ui-form-collapsible' );\n this.$collapsible_text = this.$( '.ui-form-collapsible-text' );\n this.$collapsible_icon = this.$( '.ui-form-collapsible-icon' );\n this.$title = this.$( '.ui-form-title' );\n this.$title_text = this.$( '.ui-form-title-text' );\n this.$error_text = this.$( '.ui-form-error-text' );\n this.$error = this.$( '.ui-form-error' );\n this.$backdrop = this.$( '.ui-form-backdrop' );\n\n // add field element\n this.$field.prepend( this.field.$el );\n\n // decide wether to expand or collapse fields\n var collapsible_value = this.model.get( 'collapsible_value' );\n this.field.collapsed = collapsible_value !== undefined && JSON.stringify( this.model.get( 'value' ) ) == JSON.stringify( collapsible_value );\n this.listenTo( this.model, 'change', this.render, this );\n this.render();\n\n // add click handler\n var self = this;\n this.$collapsible.on( 'click', function() {\n self.field.collapsed = !self.field.collapsed;\n app.trigger && app.trigger( 'change' );\n self.render();\n });\n },\n\n /** Disable input element\n */\n disable: function( silent ) {\n this.model.set( 'backdrop', silent ? 'silent' : 'default' );\n },\n\n /** Set error text\n */\n error: function( text ) {\n this.model.set( 'error_text', text );\n },\n\n /** Reset this view\n */\n reset: function() {\n this.model.set( 'error_text', null );\n },\n\n render: function() {\n // render help\n $( '.tooltip' ).hide();\n var help_text = this.model.get( 'help', '' );\n var help_argument = this.model.get( 'argument' );\n if ( help_argument && help_text.indexOf( '(' + help_argument + ')' ) == -1 ) {\n help_text += ' (' + help_argument + ')';\n }\n this.$info.html( help_text );\n // render input field\n this.field.collapsed ? this.$field.hide() : this.$field.fadeIn( 'fast' );\n // render preview view for collapsed fields\n this.$preview[ this.field.collapsed && this.model.get( 'collapsible_preview' ) ? 'show' : 'hide' ]()\n .html( this.model.get( 'text_value' ) );\n // render error messages\n var error_text = this.model.get( 'error_text' );\n this.$error[ error_text ? 'show' : 'hide' ]();\n this.$el[ error_text ? 'addClass' : 'removeClass' ]( 'ui-error' );\n this.$error_text.html( error_text );\n // render backdrop to disable field\n this.$backdrop.removeClass()\n .addClass( 'ui-form-backdrop' )\n .addClass( 'ui-form-backdrop-' + this.model.get( 'backdrop' ) );\n // render collapsible state and title\n if ( !this.model.get( 'disabled' ) && this.model.get( 'collapsible_value' ) !== undefined ) {\n var collapsible_state = this.field.collapsed ? 'enable' : 'disable';\n this.$title_text.hide();\n this.$collapsible.show();\n this.$collapsible_text.text( this.model.get( 'label' ) );\n this.$collapsible_icon.removeClass().addClass( 'icon' )\n .addClass( this.model.get( 'cls_' + collapsible_state ) )\n .attr( 'data-original-title', this.model.get( 'text_' + collapsible_state ) )\n .tooltip( { placement: 'bottom' } );\n } else {\n this.$title_text.show().text( this.model.get( 'label' ) );\n this.$collapsible.hide();\n }\n },\n\n _template: function() {\n return $( '
' ).addClass( 'ui-form-element' )\n .append( $( '
' ).addClass( 'ui-form-error ui-error' )\n .append( $( '' ).addClass( 'fa fa-arrow-down' ) )\n .append( $( '' ).addClass( 'ui-form-error-text' ) )\n )\n .append( $( '
' ).addClass( 'ui-form-title' )\n .append( $( '
' ).addClass( 'ui-form-collapsible' )\n .append( $( '' ).addClass( 'ui-form-collapsible-icon' ) )\n .append( $( '' ).addClass( 'ui-form-collapsible-text' ) )\n )\n .append( $( '' ).addClass( 'ui-form-title-text' ) )\n )\n .append( $( '
' ).addClass( 'ui-form-field' )\n .append( $( '' ).addClass( 'ui-form-info' ) )\n .append( $( '' ).addClass( 'ui-form-backdrop' ) )\n )\n .append( $( '
' ).addClass( 'ui-form-preview' ) );\n }\n });\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/form/form-input.js\n ** module id = 35\n ** module chunks = 0 2\n **/","/**\n This class creates input elements. New input parameter types should be added to the types dictionary.\n*/\ndefine(['utils/utils',\n 'mvc/ui/ui-misc',\n 'mvc/ui/ui-select-content',\n 'mvc/ui/ui-select-library',\n 'mvc/ui/ui-select-ftp',\n 'mvc/ui/ui-color-picker'],\n function( Utils, Ui, SelectContent, SelectLibrary, SelectFtp, ColorPicker ) {\n\n // create form view\n return Backbone.Model.extend({\n /** Available parameter types */\n types: {\n 'text' : '_fieldText',\n 'select' : '_fieldSelect',\n 'data_column' : '_fieldSelect',\n 'genomebuild' : '_fieldSelect',\n 'data' : '_fieldData',\n 'data_collection' : '_fieldData',\n 'integer' : '_fieldSlider',\n 'float' : '_fieldSlider',\n 'boolean' : '_fieldBoolean',\n 'drill_down' : '_fieldDrilldown',\n 'color' : '_fieldColor',\n 'hidden' : '_fieldHidden',\n 'hidden_data' : '_fieldHidden',\n 'baseurl' : '_fieldHidden',\n 'library_data' : '_fieldLibrary',\n 'ftpfile' : '_fieldFtp'\n },\n\n initialize: function( app, options ) {\n this.app = app;\n },\n\n /** Returns an input field for a given field type\n */\n create: function( input_def ) {\n var fieldClass = this.types[ input_def.type ];\n var field = typeof( this[ fieldClass ] ) === 'function' ? this[ fieldClass ].call( this, input_def ) : null;\n if ( !field ) {\n this.app.incompatible = true;\n field = input_def.options ? this._fieldSelect( input_def ) : this._fieldText( input_def );\n Galaxy.emit.debug('form-parameters::_addRow()', 'Auto matched field type (' + input_def.type + ').');\n }\n input_def.value === undefined && ( input_def.value = null );\n field.value( input_def.value );\n return field;\n },\n\n /** Data input field\n */\n _fieldData: function( input_def ) {\n var self = this;\n return new SelectContent.View({\n id : 'field-' + input_def.id,\n extensions : input_def.extensions,\n optional : input_def.optional,\n multiple : input_def.multiple,\n type : input_def.type,\n data : input_def.options,\n onchange : function() {\n self.app.trigger( 'change' );\n }\n });\n },\n\n /** Select/Checkbox/Radio options field\n */\n _fieldSelect: function ( input_def ) {\n // show text field e.g. in workflow editor\n if( input_def.is_workflow ) {\n return this._fieldText( input_def );\n }\n\n // customize properties\n if ( input_def.type == 'data_column' ) {\n input_def.error_text = 'Missing columns in referenced dataset.'\n }\n\n // configure options fields\n var options = [];\n _.each( input_def.options, function( option ) {\n options.push( { label: option[ 0 ], value: option[ 1 ] } );\n });\n\n // identify display type\n var SelectClass = Ui.Select;\n switch ( input_def.display ) {\n case 'checkboxes':\n SelectClass = Ui.Checkbox;\n break;\n case 'radio':\n SelectClass = Ui.Radio;\n break;\n }\n\n // create select field\n var self = this;\n return new SelectClass.View({\n id : 'field-' + input_def.id,\n data : options,\n error_text : input_def.error_text || 'No options available',\n multiple : input_def.multiple,\n optional : input_def.optional,\n searchable : input_def.searchable,\n onchange : function() {\n self.app.trigger( 'change' );\n }\n });\n },\n\n /** Drill down options field\n */\n _fieldDrilldown: function ( input_def ) {\n // show text field e.g. in workflow editor\n if( input_def.is_workflow ) {\n return this._fieldText( input_def );\n }\n\n // create drill down field\n var self = this;\n return new Ui.Drilldown.View({\n id : 'field-' + input_def.id,\n data : input_def.options,\n display : input_def.display,\n onchange : function() {\n self.app.trigger( 'change' );\n }\n });\n },\n\n /** Text input field\n */\n _fieldText: function( input_def ) {\n // field replaces e.g. a select field\n if ( input_def.options ) {\n input_def.area = input_def.multiple;\n if ( !Utils.validate( input_def.value ) ) {\n input_def.value = null;\n } else {\n if ( $.isArray( input_def.value ) ) {\n var str_value = '';\n for ( var i in input_def.value ) {\n str_value += String( input_def.value[ i ] );\n if ( !input_def.multiple ) {\n break;\n }\n str_value += '\\n';\n }\n input_def.value = str_value;\n }\n }\n }\n // create input element\n var self = this;\n return new Ui.Input({\n id : 'field-' + input_def.id,\n area : input_def.area,\n onchange : function( new_value ) {\n input_def.onchange ? input_def.onchange( new_value ) : self.app.trigger( 'change' );\n }\n });\n },\n\n /** Slider field\n */\n _fieldSlider: function( input_def ) {\n var self = this;\n return new Ui.Slider.View({\n id : 'field-' + input_def.id,\n precise : input_def.type == 'float',\n is_workflow : input_def.is_workflow,\n min : input_def.min,\n max : input_def.max,\n onchange : function() {\n self.app.trigger( 'change' );\n }\n });\n },\n\n /** Hidden field\n */\n _fieldHidden: function( input_def ) {\n return new Ui.Hidden({\n id : 'field-' + input_def.id,\n info : input_def.info\n });\n },\n\n /** Boolean field\n */\n _fieldBoolean: function( input_def ) {\n var self = this;\n return new Ui.RadioButton.View({\n id : 'field-' + input_def.id,\n data : [ { label : 'Yes', value : 'true' },\n { label : 'No', value : 'false' }],\n onchange : function() {\n self.app.trigger( 'change' );\n }\n });\n },\n\n /** Color picker field\n */\n _fieldColor: function( input_def ) {\n var self = this;\n return new ColorPicker({\n id : 'field-' + input_def.id,\n onchange : function() {\n self.app.trigger( 'change' );\n }\n });\n },\n\n /** Library dataset field\n */\n _fieldLibrary: function( input_def ) {\n var self = this;\n return new SelectLibrary.View({\n id : 'field-' + input_def.id,\n optional : input_def.optional,\n multiple : input_def.multiple,\n onchange : function() {\n self.app.trigger( 'change' );\n }\n });\n },\n\n /** FTP file field\n */\n _fieldFtp: function( input_def ) {\n var self = this;\n return new SelectFtp.View({\n id : 'field-' + input_def.id,\n optional : input_def.optional,\n multiple : input_def.multiple,\n onchange : function() {\n self.app.trigger( 'change' );\n }\n });\n }\n });\n\n return {\n View: View\n };\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/form/form-parameters.js\n ** module id = 36\n ** module chunks = 0 2\n **/","define([ 'utils/utils', 'mvc/ui/ui-misc', 'mvc/ui/ui-select-default' ], function( Utils, Ui, Select ) {\n\n/** List of available content selectors options */\nvar Configurations = {\n 'data': [\n { src: 'hda', icon: 'fa-file-o', tooltip: 'Single dataset', batchmode: false, multiple: false },\n { src: 'hda', icon: 'fa-files-o', tooltip: 'Multiple datasets', batchmode: true, multiple: true },\n { src: 'hdca', icon: 'fa-folder-o', tooltip: 'Dataset collection', batchmode: true, multiple: false } ],\n 'data_multiple': [\n { src: 'hda', icon: 'fa-files-o', tooltip: 'Multiple datasets', batchmode: false, multiple: true },\n { src: 'hdca', icon: 'fa-folder-o', tooltip: 'Dataset collection', batchmode: false, multiple: false } ],\n 'data_collection': [\n { src: 'hdca', icon: 'fa-folder-o', tooltip: 'Dataset collection', batchmode: false, multiple: false } ],\n 'workflow_data': [\n { src: 'hda', icon: 'fa-file-o', tooltip: 'Single dataset', batchmode: false, multiple: false },\n { src: 'hda', icon: 'fa-files-o', tooltip: 'Multiple datasets', batchmode: true, multiple: true } ],\n 'workflow_collection': [\n { src: 'hdca', icon: 'fa-folder-o', tooltip: 'Dataset collection', batchmode: false, multiple: false },\n { src: 'hdca', icon: 'fa-folder', tooltip: 'Multiple collections', batchmode: true, multiple: true } ]\n};\n\n/** View for hda and hdca content selector ui elements */\nvar View = Backbone.View.extend({\n initialize : function( options ) {\n var self = this;\n this.model = options && options.model || new Backbone.Model({\n src_labels: { 'hda' : 'dataset', 'hdca': 'dataset collection' }\n }).set( options );\n this.setElement( $( '
' ).addClass( 'ui-select-content' ) );\n this.$batch = $( '
' ).addClass( 'ui-form-info' )\n .append( $( '' ).addClass( 'fa fa-sitemap' ) )\n .append( $( '' ).html( 'This is a batch mode input field. A separate job will be triggered for each dataset.' ) );\n\n // track current history elements\n this.history = {};\n\n // add listeners\n this.listenTo( this.model, 'change:data', this._changeData, this );\n this.listenTo( this.model, 'change:wait', this._changeWait, this );\n this.listenTo( this.model, 'change:current', this._changeCurrent, this );\n this.listenTo( this.model, 'change:value', this._changeValue, this );\n this.listenTo( this.model, 'change:type change:optional change:multiple change:extensions', this._changeType, this );\n this.render();\n\n // add change event\n this.on( 'change', function() { options.onchange && options.onchange( self.value() ) } );\n },\n\n render: function() {\n this._changeType();\n this._changeValue();\n this._changeWait();\n },\n\n /** Indicate that select fields are being updated */\n wait: function() {\n this.model.set( 'wait', true );\n },\n\n /** Indicate that the options update has been completed */\n unwait: function() {\n this.model.set( 'wait', false );\n },\n\n /** Update data representing selectable options */\n update: function( options ) {\n this.model.set( 'data', options );\n },\n\n /** Return the currently selected dataset values */\n value: function ( new_value ) {\n new_value !== undefined && this.model.set( 'value', new_value );\n var current = this.model.get( 'current' );\n if ( this.config[ current ] ) {\n var id_list = this.fields[ current ].value();\n if (id_list !== null) {\n id_list = $.isArray( id_list ) ? id_list : [ id_list ];\n if ( id_list.length > 0 ) {\n var result = { batch: this._batch(), values: [] };\n for ( var i in id_list ) {\n var details = this.history[ id_list[ i ] + '_' + this.config[ current ].src ];\n if ( details ) {\n result.values.push( details );\n } else {\n Galaxy.emit.debug( 'tools-select-content::value()', 'Requested details not found for \\'' + id_list[ i ] + '\\'.' );\n return null;\n }\n }\n result.values.sort( function( a, b ) { return a.hid - b.hid } );\n return result;\n }\n }\n } else {\n Galaxy.emit.debug( 'tools-select-content::value()', 'Invalid value/source \\'' + new_value + '\\'.' );\n }\n return null;\n },\n\n /** Change of current select field */\n _changeCurrent: function() {\n var self = this;\n _.each( this.fields, function( field, i ) {\n if ( self.model.get( 'current' ) == i ) {\n field.$el.show();\n self.$batch[ self.config[ i ].batchmode && 'show' || 'hide' ]();\n self.button_type.value( i );\n } else {\n field.$el.hide();\n }\n });\n },\n\n /** Change of type */\n _changeType: function() {\n var self = this;\n\n // identify selector type\n var config_id = String( this.model.get( 'type' ) ) + ( this.model.get( 'multiple' ) ? '_multiple' : '' );\n if ( Configurations[ config_id ] ) {\n this.config = Configurations[ config_id ];\n } else {\n this.config = Configurations[ 'data' ];\n Galaxy.emit.debug( 'tools-select-content::_changeType()', 'Invalid configuration/type id \\'' + config_id + '\\'.' );\n }\n\n // prepare extension component of error message\n var extensions = Utils.textify( this.model.get( 'extensions' ) );\n var src_labels = this.model.get( 'src_labels' );\n\n // build views\n this.fields = [];\n this.button_data = [];\n _.each( this.config, function( c, i ) {\n self.button_data.push({\n value : i,\n icon : c.icon,\n tooltip : c.tooltip\n });\n self.fields.push(\n new Select.View({\n optional : self.model.get( 'optional' ),\n multiple : c.multiple,\n searchable : !c.multiple,\n error_text : 'No ' + ( extensions ? extensions + ' ' : '' ) + ( src_labels[ c.src ] || 'content' ) + ' available.',\n onchange : function() {\n self.trigger( 'change' );\n }\n })\n );\n });\n this.button_type = new Ui.RadioButton.View({\n value : this.model.get( 'current' ),\n data : this.button_data,\n onchange: function( value ) {\n self.model.set( 'current', value );\n self.trigger( 'change' );\n }\n });\n\n // append views\n this.$el.empty();\n var button_width = 0;\n if ( this.fields.length > 1 ) {\n this.$el.append( this.button_type.$el );\n button_width = Math.max( 0, this.fields.length * 35 ) + 'px';\n }\n _.each( this.fields, function( field ) {\n self.$el.append( field.$el.css( { 'margin-left': button_width } ) );\n });\n this.$el.append( this.$batch.css( { 'margin-left': button_width } ) );\n this.model.set( 'current', 0 );\n this._changeCurrent();\n this._changeData();\n },\n\n /** Change of wait flag */\n _changeWait: function() {\n var self = this;\n _.each( this.fields, function( field ) { field[ self.model.get( 'wait' ) ? 'wait' : 'unwait' ]() } );\n },\n\n /** Change of available options */\n _changeData: function() {\n var options = this.model.get( 'data' );\n var self = this;\n var select_options = {};\n _.each( options, function( items, src ) {\n select_options[ src ] = [];\n _.each( items, function( item ) {\n select_options[ src ].push({\n hid : item.hid,\n label: item.hid + ': ' + item.name,\n value: item.id\n });\n self.history[ item.id + '_' + src ] = item;\n });\n });\n _.each( this.config, function( c, i ) {\n select_options[ c.src ] && self.fields[ i ].add( select_options[ c.src ], function( a, b ) { return b.hid - a.hid } );\n });\n },\n\n /** Change of incoming value */\n _changeValue: function () {\n var new_value = this.model.get( 'value' );\n if ( new_value && new_value.values && new_value.values.length > 0 ) {\n // create list with content ids\n var list = [];\n _.each( new_value.values, function( value ) {\n list.push( value.id );\n });\n // sniff first suitable field type from config list\n var src = new_value.values[ 0 ].src;\n var multiple = new_value.values.length > 1;\n for( var i = 0; i < this.config.length; i++ ) {\n var field = this.fields[ i ];\n var c = this.config[ i ];\n if ( c.src == src && [ multiple, true ].indexOf( c.multiple ) !== -1 ) {\n this.model.set( 'current', i );\n field.value( list );\n break;\n }\n }\n } else {\n _.each( this.fields, function( field ) {\n field.value( null );\n });\n }\n },\n\n /** Assists in identifying the batch mode */\n _batch: function() {\n var current = this.model.get( 'current' );\n var config = this.config[ current ];\n if ( config.src == 'hdca' && !config.multiple ) {\n var hdca = this.history[ this.fields[ current ].value() + '_hdca' ];\n if ( hdca && hdca.map_over_type ) {\n return true;\n }\n }\n return config.batchmode;\n }\n});\n\nreturn {\n View: View\n}\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/ui/ui-select-content.js\n ** module id = 37\n ** module chunks = 0 2\n **/","// dependencies\ndefine(['utils/utils', 'mvc/ui/ui-misc', 'mvc/ui/ui-table', 'mvc/ui/ui-list'],\n function(Utils, Ui, Table, List) {\n\n// collection of libraries\nvar Libraries = Backbone.Collection.extend({\n url: Galaxy.root + 'api/libraries?deleted=false'\n});\n\n// collection of dataset\nvar LibraryDatasets = Backbone.Collection.extend({\n initialize: function() {\n var self = this;\n this.config = new Backbone.Model({ library_id: null });\n this.config.on('change', function() {\n self.fetch({ reset: true });\n });\n },\n url: function() {\n return Galaxy.root + 'api/libraries/' + this.config.get('library_id') + '/contents';\n }\n});\n\n// hda/hdca content selector ui element\nvar View = Backbone.View.extend({\n // initialize\n initialize : function(options) {\n // link this\n var self = this;\n\n // collections\n this.libraries = new Libraries();\n this.datasets = new LibraryDatasets();\n\n // link app and options\n this.options = options;\n\n // select field for the library\n // TODO: Remove this once the library API supports searching for library datasets\n this.library_select = new Ui.Select.View({\n onchange : function(value) {\n self.datasets.config.set('library_id', value);\n }\n });\n\n // create ui-list view to keep track of selected data libraries\n this.dataset_list = new List.View({\n name : 'dataset',\n optional : options.optional,\n multiple : options.multiple,\n onchange : function() {\n self.trigger('change');\n }\n });\n\n // add reset handler for fetched libraries\n this.libraries.on('reset', function() {\n var data = [];\n self.libraries.each(function(model) {\n data.push({\n value : model.id,\n label : model.get('name')\n });\n });\n self.library_select.update(data);\n });\n\n // add reset handler for fetched library datasets\n this.datasets.on('reset', function() {\n var data = [];\n var library_current = self.library_select.text();\n if (library_current !== null) {\n self.datasets.each(function(model) {\n if (model.get('type') === 'file') {\n data.push({\n value : model.id,\n label : model.get('name')\n });\n }\n });\n }\n self.dataset_list.update(data);\n });\n\n // add change event. fires on trigger\n this.on('change', function() {\n options.onchange && options.onchange(self.value());\n });\n\n // create elements\n this.setElement(this._template());\n this.$('.library-select').append(this.library_select.$el);\n this.$el.append(this.dataset_list.$el);\n\n // initial fetch of libraries\n this.libraries.fetch({\n reset: true,\n success: function() {\n self.library_select.trigger('change');\n if (self.options.value !== undefined) {\n self.value(self.options.value);\n }\n }\n });\n },\n\n /** Return/Set currently selected library datasets */\n value: function(val) {\n return this.dataset_list.value(val);\n },\n\n /** Template */\n _template: function() {\n return '
' +\n '
' +\n 'Select Library' +\n '' +\n '
' +\n '
';\n }\n});\n\nreturn {\n View: View\n}\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/ui/ui-select-library.js\n ** module id = 38\n ** module chunks = 0 2\n **/","// dependencies\ndefine(['utils/utils', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc'], function(Utils, Portlet, Ui) {\n\n// ui list element\nvar View = Backbone.View.extend({\n // create portlet to keep track of selected list elements\n initialize : function(options) {\n // link this\n var self = this;\n\n // initialize options\n this.options = options;\n this.name = options.name || 'element';\n this.multiple = options.multiple || false;\n\n // create message handler\n this.message = new Ui.Message();\n\n // create portlet\n this.portlet = new Portlet.View({ cls: 'ui-portlet-section' });\n\n // create select field containing the options which can be inserted into the list\n this.select = new Ui.Select.View({ optional : options.optional });\n\n // create insert new list element button\n this.button = new Ui.ButtonIcon({\n icon : 'fa fa-sign-in',\n floating : 'left',\n tooltip : 'Insert new ' + this.name,\n onclick : function() {\n self.add({\n id : self.select.value(),\n name : self.select.text()\n });\n }\n });\n\n // build main element\n this.setElement(this._template(options));\n this.$('.ui-list-message').append(this.message.$el);\n this.$('.ui-list-portlet').append(this.portlet.$el);\n this.$('.ui-list-button').append(this.button.$el);\n this.$('.ui-list-select').append(this.select.$el);\n },\n\n /** Return/Set currently selected list elements */\n value: function(val) {\n // set new value\n if (val !== undefined) {\n this.portlet.empty();\n if ($.isArray(val)) {\n for (var i in val) {\n var v = val[i];\n var v_id = null;\n var v_name = null;\n if ($.type(v) != 'string') {\n v_id = v.id;\n v_name = v.name;\n } else {\n v_id = v_name = v;\n }\n if (v_id != null) {\n this.add({\n id : v_id,\n name : v_name\n });\n }\n }\n }\n this._refresh();\n }\n // get current value\n var lst = [];\n this.$('.ui-list-id').each(function() {\n lst.push({\n id : $(this).prop('id'),\n name : $(this).find('.ui-list-name').html()\n });\n });\n if (lst.length == 0) {\n return null;\n }\n return lst;\n },\n\n /** Add row */\n add: function(options) {\n var self = this;\n if (this.$('[id=\"' + options.id + '\"]').length === 0) {\n if (Utils.validate(options.id)) {\n var $el = $(this._templateRow({\n id : options.id,\n name : options.name\n }));\n $el.on('click', function() {\n $el.remove();\n self._refresh();\n });\n $el.on('mouseover', function() {\n $el.addClass('portlet-highlight');\n });\n $el.on('mouseout', function() {\n $el.removeClass('portlet-highlight');\n });\n this.portlet.append($el);\n this._refresh();\n } else {\n this.message.update({ message: 'Please select a valid ' + this.name + '.', status: 'danger' });\n }\n } else {\n this.message.update({ message: 'This ' + this.name + ' is already in the list.' });\n }\n },\n\n /** Update available options */\n update: function(options) {\n this.select.update(options);\n },\n\n /** Refresh view */\n _refresh: function() {\n if (this.$('.ui-list-id').length > 0) {\n !this.multiple && this.button.disable();\n this.$('.ui-list-portlet').show();\n } else {\n this.button.enable();\n this.$('.ui-list-portlet').hide();\n }\n this.options.onchange && this.options.onchange();\n },\n\n /** Main Template */\n _template: function(options) {\n return '
' +\n '
' +\n '' +\n '' +\n '
' +\n '
' +\n '
' +\n '
';\n },\n\n /** Row Template */\n _templateRow: function(options) {\n return '
' +\n '' +\n '' + options.name + '' +\n '
';\n }\n});\n\nreturn {\n View: View\n}\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/ui/ui-list.js\n ** module id = 39\n ** module chunks = 0 2\n **/","// dependencies\ndefine(['utils/utils', 'mvc/ui/ui-list'],\n function(Utils, List) {\n\n/**\n * FTP file selector\n */\nvar View = Backbone.View.extend({\n // initialize\n initialize : function(options) {\n // link this\n var self = this;\n\n // create ui-list view to keep track of selected ftp files\n this.ftpfile_list = new List.View({\n name : 'file',\n optional : options.optional,\n multiple : options.multiple,\n onchange : function() {\n options.onchange && options.onchange(self.value());\n }\n });\n\n // create elements\n this.setElement(this.ftpfile_list.$el);\n\n // initial fetch of ftps\n Utils.get({\n url : Galaxy.root + 'api/remote_files',\n success : function(response) {\n var data = [];\n for (var i in response) {\n data.push({\n value : response[i]['path'],\n label : response[i]['path']\n });\n }\n self.ftpfile_list.update(data);\n }\n });\n },\n\n /** Return/Set currently selected ftp datasets */\n value: function(val) {\n return this.ftpfile_list.value(val);\n }\n});\n\nreturn {\n View: View\n}\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/ui/ui-select-ftp.js\n ** module id = 40\n ** module chunks = 0 2\n **/","/** Renders the color picker used e.g. in the tool form **/\ndefine(['utils/utils'], function( Utils ) {\n return Backbone.View.extend({\n colors: {\n standard: ['c00000','ff0000','ffc000','ffff00','92d050','00b050','00b0f0','0070c0','002060','7030a0'],\n base : ['ffffff','000000','eeece1','1f497d','4f81bd','c0504d','9bbb59','8064a2','4bacc6','f79646'],\n theme :[['f2f2f2','7f7f7f','ddd9c3','c6d9f0','dbe5f1','f2dcdb','ebf1dd','e5e0ec','dbeef3','fdeada'],\n ['d8d8d8','595959','c4bd97','8db3e2','b8cce4','e5b9b7','d7e3bc','ccc1d9','b7dde8','fbd5b5'],\n ['bfbfbf','3f3f3f','938953','548dd4','95b3d7','d99694','c3d69b','b2a2c7','92cddc','fac08f'],\n ['a5a5a5','262626','494429','17365d','366092','953734','76923c','5f497a','31859b','e36c09'],\n ['7f7f7e','0c0c0c','1d1b10','0f243e','244061','632423','4f6128','3f3151','205867','974806']]\n },\n initialize : function( options ) {\n this.options = Utils.merge( options, {} );\n this.setElement( this._template() );\n\n // link components\n this.$panel = this.$( '.ui-color-picker-panel' );\n this.$view = this.$( '.ui-color-picker-view' );\n this.$value = this.$( '.ui-color-picker-value' );\n this.$header = this.$( '.ui-color-picker-header' );\n\n // build panel\n this._build();\n\n // hide panel on start up\n this.visible = false;\n\n // set initial value\n this.value( this.options.value );\n\n // link boxes\n this.$boxes = this.$( '.ui-color-picker-box' );\n\n // add event handler\n var self = this;\n this.$boxes.on( 'click', function() {\n self.value( $( this ).css( 'background-color' ) );\n self.$header.trigger( 'click' );\n } );\n this.$header.on( 'click', function() {\n self.visible = !self.visible;\n if ( self.visible ) {\n self.$view.fadeIn( 'fast' );\n } else {\n self.$view.fadeOut( 'fast' );\n }\n } );\n },\n\n // value\n value : function ( new_val ) {\n if ( new_val !== undefined && new_val !== null ) {\n // update color value\n this.$value.css( 'background-color', new_val );\n \n // check selected color in panel\n this.$( '.ui-color-picker-box' ).empty();\n this.$( this._getValue() ).html( this._templateCheck() );\n\n // trigger custom event\n this.options.onchange && this.options.onchange( new_val );\n }\n\n // return current value\n return this._getValue();\n },\n\n // get value from dom\n _getValue: function() {\n var rgb = this.$value.css( 'background-color' );\n rgb = rgb.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);\n if ( rgb ) {\n function hex( x ) {\n return ( '0' + parseInt( x ).toString( 16 ) ).slice( -2 );\n }\n return '#' + hex( rgb[ 1] ) + hex( rgb[ 2 ] ) + hex( rgb[ 3 ] );\n } else {\n return null;\n }\n },\n\n // build panel\n _build: function() {\n var $content = this._content({\n label : 'Theme Colors',\n colors : this.colors.base,\n padding : 10\n });\n for ( var i in this.colors.theme ) {\n var line_def = {};\n if ( i == 0 ) {\n line_def[ 'bottom' ] = true;\n } else {\n if ( i != this.colors.theme.length - 1 ) {\n line_def[ 'top' ] = true;\n line_def[ 'bottom' ] = true;\n } else {\n line_def[ 'top' ] = true;\n line_def[ 'padding' ] = 5;\n }\n }\n line_def[ 'colors' ] = this.colors.theme[ i ];\n this._content( line_def );\n }\n this._content({\n label : 'Standard Colors',\n colors : this.colors.standard,\n padding : 5\n });\n },\n\n // create content\n _content: function( options ) {\n // get parameters\n var label = options.label;\n var colors = options.colors;\n var padding = options.padding;\n var top = options.top;\n var bottom = options.bottom;\n\n // create lines\n var $content = $( this._templateContent() );\n\n // set label\n var $label = $content.find( '.label' );\n if ( options.label ) {\n $label.html( options.label );\n } else {\n $label.hide();\n }\n\n // build line\n var $line = $content.find( '.line' );\n this.$panel.append( $content );\n for ( var i in colors ) {\n var $box = $( this._templateBox( colors[ i ] ) );\n if ( top ) {\n $box.css( 'border-top', 'none' );\n $box.css( 'border-top-left-radius', '0px' );\n $box.css( 'border-top-right-radius', '0px' );\n }\n if ( bottom ) {\n $box.css( 'border-bottom', 'none' );\n $box.css( 'border-bottom-left-radius', '0px' );\n $box.css( 'border-bottom-right-radius', '0px' );\n }\n $line.append( $box );\n }\n if (padding) {\n $line.css( 'padding-bottom', padding );\n }\n return $content;\n },\n\n // check icon\n _templateCheck: function() {\n return '
';\n },\n\n // content template\n _templateContent: function() {\n return '
' +\n '
' +\n '
' +\n '
';\n },\n\n // box template\n _templateBox: function( color ) {\n return '
';\n },\n\n // template\n _template: function() {\n return '
' +\n '
' +\n '
' +\n '
Select a color
' +\n '
' +\n '
' +\n '
' +\n '
'\n '
';\n }\n });\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/ui/ui-color-picker.js\n ** module id = 41\n ** module chunks = 0 2\n **/","/*\n This class maps the form dom to an api compatible javascript dictionary.\n*/\ndefine([ 'utils/utils' ], function( Utils ) {\n var Manager = Backbone.Model.extend({\n initialize: function( app ) {\n this.app = app;\n },\n\n /** Creates a checksum.\n */\n checksum: function() {\n var sum = '';\n var self = this;\n this.app.section.$el.find( '.section-row' ).each( function() {\n var id = $(this).attr( 'id' );\n var field = self.app.field_list[ id ];\n if ( field ) {\n sum += id + ':' + JSON.stringify( field.value && field.value() ) + ':' + field.collapsed + ';';\n }\n });\n return sum;\n },\n\n /** Convert dom into a dictionary of flat id/value pairs used e.g. on job submission.\n */\n create: function() {\n var self = this;\n\n // get raw dictionary from dom\n var dict = {};\n this._iterate( this.app.section.$el, dict );\n\n // add to result dictionary, label elements\n var result_dict = {};\n this.flat_dict = {};\n function add( flat_id, input_id, input_value ) {\n self.flat_dict[ flat_id ] = input_id;\n result_dict[ flat_id ] = input_value;\n self.app.element_list[ input_id ] && self.app.element_list[ input_id ].$el.attr( 'tour_id', flat_id );\n }\n // converter between raw dictionary and job dictionary\n function convert( identifier, head ) {\n for ( var index in head ) {\n var node = head[ index ];\n if ( node.input ) {\n var input = node.input;\n var flat_id = identifier;\n if ( identifier != '' ) {\n flat_id += '|';\n }\n flat_id += input.name;\n switch ( input.type ) {\n case 'repeat':\n var section_label = 'section-';\n var block_indices = [];\n var block_prefix = null;\n for ( var block_label in node ) {\n var pos = block_label.indexOf( section_label );\n if ( pos != -1 ) {\n pos += section_label.length;\n block_indices.push( parseInt( block_label.substr( pos ) ));\n if ( !block_prefix ) {\n block_prefix = block_label.substr( 0, pos );\n }\n }\n }\n block_indices.sort( function( a, b ) { return a - b; });\n var index = 0;\n for ( var i in block_indices ) {\n convert( flat_id + '_' + index++, node[ block_prefix + block_indices[ i ] ]);\n }\n break;\n case 'conditional':\n var value = self.app.field_list[ input.id ].value();\n add( flat_id + '|' + input.test_param.name, input.id, value );\n var selectedCase = matchCase( input, value );\n if ( selectedCase != -1 ) {\n convert( flat_id, head[ input.id + '-section-' + selectedCase ] );\n }\n break;\n case 'section':\n convert( !input.flat && flat_id || '', node );\n break;\n default:\n var field = self.app.field_list[ input.id ];\n if ( field && field.value ) {\n var value = field.value();\n if ( input.ignore === undefined || input.ignore != value ) {\n if ( field.collapsed && input.collapsible_value ) {\n value = input.collapsible_value;\n }\n add( flat_id, input.id, value );\n if ( input.payload ) {\n for ( var p_id in input.payload ) {\n add( p_id, input.id, input.payload[ p_id ] );\n }\n }\n }\n }\n }\n }\n }\n }\n convert( '', dict );\n return result_dict;\n },\n\n /** Matches flat ids to corresponding input element\n * @param{string} flat_id - Flat input id to be looked up.\n */\n match: function ( flat_id ) {\n return this.flat_dict && this.flat_dict[ flat_id ];\n },\n\n /** Match conditional values to selected cases\n */\n matchCase: function( input, value ) {\n return matchCase( input, value );\n },\n\n /** Matches a new tool model to the current input elements e.g. used to update dynamic options\n */\n matchModel: function( model, callback ) {\n return matchIds( model.inputs, this.flat_dict, callback );\n },\n\n /** Matches identifier from api response to input elements e.g. used to display validation errors\n */\n matchResponse: function( response ) {\n var result = {};\n var self = this;\n function search ( id, head ) {\n if ( typeof head === 'string' ) {\n var input_id = self.flat_dict[ id ];\n input_id && ( result[ input_id ] = head );\n } else {\n for ( var i in head ) {\n var new_id = i;\n if ( id !== '' ) {\n var separator = '|';\n if ( head instanceof Array ) {\n separator = '_';\n }\n new_id = id + separator + new_id;\n }\n search ( new_id, head[ i ] );\n }\n }\n }\n search( '', response );\n return result;\n },\n\n /** Map dom tree to dictionary tree with input elements.\n */\n _iterate: function( parent, dict ) {\n var self = this;\n var children = $( parent ).children();\n children.each( function() {\n var child = this;\n var id = $( child ).attr( 'id' );\n if ( $( child ).hasClass( 'section-row' ) ) {\n var input = self.app.input_list[ id ];\n dict[ id ] = ( input && { input : input } ) || {};\n self._iterate( child, dict[ id ] );\n } else {\n self._iterate( child, dict );\n }\n });\n }\n });\n\n /** Match conditional values to selected cases\n * @param{dict} input - Definition of conditional input parameter\n * @param{dict} value - Current value\n */\n var matchCase = function( input, value ) {\n if ( input.test_param.type == 'boolean' ) {\n if ( value == 'true' ) {\n value = input.test_param.truevalue || 'true';\n } else {\n value = input.test_param.falsevalue || 'false';\n }\n }\n for ( var i in input.cases ) {\n if ( input.cases[ i ].value == value ) {\n return i;\n }\n }\n return -1;\n };\n\n /** Match context\n * @param{dict} inputs - Dictionary of input elements\n * @param{dict} key - Reference key which is matched to an input name e.g. data_ref\n * @param{dict} callback - Called with matched context i.e. callback( input, referenced_input )\n */\n var matchContext = function( inputs, key, callback, context ) {\n context = $.extend( true, {}, context );\n _.each( inputs, function ( input ) {\n input && input.type && ( context[ input.name ] = input );\n });\n _.each( inputs, function ( input ) {\n if ( _.isObject( input ) ) {\n if ( input.type && context[ input[ key ] ] ) {\n callback ( input, context[ input[ key ] ] );\n } else {\n matchContext( input, key, callback, context );\n }\n }\n });\n };\n\n /** Matches a tool model to a dictionary, indexed with flat ids\n * @param{dict} inputs - Dictionary of input elements\n * @param{dict} mapping - Dictionary containing flat ids\n * @param{dict} callback - Called with the mapped dictionary object and corresponding model node\n */\n var matchIds = function( inputs, mapping, callback ) {\n var result = {};\n var self = this;\n function search ( id, head ) {\n for ( var i in head ) {\n var node = head[ i ];\n var index = node.name;\n id != '' && ( index = id + '|' + index );\n switch ( node.type ) {\n case 'repeat':\n for ( var j in node.cache ) {\n search ( index + '_' + j, node.cache[ j ] );\n }\n break;\n case 'conditional':\n var selectedCase = matchCase( node, node.test_param && node.test_param.value );\n selectedCase != -1 && search ( index, node.cases[ selectedCase ].inputs );\n break;\n case 'section':\n search ( index, node.inputs );\n break;\n default:\n var mapped = mapping[ index ];\n mapped && callback( mapped, node );\n }\n }\n }\n search( '', inputs );\n return result;\n };\n\n return {\n Manager : Manager,\n matchIds : matchIds,\n matchContext : matchContext\n }\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/form/form-data.js\n ** module id = 42\n ** module chunks = 0 2\n **/","// dependencies\ndefine([], function() {\n\n// tool form templates\nreturn {\n help: function( options ) {\n var $tmpl = $( '
' ).addClass( 'ui-form-help' ).append( options.help );\n $tmpl.find( 'a' ).attr( 'target', '_blank' );\n return $tmpl;\n },\n\n success: function(response) {\n // check\n if (!response.jobs || !response.jobs.length) {\n return this.error(response);\n }\n\n // number of jobs\n var njobs = response.jobs.length;\n\n // job count info text\n var njobs_text = '';\n if (njobs == 1) {\n njobs_text = '1 job has';\n } else {\n njobs_text = njobs + ' jobs have';\n }\n\n // create template string\n var tmpl = '
' +\n '

' + njobs_text + ' been successfully added to the queue - resulting in the following datasets:

';\n for (var i in response.outputs) {\n tmpl += '

' + response.outputs[i].hid + ': ' + response.outputs[i].name + '

';\n }\n tmpl += '

You can check the status of queued jobs and view the resulting data by refreshing the History pane. When the job has been run the status will change from \\'running\\' to \\'finished\\' if completed successfully or \\'error\\' if problems were encountered.

' +\n '
';\n\n // return success message element\n return tmpl;\n },\n\n error: function(response) {\n return '
' +\n '

' +\n 'The server could not complete the request. Please contact the Galaxy Team if this error persists.' +\n '

' +\n '' +\n '
';\n },\n\n requirements: function(options) {\n var requirements_message = 'This tool requires ';\n for (var i in options.requirements) {\n var req = options.requirements[i];\n requirements_message += req.name;\n if (req.version) {\n requirements_message += ' (Version ' + req.version + ')';\n }\n if (i < options.requirements.length - 2) {\n requirements_message += ', ';\n }\n if (i == options.requirements.length - 2) {\n requirements_message += ' and ';\n }\n }\n return requirements_message + '. Click here for more information.';\n }\n};\n\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/tool/tool-template.js\n ** module id = 43\n ** module chunks = 0 2\n **/","define([\n \"libs/bibtex\",\n \"mvc/base-mvc\",\n \"utils/localization\"\n], function( parseBibtex, baseMVC, _l ){\n/* global Backbone */\n// we use amd here to require, but bibtex uses a global or commonjs pattern.\n// webpack will load via commonjs and plain requirejs will load as global. Check both\nparseBibtex = parseBibtex || window.BibtexParser;\n\nvar logNamespace = 'citation';\n//==============================================================================\n/** @class model for tool citations.\n * @name Citation\n * @augments Backbone.Model\n */\nvar Citation = Backbone.Model.extend( baseMVC.LoggableMixin ).extend( {\n _logNamespace : logNamespace,\n\n initialize: function() {\n var bibtex = this.get( 'content' );\n var entry = parseBibtex(bibtex).entries[0];\n this.entry = entry;\n this._fields = {};\n var rawFields = entry.Fields;\n for(var key in rawFields) {\n var value = rawFields[ key ];\n var lowerKey = key.toLowerCase();\n this._fields[ lowerKey ] = value;\n }\n },\n entryType: function() {\n return this.entry.EntryType;\n },\n fields: function() {\n return this._fields;\n }\n} );\n\n//==============================================================================\n/** @class Backbone collection of citations.\n */\nvar BaseCitationCollection = Backbone.Collection.extend( baseMVC.LoggableMixin ).extend( {\n _logNamespace : logNamespace,\n\n /** root api url */\n urlRoot : Galaxy.root + 'api',\n partial : true, // Assume some tools in history/workflow may not be properly annotated yet.\n model : Citation,\n} );\n\nvar HistoryCitationCollection = BaseCitationCollection.extend( {\n /** complete api url */\n url : function() {\n return this.urlRoot + '/histories/' + this.history_id + '/citations';\n }\n} );\n\nvar ToolCitationCollection = BaseCitationCollection.extend( {\n /** complete api url */\n url : function() {\n return this.urlRoot + '/tools/' + this.tool_id + '/citations';\n },\n partial : false, // If a tool has citations, assume they are complete.\n} );\n\n\n//==============================================================================\nreturn {\n Citation : Citation,\n HistoryCitationCollection : HistoryCitationCollection,\n ToolCitationCollection: ToolCitationCollection\n};\n\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/citation/citation-model.js\n ** module id = 44\n ** module chunks = 0 2\n **/","/**\n * Parser.js\n * Copyright 2012-13 Mayank Lahiri\n * mlahiri@gmail.com\n * Released under the BSD License.\n *\n * A forgiving Bibtex parser that can:\n * \n * (1) operate in streaming or block mode, extracting entries as dictionaries. \n * (2) convert Latex special characters to UTF-8.\n * (3) best-effort parse malformed entries.\n * (4) run in a CommonJS environment or a browser, without any dependencies.\n * (5) be advanced-compiled by Google Closure Compiler.\n * \n * Handwritten as a labor of love, not auto-generated from a grammar. \n *\n * Modes of usage:\n *\n * (1) Synchronous, string\n *\n * var entries = BibtexParser(text);\n * console.log(entries);\n *\n * (2) Asynchronous, stream\n *\n * var entryCallback = function(entry) { console.log(entry); }\n * var parser = new BibtexParser(entryCallback);\n * parser.parse(chunk1);\n * parser.parse(chunk2);\n * ...\n * \n * @param {text|function(Object)} arg Either a Bibtex string or callback \n * function for processing parsed entries.\n * @constructor\n */\nfunction BibtexParser(arg0) {\n // Determine how this function is to be used\n if (typeof arg0 == 'string') {\n // Passed a string, synchronous call without 'new'\n var tempStorage = {};\n var entries = [];\n function accumulator(entry) {\n entries.push(entry);\n }\n var parser = BibtexParser.call(tempStorage, accumulator);\n parser.parse(arg0);\n return {\n 'entries': entries,\n 'errors': parser.getErrors()\n }\n }\n if (typeof arg0 != 'function') {\n throw 'Invalid parser construction.';\n }\n\n /** @enum {number} */\n this.STATES_ = {\n ENTRY_OR_JUNK: 0,\n OBJECT_TYPE: 1,\n ENTRY_KEY: 2, \n KV_KEY: 3, \n EQUALS: 4,\n KV_VALUE: 5 \n }\n /** @private */ this.DATA_ = {};\n /** @private */ this.CALLBACK_ = arg0;\n /** @private */ this.CHAR_ = 0;\n /** @private */ this.LINE_ = 1;\n /** @private */ this.CHAR_IN_LINE_ = 0;\n /** @private */ this.SKIPWS_ = true;\n /** @private */ this.SKIPCOMMENT_ = true;\n /** @private */ this.PARSETMP_ = {};\n /** @private */ this.SKIPTILLEOL_ = false;\n /** @private */ this.VALBRACES_ = null;\n /** @private */ this.BRACETYPE_ = null;\n /** @private */ this.BRACECOUNT_ = 0;\n /** @private */ this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n /** @private */ this.ERRORS_ = [];\n /** @private */ this.ENTRY_TYPES_ = {\n 'inproceedings' : 1,\n 'proceedings' : 2,\n 'article' : 3,\n 'techreport' : 4,\n 'misc' : 5,\n 'mastersthesis' : 6,\n 'book' : 7,\n 'phdthesis' : 8,\n 'incollection' : 9,\n 'unpublished' : 10,\n 'inbook' : 11,\n 'manual' : 12,\n 'periodical' : 13,\n 'booklet' : 14,\n 'masterthesis' : 15,\n 'conference' : 16\n ,'online' : 998 // Galaxy MOD: Handle @online entries for preprints.\n ,'data' : 999 // Galaxy MOD: Handle @data citations coming from figshare.\n }\n /** @private */ this.MACROS_ = {\n 'jan' : 'January',\n 'feb' : 'February',\n 'mar' : 'March',\n 'apr' : 'April',\n 'may' : 'May',\n 'jun' : 'June',\n 'jul' : 'July',\n 'aug' : 'August',\n 'sep' : 'September',\n 'oct' : 'October',\n 'nov' : 'November',\n 'dec' : 'December',\n 'Jan' : 'January',\n 'Feb' : 'February',\n 'Mar' : 'March',\n 'Apr' : 'April',\n 'May' : 'May',\n 'Jun' : 'June',\n 'Jul' : 'July',\n 'Aug' : 'August',\n 'Sep' : 'September',\n 'Oct' : 'October',\n 'Nov' : 'November',\n 'Dec' : 'December'\n }\n\n /**\n * Gets an array of all errors encountered during parsing.\n * Array entries are of the format:\n * [ line number, character in line, character in stream, error text ]\n *\n * @returns Array\n * @public\n */\n this.getErrors = function() {\n return this.ERRORS_;\n }\n\n /**\n * Processes a chunk of data\n * @public\n */\n this.parse = function(chunk) {\n for (var i = 0; i < chunk.length; i++)\n this.processCharacter_(chunk[i]);\n }\n\n /**\n * Logs error at current stream position.\n *\n * @private\n */\n this.error_ = function(text) {\n this.ERRORS_.push([ this.LINE_, \n this.CHAR_IN_LINE_,\n this.CHAR_,\n text ])\n }\n\n /**\n * Called after an entire entry has been parsed from the stream.\n * Performs post-processing and invokes the entry callback pointed to by\n * this.CALLBACK_. Parsed (but unprocessed) entry data is in this.DATA_.\n */\n this.processEntry_ = function() {\n var data = this.DATA_;\n if (data.Fields) \n for (var f in data.Fields) {\n var raw = data.Fields[f];\n\n // Convert Latex/Bibtex special characters to UTF-8 equivalents\n for (var i = 0; i < this.CHARCONV_.length; i++) {\n var re = this.CHARCONV_[i][0];\n var rep = this.CHARCONV_[i][1];\n raw = raw.replace(re, rep);\n }\n\n // Basic substitutions\n raw = raw.replace(/[\\n\\r\\t]/g, ' ')\n .replace(/\\s\\s+/g, ' ')\n .replace(/^\\s+|\\s+$/g, '')\n\n // Remove braces and backslashes\n var len = raw.length;\n var processed = '';\n for (var i = 0; i < len; i++) {\n var c = raw[i];\n var skip = false;\n if (c == '\\\\' && i < len-1) \n c = raw[++i];\n else {\n if (c == '{' || c == '}')\n skip = true;\n }\n if (!skip)\n processed += c;\n }\n data.Fields[f] = processed\n }\n\n if (data.ObjectType == 'string') {\n for (var f in data.Fields) { \n this.MACROS_[f] = data.Fields[f];\n }\n } else {\n // Parsed a new Bibtex entry\n this.CALLBACK_(data);\n }\n }\n\n\n /**\n * Processes next character in the stream, invoking the callback after \n * each entry has been found and processed.\n * \n * @private\n * @param {string} c Next character in input stream\n */\n this.processCharacter_ = function(c) {\n // Housekeeping\n this.CHAR_++;\n this.CHAR_IN_LINE_++;\n if (c == '\\n') {\n this.LINE_++;\n this.CHAR_IN_LINE_ = 1;\n }\n\n // Convenience states for skipping whitespace when needed\n if (this.SKIPTILLEOL_) {\n if (c == '\\n')\n this.SKIPTILLEOL_ = false;\n return;\n }\n if (this.SKIPCOMMENT_ && c == '%') {\n this.SKIPTILLEOL_ = true;\n return;\n }\n if (this.SKIPWS_ && /\\s/.test(c))\n return;\n this.SKIPWS_ = false;\n this.SKIPCOMMENT_ = false;\n this.SKIPTILLEOL_ = false;\n\n // Main state machine\n var AnotherIteration = true;\n while (AnotherIteration) {\n //console.log(this.LINE_, this.CHAR_IN_LINE_, this.STATE_, c)\n AnotherIteration = false;\n switch(this.STATE_) {\n // -- Scan for an object marker ('@')\n // -- Reset temporary data structure in case previous entry was garbled\n case this.STATES_.ENTRY_OR_JUNK:\n if (c == '@') {\n // SUCCESS: Parsed a valid start-of-object marker.\n // NEXT_STATE: OBJECT_TYPE\n this.STATE_ = this.STATES_.OBJECT_TYPE;\n this.DATA_ = {\n ObjectType : ''\n };\n }\n this.BRACETYPE_ = null;\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n break;\n\n // Start at first non-whitespace character after start-of-object '@'\n // -- Accept [A-Za-z], break on non-matching character\n // -- Populate this.DATA_.EntryType and this.DATA_.ObjectType\n case this.STATES_.OBJECT_TYPE:\n if (/[A-Za-z]/.test(c)) {\n this.DATA_.ObjectType += c.toLowerCase();\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n } else {\n // Break from state and validate object type\n var ot = this.DATA_.ObjectType;\n if (ot == 'comment') {\n this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n } else {\n if (ot == 'string') {\n this.DATA_.ObjectType = ot;\n this.DATA_.Fields = {};\n this.BRACETYPE_ = c;\n this.BRACECOUNT_ = 1;\n this.STATE_ = this.STATES_.KV_KEY;\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n this.PARSETMP_ = {\n Key: ''\n }\n } else {\n if (ot == 'preamble') {\n this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n } else {\n if (ot in this.ENTRY_TYPES_) {\n // SUCCESS: Parsed a valid object type.\n // NEXT_STATE: ENTRY_KEY\n this.DATA_.ObjectType = 'entry';\n this.DATA_.EntryType = ot;\n this.DATA_.EntryKey = '';\n this.STATE_ = this.STATES_.ENTRY_KEY;\n AnotherIteration = true;\n } else {\n // ERROR: Unrecognized object type.\n // NEXT_STATE: ENTRY_OR_JUNK\n this.error_('Unrecognized object type: \"' +\n this.DATA_.ObjectType + '\"')\n this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n }\n }\n }\n }\n }\n break;\n\n // Start at first non-alphabetic character after an entry type\n // -- Populate this.DATA_.EntryKey\n case this.STATES_.ENTRY_KEY:\n if ((c === '{' || c === '(') && this.BRACETYPE_ == null) {\n this.BRACETYPE_ = c;\n this.BRACECOUNT_ = 1;\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n break;\n }\n if (/[,%\\s]/.test(c)) {\n if (this.DATA_.EntryKey.length < 1) { \n // Skip comments and whitespace before entry key\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n } else {\n if (this.BRACETYPE_ == null) {\n // ERROR: No opening brace for object\n // NEXT_STATE: ENTRY_OR_JUNK\n this.error_('No opening brace for object.');\n this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n } else {\n // SUCCESS: Parsed an entry key\n // NEXT_STATE: KV_KEY\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n AnotherIteration = true;\n this.STATE_ = this.STATES_.KV_KEY;\n this.PARSETMP_.Key= '';\n this.DATA_.Fields = {};\n }\n }\n } else {\n this.DATA_.EntryKey += c;\n this.SKIPWS_ = false;\n this.SKIPCOMMENT_ = false;\n }\n break;\n\n // Start at first non-whitespace/comment character after entry key.\n // -- Populate this.PARSETMP_.Key\n case this.STATES_.KV_KEY:\n // Test for end of entry\n if ((c == '}' && this.BRACETYPE_ == '{') ||\n (c == ')' && this.BRACETYPE_ == '(')) {\n // SUCCESS: Parsed an entry, possible incomplete\n // NEXT_STATE: ENTRY_OR_JUNK\n this.processEntry_();\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n break;\n }\n if (/[\\-A-Za-z:]/.test(c)) {\n // Add to key\n this.PARSETMP_.Key += c;\n this.SKIPWS_ = false;\n this.SKIPCOMMENT_ = false;\n } else {\n // Either end of key or we haven't encountered start of key\n if (this.PARSETMP_.Key.length < 1) {\n // Keep going till we see a key\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n } else {\n // SUCCESS: Found full key in K/V pair\n // NEXT_STATE: EQUALS\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n this.STATE_ = this.STATES_.EQUALS;\n AnotherIteration = true;\n }\n }\n break;\n\n // Start at first non-alphabetic character after K/V pair key.\n case this.STATES_.EQUALS:\n if ((c == '}' && this.BRACETYPE_ == '{') ||\n (c == ')' && this.BRACETYPE_ == '(')) {\n // ERROR: K/V pair with key but no value\n // NEXT_STATE: ENTRY_OR_JUNK\n this.error_('Key-value pair has key \"' +\n this.PARSETMP_.Key + '\", but no value.');\n this.processEntry_();\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n break;\n }\n if (c == '=') {\n // SUCCESS: found an equal signs separating key and value\n // NEXT_STATE: KV_VALUE\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n this.STATE_ = this.STATES_.KV_VALUE;\n this.PARSETMP_.Value = '';\n this.VALBRACES_ = { '\"' : [], '{' : [] };\n }\n break;\n\n // Start at first non-whitespace/comment character after '=' \n // -- Populate this.PARSETMP_.Value\n case this.STATES_.KV_VALUE:\n var delim = this.VALBRACES_;\n var val = this.PARSETMP_.Value;\n var doneParsingValue = false;\n\n // Test for special characters\n if (c == '\"' || c == '{' || c == '}' || c == ',') {\n if (c == ',') {\n // This comma can mean:\n // (1) just another comma literal\n // (2) end of a macro reference\n if (0 === delim['\"'].length + delim['{'].length) {\n // end of a macro reference\n var macro = this.PARSETMP_.Value.trim();\n if (macro in this.MACROS_) {\n // Successful macro reference\n this.PARSETMP_.Value = this.MACROS_[macro];\n } else {\n // Reference to an undefined macro\n this.error_('Reference to an undefined macro: '+macro);\n }\n doneParsingValue = true;\n }\n }\n if (c == '\"') {\n // This quote can mean:\n // (1) opening delimiter\n // (2) closing delimiter\n // (3) literal, if we have a '{' on the stack\n if (0 === delim['\"'].length + delim['{'].length) {\n // opening delimiter\n delim['\"'].push(this.CHAR_)\n this.SKIPWS_ = false;\n this.SKIPCOMMENT_ = false;\n break;\n }\n if (delim['\"'].length == 1 && delim['{'].length == 0 &&\n (val.length==0 || val[val.length-1] != '\\\\')) {\n // closing delimiter\n doneParsingValue = true;\n } else {\n // literal, add to value\n }\n }\n if (c == '{') {\n // This brace can mean:\n // (1) opening delimiter\n // (2) stacked verbatim delimiter\n if (val.length == 0 || val[val.length-1] != '\\\\') {\n delim['{'].push(this.CHAR_)\n this.SKIPWS_ = false;\n this.SKIPCOMMENT_ = false;\n } else {\n // literal, add to value\n }\n }\n if (c == '}') {\n // This brace can mean:\n // (1) closing delimiter\n // (2) closing stacked verbatim delimiter\n // (3) end of object definition if value was a macro\n if (0 === delim['\"'].length + delim['{'].length) {\n // end of object definition, after macro\n var macro = this.PARSETMP_.Value.trim();\n if (macro in this.MACROS_) {\n // Successful macro reference\n this.PARSETMP_.Value = this.MACROS_[macro];\n } else {\n // Reference to an undefined macro\n this.error_('Reference to an undefined macro: '+macro);\n }\n AnotherIteration = true;\n doneParsingValue = true;\n } else {\n if (val.length == 0 || val[val.length-1] != '\\\\') {\n if (delim['{'].length > 0) {\n // pop stack for stacked verbatim delimiter\n delim['{'].splice(delim['{'].length-1, 1)\n if (0 == delim['{'].length + delim['\"'].length) {\n // closing delimiter\n doneParsingValue = true;\n } else {\n // end verbatim block\n }\n }\n } else {\n // literal, add to value\n }\n }\n }\n }\n\n // If here, then we are either done parsing the value or \n // have a literal that should be added to the value.\n if (doneParsingValue) {\n // SUCCESS: value parsed\n // NEXT_STATE: KV_KEY\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n this.STATE_ = this.STATES_.KV_KEY;\n this.DATA_.Fields[this.PARSETMP_.Key] = this.PARSETMP_.Value;\n this.PARSETMP_ = { Key: '' };\n this.VALBRACES_ = null;\n } else {\n this.PARSETMP_.Value += c;\n }\n break;\n } // end switch (this.STATE_)\n } // end while(AnotherIteration)\n } // end function processCharacter \n\n /** @private */ this.CHARCONV_ = [\n [ /\\\\space /g, '\\u0020' ],\n [ /\\\\textdollar /g, '\\u0024' ],\n [ /\\\\textquotesingle /g, '\\u0027' ],\n [ /\\\\ast /g, '\\u002A' ],\n [ /\\\\textbackslash /g, '\\u005C' ],\n [ /\\\\\\^\\{\\}/g, '\\u005E' ],\n [ /\\\\textasciigrave /g, '\\u0060' ],\n [ /\\\\lbrace /g, '\\u007B' ],\n [ /\\\\vert /g, '\\u007C' ],\n [ /\\\\rbrace /g, '\\u007D' ],\n [ /\\\\textasciitilde /g, '\\u007E' ],\n [ /\\\\textexclamdown /g, '\\u00A1' ],\n [ /\\\\textcent /g, '\\u00A2' ],\n [ /\\\\textsterling /g, '\\u00A3' ],\n [ /\\\\textcurrency /g, '\\u00A4' ],\n [ /\\\\textyen /g, '\\u00A5' ],\n [ /\\\\textbrokenbar /g, '\\u00A6' ],\n [ /\\\\textsection /g, '\\u00A7' ],\n [ /\\\\textasciidieresis /g, '\\u00A8' ],\n [ /\\\\textcopyright /g, '\\u00A9' ],\n [ /\\\\textordfeminine /g, '\\u00AA' ],\n [ /\\\\guillemotleft /g, '\\u00AB' ],\n [ /\\\\lnot /g, '\\u00AC' ],\n [ /\\\\textregistered /g, '\\u00AE' ],\n [ /\\\\textasciimacron /g, '\\u00AF' ],\n [ /\\\\textdegree /g, '\\u00B0' ],\n [ /\\\\pm /g, '\\u00B1' ],\n [ /\\\\textasciiacute /g, '\\u00B4' ],\n [ /\\\\mathrm\\{\\\\mu\\}/g, '\\u00B5' ],\n [ /\\\\textparagraph /g, '\\u00B6' ],\n [ /\\\\cdot /g, '\\u00B7' ],\n [ /\\\\c\\{\\}/g, '\\u00B8' ],\n [ /\\\\textordmasculine /g, '\\u00BA' ],\n [ /\\\\guillemotright /g, '\\u00BB' ],\n [ /\\\\textonequarter /g, '\\u00BC' ],\n [ /\\\\textonehalf /g, '\\u00BD' ],\n [ /\\\\textthreequarters /g, '\\u00BE' ],\n [ /\\\\textquestiondown /g, '\\u00BF' ],\n [ /\\\\`\\{A\\}/g, '\\u00C0' ],\n [ /\\\\'\\{A\\}/g, '\\u00C1' ],\n [ /\\\\\\^\\{A\\}/g, '\\u00C2' ],\n [ /\\\\~\\{A\\}/g, '\\u00C3' ],\n [ /\\\\\"\\{A\\}/g, '\\u00C4' ],\n [ /\\\\AA /g, '\\u00C5' ],\n [ /\\\\AE /g, '\\u00C6' ],\n [ /\\\\c\\{C\\}/g, '\\u00C7' ],\n [ /\\\\`\\{E\\}/g, '\\u00C8' ],\n [ /\\\\'\\{E\\}/g, '\\u00C9' ],\n [ /\\\\\\^\\{E\\}/g, '\\u00CA' ],\n [ /\\\\\"\\{E\\}/g, '\\u00CB' ],\n [ /\\\\`\\{I\\}/g, '\\u00CC' ],\n [ /\\\\'\\{I\\}/g, '\\u00CD' ],\n [ /\\\\\\^\\{I\\}/g, '\\u00CE' ],\n [ /\\\\\"\\{I\\}/g, '\\u00CF' ],\n [ /\\\\DH /g, '\\u00D0' ],\n [ /\\\\~\\{N\\}/g, '\\u00D1' ],\n [ /\\\\`\\{O\\}/g, '\\u00D2' ],\n [ /\\\\'\\{O\\}/g, '\\u00D3' ],\n [ /\\\\\\^\\{O\\}/g, '\\u00D4' ],\n [ /\\\\~\\{O\\}/g, '\\u00D5' ],\n [ /\\\\\"\\{O\\}/g, '\\u00D6' ],\n [ /\\\\texttimes /g, '\\u00D7' ],\n [ /\\\\O /g, '\\u00D8' ],\n [ /\\\\`\\{U\\}/g, '\\u00D9' ],\n [ /\\\\'\\{U\\}/g, '\\u00DA' ],\n [ /\\\\\\^\\{U\\}/g, '\\u00DB' ],\n [ /\\\\\"\\{U\\}/g, '\\u00DC' ],\n [ /\\\\'\\{Y\\}/g, '\\u00DD' ],\n [ /\\\\TH /g, '\\u00DE' ],\n [ /\\\\ss /g, '\\u00DF' ],\n [ /\\\\`\\{a\\}/g, '\\u00E0' ],\n [ /\\\\'\\{a\\}/g, '\\u00E1' ],\n [ /\\\\\\^\\{a\\}/g, '\\u00E2' ],\n [ /\\\\~\\{a\\}/g, '\\u00E3' ],\n [ /\\\\\"\\{a\\}/g, '\\u00E4' ],\n [ /\\\\aa /g, '\\u00E5' ],\n [ /\\\\ae /g, '\\u00E6' ],\n [ /\\\\c\\{c\\}/g, '\\u00E7' ],\n [ /\\\\`\\{e\\}/g, '\\u00E8' ],\n [ /\\\\'\\{e\\}/g, '\\u00E9' ],\n [ /\\\\\\^\\{e\\}/g, '\\u00EA' ],\n [ /\\\\\"\\{e\\}/g, '\\u00EB' ],\n [ /\\\\`\\{\\\\i\\}/g, '\\u00EC' ],\n [ /\\\\'\\{\\\\i\\}/g, '\\u00ED' ],\n [ /\\\\\\^\\{\\\\i\\}/g, '\\u00EE' ],\n [ /\\\\\"\\{\\\\i\\}/g, '\\u00EF' ],\n [ /\\\\dh /g, '\\u00F0' ],\n [ /\\\\~\\{n\\}/g, '\\u00F1' ],\n [ /\\\\`\\{o\\}/g, '\\u00F2' ],\n [ /\\\\'\\{o\\}/g, '\\u00F3' ],\n [ /\\\\\\^\\{o\\}/g, '\\u00F4' ],\n [ /\\\\~\\{o\\}/g, '\\u00F5' ],\n [ /\\\\\"\\{o\\}/g, '\\u00F6' ],\n [ /\\\\div /g, '\\u00F7' ],\n [ /\\\\o /g, '\\u00F8' ],\n [ /\\\\`\\{u\\}/g, '\\u00F9' ],\n [ /\\\\'\\{u\\}/g, '\\u00FA' ],\n [ /\\\\\\^\\{u\\}/g, '\\u00FB' ],\n [ /\\\\\"\\{u\\}/g, '\\u00FC' ],\n [ /\\\\'\\{y\\}/g, '\\u00FD' ],\n [ /\\\\th /g, '\\u00FE' ],\n [ /\\\\\"\\{y\\}/g, '\\u00FF' ],\n [ /\\\\=\\{A\\}/g, '\\u0100' ],\n [ /\\\\=\\{a\\}/g, '\\u0101' ],\n [ /\\\\u\\{A\\}/g, '\\u0102' ],\n [ /\\\\u\\{a\\}/g, '\\u0103' ],\n [ /\\\\k\\{A\\}/g, '\\u0104' ],\n [ /\\\\k\\{a\\}/g, '\\u0105' ],\n [ /\\\\'\\{C\\}/g, '\\u0106' ],\n [ /\\\\'\\{c\\}/g, '\\u0107' ],\n [ /\\\\\\^\\{C\\}/g, '\\u0108' ],\n [ /\\\\\\^\\{c\\}/g, '\\u0109' ],\n [ /\\\\.\\{C\\}/g, '\\u010A' ],\n [ /\\\\.\\{c\\}/g, '\\u010B' ],\n [ /\\\\v\\{C\\}/g, '\\u010C' ],\n [ /\\\\v\\{c\\}/g, '\\u010D' ],\n [ /\\\\v\\{D\\}/g, '\\u010E' ],\n [ /\\\\v\\{d\\}/g, '\\u010F' ],\n [ /\\\\DJ /g, '\\u0110' ],\n [ /\\\\dj /g, '\\u0111' ],\n [ /\\\\=\\{E\\}/g, '\\u0112' ],\n [ /\\\\=\\{e\\}/g, '\\u0113' ],\n [ /\\\\u\\{E\\}/g, '\\u0114' ],\n [ /\\\\u\\{e\\}/g, '\\u0115' ],\n [ /\\\\.\\{E\\}/g, '\\u0116' ],\n [ /\\\\.\\{e\\}/g, '\\u0117' ],\n [ /\\\\k\\{E\\}/g, '\\u0118' ],\n [ /\\\\k\\{e\\}/g, '\\u0119' ],\n [ /\\\\v\\{E\\}/g, '\\u011A' ],\n [ /\\\\v\\{e\\}/g, '\\u011B' ],\n [ /\\\\\\^\\{G\\}/g, '\\u011C' ],\n [ /\\\\\\^\\{g\\}/g, '\\u011D' ],\n [ /\\\\u\\{G\\}/g, '\\u011E' ],\n [ /\\\\u\\{g\\}/g, '\\u011F' ],\n [ /\\\\.\\{G\\}/g, '\\u0120' ],\n [ /\\\\.\\{g\\}/g, '\\u0121' ],\n [ /\\\\c\\{G\\}/g, '\\u0122' ],\n [ /\\\\c\\{g\\}/g, '\\u0123' ],\n [ /\\\\\\^\\{H\\}/g, '\\u0124' ],\n [ /\\\\\\^\\{h\\}/g, '\\u0125' ],\n [ /\\\\Elzxh /g, '\\u0127' ],\n [ /\\\\~\\{I\\}/g, '\\u0128' ],\n [ /\\\\~\\{\\\\i\\}/g, '\\u0129' ],\n [ /\\\\=\\{I\\}/g, '\\u012A' ],\n [ /\\\\=\\{\\\\i\\}/g, '\\u012B' ],\n [ /\\\\u\\{I\\}/g, '\\u012C' ],\n [ /\\\\u\\{\\\\i\\}/g, '\\u012D' ],\n [ /\\\\k\\{I\\}/g, '\\u012E' ],\n [ /\\\\k\\{i\\}/g, '\\u012F' ],\n [ /\\\\.\\{I\\}/g, '\\u0130' ],\n [ /\\\\i /g, '\\u0131' ],\n [ /\\\\\\^\\{J\\}/g, '\\u0134' ],\n [ /\\\\\\^\\{\\\\j\\}/g, '\\u0135' ],\n [ /\\\\c\\{K\\}/g, '\\u0136' ],\n [ /\\\\c\\{k\\}/g, '\\u0137' ],\n [ /\\\\'\\{L\\}/g, '\\u0139' ],\n [ /\\\\'\\{l\\}/g, '\\u013A' ],\n [ /\\\\c\\{L\\}/g, '\\u013B' ],\n [ /\\\\c\\{l\\}/g, '\\u013C' ],\n [ /\\\\v\\{L\\}/g, '\\u013D' ],\n [ /\\\\v\\{l\\}/g, '\\u013E' ],\n [ /\\\\L /g, '\\u0141' ],\n [ /\\\\l /g, '\\u0142' ],\n [ /\\\\'\\{N\\}/g, '\\u0143' ],\n [ /\\\\'\\{n\\}/g, '\\u0144' ],\n [ /\\\\c\\{N\\}/g, '\\u0145' ],\n [ /\\\\c\\{n\\}/g, '\\u0146' ],\n [ /\\\\v\\{N\\}/g, '\\u0147' ],\n [ /\\\\v\\{n\\}/g, '\\u0148' ],\n [ /\\\\NG /g, '\\u014A' ],\n [ /\\\\ng /g, '\\u014B' ],\n [ /\\\\=\\{O\\}/g, '\\u014C' ],\n [ /\\\\=\\{o\\}/g, '\\u014D' ],\n [ /\\\\u\\{O\\}/g, '\\u014E' ],\n [ /\\\\u\\{o\\}/g, '\\u014F' ],\n [ /\\\\H\\{O\\}/g, '\\u0150' ],\n [ /\\\\H\\{o\\}/g, '\\u0151' ],\n [ /\\\\OE /g, '\\u0152' ],\n [ /\\\\oe /g, '\\u0153' ],\n [ /\\\\'\\{R\\}/g, '\\u0154' ],\n [ /\\\\'\\{r\\}/g, '\\u0155' ],\n [ /\\\\c\\{R\\}/g, '\\u0156' ],\n [ /\\\\c\\{r\\}/g, '\\u0157' ],\n [ /\\\\v\\{R\\}/g, '\\u0158' ],\n [ /\\\\v\\{r\\}/g, '\\u0159' ],\n [ /\\\\'\\{S\\}/g, '\\u015A' ],\n [ /\\\\'\\{s\\}/g, '\\u015B' ],\n [ /\\\\\\^\\{S\\}/g, '\\u015C' ],\n [ /\\\\\\^\\{s\\}/g, '\\u015D' ],\n [ /\\\\c\\{S\\}/g, '\\u015E' ],\n [ /\\\\c\\{s\\}/g, '\\u015F' ],\n [ /\\\\v\\{S\\}/g, '\\u0160' ],\n [ /\\\\v\\{s\\}/g, '\\u0161' ],\n [ /\\\\c\\{T\\}/g, '\\u0162' ],\n [ /\\\\c\\{t\\}/g, '\\u0163' ],\n [ /\\\\v\\{T\\}/g, '\\u0164' ],\n [ /\\\\v\\{t\\}/g, '\\u0165' ],\n [ /\\\\~\\{U\\}/g, '\\u0168' ],\n [ /\\\\~\\{u\\}/g, '\\u0169' ],\n [ /\\\\=\\{U\\}/g, '\\u016A' ],\n [ /\\\\=\\{u\\}/g, '\\u016B' ],\n [ /\\\\u\\{U\\}/g, '\\u016C' ],\n [ /\\\\u\\{u\\}/g, '\\u016D' ],\n [ /\\\\r\\{U\\}/g, '\\u016E' ],\n [ /\\\\r\\{u\\}/g, '\\u016F' ],\n [ /\\\\H\\{U\\}/g, '\\u0170' ],\n [ /\\\\H\\{u\\}/g, '\\u0171' ],\n [ /\\\\k\\{U\\}/g, '\\u0172' ],\n [ /\\\\k\\{u\\}/g, '\\u0173' ],\n [ /\\\\\\^\\{W\\}/g, '\\u0174' ],\n [ /\\\\\\^\\{w\\}/g, '\\u0175' ],\n [ /\\\\\\^\\{Y\\}/g, '\\u0176' ],\n [ /\\\\\\^\\{y\\}/g, '\\u0177' ],\n [ /\\\\\"\\{Y\\}/g, '\\u0178' ],\n [ /\\\\'\\{Z\\}/g, '\\u0179' ],\n [ /\\\\'\\{z\\}/g, '\\u017A' ],\n [ /\\\\.\\{Z\\}/g, '\\u017B' ],\n [ /\\\\.\\{z\\}/g, '\\u017C' ],\n [ /\\\\v\\{Z\\}/g, '\\u017D' ],\n [ /\\\\v\\{z\\}/g, '\\u017E' ],\n [ /\\\\texthvlig /g, '\\u0195' ],\n [ /\\\\textnrleg /g, '\\u019E' ],\n [ /\\\\eth /g, '\\u01AA' ],\n [ /\\\\textdoublepipe /g, '\\u01C2' ],\n [ /\\\\'\\{g\\}/g, '\\u01F5' ],\n [ /\\\\Elztrna /g, '\\u0250' ],\n [ /\\\\Elztrnsa /g, '\\u0252' ],\n [ /\\\\Elzopeno /g, '\\u0254' ],\n [ /\\\\Elzrtld /g, '\\u0256' ],\n [ /\\\\Elzschwa /g, '\\u0259' ],\n [ /\\\\varepsilon /g, '\\u025B' ],\n [ /\\\\Elzpgamma /g, '\\u0263' ],\n [ /\\\\Elzpbgam /g, '\\u0264' ],\n [ /\\\\Elztrnh /g, '\\u0265' ],\n [ /\\\\Elzbtdl /g, '\\u026C' ],\n [ /\\\\Elzrtll /g, '\\u026D' ],\n [ /\\\\Elztrnm /g, '\\u026F' ],\n [ /\\\\Elztrnmlr /g, '\\u0270' ],\n [ /\\\\Elzltlmr /g, '\\u0271' ],\n [ /\\\\Elzltln /g, '\\u0272' ],\n [ /\\\\Elzrtln /g, '\\u0273' ],\n [ /\\\\Elzclomeg /g, '\\u0277' ],\n [ /\\\\textphi /g, '\\u0278' ],\n [ /\\\\Elztrnr /g, '\\u0279' ],\n [ /\\\\Elztrnrl /g, '\\u027A' ],\n [ /\\\\Elzrttrnr /g, '\\u027B' ],\n [ /\\\\Elzrl /g, '\\u027C' ],\n [ /\\\\Elzrtlr /g, '\\u027D' ],\n [ /\\\\Elzfhr /g, '\\u027E' ],\n [ /\\\\Elzrtls /g, '\\u0282' ],\n [ /\\\\Elzesh /g, '\\u0283' ],\n [ /\\\\Elztrnt /g, '\\u0287' ],\n [ /\\\\Elzrtlt /g, '\\u0288' ],\n [ /\\\\Elzpupsil /g, '\\u028A' ],\n [ /\\\\Elzpscrv /g, '\\u028B' ],\n [ /\\\\Elzinvv /g, '\\u028C' ],\n [ /\\\\Elzinvw /g, '\\u028D' ],\n [ /\\\\Elztrny /g, '\\u028E' ],\n [ /\\\\Elzrtlz /g, '\\u0290' ],\n [ /\\\\Elzyogh /g, '\\u0292' ],\n [ /\\\\Elzglst /g, '\\u0294' ],\n [ /\\\\Elzreglst /g, '\\u0295' ],\n [ /\\\\Elzinglst /g, '\\u0296' ],\n [ /\\\\textturnk /g, '\\u029E' ],\n [ /\\\\Elzdyogh /g, '\\u02A4' ],\n [ /\\\\Elztesh /g, '\\u02A7' ],\n [ /\\\\textasciicaron /g, '\\u02C7' ],\n [ /\\\\Elzverts /g, '\\u02C8' ],\n [ /\\\\Elzverti /g, '\\u02CC' ],\n [ /\\\\Elzlmrk /g, '\\u02D0' ],\n [ /\\\\Elzhlmrk /g, '\\u02D1' ],\n [ /\\\\Elzsbrhr /g, '\\u02D2' ],\n [ /\\\\Elzsblhr /g, '\\u02D3' ],\n [ /\\\\Elzrais /g, '\\u02D4' ],\n [ /\\\\Elzlow /g, '\\u02D5' ],\n [ /\\\\textasciibreve /g, '\\u02D8' ],\n [ /\\\\textperiodcentered /g, '\\u02D9' ],\n [ /\\\\r\\{\\}/g, '\\u02DA' ],\n [ /\\\\k\\{\\}/g, '\\u02DB' ],\n [ /\\\\texttildelow /g, '\\u02DC' ],\n [ /\\\\H\\{\\}/g, '\\u02DD' ],\n [ /\\\\tone\\{55\\}/g, '\\u02E5' ],\n [ /\\\\tone\\{44\\}/g, '\\u02E6' ],\n [ /\\\\tone\\{33\\}/g, '\\u02E7' ],\n [ /\\\\tone\\{22\\}/g, '\\u02E8' ],\n [ /\\\\tone\\{11\\}/g, '\\u02E9' ],\n [ /\\\\cyrchar\\\\C/g, '\\u030F' ],\n [ /\\\\Elzpalh /g, '\\u0321' ],\n [ /\\\\Elzrh /g, '\\u0322' ],\n [ /\\\\Elzsbbrg /g, '\\u032A' ],\n [ /\\\\Elzxl /g, '\\u0335' ],\n [ /\\\\Elzbar /g, '\\u0336' ],\n [ /\\\\'\\{A\\}/g, '\\u0386' ],\n [ /\\\\'\\{E\\}/g, '\\u0388' ],\n [ /\\\\'\\{H\\}/g, '\\u0389' ],\n [ /\\\\'\\{\\}\\{I\\}/g, '\\u038A' ],\n [ /\\\\'\\{\\}O/g, '\\u038C' ],\n [ /\\\\mathrm\\{'Y\\}/g, '\\u038E' ],\n [ /\\\\mathrm\\{'\\\\Omega\\}/g, '\\u038F' ],\n [ /\\\\acute\\{\\\\ddot\\{\\\\iota\\}\\}/g, '\\u0390' ],\n [ /\\\\Alpha /g, '\\u0391' ],\n [ /\\\\Beta /g, '\\u0392' ],\n [ /\\\\Gamma /g, '\\u0393' ],\n [ /\\\\Delta /g, '\\u0394' ],\n [ /\\\\Epsilon /g, '\\u0395' ],\n [ /\\\\Zeta /g, '\\u0396' ],\n [ /\\\\Eta /g, '\\u0397' ],\n [ /\\\\Theta /g, '\\u0398' ],\n [ /\\\\Iota /g, '\\u0399' ],\n [ /\\\\Kappa /g, '\\u039A' ],\n [ /\\\\Lambda /g, '\\u039B' ],\n [ /\\\\Xi /g, '\\u039E' ],\n [ /\\\\Pi /g, '\\u03A0' ],\n [ /\\\\Rho /g, '\\u03A1' ],\n [ /\\\\Sigma /g, '\\u03A3' ],\n [ /\\\\Tau /g, '\\u03A4' ],\n [ /\\\\Upsilon /g, '\\u03A5' ],\n [ /\\\\Phi /g, '\\u03A6' ],\n [ /\\\\Chi /g, '\\u03A7' ],\n [ /\\\\Psi /g, '\\u03A8' ],\n [ /\\\\Omega /g, '\\u03A9' ],\n [ /\\\\mathrm\\{\\\\ddot\\{I\\}\\}/g, '\\u03AA' ],\n [ /\\\\mathrm\\{\\\\ddot\\{Y\\}\\}/g, '\\u03AB' ],\n [ /\\\\'\\{\\$\\\\alpha\\$\\}/g, '\\u03AC' ],\n [ /\\\\acute\\{\\\\epsilon\\}/g, '\\u03AD' ],\n [ /\\\\acute\\{\\\\eta\\}/g, '\\u03AE' ],\n [ /\\\\acute\\{\\\\iota\\}/g, '\\u03AF' ],\n [ /\\\\acute\\{\\\\ddot\\{\\\\upsilon\\}\\}/g, '\\u03B0' ],\n [ /\\\\alpha /g, '\\u03B1' ],\n [ /\\\\beta /g, '\\u03B2' ],\n [ /\\\\gamma /g, '\\u03B3' ],\n [ /\\\\delta /g, '\\u03B4' ],\n [ /\\\\epsilon /g, '\\u03B5' ],\n [ /\\\\zeta /g, '\\u03B6' ],\n [ /\\\\eta /g, '\\u03B7' ],\n [ /\\\\texttheta /g, '\\u03B8' ],\n [ /\\\\iota /g, '\\u03B9' ],\n [ /\\\\kappa /g, '\\u03BA' ],\n [ /\\\\lambda /g, '\\u03BB' ],\n [ /\\\\mu /g, '\\u03BC' ],\n [ /\\\\nu /g, '\\u03BD' ],\n [ /\\\\xi /g, '\\u03BE' ],\n [ /\\\\pi /g, '\\u03C0' ],\n [ /\\\\rho /g, '\\u03C1' ],\n [ /\\\\varsigma /g, '\\u03C2' ],\n [ /\\\\sigma /g, '\\u03C3' ],\n [ /\\\\tau /g, '\\u03C4' ],\n [ /\\\\upsilon /g, '\\u03C5' ],\n [ /\\\\varphi /g, '\\u03C6' ],\n [ /\\\\chi /g, '\\u03C7' ],\n [ /\\\\psi /g, '\\u03C8' ],\n [ /\\\\omega /g, '\\u03C9' ],\n [ /\\\\ddot\\{\\\\iota\\}/g, '\\u03CA' ],\n [ /\\\\ddot\\{\\\\upsilon\\}/g, '\\u03CB' ],\n [ /\\\\'\\{o\\}/g, '\\u03CC' ],\n [ /\\\\acute\\{\\\\upsilon\\}/g, '\\u03CD' ],\n [ /\\\\acute\\{\\\\omega\\}/g, '\\u03CE' ],\n [ /\\\\Pisymbol\\{ppi022\\}\\{87\\}/g, '\\u03D0' ],\n [ /\\\\textvartheta /g, '\\u03D1' ],\n [ /\\\\Upsilon /g, '\\u03D2' ],\n [ /\\\\phi /g, '\\u03D5' ],\n [ /\\\\varpi /g, '\\u03D6' ],\n [ /\\\\Stigma /g, '\\u03DA' ],\n [ /\\\\Digamma /g, '\\u03DC' ],\n [ /\\\\digamma /g, '\\u03DD' ],\n [ /\\\\Koppa /g, '\\u03DE' ],\n [ /\\\\Sampi /g, '\\u03E0' ],\n [ /\\\\varkappa /g, '\\u03F0' ],\n [ /\\\\varrho /g, '\\u03F1' ],\n [ /\\\\textTheta /g, '\\u03F4' ],\n [ /\\\\backepsilon /g, '\\u03F6' ],\n [ /\\\\cyrchar\\\\CYRYO /g, '\\u0401' ],\n [ /\\\\cyrchar\\\\CYRDJE /g, '\\u0402' ],\n [ /\\\\cyrchar\\{\\\\'\\\\CYRG\\}/g, '\\u0403' ],\n [ /\\\\cyrchar\\\\CYRIE /g, '\\u0404' ],\n [ /\\\\cyrchar\\\\CYRDZE /g, '\\u0405' ],\n [ /\\\\cyrchar\\\\CYRII /g, '\\u0406' ],\n [ /\\\\cyrchar\\\\CYRYI /g, '\\u0407' ],\n [ /\\\\cyrchar\\\\CYRJE /g, '\\u0408' ],\n [ /\\\\cyrchar\\\\CYRLJE /g, '\\u0409' ],\n [ /\\\\cyrchar\\\\CYRNJE /g, '\\u040A' ],\n [ /\\\\cyrchar\\\\CYRTSHE /g, '\\u040B' ],\n [ /\\\\cyrchar\\{\\\\'\\\\CYRK\\}/g, '\\u040C' ],\n [ /\\\\cyrchar\\\\CYRUSHRT /g, '\\u040E' ],\n [ /\\\\cyrchar\\\\CYRDZHE /g, '\\u040F' ],\n [ /\\\\cyrchar\\\\CYRA /g, '\\u0410' ],\n [ /\\\\cyrchar\\\\CYRB /g, '\\u0411' ],\n [ /\\\\cyrchar\\\\CYRV /g, '\\u0412' ],\n [ /\\\\cyrchar\\\\CYRG /g, '\\u0413' ],\n [ /\\\\cyrchar\\\\CYRD /g, '\\u0414' ],\n [ /\\\\cyrchar\\\\CYRE /g, '\\u0415' ],\n [ /\\\\cyrchar\\\\CYRZH /g, '\\u0416' ],\n [ /\\\\cyrchar\\\\CYRZ /g, '\\u0417' ],\n [ /\\\\cyrchar\\\\CYRI /g, '\\u0418' ],\n [ /\\\\cyrchar\\\\CYRISHRT /g, '\\u0419' ],\n [ /\\\\cyrchar\\\\CYRK /g, '\\u041A' ],\n [ /\\\\cyrchar\\\\CYRL /g, '\\u041B' ],\n [ /\\\\cyrchar\\\\CYRM /g, '\\u041C' ],\n [ /\\\\cyrchar\\\\CYRN /g, '\\u041D' ],\n [ /\\\\cyrchar\\\\CYRO /g, '\\u041E' ],\n [ /\\\\cyrchar\\\\CYRP /g, '\\u041F' ],\n [ /\\\\cyrchar\\\\CYRR /g, '\\u0420' ],\n [ /\\\\cyrchar\\\\CYRS /g, '\\u0421' ],\n [ /\\\\cyrchar\\\\CYRT /g, '\\u0422' ],\n [ /\\\\cyrchar\\\\CYRU /g, '\\u0423' ],\n [ /\\\\cyrchar\\\\CYRF /g, '\\u0424' ],\n [ /\\\\cyrchar\\\\CYRH /g, '\\u0425' ],\n [ /\\\\cyrchar\\\\CYRC /g, '\\u0426' ],\n [ /\\\\cyrchar\\\\CYRCH /g, '\\u0427' ],\n [ /\\\\cyrchar\\\\CYRSH /g, '\\u0428' ],\n [ /\\\\cyrchar\\\\CYRSHCH /g, '\\u0429' ],\n [ /\\\\cyrchar\\\\CYRHRDSN /g, '\\u042A' ],\n [ /\\\\cyrchar\\\\CYRERY /g, '\\u042B' ],\n [ /\\\\cyrchar\\\\CYRSFTSN /g, '\\u042C' ],\n [ /\\\\cyrchar\\\\CYREREV /g, '\\u042D' ],\n [ /\\\\cyrchar\\\\CYRYU /g, '\\u042E' ],\n [ /\\\\cyrchar\\\\CYRYA /g, '\\u042F' ],\n [ /\\\\cyrchar\\\\cyra /g, '\\u0430' ],\n [ /\\\\cyrchar\\\\cyrb /g, '\\u0431' ],\n [ /\\\\cyrchar\\\\cyrv /g, '\\u0432' ],\n [ /\\\\cyrchar\\\\cyrg /g, '\\u0433' ],\n [ /\\\\cyrchar\\\\cyrd /g, '\\u0434' ],\n [ /\\\\cyrchar\\\\cyre /g, '\\u0435' ],\n [ /\\\\cyrchar\\\\cyrzh /g, '\\u0436' ],\n [ /\\\\cyrchar\\\\cyrz /g, '\\u0437' ],\n [ /\\\\cyrchar\\\\cyri /g, '\\u0438' ],\n [ /\\\\cyrchar\\\\cyrishrt /g, '\\u0439' ],\n [ /\\\\cyrchar\\\\cyrk /g, '\\u043A' ],\n [ /\\\\cyrchar\\\\cyrl /g, '\\u043B' ],\n [ /\\\\cyrchar\\\\cyrm /g, '\\u043C' ],\n [ /\\\\cyrchar\\\\cyrn /g, '\\u043D' ],\n [ /\\\\cyrchar\\\\cyro /g, '\\u043E' ],\n [ /\\\\cyrchar\\\\cyrp /g, '\\u043F' ],\n [ /\\\\cyrchar\\\\cyrr /g, '\\u0440' ],\n [ /\\\\cyrchar\\\\cyrs /g, '\\u0441' ],\n [ /\\\\cyrchar\\\\cyrt /g, '\\u0442' ],\n [ /\\\\cyrchar\\\\cyru /g, '\\u0443' ],\n [ /\\\\cyrchar\\\\cyrf /g, '\\u0444' ],\n [ /\\\\cyrchar\\\\cyrh /g, '\\u0445' ],\n [ /\\\\cyrchar\\\\cyrc /g, '\\u0446' ],\n [ /\\\\cyrchar\\\\cyrch /g, '\\u0447' ],\n [ /\\\\cyrchar\\\\cyrsh /g, '\\u0448' ],\n [ /\\\\cyrchar\\\\cyrshch /g, '\\u0449' ],\n [ /\\\\cyrchar\\\\cyrhrdsn /g, '\\u044A' ],\n [ /\\\\cyrchar\\\\cyrery /g, '\\u044B' ],\n [ /\\\\cyrchar\\\\cyrsftsn /g, '\\u044C' ],\n [ /\\\\cyrchar\\\\cyrerev /g, '\\u044D' ],\n [ /\\\\cyrchar\\\\cyryu /g, '\\u044E' ],\n [ /\\\\cyrchar\\\\cyrya /g, '\\u044F' ],\n [ /\\\\cyrchar\\\\cyryo /g, '\\u0451' ],\n [ /\\\\cyrchar\\\\cyrdje /g, '\\u0452' ],\n [ /\\\\cyrchar\\{\\\\'\\\\cyrg\\}/g, '\\u0453' ],\n [ /\\\\cyrchar\\\\cyrie /g, '\\u0454' ],\n [ /\\\\cyrchar\\\\cyrdze /g, '\\u0455' ],\n [ /\\\\cyrchar\\\\cyrii /g, '\\u0456' ],\n [ /\\\\cyrchar\\\\cyryi /g, '\\u0457' ],\n [ /\\\\cyrchar\\\\cyrje /g, '\\u0458' ],\n [ /\\\\cyrchar\\\\cyrlje /g, '\\u0459' ],\n [ /\\\\cyrchar\\\\cyrnje /g, '\\u045A' ],\n [ /\\\\cyrchar\\\\cyrtshe /g, '\\u045B' ],\n [ /\\\\cyrchar\\{\\\\'\\\\cyrk\\}/g, '\\u045C' ],\n [ /\\\\cyrchar\\\\cyrushrt /g, '\\u045E' ],\n [ /\\\\cyrchar\\\\cyrdzhe /g, '\\u045F' ],\n [ /\\\\cyrchar\\\\CYROMEGA /g, '\\u0460' ],\n [ /\\\\cyrchar\\\\cyromega /g, '\\u0461' ],\n [ /\\\\cyrchar\\\\CYRYAT /g, '\\u0462' ],\n [ /\\\\cyrchar\\\\CYRIOTE /g, '\\u0464' ],\n [ /\\\\cyrchar\\\\cyriote /g, '\\u0465' ],\n [ /\\\\cyrchar\\\\CYRLYUS /g, '\\u0466' ],\n [ /\\\\cyrchar\\\\cyrlyus /g, '\\u0467' ],\n [ /\\\\cyrchar\\\\CYRIOTLYUS /g, '\\u0468' ],\n [ /\\\\cyrchar\\\\cyriotlyus /g, '\\u0469' ],\n [ /\\\\cyrchar\\\\CYRBYUS /g, '\\u046A' ],\n [ /\\\\cyrchar\\\\CYRIOTBYUS /g, '\\u046C' ],\n [ /\\\\cyrchar\\\\cyriotbyus /g, '\\u046D' ],\n [ /\\\\cyrchar\\\\CYRKSI /g, '\\u046E' ],\n [ /\\\\cyrchar\\\\cyrksi /g, '\\u046F' ],\n [ /\\\\cyrchar\\\\CYRPSI /g, '\\u0470' ],\n [ /\\\\cyrchar\\\\cyrpsi /g, '\\u0471' ],\n [ /\\\\cyrchar\\\\CYRFITA /g, '\\u0472' ],\n [ /\\\\cyrchar\\\\CYRIZH /g, '\\u0474' ],\n [ /\\\\cyrchar\\\\CYRUK /g, '\\u0478' ],\n [ /\\\\cyrchar\\\\cyruk /g, '\\u0479' ],\n [ /\\\\cyrchar\\\\CYROMEGARND /g, '\\u047A' ],\n [ /\\\\cyrchar\\\\cyromegarnd /g, '\\u047B' ],\n [ /\\\\cyrchar\\\\CYROMEGATITLO /g, '\\u047C' ],\n [ /\\\\cyrchar\\\\cyromegatitlo /g, '\\u047D' ],\n [ /\\\\cyrchar\\\\CYROT /g, '\\u047E' ],\n [ /\\\\cyrchar\\\\cyrot /g, '\\u047F' ],\n [ /\\\\cyrchar\\\\CYRKOPPA /g, '\\u0480' ],\n [ /\\\\cyrchar\\\\cyrkoppa /g, '\\u0481' ],\n [ /\\\\cyrchar\\\\cyrthousands /g, '\\u0482' ],\n [ /\\\\cyrchar\\\\cyrhundredthousands /g, '\\u0488' ],\n [ /\\\\cyrchar\\\\cyrmillions /g, '\\u0489' ],\n [ /\\\\cyrchar\\\\CYRSEMISFTSN /g, '\\u048C' ],\n [ /\\\\cyrchar\\\\cyrsemisftsn /g, '\\u048D' ],\n [ /\\\\cyrchar\\\\CYRRTICK /g, '\\u048E' ],\n [ /\\\\cyrchar\\\\cyrrtick /g, '\\u048F' ],\n [ /\\\\cyrchar\\\\CYRGUP /g, '\\u0490' ],\n [ /\\\\cyrchar\\\\cyrgup /g, '\\u0491' ],\n [ /\\\\cyrchar\\\\CYRGHCRS /g, '\\u0492' ],\n [ /\\\\cyrchar\\\\cyrghcrs /g, '\\u0493' ],\n [ /\\\\cyrchar\\\\CYRGHK /g, '\\u0494' ],\n [ /\\\\cyrchar\\\\cyrghk /g, '\\u0495' ],\n [ /\\\\cyrchar\\\\CYRZHDSC /g, '\\u0496' ],\n [ /\\\\cyrchar\\\\cyrzhdsc /g, '\\u0497' ],\n [ /\\\\cyrchar\\\\CYRZDSC /g, '\\u0498' ],\n [ /\\\\cyrchar\\\\cyrzdsc /g, '\\u0499' ],\n [ /\\\\cyrchar\\\\CYRKDSC /g, '\\u049A' ],\n [ /\\\\cyrchar\\\\cyrkdsc /g, '\\u049B' ],\n [ /\\\\cyrchar\\\\CYRKVCRS /g, '\\u049C' ],\n [ /\\\\cyrchar\\\\cyrkvcrs /g, '\\u049D' ],\n [ /\\\\cyrchar\\\\CYRKHCRS /g, '\\u049E' ],\n [ /\\\\cyrchar\\\\cyrkhcrs /g, '\\u049F' ],\n [ /\\\\cyrchar\\\\CYRKBEAK /g, '\\u04A0' ],\n [ /\\\\cyrchar\\\\cyrkbeak /g, '\\u04A1' ],\n [ /\\\\cyrchar\\\\CYRNDSC /g, '\\u04A2' ],\n [ /\\\\cyrchar\\\\cyrndsc /g, '\\u04A3' ],\n [ /\\\\cyrchar\\\\CYRNG /g, '\\u04A4' ],\n [ /\\\\cyrchar\\\\cyrng /g, '\\u04A5' ],\n [ /\\\\cyrchar\\\\CYRPHK /g, '\\u04A6' ],\n [ /\\\\cyrchar\\\\cyrphk /g, '\\u04A7' ],\n [ /\\\\cyrchar\\\\CYRABHHA /g, '\\u04A8' ],\n [ /\\\\cyrchar\\\\cyrabhha /g, '\\u04A9' ],\n [ /\\\\cyrchar\\\\CYRSDSC /g, '\\u04AA' ],\n [ /\\\\cyrchar\\\\cyrsdsc /g, '\\u04AB' ],\n [ /\\\\cyrchar\\\\CYRTDSC /g, '\\u04AC' ],\n [ /\\\\cyrchar\\\\cyrtdsc /g, '\\u04AD' ],\n [ /\\\\cyrchar\\\\CYRY /g, '\\u04AE' ],\n [ /\\\\cyrchar\\\\cyry /g, '\\u04AF' ],\n [ /\\\\cyrchar\\\\CYRYHCRS /g, '\\u04B0' ],\n [ /\\\\cyrchar\\\\cyryhcrs /g, '\\u04B1' ],\n [ /\\\\cyrchar\\\\CYRHDSC /g, '\\u04B2' ],\n [ /\\\\cyrchar\\\\cyrhdsc /g, '\\u04B3' ],\n [ /\\\\cyrchar\\\\CYRTETSE /g, '\\u04B4' ],\n [ /\\\\cyrchar\\\\cyrtetse /g, '\\u04B5' ],\n [ /\\\\cyrchar\\\\CYRCHRDSC /g, '\\u04B6' ],\n [ /\\\\cyrchar\\\\cyrchrdsc /g, '\\u04B7' ],\n [ /\\\\cyrchar\\\\CYRCHVCRS /g, '\\u04B8' ],\n [ /\\\\cyrchar\\\\cyrchvcrs /g, '\\u04B9' ],\n [ /\\\\cyrchar\\\\CYRSHHA /g, '\\u04BA' ],\n [ /\\\\cyrchar\\\\cyrshha /g, '\\u04BB' ],\n [ /\\\\cyrchar\\\\CYRABHCH /g, '\\u04BC' ],\n [ /\\\\cyrchar\\\\cyrabhch /g, '\\u04BD' ],\n [ /\\\\cyrchar\\\\CYRABHCHDSC /g, '\\u04BE' ],\n [ /\\\\cyrchar\\\\cyrabhchdsc /g, '\\u04BF' ],\n [ /\\\\cyrchar\\\\CYRpalochka /g, '\\u04C0' ],\n [ /\\\\cyrchar\\\\CYRKHK /g, '\\u04C3' ],\n [ /\\\\cyrchar\\\\cyrkhk /g, '\\u04C4' ],\n [ /\\\\cyrchar\\\\CYRNHK /g, '\\u04C7' ],\n [ /\\\\cyrchar\\\\cyrnhk /g, '\\u04C8' ],\n [ /\\\\cyrchar\\\\CYRCHLDSC /g, '\\u04CB' ],\n [ /\\\\cyrchar\\\\cyrchldsc /g, '\\u04CC' ],\n [ /\\\\cyrchar\\\\CYRAE /g, '\\u04D4' ],\n [ /\\\\cyrchar\\\\cyrae /g, '\\u04D5' ],\n [ /\\\\cyrchar\\\\CYRSCHWA /g, '\\u04D8' ],\n [ /\\\\cyrchar\\\\cyrschwa /g, '\\u04D9' ],\n [ /\\\\cyrchar\\\\CYRABHDZE /g, '\\u04E0' ],\n [ /\\\\cyrchar\\\\cyrabhdze /g, '\\u04E1' ],\n [ /\\\\cyrchar\\\\CYROTLD /g, '\\u04E8' ],\n [ /\\\\cyrchar\\\\cyrotld /g, '\\u04E9' ],\n [ /\\\\hspace\\{0.6em\\}/g, '\\u2002' ],\n [ /\\\\hspace\\{1em\\}/g, '\\u2003' ],\n [ /\\\\hspace\\{0.33em\\}/g, '\\u2004' ],\n [ /\\\\hspace\\{0.25em\\}/g, '\\u2005' ],\n [ /\\\\hspace\\{0.166em\\}/g, '\\u2006' ],\n [ /\\\\hphantom\\{0\\}/g, '\\u2007' ],\n [ /\\\\hphantom\\{,\\}/g, '\\u2008' ],\n [ /\\\\hspace\\{0.167em\\}/g, '\\u2009' ],\n [ /\\\\mkern1mu /g, '\\u200A' ],\n [ /\\\\textendash /g, '\\u2013' ],\n [ /\\\\textemdash /g, '\\u2014' ],\n [ /\\\\rule\\{1em\\}\\{1pt\\}/g, '\\u2015' ],\n [ /\\\\Vert /g, '\\u2016' ],\n [ /\\\\Elzreapos /g, '\\u201B' ],\n [ /\\\\textquotedblleft /g, '\\u201C' ],\n [ /\\\\textquotedblright /g, '\\u201D' ],\n [ /\\\\textdagger /g, '\\u2020' ],\n [ /\\\\textdaggerdbl /g, '\\u2021' ],\n [ /\\\\textbullet /g, '\\u2022' ],\n [ /\\\\ldots /g, '\\u2026' ],\n [ /\\\\textperthousand /g, '\\u2030' ],\n [ /\\\\textpertenthousand /g, '\\u2031' ],\n [ /\\\\backprime /g, '\\u2035' ],\n [ /\\\\guilsinglleft /g, '\\u2039' ],\n [ /\\\\guilsinglright /g, '\\u203A' ],\n [ /\\\\mkern4mu /g, '\\u205F' ],\n [ /\\\\nolinebreak /g, '\\u2060' ],\n [ /\\\\ensuremath\\{\\\\Elzpes\\}/g, '\\u20A7' ],\n [ /\\\\mbox\\{\\\\texteuro\\} /g, '\\u20AC' ],\n [ /\\\\dddot /g, '\\u20DB' ],\n [ /\\\\ddddot /g, '\\u20DC' ],\n [ /\\\\mathbb\\{C\\}/g, '\\u2102' ],\n [ /\\\\mathscr\\{g\\}/g, '\\u210A' ],\n [ /\\\\mathscr\\{H\\}/g, '\\u210B' ],\n [ /\\\\mathfrak\\{H\\}/g, '\\u210C' ],\n [ /\\\\mathbb\\{H\\}/g, '\\u210D' ],\n [ /\\\\hslash /g, '\\u210F' ],\n [ /\\\\mathscr\\{I\\}/g, '\\u2110' ],\n [ /\\\\mathfrak\\{I\\}/g, '\\u2111' ],\n [ /\\\\mathscr\\{L\\}/g, '\\u2112' ],\n [ /\\\\mathscr\\{l\\}/g, '\\u2113' ],\n [ /\\\\mathbb\\{N\\}/g, '\\u2115' ],\n [ /\\\\cyrchar\\\\textnumero /g, '\\u2116' ],\n [ /\\\\wp /g, '\\u2118' ],\n [ /\\\\mathbb\\{P\\}/g, '\\u2119' ],\n [ /\\\\mathbb\\{Q\\}/g, '\\u211A' ],\n [ /\\\\mathscr\\{R\\}/g, '\\u211B' ],\n [ /\\\\mathfrak\\{R\\}/g, '\\u211C' ],\n [ /\\\\mathbb\\{R\\}/g, '\\u211D' ],\n [ /\\\\Elzxrat /g, '\\u211E' ],\n [ /\\\\texttrademark /g, '\\u2122' ],\n [ /\\\\mathbb\\{Z\\}/g, '\\u2124' ],\n [ /\\\\Omega /g, '\\u2126' ],\n [ /\\\\mho /g, '\\u2127' ],\n [ /\\\\mathfrak\\{Z\\}/g, '\\u2128' ],\n [ /\\\\ElsevierGlyph\\{2129\\}/g, '\\u2129' ],\n [ /\\\\AA /g, '\\u212B' ],\n [ /\\\\mathscr\\{B\\}/g, '\\u212C' ],\n [ /\\\\mathfrak\\{C\\}/g, '\\u212D' ],\n [ /\\\\mathscr\\{e\\}/g, '\\u212F' ],\n [ /\\\\mathscr\\{E\\}/g, '\\u2130' ],\n [ /\\\\mathscr\\{F\\}/g, '\\u2131' ],\n [ /\\\\mathscr\\{M\\}/g, '\\u2133' ],\n [ /\\\\mathscr\\{o\\}/g, '\\u2134' ],\n [ /\\\\aleph /g, '\\u2135' ],\n [ /\\\\beth /g, '\\u2136' ],\n [ /\\\\gimel /g, '\\u2137' ],\n [ /\\\\daleth /g, '\\u2138' ],\n [ /\\\\textfrac\\{1\\}\\{3\\}/g, '\\u2153' ],\n [ /\\\\textfrac\\{2\\}\\{3\\}/g, '\\u2154' ],\n [ /\\\\textfrac\\{1\\}\\{5\\}/g, '\\u2155' ],\n [ /\\\\textfrac\\{2\\}\\{5\\}/g, '\\u2156' ],\n [ /\\\\textfrac\\{3\\}\\{5\\}/g, '\\u2157' ],\n [ /\\\\textfrac\\{4\\}\\{5\\}/g, '\\u2158' ],\n [ /\\\\textfrac\\{1\\}\\{6\\}/g, '\\u2159' ],\n [ /\\\\textfrac\\{5\\}\\{6\\}/g, '\\u215A' ],\n [ /\\\\textfrac\\{1\\}\\{8\\}/g, '\\u215B' ],\n [ /\\\\textfrac\\{3\\}\\{8\\}/g, '\\u215C' ],\n [ /\\\\textfrac\\{5\\}\\{8\\}/g, '\\u215D' ],\n [ /\\\\textfrac\\{7\\}\\{8\\}/g, '\\u215E' ],\n [ /\\\\leftarrow /g, '\\u2190' ],\n [ /\\\\uparrow /g, '\\u2191' ],\n [ /\\\\rightarrow /g, '\\u2192' ],\n [ /\\\\downarrow /g, '\\u2193' ],\n [ /\\\\leftrightarrow /g, '\\u2194' ],\n [ /\\\\updownarrow /g, '\\u2195' ],\n [ /\\\\nwarrow /g, '\\u2196' ],\n [ /\\\\nearrow /g, '\\u2197' ],\n [ /\\\\searrow /g, '\\u2198' ],\n [ /\\\\swarrow /g, '\\u2199' ],\n [ /\\\\nleftarrow /g, '\\u219A' ],\n [ /\\\\nrightarrow /g, '\\u219B' ],\n [ /\\\\arrowwaveright /g, '\\u219C' ],\n [ /\\\\arrowwaveright /g, '\\u219D' ],\n [ /\\\\twoheadleftarrow /g, '\\u219E' ],\n [ /\\\\twoheadrightarrow /g, '\\u21A0' ],\n [ /\\\\leftarrowtail /g, '\\u21A2' ],\n [ /\\\\rightarrowtail /g, '\\u21A3' ],\n [ /\\\\mapsto /g, '\\u21A6' ],\n [ /\\\\hookleftarrow /g, '\\u21A9' ],\n [ /\\\\hookrightarrow /g, '\\u21AA' ],\n [ /\\\\looparrowleft /g, '\\u21AB' ],\n [ /\\\\looparrowright /g, '\\u21AC' ],\n [ /\\\\leftrightsquigarrow /g, '\\u21AD' ],\n [ /\\\\nleftrightarrow /g, '\\u21AE' ],\n [ /\\\\Lsh /g, '\\u21B0' ],\n [ /\\\\Rsh /g, '\\u21B1' ],\n [ /\\\\ElsevierGlyph\\{21B3\\}/g, '\\u21B3' ],\n [ /\\\\curvearrowleft /g, '\\u21B6' ],\n [ /\\\\curvearrowright /g, '\\u21B7' ],\n [ /\\\\circlearrowleft /g, '\\u21BA' ],\n [ /\\\\circlearrowright /g, '\\u21BB' ],\n [ /\\\\leftharpoonup /g, '\\u21BC' ],\n [ /\\\\leftharpoondown /g, '\\u21BD' ],\n [ /\\\\upharpoonright /g, '\\u21BE' ],\n [ /\\\\upharpoonleft /g, '\\u21BF' ],\n [ /\\\\rightharpoonup /g, '\\u21C0' ],\n [ /\\\\rightharpoondown /g, '\\u21C1' ],\n [ /\\\\downharpoonright /g, '\\u21C2' ],\n [ /\\\\downharpoonleft /g, '\\u21C3' ],\n [ /\\\\rightleftarrows /g, '\\u21C4' ],\n [ /\\\\dblarrowupdown /g, '\\u21C5' ],\n [ /\\\\leftrightarrows /g, '\\u21C6' ],\n [ /\\\\leftleftarrows /g, '\\u21C7' ],\n [ /\\\\upuparrows /g, '\\u21C8' ],\n [ /\\\\rightrightarrows /g, '\\u21C9' ],\n [ /\\\\downdownarrows /g, '\\u21CA' ],\n [ /\\\\leftrightharpoons /g, '\\u21CB' ],\n [ /\\\\rightleftharpoons /g, '\\u21CC' ],\n [ /\\\\nLeftarrow /g, '\\u21CD' ],\n [ /\\\\nLeftrightarrow /g, '\\u21CE' ],\n [ /\\\\nRightarrow /g, '\\u21CF' ],\n [ /\\\\Leftarrow /g, '\\u21D0' ],\n [ /\\\\Uparrow /g, '\\u21D1' ],\n [ /\\\\Rightarrow /g, '\\u21D2' ],\n [ /\\\\Downarrow /g, '\\u21D3' ],\n [ /\\\\Leftrightarrow /g, '\\u21D4' ],\n [ /\\\\Updownarrow /g, '\\u21D5' ],\n [ /\\\\Lleftarrow /g, '\\u21DA' ],\n [ /\\\\Rrightarrow /g, '\\u21DB' ],\n [ /\\\\rightsquigarrow /g, '\\u21DD' ],\n [ /\\\\DownArrowUpArrow /g, '\\u21F5' ],\n [ /\\\\forall /g, '\\u2200' ],\n [ /\\\\complement /g, '\\u2201' ],\n [ /\\\\partial /g, '\\u2202' ],\n [ /\\\\exists /g, '\\u2203' ],\n [ /\\\\nexists /g, '\\u2204' ],\n [ /\\\\varnothing /g, '\\u2205' ],\n [ /\\\\nabla /g, '\\u2207' ],\n [ /\\\\in /g, '\\u2208' ],\n [ /\\\\not\\\\in /g, '\\u2209' ],\n [ /\\\\ni /g, '\\u220B' ],\n [ /\\\\not\\\\ni /g, '\\u220C' ],\n [ /\\\\prod /g, '\\u220F' ],\n [ /\\\\coprod /g, '\\u2210' ],\n [ /\\\\sum /g, '\\u2211' ],\n [ /\\\\mp /g, '\\u2213' ],\n [ /\\\\dotplus /g, '\\u2214' ],\n [ /\\\\setminus /g, '\\u2216' ],\n [ /\\\\circ /g, '\\u2218' ],\n [ /\\\\bullet /g, '\\u2219' ],\n [ /\\\\surd /g, '\\u221A' ],\n [ /\\\\propto /g, '\\u221D' ],\n [ /\\\\infty /g, '\\u221E' ],\n [ /\\\\rightangle /g, '\\u221F' ],\n [ /\\\\angle /g, '\\u2220' ],\n [ /\\\\measuredangle /g, '\\u2221' ],\n [ /\\\\sphericalangle /g, '\\u2222' ],\n [ /\\\\mid /g, '\\u2223' ],\n [ /\\\\nmid /g, '\\u2224' ],\n [ /\\\\parallel /g, '\\u2225' ],\n [ /\\\\nparallel /g, '\\u2226' ],\n [ /\\\\wedge /g, '\\u2227' ],\n [ /\\\\vee /g, '\\u2228' ],\n [ /\\\\cap /g, '\\u2229' ],\n [ /\\\\cup /g, '\\u222A' ],\n [ /\\\\int /g, '\\u222B' ],\n [ /\\\\int\\\\!\\\\int /g, '\\u222C' ],\n [ /\\\\int\\\\!\\\\int\\\\!\\\\int /g, '\\u222D' ],\n [ /\\\\oint /g, '\\u222E' ],\n [ /\\\\surfintegral /g, '\\u222F' ],\n [ /\\\\volintegral /g, '\\u2230' ],\n [ /\\\\clwintegral /g, '\\u2231' ],\n [ /\\\\ElsevierGlyph\\{2232\\}/g, '\\u2232' ],\n [ /\\\\ElsevierGlyph\\{2233\\}/g, '\\u2233' ],\n [ /\\\\therefore /g, '\\u2234' ],\n [ /\\\\because /g, '\\u2235' ],\n [ /\\\\Colon /g, '\\u2237' ],\n [ /\\\\ElsevierGlyph\\{2238\\}/g, '\\u2238' ],\n [ /\\\\mathbin\\{\\{:\\}\\\\!\\\\!\\{\\-\\}\\\\!\\\\!\\{:\\}\\}/g, '\\u223A' ],\n [ /\\\\homothetic /g, '\\u223B' ],\n [ /\\\\sim /g, '\\u223C' ],\n [ /\\\\backsim /g, '\\u223D' ],\n [ /\\\\lazysinv /g, '\\u223E' ],\n [ /\\\\wr /g, '\\u2240' ],\n [ /\\\\not\\\\sim /g, '\\u2241' ],\n [ /\\\\ElsevierGlyph\\{2242\\}/g, '\\u2242' ],\n [ /\\\\NotEqualTilde /g, '\\u2242-00338' ],\n [ /\\\\simeq /g, '\\u2243' ],\n [ /\\\\not\\\\simeq /g, '\\u2244' ],\n [ /\\\\cong /g, '\\u2245' ],\n [ /\\\\approxnotequal /g, '\\u2246' ],\n [ /\\\\not\\\\cong /g, '\\u2247' ],\n [ /\\\\approx /g, '\\u2248' ],\n [ /\\\\not\\\\approx /g, '\\u2249' ],\n [ /\\\\approxeq /g, '\\u224A' ],\n [ /\\\\tildetrpl /g, '\\u224B' ],\n [ /\\\\not\\\\apid /g, '\\u224B-00338' ],\n [ /\\\\allequal /g, '\\u224C' ],\n [ /\\\\asymp /g, '\\u224D' ],\n [ /\\\\Bumpeq /g, '\\u224E' ],\n [ /\\\\NotHumpDownHump /g, '\\u224E-00338' ],\n [ /\\\\bumpeq /g, '\\u224F' ],\n [ /\\\\NotHumpEqual /g, '\\u224F-00338' ],\n [ /\\\\doteq /g, '\\u2250' ],\n [ /\\\\not\\\\doteq/g, '\\u2250-00338' ],\n [ /\\\\doteqdot /g, '\\u2251' ],\n [ /\\\\fallingdotseq /g, '\\u2252' ],\n [ /\\\\risingdotseq /g, '\\u2253' ],\n [ /\\\\eqcirc /g, '\\u2256' ],\n [ /\\\\circeq /g, '\\u2257' ],\n [ /\\\\estimates /g, '\\u2259' ],\n [ /\\\\ElsevierGlyph\\{225A\\}/g, '\\u225A' ],\n [ /\\\\starequal /g, '\\u225B' ],\n [ /\\\\triangleq /g, '\\u225C' ],\n [ /\\\\ElsevierGlyph\\{225F\\}/g, '\\u225F' ],\n [ /\\\\not =/g, '\\u2260' ],\n [ /\\\\equiv /g, '\\u2261' ],\n [ /\\\\not\\\\equiv /g, '\\u2262' ],\n [ /\\\\leq /g, '\\u2264' ],\n [ /\\\\geq /g, '\\u2265' ],\n [ /\\\\leqq /g, '\\u2266' ],\n [ /\\\\geqq /g, '\\u2267' ],\n [ /\\\\lneqq /g, '\\u2268' ],\n [ /\\\\lvertneqq /g, '\\u2268-0FE00' ],\n [ /\\\\gneqq /g, '\\u2269' ],\n [ /\\\\gvertneqq /g, '\\u2269-0FE00' ],\n [ /\\\\ll /g, '\\u226A' ],\n [ /\\\\NotLessLess /g, '\\u226A-00338' ],\n [ /\\\\gg /g, '\\u226B' ],\n [ /\\\\NotGreaterGreater /g, '\\u226B-00338' ],\n [ /\\\\between /g, '\\u226C' ],\n [ /\\\\not\\\\kern\\-0.3em\\\\times /g, '\\u226D' ],\n [ /\\\\not/g, '\\u226F' ],\n [ /\\\\not\\\\leq /g, '\\u2270' ],\n [ /\\\\not\\\\geq /g, '\\u2271' ],\n [ /\\\\lessequivlnt /g, '\\u2272' ],\n [ /\\\\greaterequivlnt /g, '\\u2273' ],\n [ /\\\\ElsevierGlyph\\{2274\\}/g, '\\u2274' ],\n [ /\\\\ElsevierGlyph\\{2275\\}/g, '\\u2275' ],\n [ /\\\\lessgtr /g, '\\u2276' ],\n [ /\\\\gtrless /g, '\\u2277' ],\n [ /\\\\notlessgreater /g, '\\u2278' ],\n [ /\\\\notgreaterless /g, '\\u2279' ],\n [ /\\\\prec /g, '\\u227A' ],\n [ /\\\\succ /g, '\\u227B' ],\n [ /\\\\preccurlyeq /g, '\\u227C' ],\n [ /\\\\succcurlyeq /g, '\\u227D' ],\n [ /\\\\precapprox /g, '\\u227E' ],\n [ /\\\\NotPrecedesTilde /g, '\\u227E-00338' ],\n [ /\\\\succapprox /g, '\\u227F' ],\n [ /\\\\NotSucceedsTilde /g, '\\u227F-00338' ],\n [ /\\\\not\\\\prec /g, '\\u2280' ],\n [ /\\\\not\\\\succ /g, '\\u2281' ],\n [ /\\\\subset /g, '\\u2282' ],\n [ /\\\\supset /g, '\\u2283' ],\n [ /\\\\not\\\\subset /g, '\\u2284' ],\n [ /\\\\not\\\\supset /g, '\\u2285' ],\n [ /\\\\subseteq /g, '\\u2286' ],\n [ /\\\\supseteq /g, '\\u2287' ],\n [ /\\\\not\\\\subseteq /g, '\\u2288' ],\n [ /\\\\not\\\\supseteq /g, '\\u2289' ],\n [ /\\\\subsetneq /g, '\\u228A' ],\n [ /\\\\varsubsetneqq /g, '\\u228A-0FE00' ],\n [ /\\\\supsetneq /g, '\\u228B' ],\n [ /\\\\varsupsetneq /g, '\\u228B-0FE00' ],\n [ /\\\\uplus /g, '\\u228E' ],\n [ /\\\\sqsubset /g, '\\u228F' ],\n [ /\\\\NotSquareSubset /g, '\\u228F-00338' ],\n [ /\\\\sqsupset /g, '\\u2290' ],\n [ /\\\\NotSquareSuperset /g, '\\u2290-00338' ],\n [ /\\\\sqsubseteq /g, '\\u2291' ],\n [ /\\\\sqsupseteq /g, '\\u2292' ],\n [ /\\\\sqcap /g, '\\u2293' ],\n [ /\\\\sqcup /g, '\\u2294' ],\n [ /\\\\oplus /g, '\\u2295' ],\n [ /\\\\ominus /g, '\\u2296' ],\n [ /\\\\otimes /g, '\\u2297' ],\n [ /\\\\oslash /g, '\\u2298' ],\n [ /\\\\odot /g, '\\u2299' ],\n [ /\\\\circledcirc /g, '\\u229A' ],\n [ /\\\\circledast /g, '\\u229B' ],\n [ /\\\\circleddash /g, '\\u229D' ],\n [ /\\\\boxplus /g, '\\u229E' ],\n [ /\\\\boxminus /g, '\\u229F' ],\n [ /\\\\boxtimes /g, '\\u22A0' ],\n [ /\\\\boxdot /g, '\\u22A1' ],\n [ /\\\\vdash /g, '\\u22A2' ],\n [ /\\\\dashv /g, '\\u22A3' ],\n [ /\\\\top /g, '\\u22A4' ],\n [ /\\\\perp /g, '\\u22A5' ],\n [ /\\\\truestate /g, '\\u22A7' ],\n [ /\\\\forcesextra /g, '\\u22A8' ],\n [ /\\\\Vdash /g, '\\u22A9' ],\n [ /\\\\Vvdash /g, '\\u22AA' ],\n [ /\\\\VDash /g, '\\u22AB' ],\n [ /\\\\nvdash /g, '\\u22AC' ],\n [ /\\\\nvDash /g, '\\u22AD' ],\n [ /\\\\nVdash /g, '\\u22AE' ],\n [ /\\\\nVDash /g, '\\u22AF' ],\n [ /\\\\vartriangleleft /g, '\\u22B2' ],\n [ /\\\\vartriangleright /g, '\\u22B3' ],\n [ /\\\\trianglelefteq /g, '\\u22B4' ],\n [ /\\\\trianglerighteq /g, '\\u22B5' ],\n [ /\\\\original /g, '\\u22B6' ],\n [ /\\\\image /g, '\\u22B7' ],\n [ /\\\\multimap /g, '\\u22B8' ],\n [ /\\\\hermitconjmatrix /g, '\\u22B9' ],\n [ /\\\\intercal /g, '\\u22BA' ],\n [ /\\\\veebar /g, '\\u22BB' ],\n [ /\\\\rightanglearc /g, '\\u22BE' ],\n [ /\\\\ElsevierGlyph\\{22C0\\}/g, '\\u22C0' ],\n [ /\\\\ElsevierGlyph\\{22C1\\}/g, '\\u22C1' ],\n [ /\\\\bigcap /g, '\\u22C2' ],\n [ /\\\\bigcup /g, '\\u22C3' ],\n [ /\\\\diamond /g, '\\u22C4' ],\n [ /\\\\cdot /g, '\\u22C5' ],\n [ /\\\\star /g, '\\u22C6' ],\n [ /\\\\divideontimes /g, '\\u22C7' ],\n [ /\\\\bowtie /g, '\\u22C8' ],\n [ /\\\\ltimes /g, '\\u22C9' ],\n [ /\\\\rtimes /g, '\\u22CA' ],\n [ /\\\\leftthreetimes /g, '\\u22CB' ],\n [ /\\\\rightthreetimes /g, '\\u22CC' ],\n [ /\\\\backsimeq /g, '\\u22CD' ],\n [ /\\\\curlyvee /g, '\\u22CE' ],\n [ /\\\\curlywedge /g, '\\u22CF' ],\n [ /\\\\Subset /g, '\\u22D0' ],\n [ /\\\\Supset /g, '\\u22D1' ],\n [ /\\\\Cap /g, '\\u22D2' ],\n [ /\\\\Cup /g, '\\u22D3' ],\n [ /\\\\pitchfork /g, '\\u22D4' ],\n [ /\\\\lessdot /g, '\\u22D6' ],\n [ /\\\\gtrdot /g, '\\u22D7' ],\n [ /\\\\verymuchless /g, '\\u22D8' ],\n [ /\\\\verymuchgreater /g, '\\u22D9' ],\n [ /\\\\lesseqgtr /g, '\\u22DA' ],\n [ /\\\\gtreqless /g, '\\u22DB' ],\n [ /\\\\curlyeqprec /g, '\\u22DE' ],\n [ /\\\\curlyeqsucc /g, '\\u22DF' ],\n [ /\\\\not\\\\sqsubseteq /g, '\\u22E2' ],\n [ /\\\\not\\\\sqsupseteq /g, '\\u22E3' ],\n [ /\\\\Elzsqspne /g, '\\u22E5' ],\n [ /\\\\lnsim /g, '\\u22E6' ],\n [ /\\\\gnsim /g, '\\u22E7' ],\n [ /\\\\precedesnotsimilar /g, '\\u22E8' ],\n [ /\\\\succnsim /g, '\\u22E9' ],\n [ /\\\\ntriangleleft /g, '\\u22EA' ],\n [ /\\\\ntriangleright /g, '\\u22EB' ],\n [ /\\\\ntrianglelefteq /g, '\\u22EC' ],\n [ /\\\\ntrianglerighteq /g, '\\u22ED' ],\n [ /\\\\vdots /g, '\\u22EE' ],\n [ /\\\\cdots /g, '\\u22EF' ],\n [ /\\\\upslopeellipsis /g, '\\u22F0' ],\n [ /\\\\downslopeellipsis /g, '\\u22F1' ],\n [ /\\\\barwedge /g, '\\u2305' ],\n [ /\\\\perspcorrespond /g, '\\u2306' ],\n [ /\\\\lceil /g, '\\u2308' ],\n [ /\\\\rceil /g, '\\u2309' ],\n [ /\\\\lfloor /g, '\\u230A' ],\n [ /\\\\rfloor /g, '\\u230B' ],\n [ /\\\\recorder /g, '\\u2315' ],\n [ /\\\\mathchar\"2208/g, '\\u2316' ],\n [ /\\\\ulcorner /g, '\\u231C' ],\n [ /\\\\urcorner /g, '\\u231D' ],\n [ /\\\\llcorner /g, '\\u231E' ],\n [ /\\\\lrcorner /g, '\\u231F' ],\n [ /\\\\frown /g, '\\u2322' ],\n [ /\\\\smile /g, '\\u2323' ],\n [ /\\\\langle /g, '\\u2329' ],\n [ /\\\\rangle /g, '\\u232A' ],\n [ /\\\\ElsevierGlyph\\{E838\\}/g, '\\u233D' ],\n [ /\\\\Elzdlcorn /g, '\\u23A3' ],\n [ /\\\\lmoustache /g, '\\u23B0' ],\n [ /\\\\rmoustache /g, '\\u23B1' ],\n [ /\\\\textvisiblespace /g, '\\u2423' ],\n [ /\\\\ding\\{172\\}/g, '\\u2460' ],\n [ /\\\\ding\\{173\\}/g, '\\u2461' ],\n [ /\\\\ding\\{174\\}/g, '\\u2462' ],\n [ /\\\\ding\\{175\\}/g, '\\u2463' ],\n [ /\\\\ding\\{176\\}/g, '\\u2464' ],\n [ /\\\\ding\\{177\\}/g, '\\u2465' ],\n [ /\\\\ding\\{178\\}/g, '\\u2466' ],\n [ /\\\\ding\\{179\\}/g, '\\u2467' ],\n [ /\\\\ding\\{180\\}/g, '\\u2468' ],\n [ /\\\\ding\\{181\\}/g, '\\u2469' ],\n [ /\\\\circledS /g, '\\u24C8' ],\n [ /\\\\Elzdshfnc /g, '\\u2506' ],\n [ /\\\\Elzsqfnw /g, '\\u2519' ],\n [ /\\\\diagup /g, '\\u2571' ],\n [ /\\\\ding\\{110\\}/g, '\\u25A0' ],\n [ /\\\\square /g, '\\u25A1' ],\n [ /\\\\blacksquare /g, '\\u25AA' ],\n [ /\\\\fbox\\{~~\\}/g, '\\u25AD' ],\n [ /\\\\Elzvrecto /g, '\\u25AF' ],\n [ /\\\\ElsevierGlyph\\{E381\\}/g, '\\u25B1' ],\n [ /\\\\ding\\{115\\}/g, '\\u25B2' ],\n [ /\\\\bigtriangleup /g, '\\u25B3' ],\n [ /\\\\blacktriangle /g, '\\u25B4' ],\n [ /\\\\vartriangle /g, '\\u25B5' ],\n [ /\\\\blacktriangleright /g, '\\u25B8' ],\n [ /\\\\triangleright /g, '\\u25B9' ],\n [ /\\\\ding\\{116\\}/g, '\\u25BC' ],\n [ /\\\\bigtriangledown /g, '\\u25BD' ],\n [ /\\\\blacktriangledown /g, '\\u25BE' ],\n [ /\\\\triangledown /g, '\\u25BF' ],\n [ /\\\\blacktriangleleft /g, '\\u25C2' ],\n [ /\\\\triangleleft /g, '\\u25C3' ],\n [ /\\\\ding\\{117\\}/g, '\\u25C6' ],\n [ /\\\\lozenge /g, '\\u25CA' ],\n [ /\\\\bigcirc /g, '\\u25CB' ],\n [ /\\\\ding\\{108\\}/g, '\\u25CF' ],\n [ /\\\\Elzcirfl /g, '\\u25D0' ],\n [ /\\\\Elzcirfr /g, '\\u25D1' ],\n [ /\\\\Elzcirfb /g, '\\u25D2' ],\n [ /\\\\ding\\{119\\}/g, '\\u25D7' ],\n [ /\\\\Elzrvbull /g, '\\u25D8' ],\n [ /\\\\Elzsqfl /g, '\\u25E7' ],\n [ /\\\\Elzsqfr /g, '\\u25E8' ],\n [ /\\\\Elzsqfse /g, '\\u25EA' ],\n [ /\\\\bigcirc /g, '\\u25EF' ],\n [ /\\\\ding\\{72\\}/g, '\\u2605' ],\n [ /\\\\ding\\{73\\}/g, '\\u2606' ],\n [ /\\\\ding\\{37\\}/g, '\\u260E' ],\n [ /\\\\ding\\{42\\}/g, '\\u261B' ],\n [ /\\\\ding\\{43\\}/g, '\\u261E' ],\n [ /\\\\rightmoon /g, '\\u263E' ],\n [ /\\\\mercury /g, '\\u263F' ],\n [ /\\\\venus /g, '\\u2640' ],\n [ /\\\\male /g, '\\u2642' ],\n [ /\\\\jupiter /g, '\\u2643' ],\n [ /\\\\saturn /g, '\\u2644' ],\n [ /\\\\uranus /g, '\\u2645' ],\n [ /\\\\neptune /g, '\\u2646' ],\n [ /\\\\pluto /g, '\\u2647' ],\n [ /\\\\aries /g, '\\u2648' ],\n [ /\\\\taurus /g, '\\u2649' ],\n [ /\\\\gemini /g, '\\u264A' ],\n [ /\\\\cancer /g, '\\u264B' ],\n [ /\\\\leo /g, '\\u264C' ],\n [ /\\\\virgo /g, '\\u264D' ],\n [ /\\\\libra /g, '\\u264E' ],\n [ /\\\\scorpio /g, '\\u264F' ],\n [ /\\\\sagittarius /g, '\\u2650' ],\n [ /\\\\capricornus /g, '\\u2651' ],\n [ /\\\\aquarius /g, '\\u2652' ],\n [ /\\\\pisces /g, '\\u2653' ],\n [ /\\\\ding\\{171\\}/g, '\\u2660' ],\n [ /\\\\diamond /g, '\\u2662' ],\n [ /\\\\ding\\{168\\}/g, '\\u2663' ],\n [ /\\\\ding\\{170\\}/g, '\\u2665' ],\n [ /\\\\ding\\{169\\}/g, '\\u2666' ],\n [ /\\\\quarternote /g, '\\u2669' ],\n [ /\\\\eighthnote /g, '\\u266A' ],\n [ /\\\\flat /g, '\\u266D' ],\n [ /\\\\natural /g, '\\u266E' ],\n [ /\\\\sharp /g, '\\u266F' ],\n [ /\\\\ding\\{33\\}/g, '\\u2701' ],\n [ /\\\\ding\\{34\\}/g, '\\u2702' ],\n [ /\\\\ding\\{35\\}/g, '\\u2703' ],\n [ /\\\\ding\\{36\\}/g, '\\u2704' ],\n [ /\\\\ding\\{38\\}/g, '\\u2706' ],\n [ /\\\\ding\\{39\\}/g, '\\u2707' ],\n [ /\\\\ding\\{40\\}/g, '\\u2708' ],\n [ /\\\\ding\\{41\\}/g, '\\u2709' ],\n [ /\\\\ding\\{44\\}/g, '\\u270C' ],\n [ /\\\\ding\\{45\\}/g, '\\u270D' ],\n [ /\\\\ding\\{46\\}/g, '\\u270E' ],\n [ /\\\\ding\\{47\\}/g, '\\u270F' ],\n [ /\\\\ding\\{48\\}/g, '\\u2710' ],\n [ /\\\\ding\\{49\\}/g, '\\u2711' ],\n [ /\\\\ding\\{50\\}/g, '\\u2712' ],\n [ /\\\\ding\\{51\\}/g, '\\u2713' ],\n [ /\\\\ding\\{52\\}/g, '\\u2714' ],\n [ /\\\\ding\\{53\\}/g, '\\u2715' ],\n [ /\\\\ding\\{54\\}/g, '\\u2716' ],\n [ /\\\\ding\\{55\\}/g, '\\u2717' ],\n [ /\\\\ding\\{56\\}/g, '\\u2718' ],\n [ /\\\\ding\\{57\\}/g, '\\u2719' ],\n [ /\\\\ding\\{58\\}/g, '\\u271A' ],\n [ /\\\\ding\\{59\\}/g, '\\u271B' ],\n [ /\\\\ding\\{60\\}/g, '\\u271C' ],\n [ /\\\\ding\\{61\\}/g, '\\u271D' ],\n [ /\\\\ding\\{62\\}/g, '\\u271E' ],\n [ /\\\\ding\\{63\\}/g, '\\u271F' ],\n [ /\\\\ding\\{64\\}/g, '\\u2720' ],\n [ /\\\\ding\\{65\\}/g, '\\u2721' ],\n [ /\\\\ding\\{66\\}/g, '\\u2722' ],\n [ /\\\\ding\\{67\\}/g, '\\u2723' ],\n [ /\\\\ding\\{68\\}/g, '\\u2724' ],\n [ /\\\\ding\\{69\\}/g, '\\u2725' ],\n [ /\\\\ding\\{70\\}/g, '\\u2726' ],\n [ /\\\\ding\\{71\\}/g, '\\u2727' ],\n [ /\\\\ding\\{73\\}/g, '\\u2729' ],\n [ /\\\\ding\\{74\\}/g, '\\u272A' ],\n [ /\\\\ding\\{75\\}/g, '\\u272B' ],\n [ /\\\\ding\\{76\\}/g, '\\u272C' ],\n [ /\\\\ding\\{77\\}/g, '\\u272D' ],\n [ /\\\\ding\\{78\\}/g, '\\u272E' ],\n [ /\\\\ding\\{79\\}/g, '\\u272F' ],\n [ /\\\\ding\\{80\\}/g, '\\u2730' ],\n [ /\\\\ding\\{81\\}/g, '\\u2731' ],\n [ /\\\\ding\\{82\\}/g, '\\u2732' ],\n [ /\\\\ding\\{83\\}/g, '\\u2733' ],\n [ /\\\\ding\\{84\\}/g, '\\u2734' ],\n [ /\\\\ding\\{85\\}/g, '\\u2735' ],\n [ /\\\\ding\\{86\\}/g, '\\u2736' ],\n [ /\\\\ding\\{87\\}/g, '\\u2737' ],\n [ /\\\\ding\\{88\\}/g, '\\u2738' ],\n [ /\\\\ding\\{89\\}/g, '\\u2739' ],\n [ /\\\\ding\\{90\\}/g, '\\u273A' ],\n [ /\\\\ding\\{91\\}/g, '\\u273B' ],\n [ /\\\\ding\\{92\\}/g, '\\u273C' ],\n [ /\\\\ding\\{93\\}/g, '\\u273D' ],\n [ /\\\\ding\\{94\\}/g, '\\u273E' ],\n [ /\\\\ding\\{95\\}/g, '\\u273F' ],\n [ /\\\\ding\\{96\\}/g, '\\u2740' ],\n [ /\\\\ding\\{97\\}/g, '\\u2741' ],\n [ /\\\\ding\\{98\\}/g, '\\u2742' ],\n [ /\\\\ding\\{99\\}/g, '\\u2743' ],\n [ /\\\\ding\\{100\\}/g, '\\u2744' ],\n [ /\\\\ding\\{101\\}/g, '\\u2745' ],\n [ /\\\\ding\\{102\\}/g, '\\u2746' ],\n [ /\\\\ding\\{103\\}/g, '\\u2747' ],\n [ /\\\\ding\\{104\\}/g, '\\u2748' ],\n [ /\\\\ding\\{105\\}/g, '\\u2749' ],\n [ /\\\\ding\\{106\\}/g, '\\u274A' ],\n [ /\\\\ding\\{107\\}/g, '\\u274B' ],\n [ /\\\\ding\\{109\\}/g, '\\u274D' ],\n [ /\\\\ding\\{111\\}/g, '\\u274F' ],\n [ /\\\\ding\\{112\\}/g, '\\u2750' ],\n [ /\\\\ding\\{113\\}/g, '\\u2751' ],\n [ /\\\\ding\\{114\\}/g, '\\u2752' ],\n [ /\\\\ding\\{118\\}/g, '\\u2756' ],\n [ /\\\\ding\\{120\\}/g, '\\u2758' ],\n [ /\\\\ding\\{121\\}/g, '\\u2759' ],\n [ /\\\\ding\\{122\\}/g, '\\u275A' ],\n [ /\\\\ding\\{123\\}/g, '\\u275B' ],\n [ /\\\\ding\\{124\\}/g, '\\u275C' ],\n [ /\\\\ding\\{125\\}/g, '\\u275D' ],\n [ /\\\\ding\\{126\\}/g, '\\u275E' ],\n [ /\\\\ding\\{161\\}/g, '\\u2761' ],\n [ /\\\\ding\\{162\\}/g, '\\u2762' ],\n [ /\\\\ding\\{163\\}/g, '\\u2763' ],\n [ /\\\\ding\\{164\\}/g, '\\u2764' ],\n [ /\\\\ding\\{165\\}/g, '\\u2765' ],\n [ /\\\\ding\\{166\\}/g, '\\u2766' ],\n [ /\\\\ding\\{167\\}/g, '\\u2767' ],\n [ /\\\\ding\\{182\\}/g, '\\u2776' ],\n [ /\\\\ding\\{183\\}/g, '\\u2777' ],\n [ /\\\\ding\\{184\\}/g, '\\u2778' ],\n [ /\\\\ding\\{185\\}/g, '\\u2779' ],\n [ /\\\\ding\\{186\\}/g, '\\u277A' ],\n [ /\\\\ding\\{187\\}/g, '\\u277B' ],\n [ /\\\\ding\\{188\\}/g, '\\u277C' ],\n [ /\\\\ding\\{189\\}/g, '\\u277D' ],\n [ /\\\\ding\\{190\\}/g, '\\u277E' ],\n [ /\\\\ding\\{191\\}/g, '\\u277F' ],\n [ /\\\\ding\\{192\\}/g, '\\u2780' ],\n [ /\\\\ding\\{193\\}/g, '\\u2781' ],\n [ /\\\\ding\\{194\\}/g, '\\u2782' ],\n [ /\\\\ding\\{195\\}/g, '\\u2783' ],\n [ /\\\\ding\\{196\\}/g, '\\u2784' ],\n [ /\\\\ding\\{197\\}/g, '\\u2785' ],\n [ /\\\\ding\\{198\\}/g, '\\u2786' ],\n [ /\\\\ding\\{199\\}/g, '\\u2787' ],\n [ /\\\\ding\\{200\\}/g, '\\u2788' ],\n [ /\\\\ding\\{201\\}/g, '\\u2789' ],\n [ /\\\\ding\\{202\\}/g, '\\u278A' ],\n [ /\\\\ding\\{203\\}/g, '\\u278B' ],\n [ /\\\\ding\\{204\\}/g, '\\u278C' ],\n [ /\\\\ding\\{205\\}/g, '\\u278D' ],\n [ /\\\\ding\\{206\\}/g, '\\u278E' ],\n [ /\\\\ding\\{207\\}/g, '\\u278F' ],\n [ /\\\\ding\\{208\\}/g, '\\u2790' ],\n [ /\\\\ding\\{209\\}/g, '\\u2791' ],\n [ /\\\\ding\\{210\\}/g, '\\u2792' ],\n [ /\\\\ding\\{211\\}/g, '\\u2793' ],\n [ /\\\\ding\\{212\\}/g, '\\u2794' ],\n [ /\\\\ding\\{216\\}/g, '\\u2798' ],\n [ /\\\\ding\\{217\\}/g, '\\u2799' ],\n [ /\\\\ding\\{218\\}/g, '\\u279A' ],\n [ /\\\\ding\\{219\\}/g, '\\u279B' ],\n [ /\\\\ding\\{220\\}/g, '\\u279C' ],\n [ /\\\\ding\\{221\\}/g, '\\u279D' ],\n [ /\\\\ding\\{222\\}/g, '\\u279E' ],\n [ /\\\\ding\\{223\\}/g, '\\u279F' ],\n [ /\\\\ding\\{224\\}/g, '\\u27A0' ],\n [ /\\\\ding\\{225\\}/g, '\\u27A1' ],\n [ /\\\\ding\\{226\\}/g, '\\u27A2' ],\n [ /\\\\ding\\{227\\}/g, '\\u27A3' ],\n [ /\\\\ding\\{228\\}/g, '\\u27A4' ],\n [ /\\\\ding\\{229\\}/g, '\\u27A5' ],\n [ /\\\\ding\\{230\\}/g, '\\u27A6' ],\n [ /\\\\ding\\{231\\}/g, '\\u27A7' ],\n [ /\\\\ding\\{232\\}/g, '\\u27A8' ],\n [ /\\\\ding\\{233\\}/g, '\\u27A9' ],\n [ /\\\\ding\\{234\\}/g, '\\u27AA' ],\n [ /\\\\ding\\{235\\}/g, '\\u27AB' ],\n [ /\\\\ding\\{236\\}/g, '\\u27AC' ],\n [ /\\\\ding\\{237\\}/g, '\\u27AD' ],\n [ /\\\\ding\\{238\\}/g, '\\u27AE' ],\n [ /\\\\ding\\{239\\}/g, '\\u27AF' ],\n [ /\\\\ding\\{241\\}/g, '\\u27B1' ],\n [ /\\\\ding\\{242\\}/g, '\\u27B2' ],\n [ /\\\\ding\\{243\\}/g, '\\u27B3' ],\n [ /\\\\ding\\{244\\}/g, '\\u27B4' ],\n [ /\\\\ding\\{245\\}/g, '\\u27B5' ],\n [ /\\\\ding\\{246\\}/g, '\\u27B6' ],\n [ /\\\\ding\\{247\\}/g, '\\u27B7' ],\n [ /\\\\ding\\{248\\}/g, '\\u27B8' ],\n [ /\\\\ding\\{249\\}/g, '\\u27B9' ],\n [ /\\\\ding\\{250\\}/g, '\\u27BA' ],\n [ /\\\\ding\\{251\\}/g, '\\u27BB' ],\n [ /\\\\ding\\{252\\}/g, '\\u27BC' ],\n [ /\\\\ding\\{253\\}/g, '\\u27BD' ],\n [ /\\\\ding\\{254\\}/g, '\\u27BE' ],\n [ /\\\\longleftarrow /g, '\\u27F5' ],\n [ /\\\\longrightarrow /g, '\\u27F6' ],\n [ /\\\\longleftrightarrow /g, '\\u27F7' ],\n [ /\\\\Longleftarrow /g, '\\u27F8' ],\n [ /\\\\Longrightarrow /g, '\\u27F9' ],\n [ /\\\\Longleftrightarrow /g, '\\u27FA' ],\n [ /\\\\longmapsto /g, '\\u27FC' ],\n [ /\\\\sim\\\\joinrel\\\\leadsto/g, '\\u27FF' ],\n [ /\\\\ElsevierGlyph\\{E212\\}/g, '\\u2905' ],\n [ /\\\\UpArrowBar /g, '\\u2912' ],\n [ /\\\\DownArrowBar /g, '\\u2913' ],\n [ /\\\\ElsevierGlyph\\{E20C\\}/g, '\\u2923' ],\n [ /\\\\ElsevierGlyph\\{E20D\\}/g, '\\u2924' ],\n [ /\\\\ElsevierGlyph\\{E20B\\}/g, '\\u2925' ],\n [ /\\\\ElsevierGlyph\\{E20A\\}/g, '\\u2926' ],\n [ /\\\\ElsevierGlyph\\{E211\\}/g, '\\u2927' ],\n [ /\\\\ElsevierGlyph\\{E20E\\}/g, '\\u2928' ],\n [ /\\\\ElsevierGlyph\\{E20F\\}/g, '\\u2929' ],\n [ /\\\\ElsevierGlyph\\{E210\\}/g, '\\u292A' ],\n [ /\\\\ElsevierGlyph\\{E21C\\}/g, '\\u2933' ],\n [ /\\\\ElsevierGlyph\\{E21D\\}/g, '\\u2933-00338' ],\n [ /\\\\ElsevierGlyph\\{E21A\\}/g, '\\u2936' ],\n [ /\\\\ElsevierGlyph\\{E219\\}/g, '\\u2937' ],\n [ /\\\\Elolarr /g, '\\u2940' ],\n [ /\\\\Elorarr /g, '\\u2941' ],\n [ /\\\\ElzRlarr /g, '\\u2942' ],\n [ /\\\\ElzrLarr /g, '\\u2944' ],\n [ /\\\\Elzrarrx /g, '\\u2947' ],\n [ /\\\\LeftRightVector /g, '\\u294E' ],\n [ /\\\\RightUpDownVector /g, '\\u294F' ],\n [ /\\\\DownLeftRightVector /g, '\\u2950' ],\n [ /\\\\LeftUpDownVector /g, '\\u2951' ],\n [ /\\\\LeftVectorBar /g, '\\u2952' ],\n [ /\\\\RightVectorBar /g, '\\u2953' ],\n [ /\\\\RightUpVectorBar /g, '\\u2954' ],\n [ /\\\\RightDownVectorBar /g, '\\u2955' ],\n [ /\\\\DownLeftVectorBar /g, '\\u2956' ],\n [ /\\\\DownRightVectorBar /g, '\\u2957' ],\n [ /\\\\LeftUpVectorBar /g, '\\u2958' ],\n [ /\\\\LeftDownVectorBar /g, '\\u2959' ],\n [ /\\\\LeftTeeVector /g, '\\u295A' ],\n [ /\\\\RightTeeVector /g, '\\u295B' ],\n [ /\\\\RightUpTeeVector /g, '\\u295C' ],\n [ /\\\\RightDownTeeVector /g, '\\u295D' ],\n [ /\\\\DownLeftTeeVector /g, '\\u295E' ],\n [ /\\\\DownRightTeeVector /g, '\\u295F' ],\n [ /\\\\LeftUpTeeVector /g, '\\u2960' ],\n [ /\\\\LeftDownTeeVector /g, '\\u2961' ],\n [ /\\\\UpEquilibrium /g, '\\u296E' ],\n [ /\\\\ReverseUpEquilibrium /g, '\\u296F' ],\n [ /\\\\RoundImplies /g, '\\u2970' ],\n [ /\\\\ElsevierGlyph\\{E214\\}/g, '\\u297C' ],\n [ /\\\\ElsevierGlyph\\{E215\\}/g, '\\u297D' ],\n [ /\\\\Elztfnc /g, '\\u2980' ],\n [ /\\\\ElsevierGlyph\\{3018\\}/g, '\\u2985' ],\n [ /\\\\Elroang /g, '\\u2986' ],\n [ /\\\\ElsevierGlyph\\{E291\\}/g, '\\u2994' ],\n [ /\\\\Elzddfnc /g, '\\u2999' ],\n [ /\\\\Angle /g, '\\u299C' ],\n [ /\\\\Elzlpargt /g, '\\u29A0' ],\n [ /\\\\ElsevierGlyph\\{E260\\}/g, '\\u29B5' ],\n [ /\\\\ElsevierGlyph\\{E61B\\}/g, '\\u29B6' ],\n [ /\\\\ElzLap /g, '\\u29CA' ],\n [ /\\\\Elzdefas /g, '\\u29CB' ],\n [ /\\\\LeftTriangleBar /g, '\\u29CF' ],\n [ /\\\\NotLeftTriangleBar /g, '\\u29CF-00338' ],\n [ /\\\\RightTriangleBar /g, '\\u29D0' ],\n [ /\\\\NotRightTriangleBar /g, '\\u29D0-00338' ],\n [ /\\\\ElsevierGlyph\\{E372\\}/g, '\\u29DC' ],\n [ /\\\\blacklozenge /g, '\\u29EB' ],\n [ /\\\\RuleDelayed /g, '\\u29F4' ],\n [ /\\\\Elxuplus /g, '\\u2A04' ],\n [ /\\\\ElzThr /g, '\\u2A05' ],\n [ /\\\\Elxsqcup /g, '\\u2A06' ],\n [ /\\\\ElzInf /g, '\\u2A07' ],\n [ /\\\\ElzSup /g, '\\u2A08' ],\n [ /\\\\ElzCint /g, '\\u2A0D' ],\n [ /\\\\clockoint /g, '\\u2A0F' ],\n [ /\\\\ElsevierGlyph\\{E395\\}/g, '\\u2A10' ],\n [ /\\\\sqrint /g, '\\u2A16' ],\n [ /\\\\ElsevierGlyph\\{E25A\\}/g, '\\u2A25' ],\n [ /\\\\ElsevierGlyph\\{E25B\\}/g, '\\u2A2A' ],\n [ /\\\\ElsevierGlyph\\{E25C\\}/g, '\\u2A2D' ],\n [ /\\\\ElsevierGlyph\\{E25D\\}/g, '\\u2A2E' ],\n [ /\\\\ElzTimes /g, '\\u2A2F' ],\n [ /\\\\ElsevierGlyph\\{E25E\\}/g, '\\u2A34' ],\n [ /\\\\ElsevierGlyph\\{E25E\\}/g, '\\u2A35' ],\n [ /\\\\ElsevierGlyph\\{E259\\}/g, '\\u2A3C' ],\n [ /\\\\amalg /g, '\\u2A3F' ],\n [ /\\\\ElzAnd /g, '\\u2A53' ],\n [ /\\\\ElzOr /g, '\\u2A54' ],\n [ /\\\\ElsevierGlyph\\{E36E\\}/g, '\\u2A55' ],\n [ /\\\\ElOr /g, '\\u2A56' ],\n [ /\\\\perspcorrespond /g, '\\u2A5E' ],\n [ /\\\\Elzminhat /g, '\\u2A5F' ],\n [ /\\\\ElsevierGlyph\\{225A\\}/g, '\\u2A63' ],\n [ /\\\\stackrel\\{*\\}\\{=\\}/g, '\\u2A6E' ],\n [ /\\\\Equal /g, '\\u2A75' ],\n [ /\\\\leqslant /g, '\\u2A7D' ],\n [ /\\\\nleqslant /g, '\\u2A7D-00338' ],\n [ /\\\\geqslant /g, '\\u2A7E' ],\n [ /\\\\ngeqslant /g, '\\u2A7E-00338' ],\n [ /\\\\lessapprox /g, '\\u2A85' ],\n [ /\\\\gtrapprox /g, '\\u2A86' ],\n [ /\\\\lneq /g, '\\u2A87' ],\n [ /\\\\gneq /g, '\\u2A88' ],\n [ /\\\\lnapprox /g, '\\u2A89' ],\n [ /\\\\gnapprox /g, '\\u2A8A' ],\n [ /\\\\lesseqqgtr /g, '\\u2A8B' ],\n [ /\\\\gtreqqless /g, '\\u2A8C' ],\n [ /\\\\eqslantless /g, '\\u2A95' ],\n [ /\\\\eqslantgtr /g, '\\u2A96' ],\n [ /\\\\Pisymbol\\{ppi020\\}\\{117\\}/g, '\\u2A9D' ],\n [ /\\\\Pisymbol\\{ppi020\\}\\{105\\}/g, '\\u2A9E' ],\n [ /\\\\NestedLessLess /g, '\\u2AA1' ],\n [ /\\\\NotNestedLessLess /g, '\\u2AA1-00338' ],\n [ /\\\\NestedGreaterGreater /g, '\\u2AA2' ],\n [ /\\\\NotNestedGreaterGreater /g, '\\u2AA2-00338' ],\n [ /\\\\preceq /g, '\\u2AAF' ],\n [ /\\\\not\\\\preceq /g, '\\u2AAF-00338' ],\n [ /\\\\succeq /g, '\\u2AB0' ],\n [ /\\\\not\\\\succeq /g, '\\u2AB0-00338' ],\n [ /\\\\precneqq /g, '\\u2AB5' ],\n [ /\\\\succneqq /g, '\\u2AB6' ],\n [ /\\\\precapprox /g, '\\u2AB7' ],\n [ /\\\\succapprox /g, '\\u2AB8' ],\n [ /\\\\precnapprox /g, '\\u2AB9' ],\n [ /\\\\succnapprox /g, '\\u2ABA' ],\n [ /\\\\subseteqq /g, '\\u2AC5' ],\n [ /\\\\nsubseteqq /g, '\\u2AC5-00338' ],\n [ /\\\\supseteqq /g, '\\u2AC6' ],\n [ /\\\\nsupseteqq/g, '\\u2AC6-00338' ],\n [ /\\\\subsetneqq /g, '\\u2ACB' ],\n [ /\\\\supsetneqq /g, '\\u2ACC' ],\n [ /\\\\ElsevierGlyph\\{E30D\\}/g, '\\u2AEB' ],\n [ /\\\\Elztdcol /g, '\\u2AF6' ],\n [ /\\\\ElsevierGlyph\\{300A\\}/g, '\\u300A' ],\n [ /\\\\ElsevierGlyph\\{300B\\}/g, '\\u300B' ],\n [ /\\\\ElsevierGlyph\\{3018\\}/g, '\\u3018' ],\n [ /\\\\ElsevierGlyph\\{3019\\}/g, '\\u3019' ],\n [ /\\\\openbracketleft /g, '\\u301A' ],\n [ /\\\\openbracketright /g, '\\u301B' ]\n ]\n\n return this;\n} // end function BibtexParser\n\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = BibtexParser;\n}\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/libs/bibtex.js\n ** module id = 45\n ** module chunks = 0 2\n **/","define([\n \"mvc/base-mvc\",\n \"mvc/citation/citation-model\",\n \"utils/localization\"\n], function( baseMVC, citationModel, _l ){\n\nvar CitationView = Backbone.View.extend({\n tagName: 'div',\n className: 'citations',\n render: function() {\n this.$el.append( \"

\" + this.formattedReference() + \"

\" );\n return this;\n },\n formattedReference: function() {\n var model = this.model;\n var entryType = model.entryType();\n var fields = model.fields();\n\n var ref = \"\";\n // Code inspired by...\n // https://github.com/vkaravir/bib-publication-list/blob/master/src/bib-publication-list.js\n var authorsAndYear = this._asSentence( (fields.author ? fields.author : \"\") + (fields.year ? (\" (\" + fields.year + \")\") : \"\") ) + \" \";\n var title = fields.title || \"\";\n var pages = fields.pages ? (\"pp. \" + fields.pages) : \"\";\n var address = fields.address;\n if( entryType == \"article\" ) {\n var volume = (fields.volume ? fields.volume : \"\") +\n (fields.number ? ( \" (\" + fields.number + \")\" ) : \"\") +\n (pages ? \", \" + pages : \"\");\n ref = authorsAndYear + this._asSentence(title) +\n (fields.journal ? (\"In \" + fields.journal + \", \") : \"\") +\n this._asSentence(volume) + \n this._asSentence(fields.address) +\n \"<\\/em>\";\n } else if( entryType == \"inproceedings\" || entryType == \"proceedings\" ) {\n ref = authorsAndYear + \n this._asSentence(title) + \n (fields.booktitle ? (\"In \" + fields.booktitle + \", \") : \"\") +\n (pages ? pages : \"\") +\n (address ? \", \" + address : \"\") + \n \".<\\/em>\";\n } else if( entryType == \"mastersthesis\" || entryType == \"phdthesis\" ) {\n ref = authorsAndYear + this._asSentence(title) +\n (fields.howpublished ? fields.howpublished + \". \" : \"\") +\n (fields.note ? fields.note + \".\" : \"\");\n } else if( entryType == \"techreport\" ) {\n ref = authorsAndYear + this._asSentence(title) +\n this._asSentence(fields.institution) +\n this._asSentence(fields.number) +\n this._asSentence(fields.type);\n } else if( entryType == \"book\" || entryType == \"inbook\" || entryType == \"incollection\" ) {\n ref = authorsAndYear + \" \" + this._formatBookInfo(fields);\n } else {\n ref = authorsAndYear + \" \" + this._asSentence(title) +\n this._asSentence(fields.howpublished) +\n this._asSentence(fields.note);\n }\n var doiUrl = \"\";\n if( fields.doi ) {\n doiUrl = 'http://dx.doi.org/' + fields.doi;\n ref += '[doi:' + fields.doi + \"]\";\n }\n var url = fields.url || doiUrl;\n if( url ) {\n ref += '[Link]';\n }\n return ref;\n },\n _formatBookInfo: function(fields) {\n var info = \"\";\n if( fields.chapter ) {\n info += fields.chapter + \" in \";\n }\n if( fields.title ) {\n info += \"\" + fields.title + \"<\\/em>\";\n }\n if( fields.editor ) {\n info += \", Edited by \" + fields.editor + \", \";\n }\n if( fields.publisher) {\n info += \", \" + fields.publisher;\n }\n if( fields.pages ) {\n info += \", pp. \" + fields.pages + \"\";\n }\n if( fields.series ) {\n info += \", \" + fields.series + \"<\\/em>\";\n }\n if( fields.volume ) {\n info += \", Vol.\" + fields.volume;\n }\n if( fields.issn ) {\n info += \", ISBN: \" + fields.issn;\n }\n return info + \".\";\n },\n _asSentence: function(str) {\n return (str && str.trim()) ? str + \". \" : \"\";\n }\n});\n\nvar CitationListView = Backbone.View.extend({\n el: '#citations',\n /**\n * Set up view.\n */\n initialize: function() {\n this.listenTo( this.collection, 'add', this.renderCitation );\n },\n\n events: {\n 'click .citations-to-bibtex': 'showBibtex',\n 'click .citations-to-formatted': 'showFormatted'\n },\n\n renderCitation: function( citation ) {\n var citationView = new CitationView( { model: citation } );\n this.$(\".citations-formatted\").append( citationView.render().el );\n var rawTextarea = this.$(\".citations-bibtex-text\");\n rawTextarea.val( rawTextarea.val() + \"\\n\\r\" + citation.attributes.content );\n },\n\n render: function() {\n this.$el.html(this.citationsElement());\n this.collection.each(function( item ){\n this.renderCitation( item );\n }, this);\n this.showFormatted();\n },\n\n showBibtex: function() {\n this.$(\".citations-to-formatted\").show();\n this.$(\".citations-to-bibtex\").hide();\n this.$(\".citations-bibtex\").show();\n this.$(\".citations-formatted\").hide();\n this.$(\".citations-bibtex-text\").select();\n },\n\n showFormatted: function() {\n this.$(\".citations-to-formatted\").hide();\n this.$(\".citations-to-bibtex\").show();\n this.$(\".citations-bibtex\").hide();\n this.$(\".citations-formatted\").show();\n },\n\n partialWarningElement: function() {\n if( this.collection.partial ) {\n return [\n '
',\n 'Warning: This is a experimental feature. Most Galaxy tools will not annotate',\n ' citations explicitly at this time. When writing up your analysis, please manually',\n ' review your histories and find all references',\n ' that should be cited in order to completely describe your work. Also, please remember to',\n ' cite Galaxy.',\n '
',\n ].join('');\n } else {\n return '';\n }\n },\n\n citationsElement: function() {\n return [\n '
',\n '
',\n _l(\"Citations\"),\n ' ',\n ' ',\n '
',\n '
',\n this.partialWarningElement(),\n '',\n '
',\n '
',\n '',\n '
',\n '
'\n ].join( '' );\n }\n});\n\n//==============================================================================\nreturn {\n CitationView : CitationView,\n CitationListView : CitationListView\n};\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/citation/citation-view.js\n ** module id = 46\n ** module chunks = 0 2\n **/","/** Upload app contains the upload progress button and upload modal, compiles model data for API request **/\ndefine(['utils/utils',\n 'mvc/ui/ui-modal',\n 'mvc/ui/ui-tabs',\n 'mvc/upload/upload-button',\n 'mvc/upload/default/default-view',\n 'mvc/upload/composite/composite-view'],\n function( Utils,\n Modal,\n Tabs,\n UploadButton,\n UploadViewDefault,\n UploadViewComposite ) {\nreturn Backbone.View.extend({\n // default options\n options : {\n nginx_upload_path : '',\n ftp_upload_site : 'n/a',\n default_genome : '?',\n default_extension : 'auto',\n height : 500,\n width : 900,\n auto : {\n id : 'auto',\n text : 'Auto-detect',\n description : 'This system will try to detect the file type automatically. If your file is not detected properly as one of the known formats, it most likely means that it has some format problems (e.g., different number of columns on different rows). You can still coerce the system to set your data to the format you think it should be. You can also upload compressed files, which will automatically be decompressed.'\n }\n },\n\n // upload modal container\n modal: null,\n\n // progress button in panel\n ui_button: null,\n\n // current history identifier\n current_history: null,\n\n // contains all available dataset extensions/types\n list_extensions: [],\n\n // contains all available genomes\n list_genomes: [],\n\n // initialize\n initialize: function( options ) {\n // link this\n var self = this;\n\n // merge parsed options\n this.options = Utils.merge( options, this.options );\n\n // create model for upload/progress button\n this.ui_button = new UploadButton.Model();\n\n // create view for upload/progress button\n this.ui_button_view = new UploadButton.View({\n model : this.ui_button,\n onclick : function(e) {\n e.preventDefault();\n self.show()\n },\n onunload : function() {\n var percentage = self.ui_button.get('percentage', 0);\n if (percentage > 0 && percentage < 100) {\n return 'Several uploads are queued.';\n }\n }\n });\n\n // set element to button view\n this.setElement( this.ui_button_view.$el );\n\n // load extensions\n var self = this;\n Utils.get({\n url : Galaxy.root + 'api/datatypes?extension_only=False',\n success : function( datatypes ) {\n for ( key in datatypes ) {\n self.list_extensions.push({\n id : datatypes[ key ].extension,\n text : datatypes[ key ].extension,\n description : datatypes[ key ].description,\n description_url : datatypes[ key ].description_url,\n composite_files : datatypes[ key ].composite_files\n });\n }\n self.list_extensions.sort( function( a, b ) {\n var a_text = a.text && a.text.toLowerCase();\n var b_text = b.text && b.text.toLowerCase();\n return a_text > b_text ? 1 : a_text < b_text ? -1 : 0;\n });\n if ( !self.options.datatypes_disable_auto ) {\n self.list_extensions.unshift( self.options.auto );\n }\n }\n });\n\n // load genomes\n Utils.get({\n url : Galaxy.root + 'api/genomes',\n success : function( genomes ) {\n for ( key in genomes ) {\n self.list_genomes.push({\n id : genomes[ key ][ 1 ],\n text : genomes[ key ][ 0 ]\n });\n }\n self.list_genomes.sort( function( a, b ) {\n if ( a.id == self.options.default_genome ) { return -1; }\n if ( b.id == self.options.default_genome ) { return 1; }\n return a.text > b.text ? 1 : a.text < b.text ? -1 : 0;\n });\n }\n });\n },\n\n //\n // event triggered by upload button\n //\n\n // show/hide upload frame\n show: function () {\n // wait for galaxy history panel\n var self = this;\n if ( !Galaxy.currHistoryPanel || !Galaxy.currHistoryPanel.model ) {\n window.setTimeout(function() { self.show() }, 500)\n return;\n }\n\n // set current user\n this.current_user = Galaxy.user.id;\n\n // create modal\n if ( !this.modal ) {\n // build tabs\n this.tabs = new Tabs.View();\n\n // add tabs\n this.default_view = new UploadViewDefault( this );\n this.tabs.add({\n id : 'regular',\n title : 'Regular',\n $el : this.default_view.$el\n });\n this.composite_view = new UploadViewComposite( this );\n this.tabs.add({\n id : 'composite',\n title : 'Composite',\n $el : this.composite_view.$el\n });\n\n // make modal\n this.modal = new Modal.View({\n title : 'Download from web or upload from disk',\n body : this.tabs.$el,\n height : this.options.height,\n width : this.options.width,\n closing_events : true,\n title_separator : false\n });\n }\n\n // show modal\n this.modal.show();\n },\n\n // refresh user and current history\n currentHistory: function() {\n return this.current_user && Galaxy.currHistoryPanel.model.get( 'id' );\n },\n\n // get ftp configuration\n currentFtp: function() {\n return this.current_user && this.options.ftp_upload_site;\n },\n\n /**\n * Package API data from array of models\n * @param{Array} items - Upload items/rows filtered from a collection\n */\n toData: function( items, history_id ) {\n // create dictionary for data submission\n var data = {\n payload: {\n 'tool_id' : 'upload1',\n 'history_id' : history_id || this.currentHistory(),\n 'inputs' : {}\n },\n files: [],\n error_message: null\n }\n // add upload tools input data\n if ( items && items.length > 0 ) {\n var inputs = {};\n inputs[ 'dbkey' ] = items[0].get( 'genome', null );\n inputs[ 'file_type' ] = items[0].get( 'extension', null );\n for ( var index in items ) {\n var it = items[ index ];\n it.set( 'status', 'running' );\n if ( it.get( 'file_size' ) > 0 ) {\n var prefix = 'files_' + index + '|';\n inputs[ prefix + 'type' ] = 'upload_dataset';\n inputs[ prefix + 'space_to_tab' ] = it.get( 'space_to_tab' ) && 'Yes' || null;\n inputs[ prefix + 'to_posix_lines' ] = it.get( 'to_posix_lines' ) && 'Yes' || null;\n switch ( it.get( 'file_mode' ) ) {\n case 'new':\n inputs[ prefix + 'url_paste' ] = it.get( 'url_paste' );\n break;\n case 'ftp':\n inputs[ prefix + 'ftp_files' ] = it.get( 'file_path' );\n break;\n case 'local':\n data.files.push( { name: prefix + 'file_data', file: it.get( 'file_data' ) } );\n }\n } else {\n data.error_message = 'Upload content incomplete.';\n it.set( 'status', 'error' );\n it.set( 'info', data.error_message );\n break;\n }\n }\n data.payload.inputs = JSON.stringify( inputs );\n }\n return data;\n }\n});\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/upload/upload-view.js\n ** module id = 47\n ** module chunks = 0\n **/","// dependencies\ndefine(['utils/utils'], function(Utils) {\n\n// return\nvar View = Backbone.View.extend({\n // defaults options\n optionsDefault: {\n title_new : '',\n operations : null,\n onnew : null,\n max : null,\n onchange : null\n },\n \n // initialize\n initialize : function(options) {\n // configure\n this.visible = false;\n this.$nav = null;\n this.$content = null;\n this.first_tab = null;\n this.current_id = null;\n \n // configure options\n this.options = Utils.merge(options, this.optionsDefault);\n \n // create tabs\n var $tabs = $(this._template(this.options));\n \n // link elements\n this.$nav = $tabs.find('.tab-navigation');\n this.$content = $tabs.find('.tab-content');\n \n // create new element\n this.setElement($tabs);\n \n // clear list\n this.list = {};\n \n // link this\n var self = this;\n \n // append operations\n if (this.options.operations) {\n $.each(this.options.operations, function(name, item) {\n item.$el.prop('id', name);\n self.$nav.find('.operations').append(item.$el);\n });\n }\n \n // add built-in add-new-tab tab\n if (this.options.onnew) {\n // create tab object\n var $tab_new = $(this._template_tab_new(this.options));\n \n // append to navbar\n this.$nav.append($tab_new);\n \n // add tooltip\n $tab_new.tooltip({title: 'Add a new tab', placement: 'bottom', container: self.$el});\n \n // link click event\n $tab_new.on('click', function(e) {\n $tab_new.tooltip('hide');\n self.options.onnew();\n });\n }\n },\n \n // size\n size: function() {\n return _.size(this.list);\n },\n \n // front\n current: function() {\n return this.$el.find('.tab-pane.active').attr('id');\n },\n \n // append\n add: function(options) {\n // self\n var self = this;\n \n // get tab id\n var id = options.id;\n\n // create tab object\n var $tab_title = $(this._template_tab(options));\n var $tab_content = $(this._template_tab_content(options));\n \n // add to list\n this.list[id] = options.ondel ? true : false;\n \n // add a new tab either before the add-new-tab tab or behind the last tab\n if (this.options.onnew) {\n this.$nav.find('#new-tab').before($tab_title);\n } else {\n this.$nav.append($tab_title);\n }\n \n // add content\n $tab_content.append(options.$el);\n this.$content.append($tab_content);\n \n // activate this tab if this is the first tab\n if (this.size() == 1) {\n $tab_title.addClass('active');\n $tab_content.addClass('active');\n this.first_tab = id;\n }\n \n // hide add tab\n if (this.options.max && this.size() >= this.options.max) {\n this.$el.find('#new-tab').hide();\n }\n \n // add click event to remove tab\n if (options.ondel) {\n var $del_icon = $tab_title.find('#delete');\n $del_icon.tooltip({title: 'Delete this tab', placement: 'bottom', container: self.$el});\n $del_icon.on('click', function() {\n $del_icon.tooltip('destroy');\n self.$el.find('.tooltip').remove();\n options.ondel();\n return false;\n });\n }\n \n // add custom click event handler\n $tab_title.on('click', function(e) {\n // prevent default\n e.preventDefault();\n \n // click\n if (options.onclick) {\n options.onclick();\n } else {\n self.show(id);\n }\n });\n \n // initialize current id\n if (!this.current_id) {\n this.current_id = id;\n }\n },\n \n // delete tab\n del: function(id) {\n // delete tab from dom\n this.$el.find('#tab-' + id).remove();\n this.$el.find('#' + id).remove();\n \n // check if first tab has been deleted\n if (this.first_tab == id) {\n this.first_tab = null;\n }\n \n // show first tab\n if (this.first_tab != null) {\n this.show(this.first_tab);\n }\n \n // delete from list\n if (this.list[id]) {\n delete this.list[id];\n }\n \n // show add tab\n if (this.size() < this.options.max) {\n this.$el.find('#new-tab').show();\n }\n },\n \n // delete tab\n delRemovable: function() {\n for (var id in this.list) {\n this.del(id);\n }\n },\n \n // show\n show: function(id){\n // show tab view\n this.$el.fadeIn('fast');\n this.visible = true;\n \n // show selected tab\n if (id) {\n // reassign active class\n this.$el.find('#tab-' + this.current_id).removeClass('active');\n this.$el.find('#' + this.current_id).removeClass('active');\n this.$el.find('#tab-' + id).addClass('active');\n this.$el.find('#' + id).addClass('active');\n \n // update current id\n this.current_id = id;\n }\n \n // change\n if (this.options.onchange) {\n this.options.onchange(id);\n }\n },\n \n // hide\n hide: function(){\n this.$el.fadeOut('fast');\n this.visible = false;\n },\n\n // hide operation\n hideOperation: function(id) {\n this.$nav.find('#' + id).hide();\n },\n\n // show operation\n showOperation: function(id) {\n this.$nav.find('#' + id).show();\n },\n \n // set operation\n setOperation: function(id, callback) {\n var $el = this.$nav.find('#' + id);\n $el.off('click');\n $el.on('click', callback);\n },\n \n // title\n title: function(id, new_title) {\n var $el = this.$el.find('#tab-title-text-' + id);\n if (new_title) {\n $el.html(new_title);\n }\n return $el.html();\n },\n \n // retitle\n retitle: function(new_title) {\n var index = 0;\n for (var id in this.list) {\n this.title(id, ++index + ': ' + new_title);\n }\n },\n \n // fill template\n _template: function(options) {\n return '
' +\n '
    ' +\n '
    ' +\n '
'+\n '
' +\n '
';\n },\n \n // fill template tab\n _template_tab_new: function(options) {\n return '
  • ' +\n '' +\n '' +\n options.title_new +\n '' +\n '
  • ';\n },\n \n // fill template tab\n _template_tab: function(options) {\n var tmpl = '
  • ' +\n '' +\n '' + options.title + '';\n \n if (options.ondel) {\n tmpl += '';\n }\n \n tmpl += '' +\n '
  • ';\n \n return tmpl;\n },\n \n // fill template tab content\n _template_tab_content: function(options) {\n return '
    ';\n }\n});\n\nreturn {\n View : View\n}\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/ui/ui-tabs.js\n ** module id = 48\n ** module chunks = 0\n **/","// dependencies\ndefine([], function() {\n\n// model for upload/progress bar button\nvar Model = Backbone.Model.extend({\n defaults: {\n icon : 'fa-upload',\n tooltip : 'Download from URL or upload files from disk',\n label : 'Load Data',\n percentage : 0,\n status : ''\n }\n});\n\n// view for upload/progress bar button\nvar View = Backbone.View.extend({\n // model\n model : null,\n\n // initialize\n initialize : function( options ) {\n // link this\n var self = this;\n\n // create model\n var model = options.model;\n\n // create new element\n this.setElement( this._template() );\n\n // add event\n this.$el.on( 'click', function( e ) { options.onclick( e ); });\n\n // add tooltip\n this.$el.tooltip( { title: model.get('tooltip'), placement: 'bottom' } );\n\n // events\n model.on( 'change:percentage', function() {\n self._percentage( model.get( 'percentage' ) );\n });\n model.on( 'change:status', function() {\n self._status( model.get( 'status' ) );\n });\n\n // unload event\n var self = this;\n $( window ).on( 'beforeunload', function() {\n var text = \"\";\n if ( options.onunload ) {\n text = options.onunload();\n }\n if ( text != \"\" ) {\n return text;\n }\n });\n },\n\n // set status\n _status: function( value ) {\n var $el = this.$el.find( '.progress-bar' );\n $el.removeClass();\n $el.addClass( 'progress-bar' );\n $el.addClass( 'progress-bar-notransition' );\n if ( value != '' ) {\n $el.addClass( 'progress-bar-' + value );\n }\n },\n\n // set percentage\n _percentage: function( value ) {\n var $el = this.$el.find( '.progress-bar' );\n $el.css( { width : value + '%' } );\n },\n\n // template\n _template: function() {\n return '
    ' +\n '
    ' +\n '
    ' +\n '' +\n '' +\n '' +\n '
    ' +\n '
    ';\n }\n});\n\nreturn {\n Model : Model,\n View : View\n};\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/upload/upload-button.js\n ** module id = 49\n ** module chunks = 0\n **/","/** Renders contents of the default uploader */\ndefine(['utils/utils',\n 'mvc/upload/upload-model',\n 'mvc/upload/default/default-row',\n 'mvc/upload/upload-ftp',\n 'mvc/ui/ui-popover',\n 'mvc/ui/ui-select',\n 'mvc/ui/ui-misc',\n 'utils/uploadbox'],\n\n function( Utils,\n UploadModel,\n UploadRow,\n UploadFtp,\n Popover,\n Select,\n Ui\n ) {\n\nreturn Backbone.View.extend({\n // extension selector\n select_extension : null,\n\n // genome selector\n select_genome: null,\n\n // jquery uploadbox plugin\n uploadbox: null,\n\n // current upload size in bytes\n upload_size: 0,\n\n // contains upload row models\n collection : new UploadModel.Collection(),\n\n // ftp file viewer\n ftp : null,\n\n // keeps track of the current uploader state\n counter : {\n announce : 0,\n success : 0,\n error : 0,\n running : 0,\n reset : function() {\n this.announce = this.success = this.error = this.running = 0;\n }\n },\n\n // initialize\n initialize : function(app) {\n // link app\n this.app = app;\n this.options = app.options;\n this.list_extensions = app.list_extensions;\n this.list_genomes = app.list_genomes;\n this.ui_button = app.ui_button;\n this.ftp_upload_site = app.currentFtp();\n\n // link this\n var self = this;\n\n // set element\n this.setElement(this._template());\n\n // create button section\n this.btnLocal = new Ui.Button({ id: 'btn-local', title: 'Choose local file', onclick: function() { self.uploadbox.select(); }, icon: 'fa fa-laptop' });\n this.btnFtp = new Ui.Button({ id: 'btn-ftp', title: 'Choose FTP file', onclick: function() { self._eventFtp(); }, icon: 'fa fa-folder-open-o' });\n this.btnCreate = new Ui.Button({ id: 'btn-new', title: 'Paste/Fetch data', onclick: function() { self._eventCreate(); }, icon: 'fa fa-edit' });\n this.btnStart = new Ui.Button({ id: 'btn-start', title: 'Start', onclick: function() { self._eventStart(); } });\n this.btnStop = new Ui.Button({ id: 'btn-stop', title: 'Pause', onclick: function() { self._eventStop(); } });\n this.btnReset = new Ui.Button({ id: 'btn-reset', title: 'Reset', onclick: function() { self._eventReset(); } });\n this.btnClose = new Ui.Button({ id: 'btn-close', title: 'Close', onclick: function() { self.app.modal.hide(); } });\n\n // append buttons to dom\n var buttons = [ this.btnLocal, this.btnFtp, this.btnCreate, this.btnStop, this.btnReset, this.btnStart, this.btnClose ];\n for (var i in buttons) {\n this.$('#upload-buttons').prepend(buttons[i].$el);\n }\n\n // file upload\n var self = this;\n this.uploadbox = this.$('#upload-box').uploadbox({\n url : this.app.options.nginx_upload_path,\n announce : function(index, file) { self._eventAnnounce(index, file) },\n initialize : function(index) { return self.app.toData([ self.collection.get(index) ], self.history_id) },\n progress : function(index, percentage) { self._eventProgress(index, percentage) },\n success : function(index, message) { self._eventSuccess(index, message) },\n error : function(index, message) { self._eventError(index, message) },\n complete : function() { self._eventComplete() },\n ondragover : function() { self.$('.upload-box').addClass('highlight'); },\n ondragleave : function() { self.$('.upload-box').removeClass('highlight'); }\n });\n\n // add ftp file viewer\n this.ftp = new Popover.View({\n title : 'FTP files',\n container : this.btnFtp.$el\n });\n\n // select extension\n this.select_extension = new Select.View({\n css : 'footer-selection',\n container : this.$('#footer-extension'),\n data : _.filter(this.list_extensions, function(ext) { return !ext.composite_files }),\n value : this.options.default_extension,\n onchange : function(extension) {\n self.updateExtension(extension);\n }\n });\n\n // handle extension info popover\n self.$('#footer-extension-info').on('click', function(e) {\n self.showExtensionInfo({\n $el : $(e.target),\n title : self.select_extension.text(),\n extension : self.select_extension.value(),\n placement : 'top'\n });\n }).on('mousedown', function(e) { e.preventDefault(); });\n\n // genome extension\n this.select_genome = new Select.View({\n css : 'footer-selection',\n container : this.$('#footer-genome'),\n data : this.list_genomes,\n value : this.options.default_genome,\n onchange : function(genome) {\n self.updateGenome(genome);\n }\n });\n\n // events\n this.collection.on('remove', function(model) {\n self._eventRemove(model);\n });\n\n // setup info\n this._updateScreen();\n },\n\n //\n // events triggered by the upload box plugin\n //\n\n // a new file has been dropped/selected through the uploadbox plugin\n _eventAnnounce: function(index, file) {\n // update counter\n this.counter.announce++;\n\n // create if model has not been created yet\n var new_model = new UploadModel.Model({\n id : index,\n file_name : file.name,\n file_size : file.size,\n file_mode : file.mode || 'local',\n file_path : file.path,\n file_data : file\n });\n\n // add model to collection\n this.collection.add(new_model);\n\n // create view/model\n var upload_row = new UploadRow(this, { model: new_model });\n\n // add upload row element to table\n this.$('#upload-table > tbody:first').append(upload_row.$el);\n\n // show on screen info\n this._updateScreen();\n\n // render\n upload_row.render();\n },\n\n // progress\n _eventProgress: function(index, percentage) {\n // set progress for row\n var it = this.collection.get(index);\n it.set('percentage', percentage);\n\n // update ui button\n this.ui_button.set('percentage', this._uploadPercentage(percentage, it.get('file_size')));\n },\n\n // success\n _eventSuccess: function(index, message) {\n // update status\n var it = this.collection.get(index);\n it.set('percentage', 100);\n it.set('status', 'success');\n\n // update ui button\n this.ui_button.set('percentage', this._uploadPercentage(100, it.get('file_size')));\n\n // update completed\n this.upload_completed += it.get('file_size') * 100;\n\n // update counter\n this.counter.announce--;\n this.counter.success++;\n\n // update on screen info\n this._updateScreen();\n\n // update galaxy history\n Galaxy.currHistoryPanel.refreshContents();\n },\n\n // error\n _eventError: function(index, message) {\n // get element\n var it = this.collection.get(index);\n\n // update status\n it.set('percentage', 100);\n it.set('status', 'error');\n it.set('info', message);\n\n // update ui button\n this.ui_button.set('percentage', this._uploadPercentage(100, it.get('file_size')));\n this.ui_button.set('status', 'danger');\n\n // update completed\n this.upload_completed += it.get('file_size') * 100;\n\n // update counter\n this.counter.announce--;\n this.counter.error++;\n\n // update on screen info\n this._updateScreen();\n },\n\n // queue is done\n _eventComplete: function() {\n // reset queued upload to initial status\n this.collection.each(function(model) {\n if(model.get('status') == 'queued') {\n model.set('status', 'init');\n }\n });\n\n // update running\n this.counter.running = 0;\n\n // update on screen info\n this._updateScreen();\n },\n\n //\n // events triggered by collection\n //\n\n // remove model from upload list\n _eventRemove: function(model) {\n // update status\n var status = model.get('status');\n\n // reduce counter\n if (status == 'success') {\n this.counter.success--;\n } else if (status == 'error') {\n this.counter.error--;\n } else {\n this.counter.announce--;\n }\n\n // remove from queue\n this.uploadbox.remove(model.id);\n\n // show on screen info\n this._updateScreen();\n },\n\n //\n // events triggered by this view\n //\n\n // [public] display extension info popup\n showExtensionInfo: function(options) {\n // initialize\n var self = this;\n var $el = options.$el;\n var extension = options.extension;\n var title = options.title;\n var description = _.findWhere(self.list_extensions, {'id': extension});\n\n // create popup\n this.extension_popup && this.extension_popup.remove();\n this.extension_popup = new Popover.View({\n placement: options.placement || 'bottom',\n container: $el\n });\n\n // add content and show popup\n this.extension_popup.title(title);\n this.extension_popup.empty();\n this.extension_popup.append(this._templateDescription(description));\n this.extension_popup.show();\n },\n\n // show/hide ftp popup\n _eventFtp: function() {\n if (!this.ftp.visible) {\n this.ftp.empty();\n var self = this;\n this.ftp.append((new UploadFtp({\n collection : this.collection,\n ftp_upload_site : this.ftp_upload_site,\n onadd: function(ftp_file) {\n self.uploadbox.add([{\n mode: 'ftp',\n name: ftp_file.path,\n size: ftp_file.size,\n path: ftp_file.path\n }]);\n },\n onremove: function(model_index) {\n self.collection.remove(model_index);\n }\n })).$el);\n this.ftp.show();\n } else {\n this.ftp.hide();\n }\n },\n\n // create a new file\n _eventCreate: function (){\n this.uploadbox.add([{\n name : 'New File',\n size : 0,\n mode : 'new'\n }]);\n },\n\n // start upload process\n _eventStart: function() {\n // check\n if (this.counter.announce == 0 || this.counter.running > 0) {\n return;\n }\n\n // reset current size\n var self = this;\n this.upload_size = 0;\n this.upload_completed = 0;\n // switch icons for new uploads\n this.collection.each(function(model) {\n if(model.get('status') == 'init') {\n model.set('status', 'queued');\n self.upload_size += model.get('file_size');\n }\n });\n\n // reset progress\n this.ui_button.set('percentage', 0);\n this.ui_button.set('status', 'success');\n\n // update running\n this.counter.running = this.counter.announce;\n\n // set current history id\n this.history_id = this.app.currentHistory();\n\n // initiate upload procedure in plugin\n this.uploadbox.start();\n\n // update on screen info\n this._updateScreen();\n },\n\n // pause upload process\n _eventStop: function() {\n // check\n if (this.counter.running > 0) {\n // show upload has paused\n this.ui_button.set('status', 'info');\n\n // set html content\n $('#upload-info').html('Queue will pause after completing the current file...');\n\n // request pause\n this.uploadbox.stop();\n }\n },\n\n // remove all\n _eventReset: function() {\n // make sure queue is not running\n if (this.counter.running == 0){\n // reset collection\n this.collection.reset();\n\n // reset counter\n this.counter.reset();\n\n // remove from queue\n this.uploadbox.reset();\n\n // reset value for universal type drop-down\n this.select_extension.value(this.options.default_extension);\n this.select_genome.value(this.options.default_genome);\n\n // reset button\n this.ui_button.set('percentage', 0);\n\n // show on screen info\n this._updateScreen();\n }\n },\n\n // update extension for all models\n updateExtension: function(extension, defaults_only) {\n var self = this;\n this.collection.each(function(model) {\n if (model.get('status') == 'init' && (model.get('extension') == self.options.default_extension || !defaults_only)) {\n model.set('extension', extension);\n }\n });\n },\n\n // update genome for all models\n updateGenome: function(genome, defaults_only) {\n var self = this;\n this.collection.each(function(model) {\n if (model.get('status') == 'init' && (model.get('genome') == self.options.default_genome || !defaults_only)) {\n model.set('genome', genome);\n }\n });\n },\n\n // set screen\n _updateScreen: function () {\n /*\n update on screen info\n */\n\n // check default message\n if(this.counter.announce == 0) {\n if (this.uploadbox.compatible()) {\n message = ' ';\n } else {\n message = 'Browser does not support Drag & Drop. Try Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+.';\n }\n } else {\n if (this.counter.running == 0) {\n message = 'You added ' + this.counter.announce + ' file(s) to the queue. Add more files or click \\'Start\\' to proceed.';\n } else {\n message = 'Please wait...' + this.counter.announce + ' out of ' + this.counter.running + ' remaining.';\n }\n }\n\n // set html content\n this.$('#upload-info').html(message);\n\n /*\n update button status\n */\n\n // update reset button\n if (this.counter.running == 0 && this.counter.announce + this.counter.success + this.counter.error > 0) {\n this.btnReset.enable();\n } else {\n this.btnReset.disable();\n }\n\n // update upload button\n if (this.counter.running == 0 && this.counter.announce > 0) {\n this.btnStart.enable();\n this.btnStart.$el.addClass('btn-primary');\n } else {\n this.btnStart.disable();\n this.btnStart.$el.removeClass('btn-primary');\n }\n\n // pause upload button\n if (this.counter.running > 0) {\n this.btnStop.enable();\n } else {\n this.btnStop.disable();\n }\n\n // select upload button\n if (this.counter.running == 0) {\n this.btnLocal.enable();\n this.btnFtp.enable();\n this.btnCreate.enable();\n } else {\n this.btnLocal.disable();\n this.btnFtp.disable();\n this.btnCreate.disable();\n }\n\n // ftp button\n if (this.ftp_upload_site) {\n this.btnFtp.$el.show();\n } else {\n this.btnFtp.$el.hide();\n }\n\n // table visibility\n if (this.counter.announce + this.counter.success + this.counter.error > 0) {\n this.$('#upload-table').show();\n this.$('.upload-helper').hide();\n } else {\n this.$('#upload-table').hide();\n this.$('.upload-helper').show();\n }\n },\n\n // calculate percentage of all queued uploads\n _uploadPercentage: function(percentage, size) {\n return (this.upload_completed + (percentage * size)) / this.upload_size;\n },\n\n // template for extensions description\n _templateDescription: function(options) {\n if (options.description) {\n var tmpl = options.description;\n if (options.description_url) {\n tmpl += ' (read more)';\n }\n return tmpl;\n } else {\n return 'There is no description available for this file extension.';\n }\n },\n\n // load html template\n _template: function() {\n return '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    Drop files here
    ' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '
    NameSizeTypeGenomeSettingsStatus' +\n '
    ' +\n '
    ' +\n '
    ' +\n 'Type (set all):' +\n '' +\n ' ' +\n 'Genome (set all):' +\n '' +\n '
    ' +\n '
    ' +\n '
    ';\n }\n});\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/upload/default/default-view.js\n ** module id = 50\n ** module chunks = 0\n **/","// dependencies\ndefine([], function() {\n\n// model\nvar Model = Backbone.Model.extend({\n defaults: {\n extension : 'auto',\n genome : '?',\n url_paste : '',\n status : 'init',\n info : null,\n file_name : '',\n file_mode : '',\n file_size : 0,\n file_type : null,\n file_path : '',\n file_data : null,\n percentage : 0,\n space_to_tab : false,\n to_posix_lines : true,\n enabled : true\n },\n reset: function(attr) {\n this.clear().set(this.defaults).set(attr);\n }\n});\n\n// collection\nvar Collection = Backbone.Collection.extend({\n model: Model\n});\n\n// return\nreturn {\n Model: Model,\n Collection : Collection\n};\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/upload/upload-model.js\n ** module id = 51\n ** module chunks = 0\n **/","// dependencies\ndefine(['utils/utils',\n 'mvc/upload/upload-model',\n 'mvc/upload/upload-settings',\n 'mvc/ui/ui-popover',\n 'mvc/ui/ui-select'],\n\n function( Utils,\n UploadModel,\n UploadSettings,\n Popover,\n Select\n ) {\n\n// row view\nreturn Backbone.View.extend({\n // states\n status_classes : {\n init : 'upload-icon-button fa fa-trash-o',\n queued : 'upload-icon fa fa-spinner fa-spin',\n running : 'upload-icon fa fa-spinner fa-spin',\n success : 'upload-icon-button fa fa-check',\n error : 'upload-icon-button fa fa-exclamation-triangle'\n },\n\n // handle for settings popover\n settings: null,\n\n // genome selector\n select_genome : null,\n\n // extension selector\n select_extension : null,\n\n // render\n initialize: function(app, options) {\n // link app\n this.app = app;\n\n // link this\n var self = this;\n\n // create model\n this.model = options.model;\n\n // add upload row\n this.setElement(this._template(options.model));\n\n // append popup to settings icon\n this.settings = new Popover.View({\n title : 'Upload configuration',\n container : this.$('#settings'),\n placement : 'bottom'\n });\n\n // initialize default genome through default select field\n var default_genome = this.app.select_genome.value();\n \n // select genomes\n this.select_genome = new Select.View({\n css: 'upload-genome',\n onchange : function(genome) {\n self.model.set('genome', genome);\n },\n data: self.app.list_genomes,\n container: this.$('#genome'),\n value: default_genome\n });\n\n // initialize genome\n this.model.set('genome', default_genome);\n\n // initialize default extension through default select field\n var default_extension = this.app.select_extension.value();\n \n // select extension\n this.select_extension = new Select.View({\n css: 'upload-extension',\n onchange : function(extension) {\n self.model.set('extension', extension);\n },\n data: self.app.list_extensions,\n container: this.$('#extension'),\n value: default_extension\n });\n\n // initialize extension\n this.model.set('extension', default_extension);\n \n //\n // ui events\n //\n\n // handle click event\n this.$('#symbol').on('click', function() { self._removeRow(); });\n\n // handle extension info popover\n this.$('#extension-info').on('click' , function(e) {\n self.app.showExtensionInfo({\n $el : $(e.target),\n title : self.select_extension.text(),\n extension : self.select_extension.value()\n });\n }).on('mousedown', function(e) { e.preventDefault(); });\n\n // handle settings popover\n this.$('#settings').on('click' , function(e) { self._showSettings(); })\n .on('mousedown', function(e) { e.preventDefault(); });\n\n // handle text editing event\n this.$('#text-content').on('change input', function(e) {\n self.model.set('url_paste', $(e.target).val());\n self.model.set('file_size', $(e.target).val().length);\n });\n\n //\n // model events\n //\n this.model.on('change:percentage', function() {\n self._refreshPercentage();\n });\n this.model.on('change:status', function() {\n self._refreshStatus();\n });\n this.model.on('change:info', function() {\n self._refreshInfo();\n });\n this.model.on('change:genome', function() {\n self._refreshGenome();\n });\n this.model.on('change:extension', function() {\n self._refreshExtension();\n });\n this.model.on('change:file_size', function() {\n self._refreshFileSize();\n });\n this.model.on('remove', function() {\n self.remove();\n });\n this.app.collection.on('reset', function() {\n self.remove();\n });\n },\n\n // render\n render: function() {\n // read model\n var file_name = this.model.get('file_name');\n var file_size = this.model.get('file_size');\n var file_mode = this.model.get('file_mode');\n\n // update title\n this.$('#title').html(file_name);\n\n // update info\n this.$('#size').html(Utils.bytesToString (file_size));\n\n // remove mode class\n this.$('#mode')\n .removeClass()\n .addClass('upload-mode')\n .addClass('text-primary');\n\n // activate text field if file is new\n if (file_mode == 'new') {\n this.$('#text').css({\n 'width' : this.$el.width() - 16 + 'px',\n 'top' : this.$el.height() - 8 + 'px'\n }).show();\n this.$el.height(this.$el.height() - 8 + this.$('#text').height() + 16);\n this.$('#mode').addClass('fa fa-edit');\n }\n\n // file from local disk\n if (file_mode == 'local') {\n this.$('#mode').addClass('fa fa-laptop');\n }\n\n // file from ftp\n if (file_mode == 'ftp') {\n this.$('#mode').addClass('fa fa-folder-open-o');\n }\n },\n\n // remove\n remove: function() {\n // trigger remove event\n this.select_genome.remove();\n this.select_extension.remove();\n\n // call the base class remove method\n Backbone.View.prototype.remove.apply(this);\n },\n\n //\n // handle model events\n //\n\n // update extension\n _refreshExtension: function() {\n this.select_extension.value(this.model.get('extension'));\n },\n \n // update genome\n _refreshGenome: function() {\n this.select_genome.value(this.model.get('genome'));\n },\n\n // progress\n _refreshInfo: function() {\n // write error message\n var info = this.model.get('info');\n if (info) {\n this.$('#info').html('Failed: ' + info).show();\n } else {\n this.$('#info').hide();\n }\n },\n\n // progress\n _refreshPercentage : function() {\n var percentage = parseInt(this.model.get('percentage'));\n this.$('.progress-bar').css({ width : percentage + '%' });\n if (percentage != 100)\n this.$('#percentage').html(percentage + '%');\n else\n this.$('#percentage').html('Adding to history...');\n },\n\n // status\n _refreshStatus : function() {\n // identify new status\n var status = this.model.get('status');\n\n // identify symbol and reset classes\n this.$('#symbol').removeClass().addClass(this.status_classes[status]);\n\n // enable/disable model flag\n this.model.set('enabled', status == 'init');\n\n // enable/disable row fields\n var enabled = this.model.get('enabled');\n this.$('#text-content').attr('disabled', !enabled);\n if (enabled) {\n this.select_genome.enable();\n this.select_extension.enable();\n } else {\n this.select_genome.disable();\n this.select_extension.disable();\n }\n\n // success\n if (status == 'success') {\n this.$el.addClass('success');\n this.$('#percentage').html('100%');\n }\n\n // error\n if (status == 'error') {\n this.$el.addClass('danger');\n this.$('.progress').remove();\n }\n },\n\n // refresh size\n _refreshFileSize: function() {\n var count = this.model.get('file_size');\n this.$('#size').html(Utils.bytesToString (count));\n },\n\n //\n // handle ui events\n //\n\n // remove row\n _removeRow: function() {\n // get current status\n var status = this.model.get('status');\n\n // only remove from queue if not in processing line\n if (status == 'init' || status == 'success' || status == 'error') {\n this.app.collection.remove(this.model);\n }\n },\n\n // attach file info popup\n _showSettings : function() {\n // check if popover is visible\n if (!this.settings.visible) {\n // show popover\n this.settings.empty();\n this.settings.append((new UploadSettings(this)).$el);\n this.settings.show();\n } else {\n // hide popover\n this.settings.hide();\n }\n },\n\n // template\n _template: function(options) {\n return '' +\n '' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    You can tell Galaxy to download data from web by entering URL in this box (one per line). You can also directly paste the contents of a file.
    ' +\n '' +\n '
    ';\n },\n\n requirements: function(options) {\n var requirements_message = 'This tool requires ';\n for (var i in options.requirements) {\n var req = options.requirements[i];\n requirements_message += req.name;\n if (req.version) {\n requirements_message += ' (Version ' + req.version + ')';\n }\n if (i < options.requirements.length - 2) {\n requirements_message += ', ';\n }\n if (i == options.requirements.length - 2) {\n requirements_message += ' and ';\n }\n }\n return requirements_message + '. Click here for more information.';\n }\n};\n\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/tool/tool-template.js\n ** module id = 43\n ** module chunks = 0 2\n **/","define([\n \"libs/bibtex\",\n \"mvc/base-mvc\",\n \"utils/localization\"\n], function( parseBibtex, baseMVC, _l ){\n/* global Backbone */\n// we use amd here to require, but bibtex uses a global or commonjs pattern.\n// webpack will load via commonjs and plain requirejs will load as global. Check both\nparseBibtex = parseBibtex || window.BibtexParser;\n\nvar logNamespace = 'citation';\n//==============================================================================\n/** @class model for tool citations.\n * @name Citation\n * @augments Backbone.Model\n */\nvar Citation = Backbone.Model.extend( baseMVC.LoggableMixin ).extend( {\n _logNamespace : logNamespace,\n\n initialize: function() {\n var bibtex = this.get( 'content' );\n var entry = parseBibtex(bibtex).entries[0];\n this.entry = entry;\n this._fields = {};\n var rawFields = entry.Fields;\n for(var key in rawFields) {\n var value = rawFields[ key ];\n var lowerKey = key.toLowerCase();\n this._fields[ lowerKey ] = value;\n }\n },\n entryType: function() {\n return this.entry.EntryType;\n },\n fields: function() {\n return this._fields;\n }\n} );\n\n//==============================================================================\n/** @class Backbone collection of citations.\n */\nvar BaseCitationCollection = Backbone.Collection.extend( baseMVC.LoggableMixin ).extend( {\n _logNamespace : logNamespace,\n\n /** root api url */\n urlRoot : Galaxy.root + 'api',\n partial : true, // Assume some tools in history/workflow may not be properly annotated yet.\n model : Citation,\n} );\n\nvar HistoryCitationCollection = BaseCitationCollection.extend( {\n /** complete api url */\n url : function() {\n return this.urlRoot + '/histories/' + this.history_id + '/citations';\n }\n} );\n\nvar ToolCitationCollection = BaseCitationCollection.extend( {\n /** complete api url */\n url : function() {\n return this.urlRoot + '/tools/' + this.tool_id + '/citations';\n },\n partial : false, // If a tool has citations, assume they are complete.\n} );\n\n\n//==============================================================================\nreturn {\n Citation : Citation,\n HistoryCitationCollection : HistoryCitationCollection,\n ToolCitationCollection: ToolCitationCollection\n};\n\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/citation/citation-model.js\n ** module id = 44\n ** module chunks = 0 2\n **/","/**\n * Parser.js\n * Copyright 2012-13 Mayank Lahiri\n * mlahiri@gmail.com\n * Released under the BSD License.\n *\n * A forgiving Bibtex parser that can:\n * \n * (1) operate in streaming or block mode, extracting entries as dictionaries. \n * (2) convert Latex special characters to UTF-8.\n * (3) best-effort parse malformed entries.\n * (4) run in a CommonJS environment or a browser, without any dependencies.\n * (5) be advanced-compiled by Google Closure Compiler.\n * \n * Handwritten as a labor of love, not auto-generated from a grammar. \n *\n * Modes of usage:\n *\n * (1) Synchronous, string\n *\n * var entries = BibtexParser(text);\n * console.log(entries);\n *\n * (2) Asynchronous, stream\n *\n * var entryCallback = function(entry) { console.log(entry); }\n * var parser = new BibtexParser(entryCallback);\n * parser.parse(chunk1);\n * parser.parse(chunk2);\n * ...\n * \n * @param {text|function(Object)} arg Either a Bibtex string or callback \n * function for processing parsed entries.\n * @constructor\n */\nfunction BibtexParser(arg0) {\n // Determine how this function is to be used\n if (typeof arg0 == 'string') {\n // Passed a string, synchronous call without 'new'\n var tempStorage = {};\n var entries = [];\n function accumulator(entry) {\n entries.push(entry);\n }\n var parser = BibtexParser.call(tempStorage, accumulator);\n parser.parse(arg0);\n return {\n 'entries': entries,\n 'errors': parser.getErrors()\n }\n }\n if (typeof arg0 != 'function') {\n throw 'Invalid parser construction.';\n }\n\n /** @enum {number} */\n this.STATES_ = {\n ENTRY_OR_JUNK: 0,\n OBJECT_TYPE: 1,\n ENTRY_KEY: 2, \n KV_KEY: 3, \n EQUALS: 4,\n KV_VALUE: 5 \n }\n /** @private */ this.DATA_ = {};\n /** @private */ this.CALLBACK_ = arg0;\n /** @private */ this.CHAR_ = 0;\n /** @private */ this.LINE_ = 1;\n /** @private */ this.CHAR_IN_LINE_ = 0;\n /** @private */ this.SKIPWS_ = true;\n /** @private */ this.SKIPCOMMENT_ = true;\n /** @private */ this.PARSETMP_ = {};\n /** @private */ this.SKIPTILLEOL_ = false;\n /** @private */ this.VALBRACES_ = null;\n /** @private */ this.BRACETYPE_ = null;\n /** @private */ this.BRACECOUNT_ = 0;\n /** @private */ this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n /** @private */ this.ERRORS_ = [];\n /** @private */ this.ENTRY_TYPES_ = {\n 'inproceedings' : 1,\n 'proceedings' : 2,\n 'article' : 3,\n 'techreport' : 4,\n 'misc' : 5,\n 'mastersthesis' : 6,\n 'book' : 7,\n 'phdthesis' : 8,\n 'incollection' : 9,\n 'unpublished' : 10,\n 'inbook' : 11,\n 'manual' : 12,\n 'periodical' : 13,\n 'booklet' : 14,\n 'masterthesis' : 15,\n 'conference' : 16\n ,'online' : 998 // Galaxy MOD: Handle @online entries for preprints.\n ,'data' : 999 // Galaxy MOD: Handle @data citations coming from figshare.\n }\n /** @private */ this.MACROS_ = {\n 'jan' : 'January',\n 'feb' : 'February',\n 'mar' : 'March',\n 'apr' : 'April',\n 'may' : 'May',\n 'jun' : 'June',\n 'jul' : 'July',\n 'aug' : 'August',\n 'sep' : 'September',\n 'oct' : 'October',\n 'nov' : 'November',\n 'dec' : 'December',\n 'Jan' : 'January',\n 'Feb' : 'February',\n 'Mar' : 'March',\n 'Apr' : 'April',\n 'May' : 'May',\n 'Jun' : 'June',\n 'Jul' : 'July',\n 'Aug' : 'August',\n 'Sep' : 'September',\n 'Oct' : 'October',\n 'Nov' : 'November',\n 'Dec' : 'December'\n }\n\n /**\n * Gets an array of all errors encountered during parsing.\n * Array entries are of the format:\n * [ line number, character in line, character in stream, error text ]\n *\n * @returns Array\n * @public\n */\n this.getErrors = function() {\n return this.ERRORS_;\n }\n\n /**\n * Processes a chunk of data\n * @public\n */\n this.parse = function(chunk) {\n for (var i = 0; i < chunk.length; i++)\n this.processCharacter_(chunk[i]);\n }\n\n /**\n * Logs error at current stream position.\n *\n * @private\n */\n this.error_ = function(text) {\n this.ERRORS_.push([ this.LINE_, \n this.CHAR_IN_LINE_,\n this.CHAR_,\n text ])\n }\n\n /**\n * Called after an entire entry has been parsed from the stream.\n * Performs post-processing and invokes the entry callback pointed to by\n * this.CALLBACK_. Parsed (but unprocessed) entry data is in this.DATA_.\n */\n this.processEntry_ = function() {\n var data = this.DATA_;\n if (data.Fields) \n for (var f in data.Fields) {\n var raw = data.Fields[f];\n\n // Convert Latex/Bibtex special characters to UTF-8 equivalents\n for (var i = 0; i < this.CHARCONV_.length; i++) {\n var re = this.CHARCONV_[i][0];\n var rep = this.CHARCONV_[i][1];\n raw = raw.replace(re, rep);\n }\n\n // Basic substitutions\n raw = raw.replace(/[\\n\\r\\t]/g, ' ')\n .replace(/\\s\\s+/g, ' ')\n .replace(/^\\s+|\\s+$/g, '')\n\n // Remove braces and backslashes\n var len = raw.length;\n var processed = '';\n for (var i = 0; i < len; i++) {\n var c = raw[i];\n var skip = false;\n if (c == '\\\\' && i < len-1) \n c = raw[++i];\n else {\n if (c == '{' || c == '}')\n skip = true;\n }\n if (!skip)\n processed += c;\n }\n data.Fields[f] = processed\n }\n\n if (data.ObjectType == 'string') {\n for (var f in data.Fields) { \n this.MACROS_[f] = data.Fields[f];\n }\n } else {\n // Parsed a new Bibtex entry\n this.CALLBACK_(data);\n }\n }\n\n\n /**\n * Processes next character in the stream, invoking the callback after \n * each entry has been found and processed.\n * \n * @private\n * @param {string} c Next character in input stream\n */\n this.processCharacter_ = function(c) {\n // Housekeeping\n this.CHAR_++;\n this.CHAR_IN_LINE_++;\n if (c == '\\n') {\n this.LINE_++;\n this.CHAR_IN_LINE_ = 1;\n }\n\n // Convenience states for skipping whitespace when needed\n if (this.SKIPTILLEOL_) {\n if (c == '\\n')\n this.SKIPTILLEOL_ = false;\n return;\n }\n if (this.SKIPCOMMENT_ && c == '%') {\n this.SKIPTILLEOL_ = true;\n return;\n }\n if (this.SKIPWS_ && /\\s/.test(c))\n return;\n this.SKIPWS_ = false;\n this.SKIPCOMMENT_ = false;\n this.SKIPTILLEOL_ = false;\n\n // Main state machine\n var AnotherIteration = true;\n while (AnotherIteration) {\n //console.log(this.LINE_, this.CHAR_IN_LINE_, this.STATE_, c)\n AnotherIteration = false;\n switch(this.STATE_) {\n // -- Scan for an object marker ('@')\n // -- Reset temporary data structure in case previous entry was garbled\n case this.STATES_.ENTRY_OR_JUNK:\n if (c == '@') {\n // SUCCESS: Parsed a valid start-of-object marker.\n // NEXT_STATE: OBJECT_TYPE\n this.STATE_ = this.STATES_.OBJECT_TYPE;\n this.DATA_ = {\n ObjectType : ''\n };\n }\n this.BRACETYPE_ = null;\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n break;\n\n // Start at first non-whitespace character after start-of-object '@'\n // -- Accept [A-Za-z], break on non-matching character\n // -- Populate this.DATA_.EntryType and this.DATA_.ObjectType\n case this.STATES_.OBJECT_TYPE:\n if (/[A-Za-z]/.test(c)) {\n this.DATA_.ObjectType += c.toLowerCase();\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n } else {\n // Break from state and validate object type\n var ot = this.DATA_.ObjectType;\n if (ot == 'comment') {\n this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n } else {\n if (ot == 'string') {\n this.DATA_.ObjectType = ot;\n this.DATA_.Fields = {};\n this.BRACETYPE_ = c;\n this.BRACECOUNT_ = 1;\n this.STATE_ = this.STATES_.KV_KEY;\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n this.PARSETMP_ = {\n Key: ''\n }\n } else {\n if (ot == 'preamble') {\n this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n } else {\n if (ot in this.ENTRY_TYPES_) {\n // SUCCESS: Parsed a valid object type.\n // NEXT_STATE: ENTRY_KEY\n this.DATA_.ObjectType = 'entry';\n this.DATA_.EntryType = ot;\n this.DATA_.EntryKey = '';\n this.STATE_ = this.STATES_.ENTRY_KEY;\n AnotherIteration = true;\n } else {\n // ERROR: Unrecognized object type.\n // NEXT_STATE: ENTRY_OR_JUNK\n this.error_('Unrecognized object type: \"' +\n this.DATA_.ObjectType + '\"')\n this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n }\n }\n }\n }\n }\n break;\n\n // Start at first non-alphabetic character after an entry type\n // -- Populate this.DATA_.EntryKey\n case this.STATES_.ENTRY_KEY:\n if ((c === '{' || c === '(') && this.BRACETYPE_ == null) {\n this.BRACETYPE_ = c;\n this.BRACECOUNT_ = 1;\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n break;\n }\n if (/[,%\\s]/.test(c)) {\n if (this.DATA_.EntryKey.length < 1) { \n // Skip comments and whitespace before entry key\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n } else {\n if (this.BRACETYPE_ == null) {\n // ERROR: No opening brace for object\n // NEXT_STATE: ENTRY_OR_JUNK\n this.error_('No opening brace for object.');\n this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n } else {\n // SUCCESS: Parsed an entry key\n // NEXT_STATE: KV_KEY\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n AnotherIteration = true;\n this.STATE_ = this.STATES_.KV_KEY;\n this.PARSETMP_.Key= '';\n this.DATA_.Fields = {};\n }\n }\n } else {\n this.DATA_.EntryKey += c;\n this.SKIPWS_ = false;\n this.SKIPCOMMENT_ = false;\n }\n break;\n\n // Start at first non-whitespace/comment character after entry key.\n // -- Populate this.PARSETMP_.Key\n case this.STATES_.KV_KEY:\n // Test for end of entry\n if ((c == '}' && this.BRACETYPE_ == '{') ||\n (c == ')' && this.BRACETYPE_ == '(')) {\n // SUCCESS: Parsed an entry, possible incomplete\n // NEXT_STATE: ENTRY_OR_JUNK\n this.processEntry_();\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n break;\n }\n if (/[\\-A-Za-z:]/.test(c)) {\n // Add to key\n this.PARSETMP_.Key += c;\n this.SKIPWS_ = false;\n this.SKIPCOMMENT_ = false;\n } else {\n // Either end of key or we haven't encountered start of key\n if (this.PARSETMP_.Key.length < 1) {\n // Keep going till we see a key\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n } else {\n // SUCCESS: Found full key in K/V pair\n // NEXT_STATE: EQUALS\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n this.STATE_ = this.STATES_.EQUALS;\n AnotherIteration = true;\n }\n }\n break;\n\n // Start at first non-alphabetic character after K/V pair key.\n case this.STATES_.EQUALS:\n if ((c == '}' && this.BRACETYPE_ == '{') ||\n (c == ')' && this.BRACETYPE_ == '(')) {\n // ERROR: K/V pair with key but no value\n // NEXT_STATE: ENTRY_OR_JUNK\n this.error_('Key-value pair has key \"' +\n this.PARSETMP_.Key + '\", but no value.');\n this.processEntry_();\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n this.STATE_ = this.STATES_.ENTRY_OR_JUNK;\n break;\n }\n if (c == '=') {\n // SUCCESS: found an equal signs separating key and value\n // NEXT_STATE: KV_VALUE\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n this.STATE_ = this.STATES_.KV_VALUE;\n this.PARSETMP_.Value = '';\n this.VALBRACES_ = { '\"' : [], '{' : [] };\n }\n break;\n\n // Start at first non-whitespace/comment character after '=' \n // -- Populate this.PARSETMP_.Value\n case this.STATES_.KV_VALUE:\n var delim = this.VALBRACES_;\n var val = this.PARSETMP_.Value;\n var doneParsingValue = false;\n\n // Test for special characters\n if (c == '\"' || c == '{' || c == '}' || c == ',') {\n if (c == ',') {\n // This comma can mean:\n // (1) just another comma literal\n // (2) end of a macro reference\n if (0 === delim['\"'].length + delim['{'].length) {\n // end of a macro reference\n var macro = this.PARSETMP_.Value.trim();\n if (macro in this.MACROS_) {\n // Successful macro reference\n this.PARSETMP_.Value = this.MACROS_[macro];\n } else {\n // Reference to an undefined macro\n this.error_('Reference to an undefined macro: '+macro);\n }\n doneParsingValue = true;\n }\n }\n if (c == '\"') {\n // This quote can mean:\n // (1) opening delimiter\n // (2) closing delimiter\n // (3) literal, if we have a '{' on the stack\n if (0 === delim['\"'].length + delim['{'].length) {\n // opening delimiter\n delim['\"'].push(this.CHAR_)\n this.SKIPWS_ = false;\n this.SKIPCOMMENT_ = false;\n break;\n }\n if (delim['\"'].length == 1 && delim['{'].length == 0 &&\n (val.length==0 || val[val.length-1] != '\\\\')) {\n // closing delimiter\n doneParsingValue = true;\n } else {\n // literal, add to value\n }\n }\n if (c == '{') {\n // This brace can mean:\n // (1) opening delimiter\n // (2) stacked verbatim delimiter\n if (val.length == 0 || val[val.length-1] != '\\\\') {\n delim['{'].push(this.CHAR_)\n this.SKIPWS_ = false;\n this.SKIPCOMMENT_ = false;\n } else {\n // literal, add to value\n }\n }\n if (c == '}') {\n // This brace can mean:\n // (1) closing delimiter\n // (2) closing stacked verbatim delimiter\n // (3) end of object definition if value was a macro\n if (0 === delim['\"'].length + delim['{'].length) {\n // end of object definition, after macro\n var macro = this.PARSETMP_.Value.trim();\n if (macro in this.MACROS_) {\n // Successful macro reference\n this.PARSETMP_.Value = this.MACROS_[macro];\n } else {\n // Reference to an undefined macro\n this.error_('Reference to an undefined macro: '+macro);\n }\n AnotherIteration = true;\n doneParsingValue = true;\n } else {\n if (val.length == 0 || val[val.length-1] != '\\\\') {\n if (delim['{'].length > 0) {\n // pop stack for stacked verbatim delimiter\n delim['{'].splice(delim['{'].length-1, 1)\n if (0 == delim['{'].length + delim['\"'].length) {\n // closing delimiter\n doneParsingValue = true;\n } else {\n // end verbatim block\n }\n }\n } else {\n // literal, add to value\n }\n }\n }\n }\n\n // If here, then we are either done parsing the value or \n // have a literal that should be added to the value.\n if (doneParsingValue) {\n // SUCCESS: value parsed\n // NEXT_STATE: KV_KEY\n this.SKIPWS_ = true;\n this.SKIPCOMMENT_ = true;\n this.STATE_ = this.STATES_.KV_KEY;\n this.DATA_.Fields[this.PARSETMP_.Key] = this.PARSETMP_.Value;\n this.PARSETMP_ = { Key: '' };\n this.VALBRACES_ = null;\n } else {\n this.PARSETMP_.Value += c;\n }\n break;\n } // end switch (this.STATE_)\n } // end while(AnotherIteration)\n } // end function processCharacter \n\n /** @private */ this.CHARCONV_ = [\n [ /\\\\space /g, '\\u0020' ],\n [ /\\\\textdollar /g, '\\u0024' ],\n [ /\\\\textquotesingle /g, '\\u0027' ],\n [ /\\\\ast /g, '\\u002A' ],\n [ /\\\\textbackslash /g, '\\u005C' ],\n [ /\\\\\\^\\{\\}/g, '\\u005E' ],\n [ /\\\\textasciigrave /g, '\\u0060' ],\n [ /\\\\lbrace /g, '\\u007B' ],\n [ /\\\\vert /g, '\\u007C' ],\n [ /\\\\rbrace /g, '\\u007D' ],\n [ /\\\\textasciitilde /g, '\\u007E' ],\n [ /\\\\textexclamdown /g, '\\u00A1' ],\n [ /\\\\textcent /g, '\\u00A2' ],\n [ /\\\\textsterling /g, '\\u00A3' ],\n [ /\\\\textcurrency /g, '\\u00A4' ],\n [ /\\\\textyen /g, '\\u00A5' ],\n [ /\\\\textbrokenbar /g, '\\u00A6' ],\n [ /\\\\textsection /g, '\\u00A7' ],\n [ /\\\\textasciidieresis /g, '\\u00A8' ],\n [ /\\\\textcopyright /g, '\\u00A9' ],\n [ /\\\\textordfeminine /g, '\\u00AA' ],\n [ /\\\\guillemotleft /g, '\\u00AB' ],\n [ /\\\\lnot /g, '\\u00AC' ],\n [ /\\\\textregistered /g, '\\u00AE' ],\n [ /\\\\textasciimacron /g, '\\u00AF' ],\n [ /\\\\textdegree /g, '\\u00B0' ],\n [ /\\\\pm /g, '\\u00B1' ],\n [ /\\\\textasciiacute /g, '\\u00B4' ],\n [ /\\\\mathrm\\{\\\\mu\\}/g, '\\u00B5' ],\n [ /\\\\textparagraph /g, '\\u00B6' ],\n [ /\\\\cdot /g, '\\u00B7' ],\n [ /\\\\c\\{\\}/g, '\\u00B8' ],\n [ /\\\\textordmasculine /g, '\\u00BA' ],\n [ /\\\\guillemotright /g, '\\u00BB' ],\n [ /\\\\textonequarter /g, '\\u00BC' ],\n [ /\\\\textonehalf /g, '\\u00BD' ],\n [ /\\\\textthreequarters /g, '\\u00BE' ],\n [ /\\\\textquestiondown /g, '\\u00BF' ],\n [ /\\\\`\\{A\\}/g, '\\u00C0' ],\n [ /\\\\'\\{A\\}/g, '\\u00C1' ],\n [ /\\\\\\^\\{A\\}/g, '\\u00C2' ],\n [ /\\\\~\\{A\\}/g, '\\u00C3' ],\n [ /\\\\\"\\{A\\}/g, '\\u00C4' ],\n [ /\\\\AA /g, '\\u00C5' ],\n [ /\\\\AE /g, '\\u00C6' ],\n [ /\\\\c\\{C\\}/g, '\\u00C7' ],\n [ /\\\\`\\{E\\}/g, '\\u00C8' ],\n [ /\\\\'\\{E\\}/g, '\\u00C9' ],\n [ /\\\\\\^\\{E\\}/g, '\\u00CA' ],\n [ /\\\\\"\\{E\\}/g, '\\u00CB' ],\n [ /\\\\`\\{I\\}/g, '\\u00CC' ],\n [ /\\\\'\\{I\\}/g, '\\u00CD' ],\n [ /\\\\\\^\\{I\\}/g, '\\u00CE' ],\n [ /\\\\\"\\{I\\}/g, '\\u00CF' ],\n [ /\\\\DH /g, '\\u00D0' ],\n [ /\\\\~\\{N\\}/g, '\\u00D1' ],\n [ /\\\\`\\{O\\}/g, '\\u00D2' ],\n [ /\\\\'\\{O\\}/g, '\\u00D3' ],\n [ /\\\\\\^\\{O\\}/g, '\\u00D4' ],\n [ /\\\\~\\{O\\}/g, '\\u00D5' ],\n [ /\\\\\"\\{O\\}/g, '\\u00D6' ],\n [ /\\\\texttimes /g, '\\u00D7' ],\n [ /\\\\O /g, '\\u00D8' ],\n [ /\\\\`\\{U\\}/g, '\\u00D9' ],\n [ /\\\\'\\{U\\}/g, '\\u00DA' ],\n [ /\\\\\\^\\{U\\}/g, '\\u00DB' ],\n [ /\\\\\"\\{U\\}/g, '\\u00DC' ],\n [ /\\\\'\\{Y\\}/g, '\\u00DD' ],\n [ /\\\\TH /g, '\\u00DE' ],\n [ /\\\\ss /g, '\\u00DF' ],\n [ /\\\\`\\{a\\}/g, '\\u00E0' ],\n [ /\\\\'\\{a\\}/g, '\\u00E1' ],\n [ /\\\\\\^\\{a\\}/g, '\\u00E2' ],\n [ /\\\\~\\{a\\}/g, '\\u00E3' ],\n [ /\\\\\"\\{a\\}/g, '\\u00E4' ],\n [ /\\\\aa /g, '\\u00E5' ],\n [ /\\\\ae /g, '\\u00E6' ],\n [ /\\\\c\\{c\\}/g, '\\u00E7' ],\n [ /\\\\`\\{e\\}/g, '\\u00E8' ],\n [ /\\\\'\\{e\\}/g, '\\u00E9' ],\n [ /\\\\\\^\\{e\\}/g, '\\u00EA' ],\n [ /\\\\\"\\{e\\}/g, '\\u00EB' ],\n [ /\\\\`\\{\\\\i\\}/g, '\\u00EC' ],\n [ /\\\\'\\{\\\\i\\}/g, '\\u00ED' ],\n [ /\\\\\\^\\{\\\\i\\}/g, '\\u00EE' ],\n [ /\\\\\"\\{\\\\i\\}/g, '\\u00EF' ],\n [ /\\\\dh /g, '\\u00F0' ],\n [ /\\\\~\\{n\\}/g, '\\u00F1' ],\n [ /\\\\`\\{o\\}/g, '\\u00F2' ],\n [ /\\\\'\\{o\\}/g, '\\u00F3' ],\n [ /\\\\\\^\\{o\\}/g, '\\u00F4' ],\n [ /\\\\~\\{o\\}/g, '\\u00F5' ],\n [ /\\\\\"\\{o\\}/g, '\\u00F6' ],\n [ /\\\\div /g, '\\u00F7' ],\n [ /\\\\o /g, '\\u00F8' ],\n [ /\\\\`\\{u\\}/g, '\\u00F9' ],\n [ /\\\\'\\{u\\}/g, '\\u00FA' ],\n [ /\\\\\\^\\{u\\}/g, '\\u00FB' ],\n [ /\\\\\"\\{u\\}/g, '\\u00FC' ],\n [ /\\\\'\\{y\\}/g, '\\u00FD' ],\n [ /\\\\th /g, '\\u00FE' ],\n [ /\\\\\"\\{y\\}/g, '\\u00FF' ],\n [ /\\\\=\\{A\\}/g, '\\u0100' ],\n [ /\\\\=\\{a\\}/g, '\\u0101' ],\n [ /\\\\u\\{A\\}/g, '\\u0102' ],\n [ /\\\\u\\{a\\}/g, '\\u0103' ],\n [ /\\\\k\\{A\\}/g, '\\u0104' ],\n [ /\\\\k\\{a\\}/g, '\\u0105' ],\n [ /\\\\'\\{C\\}/g, '\\u0106' ],\n [ /\\\\'\\{c\\}/g, '\\u0107' ],\n [ /\\\\\\^\\{C\\}/g, '\\u0108' ],\n [ /\\\\\\^\\{c\\}/g, '\\u0109' ],\n [ /\\\\.\\{C\\}/g, '\\u010A' ],\n [ /\\\\.\\{c\\}/g, '\\u010B' ],\n [ /\\\\v\\{C\\}/g, '\\u010C' ],\n [ /\\\\v\\{c\\}/g, '\\u010D' ],\n [ /\\\\v\\{D\\}/g, '\\u010E' ],\n [ /\\\\v\\{d\\}/g, '\\u010F' ],\n [ /\\\\DJ /g, '\\u0110' ],\n [ /\\\\dj /g, '\\u0111' ],\n [ /\\\\=\\{E\\}/g, '\\u0112' ],\n [ /\\\\=\\{e\\}/g, '\\u0113' ],\n [ /\\\\u\\{E\\}/g, '\\u0114' ],\n [ /\\\\u\\{e\\}/g, '\\u0115' ],\n [ /\\\\.\\{E\\}/g, '\\u0116' ],\n [ /\\\\.\\{e\\}/g, '\\u0117' ],\n [ /\\\\k\\{E\\}/g, '\\u0118' ],\n [ /\\\\k\\{e\\}/g, '\\u0119' ],\n [ /\\\\v\\{E\\}/g, '\\u011A' ],\n [ /\\\\v\\{e\\}/g, '\\u011B' ],\n [ /\\\\\\^\\{G\\}/g, '\\u011C' ],\n [ /\\\\\\^\\{g\\}/g, '\\u011D' ],\n [ /\\\\u\\{G\\}/g, '\\u011E' ],\n [ /\\\\u\\{g\\}/g, '\\u011F' ],\n [ /\\\\.\\{G\\}/g, '\\u0120' ],\n [ /\\\\.\\{g\\}/g, '\\u0121' ],\n [ /\\\\c\\{G\\}/g, '\\u0122' ],\n [ /\\\\c\\{g\\}/g, '\\u0123' ],\n [ /\\\\\\^\\{H\\}/g, '\\u0124' ],\n [ /\\\\\\^\\{h\\}/g, '\\u0125' ],\n [ /\\\\Elzxh /g, '\\u0127' ],\n [ /\\\\~\\{I\\}/g, '\\u0128' ],\n [ /\\\\~\\{\\\\i\\}/g, '\\u0129' ],\n [ /\\\\=\\{I\\}/g, '\\u012A' ],\n [ /\\\\=\\{\\\\i\\}/g, '\\u012B' ],\n [ /\\\\u\\{I\\}/g, '\\u012C' ],\n [ /\\\\u\\{\\\\i\\}/g, '\\u012D' ],\n [ /\\\\k\\{I\\}/g, '\\u012E' ],\n [ /\\\\k\\{i\\}/g, '\\u012F' ],\n [ /\\\\.\\{I\\}/g, '\\u0130' ],\n [ /\\\\i /g, '\\u0131' ],\n [ /\\\\\\^\\{J\\}/g, '\\u0134' ],\n [ /\\\\\\^\\{\\\\j\\}/g, '\\u0135' ],\n [ /\\\\c\\{K\\}/g, '\\u0136' ],\n [ /\\\\c\\{k\\}/g, '\\u0137' ],\n [ /\\\\'\\{L\\}/g, '\\u0139' ],\n [ /\\\\'\\{l\\}/g, '\\u013A' ],\n [ /\\\\c\\{L\\}/g, '\\u013B' ],\n [ /\\\\c\\{l\\}/g, '\\u013C' ],\n [ /\\\\v\\{L\\}/g, '\\u013D' ],\n [ /\\\\v\\{l\\}/g, '\\u013E' ],\n [ /\\\\L /g, '\\u0141' ],\n [ /\\\\l /g, '\\u0142' ],\n [ /\\\\'\\{N\\}/g, '\\u0143' ],\n [ /\\\\'\\{n\\}/g, '\\u0144' ],\n [ /\\\\c\\{N\\}/g, '\\u0145' ],\n [ /\\\\c\\{n\\}/g, '\\u0146' ],\n [ /\\\\v\\{N\\}/g, '\\u0147' ],\n [ /\\\\v\\{n\\}/g, '\\u0148' ],\n [ /\\\\NG /g, '\\u014A' ],\n [ /\\\\ng /g, '\\u014B' ],\n [ /\\\\=\\{O\\}/g, '\\u014C' ],\n [ /\\\\=\\{o\\}/g, '\\u014D' ],\n [ /\\\\u\\{O\\}/g, '\\u014E' ],\n [ /\\\\u\\{o\\}/g, '\\u014F' ],\n [ /\\\\H\\{O\\}/g, '\\u0150' ],\n [ /\\\\H\\{o\\}/g, '\\u0151' ],\n [ /\\\\OE /g, '\\u0152' ],\n [ /\\\\oe /g, '\\u0153' ],\n [ /\\\\'\\{R\\}/g, '\\u0154' ],\n [ /\\\\'\\{r\\}/g, '\\u0155' ],\n [ /\\\\c\\{R\\}/g, '\\u0156' ],\n [ /\\\\c\\{r\\}/g, '\\u0157' ],\n [ /\\\\v\\{R\\}/g, '\\u0158' ],\n [ /\\\\v\\{r\\}/g, '\\u0159' ],\n [ /\\\\'\\{S\\}/g, '\\u015A' ],\n [ /\\\\'\\{s\\}/g, '\\u015B' ],\n [ /\\\\\\^\\{S\\}/g, '\\u015C' ],\n [ /\\\\\\^\\{s\\}/g, '\\u015D' ],\n [ /\\\\c\\{S\\}/g, '\\u015E' ],\n [ /\\\\c\\{s\\}/g, '\\u015F' ],\n [ /\\\\v\\{S\\}/g, '\\u0160' ],\n [ /\\\\v\\{s\\}/g, '\\u0161' ],\n [ /\\\\c\\{T\\}/g, '\\u0162' ],\n [ /\\\\c\\{t\\}/g, '\\u0163' ],\n [ /\\\\v\\{T\\}/g, '\\u0164' ],\n [ /\\\\v\\{t\\}/g, '\\u0165' ],\n [ /\\\\~\\{U\\}/g, '\\u0168' ],\n [ /\\\\~\\{u\\}/g, '\\u0169' ],\n [ /\\\\=\\{U\\}/g, '\\u016A' ],\n [ /\\\\=\\{u\\}/g, '\\u016B' ],\n [ /\\\\u\\{U\\}/g, '\\u016C' ],\n [ /\\\\u\\{u\\}/g, '\\u016D' ],\n [ /\\\\r\\{U\\}/g, '\\u016E' ],\n [ /\\\\r\\{u\\}/g, '\\u016F' ],\n [ /\\\\H\\{U\\}/g, '\\u0170' ],\n [ /\\\\H\\{u\\}/g, '\\u0171' ],\n [ /\\\\k\\{U\\}/g, '\\u0172' ],\n [ /\\\\k\\{u\\}/g, '\\u0173' ],\n [ /\\\\\\^\\{W\\}/g, '\\u0174' ],\n [ /\\\\\\^\\{w\\}/g, '\\u0175' ],\n [ /\\\\\\^\\{Y\\}/g, '\\u0176' ],\n [ /\\\\\\^\\{y\\}/g, '\\u0177' ],\n [ /\\\\\"\\{Y\\}/g, '\\u0178' ],\n [ /\\\\'\\{Z\\}/g, '\\u0179' ],\n [ /\\\\'\\{z\\}/g, '\\u017A' ],\n [ /\\\\.\\{Z\\}/g, '\\u017B' ],\n [ /\\\\.\\{z\\}/g, '\\u017C' ],\n [ /\\\\v\\{Z\\}/g, '\\u017D' ],\n [ /\\\\v\\{z\\}/g, '\\u017E' ],\n [ /\\\\texthvlig /g, '\\u0195' ],\n [ /\\\\textnrleg /g, '\\u019E' ],\n [ /\\\\eth /g, '\\u01AA' ],\n [ /\\\\textdoublepipe /g, '\\u01C2' ],\n [ /\\\\'\\{g\\}/g, '\\u01F5' ],\n [ /\\\\Elztrna /g, '\\u0250' ],\n [ /\\\\Elztrnsa /g, '\\u0252' ],\n [ /\\\\Elzopeno /g, '\\u0254' ],\n [ /\\\\Elzrtld /g, '\\u0256' ],\n [ /\\\\Elzschwa /g, '\\u0259' ],\n [ /\\\\varepsilon /g, '\\u025B' ],\n [ /\\\\Elzpgamma /g, '\\u0263' ],\n [ /\\\\Elzpbgam /g, '\\u0264' ],\n [ /\\\\Elztrnh /g, '\\u0265' ],\n [ /\\\\Elzbtdl /g, '\\u026C' ],\n [ /\\\\Elzrtll /g, '\\u026D' ],\n [ /\\\\Elztrnm /g, '\\u026F' ],\n [ /\\\\Elztrnmlr /g, '\\u0270' ],\n [ /\\\\Elzltlmr /g, '\\u0271' ],\n [ /\\\\Elzltln /g, '\\u0272' ],\n [ /\\\\Elzrtln /g, '\\u0273' ],\n [ /\\\\Elzclomeg /g, '\\u0277' ],\n [ /\\\\textphi /g, '\\u0278' ],\n [ /\\\\Elztrnr /g, '\\u0279' ],\n [ /\\\\Elztrnrl /g, '\\u027A' ],\n [ /\\\\Elzrttrnr /g, '\\u027B' ],\n [ /\\\\Elzrl /g, '\\u027C' ],\n [ /\\\\Elzrtlr /g, '\\u027D' ],\n [ /\\\\Elzfhr /g, '\\u027E' ],\n [ /\\\\Elzrtls /g, '\\u0282' ],\n [ /\\\\Elzesh /g, '\\u0283' ],\n [ /\\\\Elztrnt /g, '\\u0287' ],\n [ /\\\\Elzrtlt /g, '\\u0288' ],\n [ /\\\\Elzpupsil /g, '\\u028A' ],\n [ /\\\\Elzpscrv /g, '\\u028B' ],\n [ /\\\\Elzinvv /g, '\\u028C' ],\n [ /\\\\Elzinvw /g, '\\u028D' ],\n [ /\\\\Elztrny /g, '\\u028E' ],\n [ /\\\\Elzrtlz /g, '\\u0290' ],\n [ /\\\\Elzyogh /g, '\\u0292' ],\n [ /\\\\Elzglst /g, '\\u0294' ],\n [ /\\\\Elzreglst /g, '\\u0295' ],\n [ /\\\\Elzinglst /g, '\\u0296' ],\n [ /\\\\textturnk /g, '\\u029E' ],\n [ /\\\\Elzdyogh /g, '\\u02A4' ],\n [ /\\\\Elztesh /g, '\\u02A7' ],\n [ /\\\\textasciicaron /g, '\\u02C7' ],\n [ /\\\\Elzverts /g, '\\u02C8' ],\n [ /\\\\Elzverti /g, '\\u02CC' ],\n [ /\\\\Elzlmrk /g, '\\u02D0' ],\n [ /\\\\Elzhlmrk /g, '\\u02D1' ],\n [ /\\\\Elzsbrhr /g, '\\u02D2' ],\n [ /\\\\Elzsblhr /g, '\\u02D3' ],\n [ /\\\\Elzrais /g, '\\u02D4' ],\n [ /\\\\Elzlow /g, '\\u02D5' ],\n [ /\\\\textasciibreve /g, '\\u02D8' ],\n [ /\\\\textperiodcentered /g, '\\u02D9' ],\n [ /\\\\r\\{\\}/g, '\\u02DA' ],\n [ /\\\\k\\{\\}/g, '\\u02DB' ],\n [ /\\\\texttildelow /g, '\\u02DC' ],\n [ /\\\\H\\{\\}/g, '\\u02DD' ],\n [ /\\\\tone\\{55\\}/g, '\\u02E5' ],\n [ /\\\\tone\\{44\\}/g, '\\u02E6' ],\n [ /\\\\tone\\{33\\}/g, '\\u02E7' ],\n [ /\\\\tone\\{22\\}/g, '\\u02E8' ],\n [ /\\\\tone\\{11\\}/g, '\\u02E9' ],\n [ /\\\\cyrchar\\\\C/g, '\\u030F' ],\n [ /\\\\Elzpalh /g, '\\u0321' ],\n [ /\\\\Elzrh /g, '\\u0322' ],\n [ /\\\\Elzsbbrg /g, '\\u032A' ],\n [ /\\\\Elzxl /g, '\\u0335' ],\n [ /\\\\Elzbar /g, '\\u0336' ],\n [ /\\\\'\\{A\\}/g, '\\u0386' ],\n [ /\\\\'\\{E\\}/g, '\\u0388' ],\n [ /\\\\'\\{H\\}/g, '\\u0389' ],\n [ /\\\\'\\{\\}\\{I\\}/g, '\\u038A' ],\n [ /\\\\'\\{\\}O/g, '\\u038C' ],\n [ /\\\\mathrm\\{'Y\\}/g, '\\u038E' ],\n [ /\\\\mathrm\\{'\\\\Omega\\}/g, '\\u038F' ],\n [ /\\\\acute\\{\\\\ddot\\{\\\\iota\\}\\}/g, '\\u0390' ],\n [ /\\\\Alpha /g, '\\u0391' ],\n [ /\\\\Beta /g, '\\u0392' ],\n [ /\\\\Gamma /g, '\\u0393' ],\n [ /\\\\Delta /g, '\\u0394' ],\n [ /\\\\Epsilon /g, '\\u0395' ],\n [ /\\\\Zeta /g, '\\u0396' ],\n [ /\\\\Eta /g, '\\u0397' ],\n [ /\\\\Theta /g, '\\u0398' ],\n [ /\\\\Iota /g, '\\u0399' ],\n [ /\\\\Kappa /g, '\\u039A' ],\n [ /\\\\Lambda /g, '\\u039B' ],\n [ /\\\\Xi /g, '\\u039E' ],\n [ /\\\\Pi /g, '\\u03A0' ],\n [ /\\\\Rho /g, '\\u03A1' ],\n [ /\\\\Sigma /g, '\\u03A3' ],\n [ /\\\\Tau /g, '\\u03A4' ],\n [ /\\\\Upsilon /g, '\\u03A5' ],\n [ /\\\\Phi /g, '\\u03A6' ],\n [ /\\\\Chi /g, '\\u03A7' ],\n [ /\\\\Psi /g, '\\u03A8' ],\n [ /\\\\Omega /g, '\\u03A9' ],\n [ /\\\\mathrm\\{\\\\ddot\\{I\\}\\}/g, '\\u03AA' ],\n [ /\\\\mathrm\\{\\\\ddot\\{Y\\}\\}/g, '\\u03AB' ],\n [ /\\\\'\\{\\$\\\\alpha\\$\\}/g, '\\u03AC' ],\n [ /\\\\acute\\{\\\\epsilon\\}/g, '\\u03AD' ],\n [ /\\\\acute\\{\\\\eta\\}/g, '\\u03AE' ],\n [ /\\\\acute\\{\\\\iota\\}/g, '\\u03AF' ],\n [ /\\\\acute\\{\\\\ddot\\{\\\\upsilon\\}\\}/g, '\\u03B0' ],\n [ /\\\\alpha /g, '\\u03B1' ],\n [ /\\\\beta /g, '\\u03B2' ],\n [ /\\\\gamma /g, '\\u03B3' ],\n [ /\\\\delta /g, '\\u03B4' ],\n [ /\\\\epsilon /g, '\\u03B5' ],\n [ /\\\\zeta /g, '\\u03B6' ],\n [ /\\\\eta /g, '\\u03B7' ],\n [ /\\\\texttheta /g, '\\u03B8' ],\n [ /\\\\iota /g, '\\u03B9' ],\n [ /\\\\kappa /g, '\\u03BA' ],\n [ /\\\\lambda /g, '\\u03BB' ],\n [ /\\\\mu /g, '\\u03BC' ],\n [ /\\\\nu /g, '\\u03BD' ],\n [ /\\\\xi /g, '\\u03BE' ],\n [ /\\\\pi /g, '\\u03C0' ],\n [ /\\\\rho /g, '\\u03C1' ],\n [ /\\\\varsigma /g, '\\u03C2' ],\n [ /\\\\sigma /g, '\\u03C3' ],\n [ /\\\\tau /g, '\\u03C4' ],\n [ /\\\\upsilon /g, '\\u03C5' ],\n [ /\\\\varphi /g, '\\u03C6' ],\n [ /\\\\chi /g, '\\u03C7' ],\n [ /\\\\psi /g, '\\u03C8' ],\n [ /\\\\omega /g, '\\u03C9' ],\n [ /\\\\ddot\\{\\\\iota\\}/g, '\\u03CA' ],\n [ /\\\\ddot\\{\\\\upsilon\\}/g, '\\u03CB' ],\n [ /\\\\'\\{o\\}/g, '\\u03CC' ],\n [ /\\\\acute\\{\\\\upsilon\\}/g, '\\u03CD' ],\n [ /\\\\acute\\{\\\\omega\\}/g, '\\u03CE' ],\n [ /\\\\Pisymbol\\{ppi022\\}\\{87\\}/g, '\\u03D0' ],\n [ /\\\\textvartheta /g, '\\u03D1' ],\n [ /\\\\Upsilon /g, '\\u03D2' ],\n [ /\\\\phi /g, '\\u03D5' ],\n [ /\\\\varpi /g, '\\u03D6' ],\n [ /\\\\Stigma /g, '\\u03DA' ],\n [ /\\\\Digamma /g, '\\u03DC' ],\n [ /\\\\digamma /g, '\\u03DD' ],\n [ /\\\\Koppa /g, '\\u03DE' ],\n [ /\\\\Sampi /g, '\\u03E0' ],\n [ /\\\\varkappa /g, '\\u03F0' ],\n [ /\\\\varrho /g, '\\u03F1' ],\n [ /\\\\textTheta /g, '\\u03F4' ],\n [ /\\\\backepsilon /g, '\\u03F6' ],\n [ /\\\\cyrchar\\\\CYRYO /g, '\\u0401' ],\n [ /\\\\cyrchar\\\\CYRDJE /g, '\\u0402' ],\n [ /\\\\cyrchar\\{\\\\'\\\\CYRG\\}/g, '\\u0403' ],\n [ /\\\\cyrchar\\\\CYRIE /g, '\\u0404' ],\n [ /\\\\cyrchar\\\\CYRDZE /g, '\\u0405' ],\n [ /\\\\cyrchar\\\\CYRII /g, '\\u0406' ],\n [ /\\\\cyrchar\\\\CYRYI /g, '\\u0407' ],\n [ /\\\\cyrchar\\\\CYRJE /g, '\\u0408' ],\n [ /\\\\cyrchar\\\\CYRLJE /g, '\\u0409' ],\n [ /\\\\cyrchar\\\\CYRNJE /g, '\\u040A' ],\n [ /\\\\cyrchar\\\\CYRTSHE /g, '\\u040B' ],\n [ /\\\\cyrchar\\{\\\\'\\\\CYRK\\}/g, '\\u040C' ],\n [ /\\\\cyrchar\\\\CYRUSHRT /g, '\\u040E' ],\n [ /\\\\cyrchar\\\\CYRDZHE /g, '\\u040F' ],\n [ /\\\\cyrchar\\\\CYRA /g, '\\u0410' ],\n [ /\\\\cyrchar\\\\CYRB /g, '\\u0411' ],\n [ /\\\\cyrchar\\\\CYRV /g, '\\u0412' ],\n [ /\\\\cyrchar\\\\CYRG /g, '\\u0413' ],\n [ /\\\\cyrchar\\\\CYRD /g, '\\u0414' ],\n [ /\\\\cyrchar\\\\CYRE /g, '\\u0415' ],\n [ /\\\\cyrchar\\\\CYRZH /g, '\\u0416' ],\n [ /\\\\cyrchar\\\\CYRZ /g, '\\u0417' ],\n [ /\\\\cyrchar\\\\CYRI /g, '\\u0418' ],\n [ /\\\\cyrchar\\\\CYRISHRT /g, '\\u0419' ],\n [ /\\\\cyrchar\\\\CYRK /g, '\\u041A' ],\n [ /\\\\cyrchar\\\\CYRL /g, '\\u041B' ],\n [ /\\\\cyrchar\\\\CYRM /g, '\\u041C' ],\n [ /\\\\cyrchar\\\\CYRN /g, '\\u041D' ],\n [ /\\\\cyrchar\\\\CYRO /g, '\\u041E' ],\n [ /\\\\cyrchar\\\\CYRP /g, '\\u041F' ],\n [ /\\\\cyrchar\\\\CYRR /g, '\\u0420' ],\n [ /\\\\cyrchar\\\\CYRS /g, '\\u0421' ],\n [ /\\\\cyrchar\\\\CYRT /g, '\\u0422' ],\n [ /\\\\cyrchar\\\\CYRU /g, '\\u0423' ],\n [ /\\\\cyrchar\\\\CYRF /g, '\\u0424' ],\n [ /\\\\cyrchar\\\\CYRH /g, '\\u0425' ],\n [ /\\\\cyrchar\\\\CYRC /g, '\\u0426' ],\n [ /\\\\cyrchar\\\\CYRCH /g, '\\u0427' ],\n [ /\\\\cyrchar\\\\CYRSH /g, '\\u0428' ],\n [ /\\\\cyrchar\\\\CYRSHCH /g, '\\u0429' ],\n [ /\\\\cyrchar\\\\CYRHRDSN /g, '\\u042A' ],\n [ /\\\\cyrchar\\\\CYRERY /g, '\\u042B' ],\n [ /\\\\cyrchar\\\\CYRSFTSN /g, '\\u042C' ],\n [ /\\\\cyrchar\\\\CYREREV /g, '\\u042D' ],\n [ /\\\\cyrchar\\\\CYRYU /g, '\\u042E' ],\n [ /\\\\cyrchar\\\\CYRYA /g, '\\u042F' ],\n [ /\\\\cyrchar\\\\cyra /g, '\\u0430' ],\n [ /\\\\cyrchar\\\\cyrb /g, '\\u0431' ],\n [ /\\\\cyrchar\\\\cyrv /g, '\\u0432' ],\n [ /\\\\cyrchar\\\\cyrg /g, '\\u0433' ],\n [ /\\\\cyrchar\\\\cyrd /g, '\\u0434' ],\n [ /\\\\cyrchar\\\\cyre /g, '\\u0435' ],\n [ /\\\\cyrchar\\\\cyrzh /g, '\\u0436' ],\n [ /\\\\cyrchar\\\\cyrz /g, '\\u0437' ],\n [ /\\\\cyrchar\\\\cyri /g, '\\u0438' ],\n [ /\\\\cyrchar\\\\cyrishrt /g, '\\u0439' ],\n [ /\\\\cyrchar\\\\cyrk /g, '\\u043A' ],\n [ /\\\\cyrchar\\\\cyrl /g, '\\u043B' ],\n [ /\\\\cyrchar\\\\cyrm /g, '\\u043C' ],\n [ /\\\\cyrchar\\\\cyrn /g, '\\u043D' ],\n [ /\\\\cyrchar\\\\cyro /g, '\\u043E' ],\n [ /\\\\cyrchar\\\\cyrp /g, '\\u043F' ],\n [ /\\\\cyrchar\\\\cyrr /g, '\\u0440' ],\n [ /\\\\cyrchar\\\\cyrs /g, '\\u0441' ],\n [ /\\\\cyrchar\\\\cyrt /g, '\\u0442' ],\n [ /\\\\cyrchar\\\\cyru /g, '\\u0443' ],\n [ /\\\\cyrchar\\\\cyrf /g, '\\u0444' ],\n [ /\\\\cyrchar\\\\cyrh /g, '\\u0445' ],\n [ /\\\\cyrchar\\\\cyrc /g, '\\u0446' ],\n [ /\\\\cyrchar\\\\cyrch /g, '\\u0447' ],\n [ /\\\\cyrchar\\\\cyrsh /g, '\\u0448' ],\n [ /\\\\cyrchar\\\\cyrshch /g, '\\u0449' ],\n [ /\\\\cyrchar\\\\cyrhrdsn /g, '\\u044A' ],\n [ /\\\\cyrchar\\\\cyrery /g, '\\u044B' ],\n [ /\\\\cyrchar\\\\cyrsftsn /g, '\\u044C' ],\n [ /\\\\cyrchar\\\\cyrerev /g, '\\u044D' ],\n [ /\\\\cyrchar\\\\cyryu /g, '\\u044E' ],\n [ /\\\\cyrchar\\\\cyrya /g, '\\u044F' ],\n [ /\\\\cyrchar\\\\cyryo /g, '\\u0451' ],\n [ /\\\\cyrchar\\\\cyrdje /g, '\\u0452' ],\n [ /\\\\cyrchar\\{\\\\'\\\\cyrg\\}/g, '\\u0453' ],\n [ /\\\\cyrchar\\\\cyrie /g, '\\u0454' ],\n [ /\\\\cyrchar\\\\cyrdze /g, '\\u0455' ],\n [ /\\\\cyrchar\\\\cyrii /g, '\\u0456' ],\n [ /\\\\cyrchar\\\\cyryi /g, '\\u0457' ],\n [ /\\\\cyrchar\\\\cyrje /g, '\\u0458' ],\n [ /\\\\cyrchar\\\\cyrlje /g, '\\u0459' ],\n [ /\\\\cyrchar\\\\cyrnje /g, '\\u045A' ],\n [ /\\\\cyrchar\\\\cyrtshe /g, '\\u045B' ],\n [ /\\\\cyrchar\\{\\\\'\\\\cyrk\\}/g, '\\u045C' ],\n [ /\\\\cyrchar\\\\cyrushrt /g, '\\u045E' ],\n [ /\\\\cyrchar\\\\cyrdzhe /g, '\\u045F' ],\n [ /\\\\cyrchar\\\\CYROMEGA /g, '\\u0460' ],\n [ /\\\\cyrchar\\\\cyromega /g, '\\u0461' ],\n [ /\\\\cyrchar\\\\CYRYAT /g, '\\u0462' ],\n [ /\\\\cyrchar\\\\CYRIOTE /g, '\\u0464' ],\n [ /\\\\cyrchar\\\\cyriote /g, '\\u0465' ],\n [ /\\\\cyrchar\\\\CYRLYUS /g, '\\u0466' ],\n [ /\\\\cyrchar\\\\cyrlyus /g, '\\u0467' ],\n [ /\\\\cyrchar\\\\CYRIOTLYUS /g, '\\u0468' ],\n [ /\\\\cyrchar\\\\cyriotlyus /g, '\\u0469' ],\n [ /\\\\cyrchar\\\\CYRBYUS /g, '\\u046A' ],\n [ /\\\\cyrchar\\\\CYRIOTBYUS /g, '\\u046C' ],\n [ /\\\\cyrchar\\\\cyriotbyus /g, '\\u046D' ],\n [ /\\\\cyrchar\\\\CYRKSI /g, '\\u046E' ],\n [ /\\\\cyrchar\\\\cyrksi /g, '\\u046F' ],\n [ /\\\\cyrchar\\\\CYRPSI /g, '\\u0470' ],\n [ /\\\\cyrchar\\\\cyrpsi /g, '\\u0471' ],\n [ /\\\\cyrchar\\\\CYRFITA /g, '\\u0472' ],\n [ /\\\\cyrchar\\\\CYRIZH /g, '\\u0474' ],\n [ /\\\\cyrchar\\\\CYRUK /g, '\\u0478' ],\n [ /\\\\cyrchar\\\\cyruk /g, '\\u0479' ],\n [ /\\\\cyrchar\\\\CYROMEGARND /g, '\\u047A' ],\n [ /\\\\cyrchar\\\\cyromegarnd /g, '\\u047B' ],\n [ /\\\\cyrchar\\\\CYROMEGATITLO /g, '\\u047C' ],\n [ /\\\\cyrchar\\\\cyromegatitlo /g, '\\u047D' ],\n [ /\\\\cyrchar\\\\CYROT /g, '\\u047E' ],\n [ /\\\\cyrchar\\\\cyrot /g, '\\u047F' ],\n [ /\\\\cyrchar\\\\CYRKOPPA /g, '\\u0480' ],\n [ /\\\\cyrchar\\\\cyrkoppa /g, '\\u0481' ],\n [ /\\\\cyrchar\\\\cyrthousands /g, '\\u0482' ],\n [ /\\\\cyrchar\\\\cyrhundredthousands /g, '\\u0488' ],\n [ /\\\\cyrchar\\\\cyrmillions /g, '\\u0489' ],\n [ /\\\\cyrchar\\\\CYRSEMISFTSN /g, '\\u048C' ],\n [ /\\\\cyrchar\\\\cyrsemisftsn /g, '\\u048D' ],\n [ /\\\\cyrchar\\\\CYRRTICK /g, '\\u048E' ],\n [ /\\\\cyrchar\\\\cyrrtick /g, '\\u048F' ],\n [ /\\\\cyrchar\\\\CYRGUP /g, '\\u0490' ],\n [ /\\\\cyrchar\\\\cyrgup /g, '\\u0491' ],\n [ /\\\\cyrchar\\\\CYRGHCRS /g, '\\u0492' ],\n [ /\\\\cyrchar\\\\cyrghcrs /g, '\\u0493' ],\n [ /\\\\cyrchar\\\\CYRGHK /g, '\\u0494' ],\n [ /\\\\cyrchar\\\\cyrghk /g, '\\u0495' ],\n [ /\\\\cyrchar\\\\CYRZHDSC /g, '\\u0496' ],\n [ /\\\\cyrchar\\\\cyrzhdsc /g, '\\u0497' ],\n [ /\\\\cyrchar\\\\CYRZDSC /g, '\\u0498' ],\n [ /\\\\cyrchar\\\\cyrzdsc /g, '\\u0499' ],\n [ /\\\\cyrchar\\\\CYRKDSC /g, '\\u049A' ],\n [ /\\\\cyrchar\\\\cyrkdsc /g, '\\u049B' ],\n [ /\\\\cyrchar\\\\CYRKVCRS /g, '\\u049C' ],\n [ /\\\\cyrchar\\\\cyrkvcrs /g, '\\u049D' ],\n [ /\\\\cyrchar\\\\CYRKHCRS /g, '\\u049E' ],\n [ /\\\\cyrchar\\\\cyrkhcrs /g, '\\u049F' ],\n [ /\\\\cyrchar\\\\CYRKBEAK /g, '\\u04A0' ],\n [ /\\\\cyrchar\\\\cyrkbeak /g, '\\u04A1' ],\n [ /\\\\cyrchar\\\\CYRNDSC /g, '\\u04A2' ],\n [ /\\\\cyrchar\\\\cyrndsc /g, '\\u04A3' ],\n [ /\\\\cyrchar\\\\CYRNG /g, '\\u04A4' ],\n [ /\\\\cyrchar\\\\cyrng /g, '\\u04A5' ],\n [ /\\\\cyrchar\\\\CYRPHK /g, '\\u04A6' ],\n [ /\\\\cyrchar\\\\cyrphk /g, '\\u04A7' ],\n [ /\\\\cyrchar\\\\CYRABHHA /g, '\\u04A8' ],\n [ /\\\\cyrchar\\\\cyrabhha /g, '\\u04A9' ],\n [ /\\\\cyrchar\\\\CYRSDSC /g, '\\u04AA' ],\n [ /\\\\cyrchar\\\\cyrsdsc /g, '\\u04AB' ],\n [ /\\\\cyrchar\\\\CYRTDSC /g, '\\u04AC' ],\n [ /\\\\cyrchar\\\\cyrtdsc /g, '\\u04AD' ],\n [ /\\\\cyrchar\\\\CYRY /g, '\\u04AE' ],\n [ /\\\\cyrchar\\\\cyry /g, '\\u04AF' ],\n [ /\\\\cyrchar\\\\CYRYHCRS /g, '\\u04B0' ],\n [ /\\\\cyrchar\\\\cyryhcrs /g, '\\u04B1' ],\n [ /\\\\cyrchar\\\\CYRHDSC /g, '\\u04B2' ],\n [ /\\\\cyrchar\\\\cyrhdsc /g, '\\u04B3' ],\n [ /\\\\cyrchar\\\\CYRTETSE /g, '\\u04B4' ],\n [ /\\\\cyrchar\\\\cyrtetse /g, '\\u04B5' ],\n [ /\\\\cyrchar\\\\CYRCHRDSC /g, '\\u04B6' ],\n [ /\\\\cyrchar\\\\cyrchrdsc /g, '\\u04B7' ],\n [ /\\\\cyrchar\\\\CYRCHVCRS /g, '\\u04B8' ],\n [ /\\\\cyrchar\\\\cyrchvcrs /g, '\\u04B9' ],\n [ /\\\\cyrchar\\\\CYRSHHA /g, '\\u04BA' ],\n [ /\\\\cyrchar\\\\cyrshha /g, '\\u04BB' ],\n [ /\\\\cyrchar\\\\CYRABHCH /g, '\\u04BC' ],\n [ /\\\\cyrchar\\\\cyrabhch /g, '\\u04BD' ],\n [ /\\\\cyrchar\\\\CYRABHCHDSC /g, '\\u04BE' ],\n [ /\\\\cyrchar\\\\cyrabhchdsc /g, '\\u04BF' ],\n [ /\\\\cyrchar\\\\CYRpalochka /g, '\\u04C0' ],\n [ /\\\\cyrchar\\\\CYRKHK /g, '\\u04C3' ],\n [ /\\\\cyrchar\\\\cyrkhk /g, '\\u04C4' ],\n [ /\\\\cyrchar\\\\CYRNHK /g, '\\u04C7' ],\n [ /\\\\cyrchar\\\\cyrnhk /g, '\\u04C8' ],\n [ /\\\\cyrchar\\\\CYRCHLDSC /g, '\\u04CB' ],\n [ /\\\\cyrchar\\\\cyrchldsc /g, '\\u04CC' ],\n [ /\\\\cyrchar\\\\CYRAE /g, '\\u04D4' ],\n [ /\\\\cyrchar\\\\cyrae /g, '\\u04D5' ],\n [ /\\\\cyrchar\\\\CYRSCHWA /g, '\\u04D8' ],\n [ /\\\\cyrchar\\\\cyrschwa /g, '\\u04D9' ],\n [ /\\\\cyrchar\\\\CYRABHDZE /g, '\\u04E0' ],\n [ /\\\\cyrchar\\\\cyrabhdze /g, '\\u04E1' ],\n [ /\\\\cyrchar\\\\CYROTLD /g, '\\u04E8' ],\n [ /\\\\cyrchar\\\\cyrotld /g, '\\u04E9' ],\n [ /\\\\hspace\\{0.6em\\}/g, '\\u2002' ],\n [ /\\\\hspace\\{1em\\}/g, '\\u2003' ],\n [ /\\\\hspace\\{0.33em\\}/g, '\\u2004' ],\n [ /\\\\hspace\\{0.25em\\}/g, '\\u2005' ],\n [ /\\\\hspace\\{0.166em\\}/g, '\\u2006' ],\n [ /\\\\hphantom\\{0\\}/g, '\\u2007' ],\n [ /\\\\hphantom\\{,\\}/g, '\\u2008' ],\n [ /\\\\hspace\\{0.167em\\}/g, '\\u2009' ],\n [ /\\\\mkern1mu /g, '\\u200A' ],\n [ /\\\\textendash /g, '\\u2013' ],\n [ /\\\\textemdash /g, '\\u2014' ],\n [ /\\\\rule\\{1em\\}\\{1pt\\}/g, '\\u2015' ],\n [ /\\\\Vert /g, '\\u2016' ],\n [ /\\\\Elzreapos /g, '\\u201B' ],\n [ /\\\\textquotedblleft /g, '\\u201C' ],\n [ /\\\\textquotedblright /g, '\\u201D' ],\n [ /\\\\textdagger /g, '\\u2020' ],\n [ /\\\\textdaggerdbl /g, '\\u2021' ],\n [ /\\\\textbullet /g, '\\u2022' ],\n [ /\\\\ldots /g, '\\u2026' ],\n [ /\\\\textperthousand /g, '\\u2030' ],\n [ /\\\\textpertenthousand /g, '\\u2031' ],\n [ /\\\\backprime /g, '\\u2035' ],\n [ /\\\\guilsinglleft /g, '\\u2039' ],\n [ /\\\\guilsinglright /g, '\\u203A' ],\n [ /\\\\mkern4mu /g, '\\u205F' ],\n [ /\\\\nolinebreak /g, '\\u2060' ],\n [ /\\\\ensuremath\\{\\\\Elzpes\\}/g, '\\u20A7' ],\n [ /\\\\mbox\\{\\\\texteuro\\} /g, '\\u20AC' ],\n [ /\\\\dddot /g, '\\u20DB' ],\n [ /\\\\ddddot /g, '\\u20DC' ],\n [ /\\\\mathbb\\{C\\}/g, '\\u2102' ],\n [ /\\\\mathscr\\{g\\}/g, '\\u210A' ],\n [ /\\\\mathscr\\{H\\}/g, '\\u210B' ],\n [ /\\\\mathfrak\\{H\\}/g, '\\u210C' ],\n [ /\\\\mathbb\\{H\\}/g, '\\u210D' ],\n [ /\\\\hslash /g, '\\u210F' ],\n [ /\\\\mathscr\\{I\\}/g, '\\u2110' ],\n [ /\\\\mathfrak\\{I\\}/g, '\\u2111' ],\n [ /\\\\mathscr\\{L\\}/g, '\\u2112' ],\n [ /\\\\mathscr\\{l\\}/g, '\\u2113' ],\n [ /\\\\mathbb\\{N\\}/g, '\\u2115' ],\n [ /\\\\cyrchar\\\\textnumero /g, '\\u2116' ],\n [ /\\\\wp /g, '\\u2118' ],\n [ /\\\\mathbb\\{P\\}/g, '\\u2119' ],\n [ /\\\\mathbb\\{Q\\}/g, '\\u211A' ],\n [ /\\\\mathscr\\{R\\}/g, '\\u211B' ],\n [ /\\\\mathfrak\\{R\\}/g, '\\u211C' ],\n [ /\\\\mathbb\\{R\\}/g, '\\u211D' ],\n [ /\\\\Elzxrat /g, '\\u211E' ],\n [ /\\\\texttrademark /g, '\\u2122' ],\n [ /\\\\mathbb\\{Z\\}/g, '\\u2124' ],\n [ /\\\\Omega /g, '\\u2126' ],\n [ /\\\\mho /g, '\\u2127' ],\n [ /\\\\mathfrak\\{Z\\}/g, '\\u2128' ],\n [ /\\\\ElsevierGlyph\\{2129\\}/g, '\\u2129' ],\n [ /\\\\AA /g, '\\u212B' ],\n [ /\\\\mathscr\\{B\\}/g, '\\u212C' ],\n [ /\\\\mathfrak\\{C\\}/g, '\\u212D' ],\n [ /\\\\mathscr\\{e\\}/g, '\\u212F' ],\n [ /\\\\mathscr\\{E\\}/g, '\\u2130' ],\n [ /\\\\mathscr\\{F\\}/g, '\\u2131' ],\n [ /\\\\mathscr\\{M\\}/g, '\\u2133' ],\n [ /\\\\mathscr\\{o\\}/g, '\\u2134' ],\n [ /\\\\aleph /g, '\\u2135' ],\n [ /\\\\beth /g, '\\u2136' ],\n [ /\\\\gimel /g, '\\u2137' ],\n [ /\\\\daleth /g, '\\u2138' ],\n [ /\\\\textfrac\\{1\\}\\{3\\}/g, '\\u2153' ],\n [ /\\\\textfrac\\{2\\}\\{3\\}/g, '\\u2154' ],\n [ /\\\\textfrac\\{1\\}\\{5\\}/g, '\\u2155' ],\n [ /\\\\textfrac\\{2\\}\\{5\\}/g, '\\u2156' ],\n [ /\\\\textfrac\\{3\\}\\{5\\}/g, '\\u2157' ],\n [ /\\\\textfrac\\{4\\}\\{5\\}/g, '\\u2158' ],\n [ /\\\\textfrac\\{1\\}\\{6\\}/g, '\\u2159' ],\n [ /\\\\textfrac\\{5\\}\\{6\\}/g, '\\u215A' ],\n [ /\\\\textfrac\\{1\\}\\{8\\}/g, '\\u215B' ],\n [ /\\\\textfrac\\{3\\}\\{8\\}/g, '\\u215C' ],\n [ /\\\\textfrac\\{5\\}\\{8\\}/g, '\\u215D' ],\n [ /\\\\textfrac\\{7\\}\\{8\\}/g, '\\u215E' ],\n [ /\\\\leftarrow /g, '\\u2190' ],\n [ /\\\\uparrow /g, '\\u2191' ],\n [ /\\\\rightarrow /g, '\\u2192' ],\n [ /\\\\downarrow /g, '\\u2193' ],\n [ /\\\\leftrightarrow /g, '\\u2194' ],\n [ /\\\\updownarrow /g, '\\u2195' ],\n [ /\\\\nwarrow /g, '\\u2196' ],\n [ /\\\\nearrow /g, '\\u2197' ],\n [ /\\\\searrow /g, '\\u2198' ],\n [ /\\\\swarrow /g, '\\u2199' ],\n [ /\\\\nleftarrow /g, '\\u219A' ],\n [ /\\\\nrightarrow /g, '\\u219B' ],\n [ /\\\\arrowwaveright /g, '\\u219C' ],\n [ /\\\\arrowwaveright /g, '\\u219D' ],\n [ /\\\\twoheadleftarrow /g, '\\u219E' ],\n [ /\\\\twoheadrightarrow /g, '\\u21A0' ],\n [ /\\\\leftarrowtail /g, '\\u21A2' ],\n [ /\\\\rightarrowtail /g, '\\u21A3' ],\n [ /\\\\mapsto /g, '\\u21A6' ],\n [ /\\\\hookleftarrow /g, '\\u21A9' ],\n [ /\\\\hookrightarrow /g, '\\u21AA' ],\n [ /\\\\looparrowleft /g, '\\u21AB' ],\n [ /\\\\looparrowright /g, '\\u21AC' ],\n [ /\\\\leftrightsquigarrow /g, '\\u21AD' ],\n [ /\\\\nleftrightarrow /g, '\\u21AE' ],\n [ /\\\\Lsh /g, '\\u21B0' ],\n [ /\\\\Rsh /g, '\\u21B1' ],\n [ /\\\\ElsevierGlyph\\{21B3\\}/g, '\\u21B3' ],\n [ /\\\\curvearrowleft /g, '\\u21B6' ],\n [ /\\\\curvearrowright /g, '\\u21B7' ],\n [ /\\\\circlearrowleft /g, '\\u21BA' ],\n [ /\\\\circlearrowright /g, '\\u21BB' ],\n [ /\\\\leftharpoonup /g, '\\u21BC' ],\n [ /\\\\leftharpoondown /g, '\\u21BD' ],\n [ /\\\\upharpoonright /g, '\\u21BE' ],\n [ /\\\\upharpoonleft /g, '\\u21BF' ],\n [ /\\\\rightharpoonup /g, '\\u21C0' ],\n [ /\\\\rightharpoondown /g, '\\u21C1' ],\n [ /\\\\downharpoonright /g, '\\u21C2' ],\n [ /\\\\downharpoonleft /g, '\\u21C3' ],\n [ /\\\\rightleftarrows /g, '\\u21C4' ],\n [ /\\\\dblarrowupdown /g, '\\u21C5' ],\n [ /\\\\leftrightarrows /g, '\\u21C6' ],\n [ /\\\\leftleftarrows /g, '\\u21C7' ],\n [ /\\\\upuparrows /g, '\\u21C8' ],\n [ /\\\\rightrightarrows /g, '\\u21C9' ],\n [ /\\\\downdownarrows /g, '\\u21CA' ],\n [ /\\\\leftrightharpoons /g, '\\u21CB' ],\n [ /\\\\rightleftharpoons /g, '\\u21CC' ],\n [ /\\\\nLeftarrow /g, '\\u21CD' ],\n [ /\\\\nLeftrightarrow /g, '\\u21CE' ],\n [ /\\\\nRightarrow /g, '\\u21CF' ],\n [ /\\\\Leftarrow /g, '\\u21D0' ],\n [ /\\\\Uparrow /g, '\\u21D1' ],\n [ /\\\\Rightarrow /g, '\\u21D2' ],\n [ /\\\\Downarrow /g, '\\u21D3' ],\n [ /\\\\Leftrightarrow /g, '\\u21D4' ],\n [ /\\\\Updownarrow /g, '\\u21D5' ],\n [ /\\\\Lleftarrow /g, '\\u21DA' ],\n [ /\\\\Rrightarrow /g, '\\u21DB' ],\n [ /\\\\rightsquigarrow /g, '\\u21DD' ],\n [ /\\\\DownArrowUpArrow /g, '\\u21F5' ],\n [ /\\\\forall /g, '\\u2200' ],\n [ /\\\\complement /g, '\\u2201' ],\n [ /\\\\partial /g, '\\u2202' ],\n [ /\\\\exists /g, '\\u2203' ],\n [ /\\\\nexists /g, '\\u2204' ],\n [ /\\\\varnothing /g, '\\u2205' ],\n [ /\\\\nabla /g, '\\u2207' ],\n [ /\\\\in /g, '\\u2208' ],\n [ /\\\\not\\\\in /g, '\\u2209' ],\n [ /\\\\ni /g, '\\u220B' ],\n [ /\\\\not\\\\ni /g, '\\u220C' ],\n [ /\\\\prod /g, '\\u220F' ],\n [ /\\\\coprod /g, '\\u2210' ],\n [ /\\\\sum /g, '\\u2211' ],\n [ /\\\\mp /g, '\\u2213' ],\n [ /\\\\dotplus /g, '\\u2214' ],\n [ /\\\\setminus /g, '\\u2216' ],\n [ /\\\\circ /g, '\\u2218' ],\n [ /\\\\bullet /g, '\\u2219' ],\n [ /\\\\surd /g, '\\u221A' ],\n [ /\\\\propto /g, '\\u221D' ],\n [ /\\\\infty /g, '\\u221E' ],\n [ /\\\\rightangle /g, '\\u221F' ],\n [ /\\\\angle /g, '\\u2220' ],\n [ /\\\\measuredangle /g, '\\u2221' ],\n [ /\\\\sphericalangle /g, '\\u2222' ],\n [ /\\\\mid /g, '\\u2223' ],\n [ /\\\\nmid /g, '\\u2224' ],\n [ /\\\\parallel /g, '\\u2225' ],\n [ /\\\\nparallel /g, '\\u2226' ],\n [ /\\\\wedge /g, '\\u2227' ],\n [ /\\\\vee /g, '\\u2228' ],\n [ /\\\\cap /g, '\\u2229' ],\n [ /\\\\cup /g, '\\u222A' ],\n [ /\\\\int /g, '\\u222B' ],\n [ /\\\\int\\\\!\\\\int /g, '\\u222C' ],\n [ /\\\\int\\\\!\\\\int\\\\!\\\\int /g, '\\u222D' ],\n [ /\\\\oint /g, '\\u222E' ],\n [ /\\\\surfintegral /g, '\\u222F' ],\n [ /\\\\volintegral /g, '\\u2230' ],\n [ /\\\\clwintegral /g, '\\u2231' ],\n [ /\\\\ElsevierGlyph\\{2232\\}/g, '\\u2232' ],\n [ /\\\\ElsevierGlyph\\{2233\\}/g, '\\u2233' ],\n [ /\\\\therefore /g, '\\u2234' ],\n [ /\\\\because /g, '\\u2235' ],\n [ /\\\\Colon /g, '\\u2237' ],\n [ /\\\\ElsevierGlyph\\{2238\\}/g, '\\u2238' ],\n [ /\\\\mathbin\\{\\{:\\}\\\\!\\\\!\\{\\-\\}\\\\!\\\\!\\{:\\}\\}/g, '\\u223A' ],\n [ /\\\\homothetic /g, '\\u223B' ],\n [ /\\\\sim /g, '\\u223C' ],\n [ /\\\\backsim /g, '\\u223D' ],\n [ /\\\\lazysinv /g, '\\u223E' ],\n [ /\\\\wr /g, '\\u2240' ],\n [ /\\\\not\\\\sim /g, '\\u2241' ],\n [ /\\\\ElsevierGlyph\\{2242\\}/g, '\\u2242' ],\n [ /\\\\NotEqualTilde /g, '\\u2242-00338' ],\n [ /\\\\simeq /g, '\\u2243' ],\n [ /\\\\not\\\\simeq /g, '\\u2244' ],\n [ /\\\\cong /g, '\\u2245' ],\n [ /\\\\approxnotequal /g, '\\u2246' ],\n [ /\\\\not\\\\cong /g, '\\u2247' ],\n [ /\\\\approx /g, '\\u2248' ],\n [ /\\\\not\\\\approx /g, '\\u2249' ],\n [ /\\\\approxeq /g, '\\u224A' ],\n [ /\\\\tildetrpl /g, '\\u224B' ],\n [ /\\\\not\\\\apid /g, '\\u224B-00338' ],\n [ /\\\\allequal /g, '\\u224C' ],\n [ /\\\\asymp /g, '\\u224D' ],\n [ /\\\\Bumpeq /g, '\\u224E' ],\n [ /\\\\NotHumpDownHump /g, '\\u224E-00338' ],\n [ /\\\\bumpeq /g, '\\u224F' ],\n [ /\\\\NotHumpEqual /g, '\\u224F-00338' ],\n [ /\\\\doteq /g, '\\u2250' ],\n [ /\\\\not\\\\doteq/g, '\\u2250-00338' ],\n [ /\\\\doteqdot /g, '\\u2251' ],\n [ /\\\\fallingdotseq /g, '\\u2252' ],\n [ /\\\\risingdotseq /g, '\\u2253' ],\n [ /\\\\eqcirc /g, '\\u2256' ],\n [ /\\\\circeq /g, '\\u2257' ],\n [ /\\\\estimates /g, '\\u2259' ],\n [ /\\\\ElsevierGlyph\\{225A\\}/g, '\\u225A' ],\n [ /\\\\starequal /g, '\\u225B' ],\n [ /\\\\triangleq /g, '\\u225C' ],\n [ /\\\\ElsevierGlyph\\{225F\\}/g, '\\u225F' ],\n [ /\\\\not =/g, '\\u2260' ],\n [ /\\\\equiv /g, '\\u2261' ],\n [ /\\\\not\\\\equiv /g, '\\u2262' ],\n [ /\\\\leq /g, '\\u2264' ],\n [ /\\\\geq /g, '\\u2265' ],\n [ /\\\\leqq /g, '\\u2266' ],\n [ /\\\\geqq /g, '\\u2267' ],\n [ /\\\\lneqq /g, '\\u2268' ],\n [ /\\\\lvertneqq /g, '\\u2268-0FE00' ],\n [ /\\\\gneqq /g, '\\u2269' ],\n [ /\\\\gvertneqq /g, '\\u2269-0FE00' ],\n [ /\\\\ll /g, '\\u226A' ],\n [ /\\\\NotLessLess /g, '\\u226A-00338' ],\n [ /\\\\gg /g, '\\u226B' ],\n [ /\\\\NotGreaterGreater /g, '\\u226B-00338' ],\n [ /\\\\between /g, '\\u226C' ],\n [ /\\\\not\\\\kern\\-0.3em\\\\times /g, '\\u226D' ],\n [ /\\\\not/g, '\\u226F' ],\n [ /\\\\not\\\\leq /g, '\\u2270' ],\n [ /\\\\not\\\\geq /g, '\\u2271' ],\n [ /\\\\lessequivlnt /g, '\\u2272' ],\n [ /\\\\greaterequivlnt /g, '\\u2273' ],\n [ /\\\\ElsevierGlyph\\{2274\\}/g, '\\u2274' ],\n [ /\\\\ElsevierGlyph\\{2275\\}/g, '\\u2275' ],\n [ /\\\\lessgtr /g, '\\u2276' ],\n [ /\\\\gtrless /g, '\\u2277' ],\n [ /\\\\notlessgreater /g, '\\u2278' ],\n [ /\\\\notgreaterless /g, '\\u2279' ],\n [ /\\\\prec /g, '\\u227A' ],\n [ /\\\\succ /g, '\\u227B' ],\n [ /\\\\preccurlyeq /g, '\\u227C' ],\n [ /\\\\succcurlyeq /g, '\\u227D' ],\n [ /\\\\precapprox /g, '\\u227E' ],\n [ /\\\\NotPrecedesTilde /g, '\\u227E-00338' ],\n [ /\\\\succapprox /g, '\\u227F' ],\n [ /\\\\NotSucceedsTilde /g, '\\u227F-00338' ],\n [ /\\\\not\\\\prec /g, '\\u2280' ],\n [ /\\\\not\\\\succ /g, '\\u2281' ],\n [ /\\\\subset /g, '\\u2282' ],\n [ /\\\\supset /g, '\\u2283' ],\n [ /\\\\not\\\\subset /g, '\\u2284' ],\n [ /\\\\not\\\\supset /g, '\\u2285' ],\n [ /\\\\subseteq /g, '\\u2286' ],\n [ /\\\\supseteq /g, '\\u2287' ],\n [ /\\\\not\\\\subseteq /g, '\\u2288' ],\n [ /\\\\not\\\\supseteq /g, '\\u2289' ],\n [ /\\\\subsetneq /g, '\\u228A' ],\n [ /\\\\varsubsetneqq /g, '\\u228A-0FE00' ],\n [ /\\\\supsetneq /g, '\\u228B' ],\n [ /\\\\varsupsetneq /g, '\\u228B-0FE00' ],\n [ /\\\\uplus /g, '\\u228E' ],\n [ /\\\\sqsubset /g, '\\u228F' ],\n [ /\\\\NotSquareSubset /g, '\\u228F-00338' ],\n [ /\\\\sqsupset /g, '\\u2290' ],\n [ /\\\\NotSquareSuperset /g, '\\u2290-00338' ],\n [ /\\\\sqsubseteq /g, '\\u2291' ],\n [ /\\\\sqsupseteq /g, '\\u2292' ],\n [ /\\\\sqcap /g, '\\u2293' ],\n [ /\\\\sqcup /g, '\\u2294' ],\n [ /\\\\oplus /g, '\\u2295' ],\n [ /\\\\ominus /g, '\\u2296' ],\n [ /\\\\otimes /g, '\\u2297' ],\n [ /\\\\oslash /g, '\\u2298' ],\n [ /\\\\odot /g, '\\u2299' ],\n [ /\\\\circledcirc /g, '\\u229A' ],\n [ /\\\\circledast /g, '\\u229B' ],\n [ /\\\\circleddash /g, '\\u229D' ],\n [ /\\\\boxplus /g, '\\u229E' ],\n [ /\\\\boxminus /g, '\\u229F' ],\n [ /\\\\boxtimes /g, '\\u22A0' ],\n [ /\\\\boxdot /g, '\\u22A1' ],\n [ /\\\\vdash /g, '\\u22A2' ],\n [ /\\\\dashv /g, '\\u22A3' ],\n [ /\\\\top /g, '\\u22A4' ],\n [ /\\\\perp /g, '\\u22A5' ],\n [ /\\\\truestate /g, '\\u22A7' ],\n [ /\\\\forcesextra /g, '\\u22A8' ],\n [ /\\\\Vdash /g, '\\u22A9' ],\n [ /\\\\Vvdash /g, '\\u22AA' ],\n [ /\\\\VDash /g, '\\u22AB' ],\n [ /\\\\nvdash /g, '\\u22AC' ],\n [ /\\\\nvDash /g, '\\u22AD' ],\n [ /\\\\nVdash /g, '\\u22AE' ],\n [ /\\\\nVDash /g, '\\u22AF' ],\n [ /\\\\vartriangleleft /g, '\\u22B2' ],\n [ /\\\\vartriangleright /g, '\\u22B3' ],\n [ /\\\\trianglelefteq /g, '\\u22B4' ],\n [ /\\\\trianglerighteq /g, '\\u22B5' ],\n [ /\\\\original /g, '\\u22B6' ],\n [ /\\\\image /g, '\\u22B7' ],\n [ /\\\\multimap /g, '\\u22B8' ],\n [ /\\\\hermitconjmatrix /g, '\\u22B9' ],\n [ /\\\\intercal /g, '\\u22BA' ],\n [ /\\\\veebar /g, '\\u22BB' ],\n [ /\\\\rightanglearc /g, '\\u22BE' ],\n [ /\\\\ElsevierGlyph\\{22C0\\}/g, '\\u22C0' ],\n [ /\\\\ElsevierGlyph\\{22C1\\}/g, '\\u22C1' ],\n [ /\\\\bigcap /g, '\\u22C2' ],\n [ /\\\\bigcup /g, '\\u22C3' ],\n [ /\\\\diamond /g, '\\u22C4' ],\n [ /\\\\cdot /g, '\\u22C5' ],\n [ /\\\\star /g, '\\u22C6' ],\n [ /\\\\divideontimes /g, '\\u22C7' ],\n [ /\\\\bowtie /g, '\\u22C8' ],\n [ /\\\\ltimes /g, '\\u22C9' ],\n [ /\\\\rtimes /g, '\\u22CA' ],\n [ /\\\\leftthreetimes /g, '\\u22CB' ],\n [ /\\\\rightthreetimes /g, '\\u22CC' ],\n [ /\\\\backsimeq /g, '\\u22CD' ],\n [ /\\\\curlyvee /g, '\\u22CE' ],\n [ /\\\\curlywedge /g, '\\u22CF' ],\n [ /\\\\Subset /g, '\\u22D0' ],\n [ /\\\\Supset /g, '\\u22D1' ],\n [ /\\\\Cap /g, '\\u22D2' ],\n [ /\\\\Cup /g, '\\u22D3' ],\n [ /\\\\pitchfork /g, '\\u22D4' ],\n [ /\\\\lessdot /g, '\\u22D6' ],\n [ /\\\\gtrdot /g, '\\u22D7' ],\n [ /\\\\verymuchless /g, '\\u22D8' ],\n [ /\\\\verymuchgreater /g, '\\u22D9' ],\n [ /\\\\lesseqgtr /g, '\\u22DA' ],\n [ /\\\\gtreqless /g, '\\u22DB' ],\n [ /\\\\curlyeqprec /g, '\\u22DE' ],\n [ /\\\\curlyeqsucc /g, '\\u22DF' ],\n [ /\\\\not\\\\sqsubseteq /g, '\\u22E2' ],\n [ /\\\\not\\\\sqsupseteq /g, '\\u22E3' ],\n [ /\\\\Elzsqspne /g, '\\u22E5' ],\n [ /\\\\lnsim /g, '\\u22E6' ],\n [ /\\\\gnsim /g, '\\u22E7' ],\n [ /\\\\precedesnotsimilar /g, '\\u22E8' ],\n [ /\\\\succnsim /g, '\\u22E9' ],\n [ /\\\\ntriangleleft /g, '\\u22EA' ],\n [ /\\\\ntriangleright /g, '\\u22EB' ],\n [ /\\\\ntrianglelefteq /g, '\\u22EC' ],\n [ /\\\\ntrianglerighteq /g, '\\u22ED' ],\n [ /\\\\vdots /g, '\\u22EE' ],\n [ /\\\\cdots /g, '\\u22EF' ],\n [ /\\\\upslopeellipsis /g, '\\u22F0' ],\n [ /\\\\downslopeellipsis /g, '\\u22F1' ],\n [ /\\\\barwedge /g, '\\u2305' ],\n [ /\\\\perspcorrespond /g, '\\u2306' ],\n [ /\\\\lceil /g, '\\u2308' ],\n [ /\\\\rceil /g, '\\u2309' ],\n [ /\\\\lfloor /g, '\\u230A' ],\n [ /\\\\rfloor /g, '\\u230B' ],\n [ /\\\\recorder /g, '\\u2315' ],\n [ /\\\\mathchar\"2208/g, '\\u2316' ],\n [ /\\\\ulcorner /g, '\\u231C' ],\n [ /\\\\urcorner /g, '\\u231D' ],\n [ /\\\\llcorner /g, '\\u231E' ],\n [ /\\\\lrcorner /g, '\\u231F' ],\n [ /\\\\frown /g, '\\u2322' ],\n [ /\\\\smile /g, '\\u2323' ],\n [ /\\\\langle /g, '\\u2329' ],\n [ /\\\\rangle /g, '\\u232A' ],\n [ /\\\\ElsevierGlyph\\{E838\\}/g, '\\u233D' ],\n [ /\\\\Elzdlcorn /g, '\\u23A3' ],\n [ /\\\\lmoustache /g, '\\u23B0' ],\n [ /\\\\rmoustache /g, '\\u23B1' ],\n [ /\\\\textvisiblespace /g, '\\u2423' ],\n [ /\\\\ding\\{172\\}/g, '\\u2460' ],\n [ /\\\\ding\\{173\\}/g, '\\u2461' ],\n [ /\\\\ding\\{174\\}/g, '\\u2462' ],\n [ /\\\\ding\\{175\\}/g, '\\u2463' ],\n [ /\\\\ding\\{176\\}/g, '\\u2464' ],\n [ /\\\\ding\\{177\\}/g, '\\u2465' ],\n [ /\\\\ding\\{178\\}/g, '\\u2466' ],\n [ /\\\\ding\\{179\\}/g, '\\u2467' ],\n [ /\\\\ding\\{180\\}/g, '\\u2468' ],\n [ /\\\\ding\\{181\\}/g, '\\u2469' ],\n [ /\\\\circledS /g, '\\u24C8' ],\n [ /\\\\Elzdshfnc /g, '\\u2506' ],\n [ /\\\\Elzsqfnw /g, '\\u2519' ],\n [ /\\\\diagup /g, '\\u2571' ],\n [ /\\\\ding\\{110\\}/g, '\\u25A0' ],\n [ /\\\\square /g, '\\u25A1' ],\n [ /\\\\blacksquare /g, '\\u25AA' ],\n [ /\\\\fbox\\{~~\\}/g, '\\u25AD' ],\n [ /\\\\Elzvrecto /g, '\\u25AF' ],\n [ /\\\\ElsevierGlyph\\{E381\\}/g, '\\u25B1' ],\n [ /\\\\ding\\{115\\}/g, '\\u25B2' ],\n [ /\\\\bigtriangleup /g, '\\u25B3' ],\n [ /\\\\blacktriangle /g, '\\u25B4' ],\n [ /\\\\vartriangle /g, '\\u25B5' ],\n [ /\\\\blacktriangleright /g, '\\u25B8' ],\n [ /\\\\triangleright /g, '\\u25B9' ],\n [ /\\\\ding\\{116\\}/g, '\\u25BC' ],\n [ /\\\\bigtriangledown /g, '\\u25BD' ],\n [ /\\\\blacktriangledown /g, '\\u25BE' ],\n [ /\\\\triangledown /g, '\\u25BF' ],\n [ /\\\\blacktriangleleft /g, '\\u25C2' ],\n [ /\\\\triangleleft /g, '\\u25C3' ],\n [ /\\\\ding\\{117\\}/g, '\\u25C6' ],\n [ /\\\\lozenge /g, '\\u25CA' ],\n [ /\\\\bigcirc /g, '\\u25CB' ],\n [ /\\\\ding\\{108\\}/g, '\\u25CF' ],\n [ /\\\\Elzcirfl /g, '\\u25D0' ],\n [ /\\\\Elzcirfr /g, '\\u25D1' ],\n [ /\\\\Elzcirfb /g, '\\u25D2' ],\n [ /\\\\ding\\{119\\}/g, '\\u25D7' ],\n [ /\\\\Elzrvbull /g, '\\u25D8' ],\n [ /\\\\Elzsqfl /g, '\\u25E7' ],\n [ /\\\\Elzsqfr /g, '\\u25E8' ],\n [ /\\\\Elzsqfse /g, '\\u25EA' ],\n [ /\\\\bigcirc /g, '\\u25EF' ],\n [ /\\\\ding\\{72\\}/g, '\\u2605' ],\n [ /\\\\ding\\{73\\}/g, '\\u2606' ],\n [ /\\\\ding\\{37\\}/g, '\\u260E' ],\n [ /\\\\ding\\{42\\}/g, '\\u261B' ],\n [ /\\\\ding\\{43\\}/g, '\\u261E' ],\n [ /\\\\rightmoon /g, '\\u263E' ],\n [ /\\\\mercury /g, '\\u263F' ],\n [ /\\\\venus /g, '\\u2640' ],\n [ /\\\\male /g, '\\u2642' ],\n [ /\\\\jupiter /g, '\\u2643' ],\n [ /\\\\saturn /g, '\\u2644' ],\n [ /\\\\uranus /g, '\\u2645' ],\n [ /\\\\neptune /g, '\\u2646' ],\n [ /\\\\pluto /g, '\\u2647' ],\n [ /\\\\aries /g, '\\u2648' ],\n [ /\\\\taurus /g, '\\u2649' ],\n [ /\\\\gemini /g, '\\u264A' ],\n [ /\\\\cancer /g, '\\u264B' ],\n [ /\\\\leo /g, '\\u264C' ],\n [ /\\\\virgo /g, '\\u264D' ],\n [ /\\\\libra /g, '\\u264E' ],\n [ /\\\\scorpio /g, '\\u264F' ],\n [ /\\\\sagittarius /g, '\\u2650' ],\n [ /\\\\capricornus /g, '\\u2651' ],\n [ /\\\\aquarius /g, '\\u2652' ],\n [ /\\\\pisces /g, '\\u2653' ],\n [ /\\\\ding\\{171\\}/g, '\\u2660' ],\n [ /\\\\diamond /g, '\\u2662' ],\n [ /\\\\ding\\{168\\}/g, '\\u2663' ],\n [ /\\\\ding\\{170\\}/g, '\\u2665' ],\n [ /\\\\ding\\{169\\}/g, '\\u2666' ],\n [ /\\\\quarternote /g, '\\u2669' ],\n [ /\\\\eighthnote /g, '\\u266A' ],\n [ /\\\\flat /g, '\\u266D' ],\n [ /\\\\natural /g, '\\u266E' ],\n [ /\\\\sharp /g, '\\u266F' ],\n [ /\\\\ding\\{33\\}/g, '\\u2701' ],\n [ /\\\\ding\\{34\\}/g, '\\u2702' ],\n [ /\\\\ding\\{35\\}/g, '\\u2703' ],\n [ /\\\\ding\\{36\\}/g, '\\u2704' ],\n [ /\\\\ding\\{38\\}/g, '\\u2706' ],\n [ /\\\\ding\\{39\\}/g, '\\u2707' ],\n [ /\\\\ding\\{40\\}/g, '\\u2708' ],\n [ /\\\\ding\\{41\\}/g, '\\u2709' ],\n [ /\\\\ding\\{44\\}/g, '\\u270C' ],\n [ /\\\\ding\\{45\\}/g, '\\u270D' ],\n [ /\\\\ding\\{46\\}/g, '\\u270E' ],\n [ /\\\\ding\\{47\\}/g, '\\u270F' ],\n [ /\\\\ding\\{48\\}/g, '\\u2710' ],\n [ /\\\\ding\\{49\\}/g, '\\u2711' ],\n [ /\\\\ding\\{50\\}/g, '\\u2712' ],\n [ /\\\\ding\\{51\\}/g, '\\u2713' ],\n [ /\\\\ding\\{52\\}/g, '\\u2714' ],\n [ /\\\\ding\\{53\\}/g, '\\u2715' ],\n [ /\\\\ding\\{54\\}/g, '\\u2716' ],\n [ /\\\\ding\\{55\\}/g, '\\u2717' ],\n [ /\\\\ding\\{56\\}/g, '\\u2718' ],\n [ /\\\\ding\\{57\\}/g, '\\u2719' ],\n [ /\\\\ding\\{58\\}/g, '\\u271A' ],\n [ /\\\\ding\\{59\\}/g, '\\u271B' ],\n [ /\\\\ding\\{60\\}/g, '\\u271C' ],\n [ /\\\\ding\\{61\\}/g, '\\u271D' ],\n [ /\\\\ding\\{62\\}/g, '\\u271E' ],\n [ /\\\\ding\\{63\\}/g, '\\u271F' ],\n [ /\\\\ding\\{64\\}/g, '\\u2720' ],\n [ /\\\\ding\\{65\\}/g, '\\u2721' ],\n [ /\\\\ding\\{66\\}/g, '\\u2722' ],\n [ /\\\\ding\\{67\\}/g, '\\u2723' ],\n [ /\\\\ding\\{68\\}/g, '\\u2724' ],\n [ /\\\\ding\\{69\\}/g, '\\u2725' ],\n [ /\\\\ding\\{70\\}/g, '\\u2726' ],\n [ /\\\\ding\\{71\\}/g, '\\u2727' ],\n [ /\\\\ding\\{73\\}/g, '\\u2729' ],\n [ /\\\\ding\\{74\\}/g, '\\u272A' ],\n [ /\\\\ding\\{75\\}/g, '\\u272B' ],\n [ /\\\\ding\\{76\\}/g, '\\u272C' ],\n [ /\\\\ding\\{77\\}/g, '\\u272D' ],\n [ /\\\\ding\\{78\\}/g, '\\u272E' ],\n [ /\\\\ding\\{79\\}/g, '\\u272F' ],\n [ /\\\\ding\\{80\\}/g, '\\u2730' ],\n [ /\\\\ding\\{81\\}/g, '\\u2731' ],\n [ /\\\\ding\\{82\\}/g, '\\u2732' ],\n [ /\\\\ding\\{83\\}/g, '\\u2733' ],\n [ /\\\\ding\\{84\\}/g, '\\u2734' ],\n [ /\\\\ding\\{85\\}/g, '\\u2735' ],\n [ /\\\\ding\\{86\\}/g, '\\u2736' ],\n [ /\\\\ding\\{87\\}/g, '\\u2737' ],\n [ /\\\\ding\\{88\\}/g, '\\u2738' ],\n [ /\\\\ding\\{89\\}/g, '\\u2739' ],\n [ /\\\\ding\\{90\\}/g, '\\u273A' ],\n [ /\\\\ding\\{91\\}/g, '\\u273B' ],\n [ /\\\\ding\\{92\\}/g, '\\u273C' ],\n [ /\\\\ding\\{93\\}/g, '\\u273D' ],\n [ /\\\\ding\\{94\\}/g, '\\u273E' ],\n [ /\\\\ding\\{95\\}/g, '\\u273F' ],\n [ /\\\\ding\\{96\\}/g, '\\u2740' ],\n [ /\\\\ding\\{97\\}/g, '\\u2741' ],\n [ /\\\\ding\\{98\\}/g, '\\u2742' ],\n [ /\\\\ding\\{99\\}/g, '\\u2743' ],\n [ /\\\\ding\\{100\\}/g, '\\u2744' ],\n [ /\\\\ding\\{101\\}/g, '\\u2745' ],\n [ /\\\\ding\\{102\\}/g, '\\u2746' ],\n [ /\\\\ding\\{103\\}/g, '\\u2747' ],\n [ /\\\\ding\\{104\\}/g, '\\u2748' ],\n [ /\\\\ding\\{105\\}/g, '\\u2749' ],\n [ /\\\\ding\\{106\\}/g, '\\u274A' ],\n [ /\\\\ding\\{107\\}/g, '\\u274B' ],\n [ /\\\\ding\\{109\\}/g, '\\u274D' ],\n [ /\\\\ding\\{111\\}/g, '\\u274F' ],\n [ /\\\\ding\\{112\\}/g, '\\u2750' ],\n [ /\\\\ding\\{113\\}/g, '\\u2751' ],\n [ /\\\\ding\\{114\\}/g, '\\u2752' ],\n [ /\\\\ding\\{118\\}/g, '\\u2756' ],\n [ /\\\\ding\\{120\\}/g, '\\u2758' ],\n [ /\\\\ding\\{121\\}/g, '\\u2759' ],\n [ /\\\\ding\\{122\\}/g, '\\u275A' ],\n [ /\\\\ding\\{123\\}/g, '\\u275B' ],\n [ /\\\\ding\\{124\\}/g, '\\u275C' ],\n [ /\\\\ding\\{125\\}/g, '\\u275D' ],\n [ /\\\\ding\\{126\\}/g, '\\u275E' ],\n [ /\\\\ding\\{161\\}/g, '\\u2761' ],\n [ /\\\\ding\\{162\\}/g, '\\u2762' ],\n [ /\\\\ding\\{163\\}/g, '\\u2763' ],\n [ /\\\\ding\\{164\\}/g, '\\u2764' ],\n [ /\\\\ding\\{165\\}/g, '\\u2765' ],\n [ /\\\\ding\\{166\\}/g, '\\u2766' ],\n [ /\\\\ding\\{167\\}/g, '\\u2767' ],\n [ /\\\\ding\\{182\\}/g, '\\u2776' ],\n [ /\\\\ding\\{183\\}/g, '\\u2777' ],\n [ /\\\\ding\\{184\\}/g, '\\u2778' ],\n [ /\\\\ding\\{185\\}/g, '\\u2779' ],\n [ /\\\\ding\\{186\\}/g, '\\u277A' ],\n [ /\\\\ding\\{187\\}/g, '\\u277B' ],\n [ /\\\\ding\\{188\\}/g, '\\u277C' ],\n [ /\\\\ding\\{189\\}/g, '\\u277D' ],\n [ /\\\\ding\\{190\\}/g, '\\u277E' ],\n [ /\\\\ding\\{191\\}/g, '\\u277F' ],\n [ /\\\\ding\\{192\\}/g, '\\u2780' ],\n [ /\\\\ding\\{193\\}/g, '\\u2781' ],\n [ /\\\\ding\\{194\\}/g, '\\u2782' ],\n [ /\\\\ding\\{195\\}/g, '\\u2783' ],\n [ /\\\\ding\\{196\\}/g, '\\u2784' ],\n [ /\\\\ding\\{197\\}/g, '\\u2785' ],\n [ /\\\\ding\\{198\\}/g, '\\u2786' ],\n [ /\\\\ding\\{199\\}/g, '\\u2787' ],\n [ /\\\\ding\\{200\\}/g, '\\u2788' ],\n [ /\\\\ding\\{201\\}/g, '\\u2789' ],\n [ /\\\\ding\\{202\\}/g, '\\u278A' ],\n [ /\\\\ding\\{203\\}/g, '\\u278B' ],\n [ /\\\\ding\\{204\\}/g, '\\u278C' ],\n [ /\\\\ding\\{205\\}/g, '\\u278D' ],\n [ /\\\\ding\\{206\\}/g, '\\u278E' ],\n [ /\\\\ding\\{207\\}/g, '\\u278F' ],\n [ /\\\\ding\\{208\\}/g, '\\u2790' ],\n [ /\\\\ding\\{209\\}/g, '\\u2791' ],\n [ /\\\\ding\\{210\\}/g, '\\u2792' ],\n [ /\\\\ding\\{211\\}/g, '\\u2793' ],\n [ /\\\\ding\\{212\\}/g, '\\u2794' ],\n [ /\\\\ding\\{216\\}/g, '\\u2798' ],\n [ /\\\\ding\\{217\\}/g, '\\u2799' ],\n [ /\\\\ding\\{218\\}/g, '\\u279A' ],\n [ /\\\\ding\\{219\\}/g, '\\u279B' ],\n [ /\\\\ding\\{220\\}/g, '\\u279C' ],\n [ /\\\\ding\\{221\\}/g, '\\u279D' ],\n [ /\\\\ding\\{222\\}/g, '\\u279E' ],\n [ /\\\\ding\\{223\\}/g, '\\u279F' ],\n [ /\\\\ding\\{224\\}/g, '\\u27A0' ],\n [ /\\\\ding\\{225\\}/g, '\\u27A1' ],\n [ /\\\\ding\\{226\\}/g, '\\u27A2' ],\n [ /\\\\ding\\{227\\}/g, '\\u27A3' ],\n [ /\\\\ding\\{228\\}/g, '\\u27A4' ],\n [ /\\\\ding\\{229\\}/g, '\\u27A5' ],\n [ /\\\\ding\\{230\\}/g, '\\u27A6' ],\n [ /\\\\ding\\{231\\}/g, '\\u27A7' ],\n [ /\\\\ding\\{232\\}/g, '\\u27A8' ],\n [ /\\\\ding\\{233\\}/g, '\\u27A9' ],\n [ /\\\\ding\\{234\\}/g, '\\u27AA' ],\n [ /\\\\ding\\{235\\}/g, '\\u27AB' ],\n [ /\\\\ding\\{236\\}/g, '\\u27AC' ],\n [ /\\\\ding\\{237\\}/g, '\\u27AD' ],\n [ /\\\\ding\\{238\\}/g, '\\u27AE' ],\n [ /\\\\ding\\{239\\}/g, '\\u27AF' ],\n [ /\\\\ding\\{241\\}/g, '\\u27B1' ],\n [ /\\\\ding\\{242\\}/g, '\\u27B2' ],\n [ /\\\\ding\\{243\\}/g, '\\u27B3' ],\n [ /\\\\ding\\{244\\}/g, '\\u27B4' ],\n [ /\\\\ding\\{245\\}/g, '\\u27B5' ],\n [ /\\\\ding\\{246\\}/g, '\\u27B6' ],\n [ /\\\\ding\\{247\\}/g, '\\u27B7' ],\n [ /\\\\ding\\{248\\}/g, '\\u27B8' ],\n [ /\\\\ding\\{249\\}/g, '\\u27B9' ],\n [ /\\\\ding\\{250\\}/g, '\\u27BA' ],\n [ /\\\\ding\\{251\\}/g, '\\u27BB' ],\n [ /\\\\ding\\{252\\}/g, '\\u27BC' ],\n [ /\\\\ding\\{253\\}/g, '\\u27BD' ],\n [ /\\\\ding\\{254\\}/g, '\\u27BE' ],\n [ /\\\\longleftarrow /g, '\\u27F5' ],\n [ /\\\\longrightarrow /g, '\\u27F6' ],\n [ /\\\\longleftrightarrow /g, '\\u27F7' ],\n [ /\\\\Longleftarrow /g, '\\u27F8' ],\n [ /\\\\Longrightarrow /g, '\\u27F9' ],\n [ /\\\\Longleftrightarrow /g, '\\u27FA' ],\n [ /\\\\longmapsto /g, '\\u27FC' ],\n [ /\\\\sim\\\\joinrel\\\\leadsto/g, '\\u27FF' ],\n [ /\\\\ElsevierGlyph\\{E212\\}/g, '\\u2905' ],\n [ /\\\\UpArrowBar /g, '\\u2912' ],\n [ /\\\\DownArrowBar /g, '\\u2913' ],\n [ /\\\\ElsevierGlyph\\{E20C\\}/g, '\\u2923' ],\n [ /\\\\ElsevierGlyph\\{E20D\\}/g, '\\u2924' ],\n [ /\\\\ElsevierGlyph\\{E20B\\}/g, '\\u2925' ],\n [ /\\\\ElsevierGlyph\\{E20A\\}/g, '\\u2926' ],\n [ /\\\\ElsevierGlyph\\{E211\\}/g, '\\u2927' ],\n [ /\\\\ElsevierGlyph\\{E20E\\}/g, '\\u2928' ],\n [ /\\\\ElsevierGlyph\\{E20F\\}/g, '\\u2929' ],\n [ /\\\\ElsevierGlyph\\{E210\\}/g, '\\u292A' ],\n [ /\\\\ElsevierGlyph\\{E21C\\}/g, '\\u2933' ],\n [ /\\\\ElsevierGlyph\\{E21D\\}/g, '\\u2933-00338' ],\n [ /\\\\ElsevierGlyph\\{E21A\\}/g, '\\u2936' ],\n [ /\\\\ElsevierGlyph\\{E219\\}/g, '\\u2937' ],\n [ /\\\\Elolarr /g, '\\u2940' ],\n [ /\\\\Elorarr /g, '\\u2941' ],\n [ /\\\\ElzRlarr /g, '\\u2942' ],\n [ /\\\\ElzrLarr /g, '\\u2944' ],\n [ /\\\\Elzrarrx /g, '\\u2947' ],\n [ /\\\\LeftRightVector /g, '\\u294E' ],\n [ /\\\\RightUpDownVector /g, '\\u294F' ],\n [ /\\\\DownLeftRightVector /g, '\\u2950' ],\n [ /\\\\LeftUpDownVector /g, '\\u2951' ],\n [ /\\\\LeftVectorBar /g, '\\u2952' ],\n [ /\\\\RightVectorBar /g, '\\u2953' ],\n [ /\\\\RightUpVectorBar /g, '\\u2954' ],\n [ /\\\\RightDownVectorBar /g, '\\u2955' ],\n [ /\\\\DownLeftVectorBar /g, '\\u2956' ],\n [ /\\\\DownRightVectorBar /g, '\\u2957' ],\n [ /\\\\LeftUpVectorBar /g, '\\u2958' ],\n [ /\\\\LeftDownVectorBar /g, '\\u2959' ],\n [ /\\\\LeftTeeVector /g, '\\u295A' ],\n [ /\\\\RightTeeVector /g, '\\u295B' ],\n [ /\\\\RightUpTeeVector /g, '\\u295C' ],\n [ /\\\\RightDownTeeVector /g, '\\u295D' ],\n [ /\\\\DownLeftTeeVector /g, '\\u295E' ],\n [ /\\\\DownRightTeeVector /g, '\\u295F' ],\n [ /\\\\LeftUpTeeVector /g, '\\u2960' ],\n [ /\\\\LeftDownTeeVector /g, '\\u2961' ],\n [ /\\\\UpEquilibrium /g, '\\u296E' ],\n [ /\\\\ReverseUpEquilibrium /g, '\\u296F' ],\n [ /\\\\RoundImplies /g, '\\u2970' ],\n [ /\\\\ElsevierGlyph\\{E214\\}/g, '\\u297C' ],\n [ /\\\\ElsevierGlyph\\{E215\\}/g, '\\u297D' ],\n [ /\\\\Elztfnc /g, '\\u2980' ],\n [ /\\\\ElsevierGlyph\\{3018\\}/g, '\\u2985' ],\n [ /\\\\Elroang /g, '\\u2986' ],\n [ /\\\\ElsevierGlyph\\{E291\\}/g, '\\u2994' ],\n [ /\\\\Elzddfnc /g, '\\u2999' ],\n [ /\\\\Angle /g, '\\u299C' ],\n [ /\\\\Elzlpargt /g, '\\u29A0' ],\n [ /\\\\ElsevierGlyph\\{E260\\}/g, '\\u29B5' ],\n [ /\\\\ElsevierGlyph\\{E61B\\}/g, '\\u29B6' ],\n [ /\\\\ElzLap /g, '\\u29CA' ],\n [ /\\\\Elzdefas /g, '\\u29CB' ],\n [ /\\\\LeftTriangleBar /g, '\\u29CF' ],\n [ /\\\\NotLeftTriangleBar /g, '\\u29CF-00338' ],\n [ /\\\\RightTriangleBar /g, '\\u29D0' ],\n [ /\\\\NotRightTriangleBar /g, '\\u29D0-00338' ],\n [ /\\\\ElsevierGlyph\\{E372\\}/g, '\\u29DC' ],\n [ /\\\\blacklozenge /g, '\\u29EB' ],\n [ /\\\\RuleDelayed /g, '\\u29F4' ],\n [ /\\\\Elxuplus /g, '\\u2A04' ],\n [ /\\\\ElzThr /g, '\\u2A05' ],\n [ /\\\\Elxsqcup /g, '\\u2A06' ],\n [ /\\\\ElzInf /g, '\\u2A07' ],\n [ /\\\\ElzSup /g, '\\u2A08' ],\n [ /\\\\ElzCint /g, '\\u2A0D' ],\n [ /\\\\clockoint /g, '\\u2A0F' ],\n [ /\\\\ElsevierGlyph\\{E395\\}/g, '\\u2A10' ],\n [ /\\\\sqrint /g, '\\u2A16' ],\n [ /\\\\ElsevierGlyph\\{E25A\\}/g, '\\u2A25' ],\n [ /\\\\ElsevierGlyph\\{E25B\\}/g, '\\u2A2A' ],\n [ /\\\\ElsevierGlyph\\{E25C\\}/g, '\\u2A2D' ],\n [ /\\\\ElsevierGlyph\\{E25D\\}/g, '\\u2A2E' ],\n [ /\\\\ElzTimes /g, '\\u2A2F' ],\n [ /\\\\ElsevierGlyph\\{E25E\\}/g, '\\u2A34' ],\n [ /\\\\ElsevierGlyph\\{E25E\\}/g, '\\u2A35' ],\n [ /\\\\ElsevierGlyph\\{E259\\}/g, '\\u2A3C' ],\n [ /\\\\amalg /g, '\\u2A3F' ],\n [ /\\\\ElzAnd /g, '\\u2A53' ],\n [ /\\\\ElzOr /g, '\\u2A54' ],\n [ /\\\\ElsevierGlyph\\{E36E\\}/g, '\\u2A55' ],\n [ /\\\\ElOr /g, '\\u2A56' ],\n [ /\\\\perspcorrespond /g, '\\u2A5E' ],\n [ /\\\\Elzminhat /g, '\\u2A5F' ],\n [ /\\\\ElsevierGlyph\\{225A\\}/g, '\\u2A63' ],\n [ /\\\\stackrel\\{*\\}\\{=\\}/g, '\\u2A6E' ],\n [ /\\\\Equal /g, '\\u2A75' ],\n [ /\\\\leqslant /g, '\\u2A7D' ],\n [ /\\\\nleqslant /g, '\\u2A7D-00338' ],\n [ /\\\\geqslant /g, '\\u2A7E' ],\n [ /\\\\ngeqslant /g, '\\u2A7E-00338' ],\n [ /\\\\lessapprox /g, '\\u2A85' ],\n [ /\\\\gtrapprox /g, '\\u2A86' ],\n [ /\\\\lneq /g, '\\u2A87' ],\n [ /\\\\gneq /g, '\\u2A88' ],\n [ /\\\\lnapprox /g, '\\u2A89' ],\n [ /\\\\gnapprox /g, '\\u2A8A' ],\n [ /\\\\lesseqqgtr /g, '\\u2A8B' ],\n [ /\\\\gtreqqless /g, '\\u2A8C' ],\n [ /\\\\eqslantless /g, '\\u2A95' ],\n [ /\\\\eqslantgtr /g, '\\u2A96' ],\n [ /\\\\Pisymbol\\{ppi020\\}\\{117\\}/g, '\\u2A9D' ],\n [ /\\\\Pisymbol\\{ppi020\\}\\{105\\}/g, '\\u2A9E' ],\n [ /\\\\NestedLessLess /g, '\\u2AA1' ],\n [ /\\\\NotNestedLessLess /g, '\\u2AA1-00338' ],\n [ /\\\\NestedGreaterGreater /g, '\\u2AA2' ],\n [ /\\\\NotNestedGreaterGreater /g, '\\u2AA2-00338' ],\n [ /\\\\preceq /g, '\\u2AAF' ],\n [ /\\\\not\\\\preceq /g, '\\u2AAF-00338' ],\n [ /\\\\succeq /g, '\\u2AB0' ],\n [ /\\\\not\\\\succeq /g, '\\u2AB0-00338' ],\n [ /\\\\precneqq /g, '\\u2AB5' ],\n [ /\\\\succneqq /g, '\\u2AB6' ],\n [ /\\\\precapprox /g, '\\u2AB7' ],\n [ /\\\\succapprox /g, '\\u2AB8' ],\n [ /\\\\precnapprox /g, '\\u2AB9' ],\n [ /\\\\succnapprox /g, '\\u2ABA' ],\n [ /\\\\subseteqq /g, '\\u2AC5' ],\n [ /\\\\nsubseteqq /g, '\\u2AC5-00338' ],\n [ /\\\\supseteqq /g, '\\u2AC6' ],\n [ /\\\\nsupseteqq/g, '\\u2AC6-00338' ],\n [ /\\\\subsetneqq /g, '\\u2ACB' ],\n [ /\\\\supsetneqq /g, '\\u2ACC' ],\n [ /\\\\ElsevierGlyph\\{E30D\\}/g, '\\u2AEB' ],\n [ /\\\\Elztdcol /g, '\\u2AF6' ],\n [ /\\\\ElsevierGlyph\\{300A\\}/g, '\\u300A' ],\n [ /\\\\ElsevierGlyph\\{300B\\}/g, '\\u300B' ],\n [ /\\\\ElsevierGlyph\\{3018\\}/g, '\\u3018' ],\n [ /\\\\ElsevierGlyph\\{3019\\}/g, '\\u3019' ],\n [ /\\\\openbracketleft /g, '\\u301A' ],\n [ /\\\\openbracketright /g, '\\u301B' ]\n ]\n\n return this;\n} // end function BibtexParser\n\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = BibtexParser;\n}\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/libs/bibtex.js\n ** module id = 45\n ** module chunks = 0 2\n **/","define([\n \"mvc/base-mvc\",\n \"mvc/citation/citation-model\",\n \"utils/localization\"\n], function( baseMVC, citationModel, _l ){\n\nvar CitationView = Backbone.View.extend({\n tagName: 'div',\n className: 'citations',\n render: function() {\n this.$el.append( \"

    \" + this.formattedReference() + \"

    \" );\n return this;\n },\n formattedReference: function() {\n var model = this.model;\n var entryType = model.entryType();\n var fields = model.fields();\n\n var ref = \"\";\n // Code inspired by...\n // https://github.com/vkaravir/bib-publication-list/blob/master/src/bib-publication-list.js\n var authorsAndYear = this._asSentence( (fields.author ? fields.author : \"\") + (fields.year ? (\" (\" + fields.year + \")\") : \"\") ) + \" \";\n var title = fields.title || \"\";\n var pages = fields.pages ? (\"pp. \" + fields.pages) : \"\";\n var address = fields.address;\n if( entryType == \"article\" ) {\n var volume = (fields.volume ? fields.volume : \"\") +\n (fields.number ? ( \" (\" + fields.number + \")\" ) : \"\") +\n (pages ? \", \" + pages : \"\");\n ref = authorsAndYear + this._asSentence(title) +\n (fields.journal ? (\"In \" + fields.journal + \", \") : \"\") +\n this._asSentence(volume) + \n this._asSentence(fields.address) +\n \"<\\/em>\";\n } else if( entryType == \"inproceedings\" || entryType == \"proceedings\" ) {\n ref = authorsAndYear + \n this._asSentence(title) + \n (fields.booktitle ? (\"In \" + fields.booktitle + \", \") : \"\") +\n (pages ? pages : \"\") +\n (address ? \", \" + address : \"\") + \n \".<\\/em>\";\n } else if( entryType == \"mastersthesis\" || entryType == \"phdthesis\" ) {\n ref = authorsAndYear + this._asSentence(title) +\n (fields.howpublished ? fields.howpublished + \". \" : \"\") +\n (fields.note ? fields.note + \".\" : \"\");\n } else if( entryType == \"techreport\" ) {\n ref = authorsAndYear + this._asSentence(title) +\n this._asSentence(fields.institution) +\n this._asSentence(fields.number) +\n this._asSentence(fields.type);\n } else if( entryType == \"book\" || entryType == \"inbook\" || entryType == \"incollection\" ) {\n ref = authorsAndYear + \" \" + this._formatBookInfo(fields);\n } else {\n ref = authorsAndYear + \" \" + this._asSentence(title) +\n this._asSentence(fields.howpublished) +\n this._asSentence(fields.note);\n }\n var doiUrl = \"\";\n if( fields.doi ) {\n doiUrl = 'http://dx.doi.org/' + fields.doi;\n ref += '[doi:' + fields.doi + \"]\";\n }\n var url = fields.url || doiUrl;\n if( url ) {\n ref += '[Link]';\n }\n return ref;\n },\n _formatBookInfo: function(fields) {\n var info = \"\";\n if( fields.chapter ) {\n info += fields.chapter + \" in \";\n }\n if( fields.title ) {\n info += \"\" + fields.title + \"<\\/em>\";\n }\n if( fields.editor ) {\n info += \", Edited by \" + fields.editor + \", \";\n }\n if( fields.publisher) {\n info += \", \" + fields.publisher;\n }\n if( fields.pages ) {\n info += \", pp. \" + fields.pages + \"\";\n }\n if( fields.series ) {\n info += \", \" + fields.series + \"<\\/em>\";\n }\n if( fields.volume ) {\n info += \", Vol.\" + fields.volume;\n }\n if( fields.issn ) {\n info += \", ISBN: \" + fields.issn;\n }\n return info + \".\";\n },\n _asSentence: function(str) {\n return (str && str.trim()) ? str + \". \" : \"\";\n }\n});\n\nvar CitationListView = Backbone.View.extend({\n el: '#citations',\n /**\n * Set up view.\n */\n initialize: function() {\n this.listenTo( this.collection, 'add', this.renderCitation );\n },\n\n events: {\n 'click .citations-to-bibtex': 'showBibtex',\n 'click .citations-to-formatted': 'showFormatted'\n },\n\n renderCitation: function( citation ) {\n var citationView = new CitationView( { model: citation } );\n this.$(\".citations-formatted\").append( citationView.render().el );\n var rawTextarea = this.$(\".citations-bibtex-text\");\n rawTextarea.val( rawTextarea.val() + \"\\n\\r\" + citation.attributes.content );\n },\n\n render: function() {\n this.$el.html(this.citationsElement());\n this.collection.each(function( item ){\n this.renderCitation( item );\n }, this);\n this.showFormatted();\n },\n\n showBibtex: function() {\n this.$(\".citations-to-formatted\").show();\n this.$(\".citations-to-bibtex\").hide();\n this.$(\".citations-bibtex\").show();\n this.$(\".citations-formatted\").hide();\n this.$(\".citations-bibtex-text\").select();\n },\n\n showFormatted: function() {\n this.$(\".citations-to-formatted\").hide();\n this.$(\".citations-to-bibtex\").show();\n this.$(\".citations-bibtex\").hide();\n this.$(\".citations-formatted\").show();\n },\n\n partialWarningElement: function() {\n if( this.collection.partial ) {\n return [\n '
    ',\n 'Warning: This is a experimental feature. Most Galaxy tools will not annotate',\n ' citations explicitly at this time. When writing up your analysis, please manually',\n ' review your histories and find all references',\n ' that should be cited in order to completely describe your work. Also, please remember to',\n ' cite Galaxy.',\n '
    ',\n ].join('');\n } else {\n return '';\n }\n },\n\n citationsElement: function() {\n return [\n '
    ',\n '
    ',\n _l(\"Citations\"),\n ' ',\n ' ',\n '
    ',\n '
    ',\n this.partialWarningElement(),\n '',\n '
    ',\n '
    ',\n '',\n '
    ',\n '
    '\n ].join( '' );\n }\n});\n\n//==============================================================================\nreturn {\n CitationView : CitationView,\n CitationListView : CitationListView\n};\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/citation/citation-view.js\n ** module id = 46\n ** module chunks = 0 2\n **/","/** Upload app contains the upload progress button and upload modal, compiles model data for API request **/\ndefine(['utils/utils',\n 'mvc/ui/ui-modal',\n 'mvc/ui/ui-tabs',\n 'mvc/upload/upload-button',\n 'mvc/upload/default/default-view',\n 'mvc/upload/composite/composite-view'],\n function( Utils,\n Modal,\n Tabs,\n UploadButton,\n UploadViewDefault,\n UploadViewComposite ) {\nreturn Backbone.View.extend({\n // default options\n options : {\n nginx_upload_path : '',\n ftp_upload_site : 'n/a',\n default_genome : '?',\n default_extension : 'auto',\n height : 500,\n width : 900,\n auto : {\n id : 'auto',\n text : 'Auto-detect',\n description : 'This system will try to detect the file type automatically. If your file is not detected properly as one of the known formats, it most likely means that it has some format problems (e.g., different number of columns on different rows). You can still coerce the system to set your data to the format you think it should be. You can also upload compressed files, which will automatically be decompressed.'\n }\n },\n\n // upload modal container\n modal: null,\n\n // progress button in panel\n ui_button: null,\n\n // current history identifier\n current_history: null,\n\n // contains all available dataset extensions/types\n list_extensions: [],\n\n // contains all available genomes\n list_genomes: [],\n\n // initialize\n initialize: function( options ) {\n // link this\n var self = this;\n\n // merge parsed options\n this.options = Utils.merge( options, this.options );\n\n // create model for upload/progress button\n this.ui_button = new UploadButton.Model();\n\n // create view for upload/progress button\n this.ui_button_view = new UploadButton.View({\n model : this.ui_button,\n onclick : function(e) {\n e.preventDefault();\n self.show()\n },\n onunload : function() {\n var percentage = self.ui_button.get('percentage', 0);\n if (percentage > 0 && percentage < 100) {\n return 'Several uploads are queued.';\n }\n }\n });\n\n // set element to button view\n this.setElement( this.ui_button_view.$el );\n\n // load extensions\n var self = this;\n Utils.get({\n url : Galaxy.root + 'api/datatypes?extension_only=False',\n success : function( datatypes ) {\n for ( key in datatypes ) {\n self.list_extensions.push({\n id : datatypes[ key ].extension,\n text : datatypes[ key ].extension,\n description : datatypes[ key ].description,\n description_url : datatypes[ key ].description_url,\n composite_files : datatypes[ key ].composite_files\n });\n }\n self.list_extensions.sort( function( a, b ) {\n var a_text = a.text && a.text.toLowerCase();\n var b_text = b.text && b.text.toLowerCase();\n return a_text > b_text ? 1 : a_text < b_text ? -1 : 0;\n });\n if ( !self.options.datatypes_disable_auto ) {\n self.list_extensions.unshift( self.options.auto );\n }\n }\n });\n\n // load genomes\n Utils.get({\n url : Galaxy.root + 'api/genomes',\n success : function( genomes ) {\n for ( key in genomes ) {\n self.list_genomes.push({\n id : genomes[ key ][ 1 ],\n text : genomes[ key ][ 0 ]\n });\n }\n self.list_genomes.sort( function( a, b ) {\n if ( a.id == self.options.default_genome ) { return -1; }\n if ( b.id == self.options.default_genome ) { return 1; }\n return a.text > b.text ? 1 : a.text < b.text ? -1 : 0;\n });\n }\n });\n },\n\n //\n // event triggered by upload button\n //\n\n // show/hide upload frame\n show: function () {\n // wait for galaxy history panel\n var self = this;\n if ( !Galaxy.currHistoryPanel || !Galaxy.currHistoryPanel.model ) {\n window.setTimeout(function() { self.show() }, 500)\n return;\n }\n\n // set current user\n this.current_user = Galaxy.user.id;\n\n // create modal\n if ( !this.modal ) {\n // build tabs\n this.tabs = new Tabs.View();\n\n // add tabs\n this.default_view = new UploadViewDefault( this );\n this.tabs.add({\n id : 'regular',\n title : 'Regular',\n $el : this.default_view.$el\n });\n this.composite_view = new UploadViewComposite( this );\n this.tabs.add({\n id : 'composite',\n title : 'Composite',\n $el : this.composite_view.$el\n });\n\n // make modal\n this.modal = new Modal.View({\n title : 'Download from web or upload from disk',\n body : this.tabs.$el,\n height : this.options.height,\n width : this.options.width,\n closing_events : true,\n title_separator : false\n });\n }\n\n // show modal\n this.modal.show();\n },\n\n // refresh user and current history\n currentHistory: function() {\n return this.current_user && Galaxy.currHistoryPanel.model.get( 'id' );\n },\n\n // get ftp configuration\n currentFtp: function() {\n return this.current_user && this.options.ftp_upload_site;\n },\n\n /**\n * Package API data from array of models\n * @param{Array} items - Upload items/rows filtered from a collection\n */\n toData: function( items, history_id ) {\n // create dictionary for data submission\n var data = {\n payload: {\n 'tool_id' : 'upload1',\n 'history_id' : history_id || this.currentHistory(),\n 'inputs' : {}\n },\n files: [],\n error_message: null\n }\n // add upload tools input data\n if ( items && items.length > 0 ) {\n var inputs = {};\n inputs[ 'dbkey' ] = items[0].get( 'genome', null );\n inputs[ 'file_type' ] = items[0].get( 'extension', null );\n for ( var index in items ) {\n var it = items[ index ];\n it.set( 'status', 'running' );\n if ( it.get( 'file_size' ) > 0 ) {\n var prefix = 'files_' + index + '|';\n inputs[ prefix + 'type' ] = 'upload_dataset';\n inputs[ prefix + 'space_to_tab' ] = it.get( 'space_to_tab' ) && 'Yes' || null;\n inputs[ prefix + 'to_posix_lines' ] = it.get( 'to_posix_lines' ) && 'Yes' || null;\n switch ( it.get( 'file_mode' ) ) {\n case 'new':\n inputs[ prefix + 'url_paste' ] = it.get( 'url_paste' );\n break;\n case 'ftp':\n inputs[ prefix + 'ftp_files' ] = it.get( 'file_path' );\n break;\n case 'local':\n data.files.push( { name: prefix + 'file_data', file: it.get( 'file_data' ) } );\n }\n } else {\n data.error_message = 'Upload content incomplete.';\n it.set( 'status', 'error' );\n it.set( 'info', data.error_message );\n break;\n }\n }\n data.payload.inputs = JSON.stringify( inputs );\n }\n return data;\n }\n});\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/upload/upload-view.js\n ** module id = 47\n ** module chunks = 0\n **/","// dependencies\ndefine(['utils/utils'], function(Utils) {\n\n// return\nvar View = Backbone.View.extend({\n // defaults options\n optionsDefault: {\n title_new : '',\n operations : null,\n onnew : null,\n max : null,\n onchange : null\n },\n \n // initialize\n initialize : function(options) {\n // configure\n this.visible = false;\n this.$nav = null;\n this.$content = null;\n this.first_tab = null;\n this.current_id = null;\n \n // configure options\n this.options = Utils.merge(options, this.optionsDefault);\n \n // create tabs\n var $tabs = $(this._template(this.options));\n \n // link elements\n this.$nav = $tabs.find('.tab-navigation');\n this.$content = $tabs.find('.tab-content');\n \n // create new element\n this.setElement($tabs);\n \n // clear list\n this.list = {};\n \n // link this\n var self = this;\n \n // append operations\n if (this.options.operations) {\n $.each(this.options.operations, function(name, item) {\n item.$el.prop('id', name);\n self.$nav.find('.operations').append(item.$el);\n });\n }\n \n // add built-in add-new-tab tab\n if (this.options.onnew) {\n // create tab object\n var $tab_new = $(this._template_tab_new(this.options));\n \n // append to navbar\n this.$nav.append($tab_new);\n \n // add tooltip\n $tab_new.tooltip({title: 'Add a new tab', placement: 'bottom', container: self.$el});\n \n // link click event\n $tab_new.on('click', function(e) {\n $tab_new.tooltip('hide');\n self.options.onnew();\n });\n }\n },\n \n // size\n size: function() {\n return _.size(this.list);\n },\n \n // front\n current: function() {\n return this.$el.find('.tab-pane.active').attr('id');\n },\n \n // append\n add: function(options) {\n // self\n var self = this;\n \n // get tab id\n var id = options.id;\n\n // create tab object\n var $tab_title = $(this._template_tab(options));\n var $tab_content = $(this._template_tab_content(options));\n \n // add to list\n this.list[id] = options.ondel ? true : false;\n \n // add a new tab either before the add-new-tab tab or behind the last tab\n if (this.options.onnew) {\n this.$nav.find('#new-tab').before($tab_title);\n } else {\n this.$nav.append($tab_title);\n }\n \n // add content\n $tab_content.append(options.$el);\n this.$content.append($tab_content);\n \n // activate this tab if this is the first tab\n if (this.size() == 1) {\n $tab_title.addClass('active');\n $tab_content.addClass('active');\n this.first_tab = id;\n }\n \n // hide add tab\n if (this.options.max && this.size() >= this.options.max) {\n this.$el.find('#new-tab').hide();\n }\n \n // add click event to remove tab\n if (options.ondel) {\n var $del_icon = $tab_title.find('#delete');\n $del_icon.tooltip({title: 'Delete this tab', placement: 'bottom', container: self.$el});\n $del_icon.on('click', function() {\n $del_icon.tooltip('destroy');\n self.$el.find('.tooltip').remove();\n options.ondel();\n return false;\n });\n }\n \n // add custom click event handler\n $tab_title.on('click', function(e) {\n // prevent default\n e.preventDefault();\n \n // click\n if (options.onclick) {\n options.onclick();\n } else {\n self.show(id);\n }\n });\n \n // initialize current id\n if (!this.current_id) {\n this.current_id = id;\n }\n },\n \n // delete tab\n del: function(id) {\n // delete tab from dom\n this.$el.find('#tab-' + id).remove();\n this.$el.find('#' + id).remove();\n \n // check if first tab has been deleted\n if (this.first_tab == id) {\n this.first_tab = null;\n }\n \n // show first tab\n if (this.first_tab != null) {\n this.show(this.first_tab);\n }\n \n // delete from list\n if (this.list[id]) {\n delete this.list[id];\n }\n \n // show add tab\n if (this.size() < this.options.max) {\n this.$el.find('#new-tab').show();\n }\n },\n \n // delete tab\n delRemovable: function() {\n for (var id in this.list) {\n this.del(id);\n }\n },\n \n // show\n show: function(id){\n // show tab view\n this.$el.fadeIn('fast');\n this.visible = true;\n \n // show selected tab\n if (id) {\n // reassign active class\n this.$el.find('#tab-' + this.current_id).removeClass('active');\n this.$el.find('#' + this.current_id).removeClass('active');\n this.$el.find('#tab-' + id).addClass('active');\n this.$el.find('#' + id).addClass('active');\n \n // update current id\n this.current_id = id;\n }\n \n // change\n if (this.options.onchange) {\n this.options.onchange(id);\n }\n },\n \n // hide\n hide: function(){\n this.$el.fadeOut('fast');\n this.visible = false;\n },\n\n // hide operation\n hideOperation: function(id) {\n this.$nav.find('#' + id).hide();\n },\n\n // show operation\n showOperation: function(id) {\n this.$nav.find('#' + id).show();\n },\n \n // set operation\n setOperation: function(id, callback) {\n var $el = this.$nav.find('#' + id);\n $el.off('click');\n $el.on('click', callback);\n },\n \n // title\n title: function(id, new_title) {\n var $el = this.$el.find('#tab-title-text-' + id);\n if (new_title) {\n $el.html(new_title);\n }\n return $el.html();\n },\n \n // retitle\n retitle: function(new_title) {\n var index = 0;\n for (var id in this.list) {\n this.title(id, ++index + ': ' + new_title);\n }\n },\n \n // fill template\n _template: function(options) {\n return '
    ' +\n '
      ' +\n '
      ' +\n '
    '+\n '
    ' +\n '
    ';\n },\n \n // fill template tab\n _template_tab_new: function(options) {\n return '
  • ' +\n '' +\n '' +\n options.title_new +\n '' +\n '
  • ';\n },\n \n // fill template tab\n _template_tab: function(options) {\n var tmpl = '
  • ' +\n '' +\n '' + options.title + '';\n \n if (options.ondel) {\n tmpl += '';\n }\n \n tmpl += '' +\n '
  • ';\n \n return tmpl;\n },\n \n // fill template tab content\n _template_tab_content: function(options) {\n return '
    ';\n }\n});\n\nreturn {\n View : View\n}\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/ui/ui-tabs.js\n ** module id = 48\n ** module chunks = 0\n **/","// dependencies\ndefine([], function() {\n\n// model for upload/progress bar button\nvar Model = Backbone.Model.extend({\n defaults: {\n icon : 'fa-upload',\n tooltip : 'Download from URL or upload files from disk',\n label : 'Load Data',\n percentage : 0,\n status : ''\n }\n});\n\n// view for upload/progress bar button\nvar View = Backbone.View.extend({\n // model\n model : null,\n\n // initialize\n initialize : function( options ) {\n // link this\n var self = this;\n\n // create model\n var model = options.model;\n\n // create new element\n this.setElement( this._template() );\n\n // add event\n this.$el.on( 'click', function( e ) { options.onclick( e ); });\n\n // add tooltip\n this.$el.tooltip( { title: model.get('tooltip'), placement: 'bottom' } );\n\n // events\n model.on( 'change:percentage', function() {\n self._percentage( model.get( 'percentage' ) );\n });\n model.on( 'change:status', function() {\n self._status( model.get( 'status' ) );\n });\n\n // unload event\n var self = this;\n $( window ).on( 'beforeunload', function() {\n var text = \"\";\n if ( options.onunload ) {\n text = options.onunload();\n }\n if ( text != \"\" ) {\n return text;\n }\n });\n },\n\n // set status\n _status: function( value ) {\n var $el = this.$el.find( '.progress-bar' );\n $el.removeClass();\n $el.addClass( 'progress-bar' );\n $el.addClass( 'progress-bar-notransition' );\n if ( value != '' ) {\n $el.addClass( 'progress-bar-' + value );\n }\n },\n\n // set percentage\n _percentage: function( value ) {\n var $el = this.$el.find( '.progress-bar' );\n $el.css( { width : value + '%' } );\n },\n\n // template\n _template: function() {\n return '
    ' +\n '
    ' +\n '
    ' +\n '' +\n '' +\n '' +\n '
    ' +\n '
    ';\n }\n});\n\nreturn {\n Model : Model,\n View : View\n};\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/upload/upload-button.js\n ** module id = 49\n ** module chunks = 0\n **/","/** Renders contents of the default uploader */\ndefine(['utils/utils',\n 'mvc/upload/upload-model',\n 'mvc/upload/default/default-row',\n 'mvc/upload/upload-ftp',\n 'mvc/ui/ui-popover',\n 'mvc/ui/ui-select',\n 'mvc/ui/ui-misc',\n 'utils/uploadbox'],\n\n function( Utils,\n UploadModel,\n UploadRow,\n UploadFtp,\n Popover,\n Select,\n Ui\n ) {\n\nreturn Backbone.View.extend({\n // extension selector\n select_extension : null,\n\n // genome selector\n select_genome: null,\n\n // jquery uploadbox plugin\n uploadbox: null,\n\n // current upload size in bytes\n upload_size: 0,\n\n // contains upload row models\n collection : new UploadModel.Collection(),\n\n // ftp file viewer\n ftp : null,\n\n // keeps track of the current uploader state\n counter : {\n announce : 0,\n success : 0,\n error : 0,\n running : 0,\n reset : function() {\n this.announce = this.success = this.error = this.running = 0;\n }\n },\n\n // initialize\n initialize : function(app) {\n // link app\n this.app = app;\n this.options = app.options;\n this.list_extensions = app.list_extensions;\n this.list_genomes = app.list_genomes;\n this.ui_button = app.ui_button;\n this.ftp_upload_site = app.currentFtp();\n\n // link this\n var self = this;\n\n // set element\n this.setElement(this._template());\n\n // create button section\n this.btnLocal = new Ui.Button({ id: 'btn-local', title: 'Choose local file', onclick: function() { self.uploadbox.select(); }, icon: 'fa fa-laptop' });\n this.btnFtp = new Ui.Button({ id: 'btn-ftp', title: 'Choose FTP file', onclick: function() { self._eventFtp(); }, icon: 'fa fa-folder-open-o' });\n this.btnCreate = new Ui.Button({ id: 'btn-new', title: 'Paste/Fetch data', onclick: function() { self._eventCreate(); }, icon: 'fa fa-edit' });\n this.btnStart = new Ui.Button({ id: 'btn-start', title: 'Start', onclick: function() { self._eventStart(); } });\n this.btnStop = new Ui.Button({ id: 'btn-stop', title: 'Pause', onclick: function() { self._eventStop(); } });\n this.btnReset = new Ui.Button({ id: 'btn-reset', title: 'Reset', onclick: function() { self._eventReset(); } });\n this.btnClose = new Ui.Button({ id: 'btn-close', title: 'Close', onclick: function() { self.app.modal.hide(); } });\n\n // append buttons to dom\n var buttons = [ this.btnLocal, this.btnFtp, this.btnCreate, this.btnStop, this.btnReset, this.btnStart, this.btnClose ];\n for (var i in buttons) {\n this.$('#upload-buttons').prepend(buttons[i].$el);\n }\n\n // file upload\n var self = this;\n this.uploadbox = this.$('#upload-box').uploadbox({\n url : this.app.options.nginx_upload_path,\n announce : function(index, file) { self._eventAnnounce(index, file) },\n initialize : function(index) { return self.app.toData([ self.collection.get(index) ], self.history_id) },\n progress : function(index, percentage) { self._eventProgress(index, percentage) },\n success : function(index, message) { self._eventSuccess(index, message) },\n error : function(index, message) { self._eventError(index, message) },\n complete : function() { self._eventComplete() },\n ondragover : function() { self.$('.upload-box').addClass('highlight'); },\n ondragleave : function() { self.$('.upload-box').removeClass('highlight'); }\n });\n\n // add ftp file viewer\n this.ftp = new Popover.View({\n title : 'FTP files',\n container : this.btnFtp.$el\n });\n\n // select extension\n this.select_extension = new Select.View({\n css : 'footer-selection',\n container : this.$('#footer-extension'),\n data : _.filter(this.list_extensions, function(ext) { return !ext.composite_files }),\n value : this.options.default_extension,\n onchange : function(extension) {\n self.updateExtension(extension);\n }\n });\n\n // handle extension info popover\n self.$('#footer-extension-info').on('click', function(e) {\n self.showExtensionInfo({\n $el : $(e.target),\n title : self.select_extension.text(),\n extension : self.select_extension.value(),\n placement : 'top'\n });\n }).on('mousedown', function(e) { e.preventDefault(); });\n\n // genome extension\n this.select_genome = new Select.View({\n css : 'footer-selection',\n container : this.$('#footer-genome'),\n data : this.list_genomes,\n value : this.options.default_genome,\n onchange : function(genome) {\n self.updateGenome(genome);\n }\n });\n\n // events\n this.collection.on('remove', function(model) {\n self._eventRemove(model);\n });\n\n // setup info\n this._updateScreen();\n },\n\n //\n // events triggered by the upload box plugin\n //\n\n // a new file has been dropped/selected through the uploadbox plugin\n _eventAnnounce: function(index, file) {\n // update counter\n this.counter.announce++;\n\n // create if model has not been created yet\n var new_model = new UploadModel.Model({\n id : index,\n file_name : file.name,\n file_size : file.size,\n file_mode : file.mode || 'local',\n file_path : file.path,\n file_data : file\n });\n\n // add model to collection\n this.collection.add(new_model);\n\n // create view/model\n var upload_row = new UploadRow(this, { model: new_model });\n\n // add upload row element to table\n this.$('#upload-table > tbody:first').append(upload_row.$el);\n\n // show on screen info\n this._updateScreen();\n\n // render\n upload_row.render();\n },\n\n // progress\n _eventProgress: function(index, percentage) {\n // set progress for row\n var it = this.collection.get(index);\n it.set('percentage', percentage);\n\n // update ui button\n this.ui_button.set('percentage', this._uploadPercentage(percentage, it.get('file_size')));\n },\n\n // success\n _eventSuccess: function(index, message) {\n // update status\n var it = this.collection.get(index);\n it.set('percentage', 100);\n it.set('status', 'success');\n\n // update ui button\n this.ui_button.set('percentage', this._uploadPercentage(100, it.get('file_size')));\n\n // update completed\n this.upload_completed += it.get('file_size') * 100;\n\n // update counter\n this.counter.announce--;\n this.counter.success++;\n\n // update on screen info\n this._updateScreen();\n\n // update galaxy history\n Galaxy.currHistoryPanel.refreshContents();\n },\n\n // error\n _eventError: function(index, message) {\n // get element\n var it = this.collection.get(index);\n\n // update status\n it.set('percentage', 100);\n it.set('status', 'error');\n it.set('info', message);\n\n // update ui button\n this.ui_button.set('percentage', this._uploadPercentage(100, it.get('file_size')));\n this.ui_button.set('status', 'danger');\n\n // update completed\n this.upload_completed += it.get('file_size') * 100;\n\n // update counter\n this.counter.announce--;\n this.counter.error++;\n\n // update on screen info\n this._updateScreen();\n },\n\n // queue is done\n _eventComplete: function() {\n // reset queued upload to initial status\n this.collection.each(function(model) {\n if(model.get('status') == 'queued') {\n model.set('status', 'init');\n }\n });\n\n // update running\n this.counter.running = 0;\n\n // update on screen info\n this._updateScreen();\n },\n\n //\n // events triggered by collection\n //\n\n // remove model from upload list\n _eventRemove: function(model) {\n // update status\n var status = model.get('status');\n\n // reduce counter\n if (status == 'success') {\n this.counter.success--;\n } else if (status == 'error') {\n this.counter.error--;\n } else {\n this.counter.announce--;\n }\n\n // remove from queue\n this.uploadbox.remove(model.id);\n\n // show on screen info\n this._updateScreen();\n },\n\n //\n // events triggered by this view\n //\n\n // [public] display extension info popup\n showExtensionInfo: function(options) {\n // initialize\n var self = this;\n var $el = options.$el;\n var extension = options.extension;\n var title = options.title;\n var description = _.findWhere(self.list_extensions, {'id': extension});\n\n // create popup\n this.extension_popup && this.extension_popup.remove();\n this.extension_popup = new Popover.View({\n placement: options.placement || 'bottom',\n container: $el\n });\n\n // add content and show popup\n this.extension_popup.title(title);\n this.extension_popup.empty();\n this.extension_popup.append(this._templateDescription(description));\n this.extension_popup.show();\n },\n\n // show/hide ftp popup\n _eventFtp: function() {\n if (!this.ftp.visible) {\n this.ftp.empty();\n var self = this;\n this.ftp.append((new UploadFtp({\n collection : this.collection,\n ftp_upload_site : this.ftp_upload_site,\n onadd: function(ftp_file) {\n self.uploadbox.add([{\n mode: 'ftp',\n name: ftp_file.path,\n size: ftp_file.size,\n path: ftp_file.path\n }]);\n },\n onremove: function(model_index) {\n self.collection.remove(model_index);\n }\n })).$el);\n this.ftp.show();\n } else {\n this.ftp.hide();\n }\n },\n\n // create a new file\n _eventCreate: function (){\n this.uploadbox.add([{\n name : 'New File',\n size : 0,\n mode : 'new'\n }]);\n },\n\n // start upload process\n _eventStart: function() {\n // check\n if (this.counter.announce == 0 || this.counter.running > 0) {\n return;\n }\n\n // reset current size\n var self = this;\n this.upload_size = 0;\n this.upload_completed = 0;\n // switch icons for new uploads\n this.collection.each(function(model) {\n if(model.get('status') == 'init') {\n model.set('status', 'queued');\n self.upload_size += model.get('file_size');\n }\n });\n\n // reset progress\n this.ui_button.set('percentage', 0);\n this.ui_button.set('status', 'success');\n\n // update running\n this.counter.running = this.counter.announce;\n\n // set current history id\n this.history_id = this.app.currentHistory();\n\n // initiate upload procedure in plugin\n this.uploadbox.start();\n\n // update on screen info\n this._updateScreen();\n },\n\n // pause upload process\n _eventStop: function() {\n // check\n if (this.counter.running > 0) {\n // show upload has paused\n this.ui_button.set('status', 'info');\n\n // set html content\n $('#upload-info').html('Queue will pause after completing the current file...');\n\n // request pause\n this.uploadbox.stop();\n }\n },\n\n // remove all\n _eventReset: function() {\n // make sure queue is not running\n if (this.counter.running == 0){\n // reset collection\n this.collection.reset();\n\n // reset counter\n this.counter.reset();\n\n // remove from queue\n this.uploadbox.reset();\n\n // reset value for universal type drop-down\n this.select_extension.value(this.options.default_extension);\n this.select_genome.value(this.options.default_genome);\n\n // reset button\n this.ui_button.set('percentage', 0);\n\n // show on screen info\n this._updateScreen();\n }\n },\n\n // update extension for all models\n updateExtension: function(extension, defaults_only) {\n var self = this;\n this.collection.each(function(model) {\n if (model.get('status') == 'init' && (model.get('extension') == self.options.default_extension || !defaults_only)) {\n model.set('extension', extension);\n }\n });\n },\n\n // update genome for all models\n updateGenome: function(genome, defaults_only) {\n var self = this;\n this.collection.each(function(model) {\n if (model.get('status') == 'init' && (model.get('genome') == self.options.default_genome || !defaults_only)) {\n model.set('genome', genome);\n }\n });\n },\n\n // set screen\n _updateScreen: function () {\n /*\n update on screen info\n */\n\n // check default message\n if(this.counter.announce == 0) {\n if (this.uploadbox.compatible()) {\n message = ' ';\n } else {\n message = 'Browser does not support Drag & Drop. Try Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+.';\n }\n } else {\n if (this.counter.running == 0) {\n message = 'You added ' + this.counter.announce + ' file(s) to the queue. Add more files or click \\'Start\\' to proceed.';\n } else {\n message = 'Please wait...' + this.counter.announce + ' out of ' + this.counter.running + ' remaining.';\n }\n }\n\n // set html content\n this.$('#upload-info').html(message);\n\n /*\n update button status\n */\n\n // update reset button\n if (this.counter.running == 0 && this.counter.announce + this.counter.success + this.counter.error > 0) {\n this.btnReset.enable();\n } else {\n this.btnReset.disable();\n }\n\n // update upload button\n if (this.counter.running == 0 && this.counter.announce > 0) {\n this.btnStart.enable();\n this.btnStart.$el.addClass('btn-primary');\n } else {\n this.btnStart.disable();\n this.btnStart.$el.removeClass('btn-primary');\n }\n\n // pause upload button\n if (this.counter.running > 0) {\n this.btnStop.enable();\n } else {\n this.btnStop.disable();\n }\n\n // select upload button\n if (this.counter.running == 0) {\n this.btnLocal.enable();\n this.btnFtp.enable();\n this.btnCreate.enable();\n } else {\n this.btnLocal.disable();\n this.btnFtp.disable();\n this.btnCreate.disable();\n }\n\n // ftp button\n if (this.ftp_upload_site) {\n this.btnFtp.$el.show();\n } else {\n this.btnFtp.$el.hide();\n }\n\n // table visibility\n if (this.counter.announce + this.counter.success + this.counter.error > 0) {\n this.$('#upload-table').show();\n this.$('.upload-helper').hide();\n } else {\n this.$('#upload-table').hide();\n this.$('.upload-helper').show();\n }\n },\n\n // calculate percentage of all queued uploads\n _uploadPercentage: function(percentage, size) {\n return (this.upload_completed + (percentage * size)) / this.upload_size;\n },\n\n // template for extensions description\n _templateDescription: function(options) {\n if (options.description) {\n var tmpl = options.description;\n if (options.description_url) {\n tmpl += ' (read more)';\n }\n return tmpl;\n } else {\n return 'There is no description available for this file extension.';\n }\n },\n\n // load html template\n _template: function() {\n return '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    Drop files here
    ' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '
    NameSizeTypeGenomeSettingsStatus' +\n '
    ' +\n '
    ' +\n '
    ' +\n 'Type (set all):' +\n '' +\n ' ' +\n 'Genome (set all):' +\n '' +\n '
    ' +\n '
    ' +\n '
    ';\n }\n});\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/upload/default/default-view.js\n ** module id = 50\n ** module chunks = 0\n **/","// dependencies\ndefine([], function() {\n\n// model\nvar Model = Backbone.Model.extend({\n defaults: {\n extension : 'auto',\n genome : '?',\n url_paste : '',\n status : 'init',\n info : null,\n file_name : '',\n file_mode : '',\n file_size : 0,\n file_type : null,\n file_path : '',\n file_data : null,\n percentage : 0,\n space_to_tab : false,\n to_posix_lines : true,\n enabled : true\n },\n reset: function(attr) {\n this.clear().set(this.defaults).set(attr);\n }\n});\n\n// collection\nvar Collection = Backbone.Collection.extend({\n model: Model\n});\n\n// return\nreturn {\n Model: Model,\n Collection : Collection\n};\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/mvc/upload/upload-model.js\n ** module id = 51\n ** module chunks = 0\n **/","// dependencies\ndefine(['utils/utils',\n 'mvc/upload/upload-model',\n 'mvc/upload/upload-settings',\n 'mvc/ui/ui-popover',\n 'mvc/ui/ui-select'],\n\n function( Utils,\n UploadModel,\n UploadSettings,\n Popover,\n Select\n ) {\n\n// row view\nreturn Backbone.View.extend({\n // states\n status_classes : {\n init : 'upload-icon-button fa fa-trash-o',\n queued : 'upload-icon fa fa-spinner fa-spin',\n running : 'upload-icon fa fa-spinner fa-spin',\n success : 'upload-icon-button fa fa-check',\n error : 'upload-icon-button fa fa-exclamation-triangle'\n },\n\n // handle for settings popover\n settings: null,\n\n // genome selector\n select_genome : null,\n\n // extension selector\n select_extension : null,\n\n // render\n initialize: function(app, options) {\n // link app\n this.app = app;\n\n // link this\n var self = this;\n\n // create model\n this.model = options.model;\n\n // add upload row\n this.setElement(this._template(options.model));\n\n // append popup to settings icon\n this.settings = new Popover.View({\n title : 'Upload configuration',\n container : this.$('#settings'),\n placement : 'bottom'\n });\n\n // initialize default genome through default select field\n var default_genome = this.app.select_genome.value();\n \n // select genomes\n this.select_genome = new Select.View({\n css: 'upload-genome',\n onchange : function(genome) {\n self.model.set('genome', genome);\n },\n data: self.app.list_genomes,\n container: this.$('#genome'),\n value: default_genome\n });\n\n // initialize genome\n this.model.set('genome', default_genome);\n\n // initialize default extension through default select field\n var default_extension = this.app.select_extension.value();\n \n // select extension\n this.select_extension = new Select.View({\n css: 'upload-extension',\n onchange : function(extension) {\n self.model.set('extension', extension);\n },\n data: self.app.list_extensions,\n container: this.$('#extension'),\n value: default_extension\n });\n\n // initialize extension\n this.model.set('extension', default_extension);\n \n //\n // ui events\n //\n\n // handle click event\n this.$('#symbol').on('click', function() { self._removeRow(); });\n\n // handle extension info popover\n this.$('#extension-info').on('click' , function(e) {\n self.app.showExtensionInfo({\n $el : $(e.target),\n title : self.select_extension.text(),\n extension : self.select_extension.value()\n });\n }).on('mousedown', function(e) { e.preventDefault(); });\n\n // handle settings popover\n this.$('#settings').on('click' , function(e) { self._showSettings(); })\n .on('mousedown', function(e) { e.preventDefault(); });\n\n // handle text editing event\n this.$('#text-content').on('change input', function(e) {\n self.model.set('url_paste', $(e.target).val());\n self.model.set('file_size', $(e.target).val().length);\n });\n\n //\n // model events\n //\n this.model.on('change:percentage', function() {\n self._refreshPercentage();\n });\n this.model.on('change:status', function() {\n self._refreshStatus();\n });\n this.model.on('change:info', function() {\n self._refreshInfo();\n });\n this.model.on('change:genome', function() {\n self._refreshGenome();\n });\n this.model.on('change:extension', function() {\n self._refreshExtension();\n });\n this.model.on('change:file_size', function() {\n self._refreshFileSize();\n });\n this.model.on('remove', function() {\n self.remove();\n });\n this.app.collection.on('reset', function() {\n self.remove();\n });\n },\n\n // render\n render: function() {\n // read model\n var file_name = this.model.get('file_name');\n var file_size = this.model.get('file_size');\n var file_mode = this.model.get('file_mode');\n\n // update title\n this.$('#title').html(file_name);\n\n // update info\n this.$('#size').html(Utils.bytesToString (file_size));\n\n // remove mode class\n this.$('#mode')\n .removeClass()\n .addClass('upload-mode')\n .addClass('text-primary');\n\n // activate text field if file is new\n if (file_mode == 'new') {\n this.$('#text').css({\n 'width' : this.$el.width() - 16 + 'px',\n 'top' : this.$el.height() - 8 + 'px'\n }).show();\n this.$el.height(this.$el.height() - 8 + this.$('#text').height() + 16);\n this.$('#mode').addClass('fa fa-edit');\n }\n\n // file from local disk\n if (file_mode == 'local') {\n this.$('#mode').addClass('fa fa-laptop');\n }\n\n // file from ftp\n if (file_mode == 'ftp') {\n this.$('#mode').addClass('fa fa-folder-open-o');\n }\n },\n\n // remove\n remove: function() {\n // trigger remove event\n this.select_genome.remove();\n this.select_extension.remove();\n\n // call the base class remove method\n Backbone.View.prototype.remove.apply(this);\n },\n\n //\n // handle model events\n //\n\n // update extension\n _refreshExtension: function() {\n this.select_extension.value(this.model.get('extension'));\n },\n \n // update genome\n _refreshGenome: function() {\n this.select_genome.value(this.model.get('genome'));\n },\n\n // progress\n _refreshInfo: function() {\n // write error message\n var info = this.model.get('info');\n if (info) {\n this.$('#info').html('Failed: ' + info).show();\n } else {\n this.$('#info').hide();\n }\n },\n\n // progress\n _refreshPercentage : function() {\n var percentage = parseInt(this.model.get('percentage'));\n this.$('.progress-bar').css({ width : percentage + '%' });\n if (percentage != 100)\n this.$('#percentage').html(percentage + '%');\n else\n this.$('#percentage').html('Adding to history...');\n },\n\n // status\n _refreshStatus : function() {\n // identify new status\n var status = this.model.get('status');\n\n // identify symbol and reset classes\n this.$('#symbol').removeClass().addClass(this.status_classes[status]);\n\n // enable/disable model flag\n this.model.set('enabled', status == 'init');\n\n // enable/disable row fields\n var enabled = this.model.get('enabled');\n this.$('#text-content').attr('disabled', !enabled);\n if (enabled) {\n this.select_genome.enable();\n this.select_extension.enable();\n } else {\n this.select_genome.disable();\n this.select_extension.disable();\n }\n\n // success\n if (status == 'success') {\n this.$el.addClass('success');\n this.$('#percentage').html('100%');\n }\n\n // error\n if (status == 'error') {\n this.$el.addClass('danger');\n this.$('.progress').remove();\n }\n },\n\n // refresh size\n _refreshFileSize: function() {\n var count = this.model.get('file_size');\n this.$('#size').html(Utils.bytesToString (count));\n },\n\n //\n // handle ui events\n //\n\n // remove row\n _removeRow: function() {\n // get current status\n var status = this.model.get('status');\n\n // only remove from queue if not in processing line\n if (status == 'init' || status == 'success' || status == 'error') {\n this.app.collection.remove(this.model);\n }\n },\n\n // attach file info popup\n _showSettings : function() {\n // check if popover is visible\n if (!this.settings.visible) {\n // show popover\n this.settings.empty();\n this.settings.append((new UploadSettings(this)).$el);\n this.settings.show();\n } else {\n // hide popover\n this.settings.hide();\n }\n },\n\n // template\n _template: function(options) {\n return '' +\n '' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    You can tell Galaxy to download data from web by entering URL in this box (one per line). You can also directly paste the contents of a file.
    ' +\n '\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// #11217 - WebKit loses check when the name is after the checked attribute\n\tfragment.appendChild( div );\n\tdiv.innerHTML = \"\";\n\n\t// Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3\n\t// old WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<9\n\t// Opera does not clone events (and typeof div.attachEvent === undefined).\n\t// IE9-10 clones events bound via attachEvent, but they don't trigger with .click()\n\tsupport.noCloneEvent = true;\n\tif ( div.attachEvent ) {\n\t\tdiv.attachEvent( \"onclick\", function() {\n\t\t\tsupport.noCloneEvent = false;\n\t\t});\n\n\t\tdiv.cloneNode( true ).click();\n\t}\n\n\t// Execute the test only if not already executed in another module.\n\tif (support.deleteExpando == null) {\n\t\t// Support: IE<9\n\t\tsupport.deleteExpando = true;\n\t\ttry {\n\t\t\tdelete div.test;\n\t\t} catch( e ) {\n\t\t\tsupport.deleteExpando = false;\n\t\t}\n\t}\n})();\n\n\n(function() {\n\tvar i, eventName,\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event)\n\tfor ( i in { submit: true, change: true, focusin: true }) {\n\t\teventName = \"on\" + i;\n\n\t\tif ( !(support[ i + \"Bubbles\" ] = eventName in window) ) {\n\t\t\t// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)\n\t\t\tdiv.setAttribute( eventName, \"t\" );\n\t\t\tsupport[ i + \"Bubbles\" ] = div.attributes[ eventName ].expando === false;\n\t\t}\n\t}\n\n\t// Null elements to avoid leaks in IE.\n\tdiv = null;\n})();\n\n\nvar rformElems = /^(?:input|select|textarea)$/i,\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\t\tvar tmp, events, t, handleObjIn,\n\t\t\tspecial, eventHandle, handleObj,\n\t\t\thandlers, type, namespaces, origType,\n\t\t\telemData = jQuery._data( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !(events = elemData.events) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !(eventHandle = elemData.handle) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ?\n\t\t\t\t\tjQuery.event.dispatch.apply( eventHandle.elem, arguments ) :\n\t\t\t\t\tundefined;\n\t\t\t};\n\t\t\t// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events\n\t\t\teventHandle.elem = elem;\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join(\".\")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !(handlers = events[ type ]) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener/attachEvent if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\t// Bind the global event handler to the element\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\n\t\t\t\t\t} else if ( elem.attachEvent ) {\n\t\t\t\t\t\telem.attachEvent( \"on\" + type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t\t// Nullify elem to prevent memory leaks in IE\n\t\telem = null;\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\t\tvar j, handleObj, tmp,\n\t\t\torigCount, t, events,\n\t\t\tspecial, handlers, type,\n\t\t\tnamespaces, origType,\n\t\t\telemData = jQuery.hasData( elem ) && jQuery._data( elem );\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\n\t\t\t// removeData also checks for emptiness and clears the expando if empty\n\t\t\t// so use it instead of delete\n\t\t\tjQuery._removeData( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\t\tvar handle, ontype, cur,\n\t\t\tbubbleType, special, tmp, i,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split(\".\") : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf(\".\") >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(\".\");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join(\".\");\n\t\tevent.namespace_re = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( jQuery._data( cur, \"events\" ) || {} )[ event.type ] && jQuery._data( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && jQuery.acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&\n\t\t\t\tjQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Can't use an .isFunction() check here because IE6/7 fails that test.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\ttry {\n\t\t\t\t\t\telem[ type ]();\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// IE<9 dies on focus/blur to hidden element (#1486,#12518)\n\t\t\t\t\t\t// only reproducible on winXP IE8 native, not IE9 in IE8 mode\n\t\t\t\t\t}\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, ret, handleObj, matched, j,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( jQuery._data( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or\n\t\t\t\t// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar sel, handleObj, matches, i,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG instance trees (#13180)\n\t\t// Avoid non-left-click bubbling in Firefox (#3861)\n\t\tif ( delegateCount && cur.nodeType && (!event.button || event.type !== \"click\") ) {\n\n\t\t\t/* jshint eqeqeq: false */\n\t\t\tfor ( ; cur != this; cur = cur.parentNode || this ) {\n\t\t\t\t/* jshint eqeqeq: true */\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== \"click\") ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) >= 0 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matches });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Fix target property (#1925)\n\t\tif ( !event.target ) {\n\t\t\tevent.target = originalEvent.srcElement || document;\n\t\t}\n\n\t\t// Support: Chrome 23+, Safari?\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)\n\t\tevent.metaKey = !!event.metaKey;\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: \"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\t\t\tvar body, eventDoc, doc,\n\t\t\t\tbutton = original.button,\n\t\t\t\tfromElement = original.fromElement;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add relatedTarget, if necessary\n\t\t\tif ( !event.relatedTarget && fromElement ) {\n\t\t\t\tevent.relatedTarget = fromElement === event.target ? original.toElement : fromElement;\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tspecial: {\n\t\tload: {\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.focus();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t\t// If we error on focus to hidden element (#1486, #12518),\n\t\t\t\t\t\t// let .trigger() run the handlers\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( jQuery.nodeName( this, \"input\" ) && this.type === \"checkbox\" && this.click ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tsimulate: function( type, elem, event, bubble ) {\n\t\t// Piggyback on a donor event to simulate a different one.\n\t\t// Fake originalEvent to avoid donor's stopPropagation, but if the\n\t\t// simulated event prevents default then we do the same on the donor.\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true,\n\t\t\t\toriginalEvent: {}\n\t\t\t}\n\t\t);\n\t\tif ( bubble ) {\n\t\t\tjQuery.event.trigger( e, null, elem );\n\t\t} else {\n\t\t\tjQuery.event.dispatch.call( elem, e );\n\t\t}\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\njQuery.removeEvent = document.removeEventListener ?\n\tfunction( elem, type, handle ) {\n\t\tif ( elem.removeEventListener ) {\n\t\t\telem.removeEventListener( type, handle, false );\n\t\t}\n\t} :\n\tfunction( elem, type, handle ) {\n\t\tvar name = \"on\" + type;\n\n\t\tif ( elem.detachEvent ) {\n\n\t\t\t// #8545, #7054, preventing memory leaks for custom events in IE6-8\n\t\t\t// detachEvent needed property on element, by name of that event, to properly expose it to GC\n\t\t\tif ( typeof elem[ name ] === strundefined ) {\n\t\t\t\telem[ name ] = null;\n\t\t\t}\n\n\t\t\telem.detachEvent( name, handle );\n\t\t}\n\t};\n\njQuery.Event = function( src, props ) {\n\t// Allow instantiation without the 'new' keyword\n\tif ( !(this instanceof jQuery.Event) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\t\t\t\t// Support: IE < 9, Android < 4.0\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If preventDefault exists, run it on the original event\n\t\tif ( e.preventDefault ) {\n\t\t\te.preventDefault();\n\n\t\t// Support: IE\n\t\t// Otherwise set the returnValue property of the original event to false\n\t\t} else {\n\t\t\te.returnValue = false;\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\t\t// If stopPropagation exists, run it on the original event\n\t\tif ( e.stopPropagation ) {\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\t// Support: IE\n\t\t// Set the cancelBubble property of the original event to true\n\t\te.cancelBubble = true;\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && e.stopImmediatePropagation ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\njQuery.each({\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mousenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || (related !== target && !jQuery.contains( target, related )) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n});\n\n// IE submit delegation\nif ( !support.submitBubbles ) {\n\n\tjQuery.event.special.submit = {\n\t\tsetup: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Lazy-add a submit handler when a descendant form may potentially be submitted\n\t\t\tjQuery.event.add( this, \"click._submit keypress._submit\", function( e ) {\n\t\t\t\t// Node name check avoids a VML-related crash in IE (#9807)\n\t\t\t\tvar elem = e.target,\n\t\t\t\t\tform = jQuery.nodeName( elem, \"input\" ) || jQuery.nodeName( elem, \"button\" ) ? elem.form : undefined;\n\t\t\t\tif ( form && !jQuery._data( form, \"submitBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( form, \"submit._submit\", function( event ) {\n\t\t\t\t\t\tevent._submit_bubble = true;\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( form, \"submitBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t\t// return undefined since we don't need an event listener\n\t\t},\n\n\t\tpostDispatch: function( event ) {\n\t\t\t// If form was submitted by the user, bubble the event up the tree\n\t\t\tif ( event._submit_bubble ) {\n\t\t\t\tdelete event._submit_bubble;\n\t\t\t\tif ( this.parentNode && !event.isTrigger ) {\n\t\t\t\t\tjQuery.event.simulate( \"submit\", this.parentNode, event, true );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Remove delegated handlers; cleanData eventually reaps submit handlers attached above\n\t\t\tjQuery.event.remove( this, \"._submit\" );\n\t\t}\n\t};\n}\n\n// IE change delegation and checkbox/radio fix\nif ( !support.changeBubbles ) {\n\n\tjQuery.event.special.change = {\n\n\t\tsetup: function() {\n\n\t\t\tif ( rformElems.test( this.nodeName ) ) {\n\t\t\t\t// IE doesn't fire change on a check/radio until blur; trigger it on click\n\t\t\t\t// after a propertychange. Eat the blur-change in special.change.handle.\n\t\t\t\t// This still fires onchange a second time for check/radio after blur.\n\t\t\t\tif ( this.type === \"checkbox\" || this.type === \"radio\" ) {\n\t\t\t\t\tjQuery.event.add( this, \"propertychange._change\", function( event ) {\n\t\t\t\t\t\tif ( event.originalEvent.propertyName === \"checked\" ) {\n\t\t\t\t\t\t\tthis._just_changed = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery.event.add( this, \"click._change\", function( event ) {\n\t\t\t\t\t\tif ( this._just_changed && !event.isTrigger ) {\n\t\t\t\t\t\t\tthis._just_changed = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Allow triggered, simulated change events (#11500)\n\t\t\t\t\t\tjQuery.event.simulate( \"change\", this, event, true );\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Delegated event; lazy-add a change handler on descendant inputs\n\t\t\tjQuery.event.add( this, \"beforeactivate._change\", function( e ) {\n\t\t\t\tvar elem = e.target;\n\n\t\t\t\tif ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, \"changeBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( elem, \"change._change\", function( event ) {\n\t\t\t\t\t\tif ( this.parentNode && !event.isSimulated && !event.isTrigger ) {\n\t\t\t\t\t\t\tjQuery.event.simulate( \"change\", this.parentNode, event, true );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( elem, \"changeBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\thandle: function( event ) {\n\t\t\tvar elem = event.target;\n\n\t\t\t// Swallow native change events from checkbox/radio, we already triggered them above\n\t\t\tif ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== \"radio\" && elem.type !== \"checkbox\") ) {\n\t\t\t\treturn event.handleObj.handler.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tjQuery.event.remove( this, \"._change\" );\n\n\t\t\treturn !rformElems.test( this.nodeName );\n\t\t}\n\t};\n}\n\n// Create \"bubbling\" focus and blur events\nif ( !support.focusinBubbles ) {\n\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );\n\t\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = jQuery._data( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tjQuery._data( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = jQuery._data( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tjQuery._removeData( doc, fix );\n\t\t\t\t} else {\n\t\t\t\t\tjQuery._data( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\njQuery.fn.extend({\n\n\ton: function( types, selector, data, fn, /*INTERNAL*/ one ) {\n\t\tvar type, origFn;\n\n\t\t// Types can be a map of types/handlers\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-Object, selector, data )\n\t\t\tif ( typeof selector !== \"string\" ) {\n\t\t\t\t// ( types-Object, data )\n\t\t\t\tdata = data || selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.on( type, selector, data, types[ type ], one );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( data == null && fn == null ) {\n\t\t\t// ( types, fn )\n\t\t\tfn = selector;\n\t\t\tdata = selector = undefined;\n\t\t} else if ( fn == null ) {\n\t\t\tif ( typeof selector === \"string\" ) {\n\t\t\t\t// ( types, selector, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = undefined;\n\t\t\t} else {\n\t\t\t\t// ( types, data, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t} else if ( !fn ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( one === 1 ) {\n\t\t\torigFn = fn;\n\t\t\tfn = function( event ) {\n\t\t\t\t// Can use an empty set, since event contains the info\n\t\t\t\tjQuery().off( event );\n\t\t\t\treturn origFn.apply( this, arguments );\n\t\t\t};\n\t\t\t// Use same guid so caller can remove using origFn\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\n\t\t});\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn this.on( types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t});\n\t},\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t});\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[0];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n});\n\n\nfunction createSafeFragment( document ) {\n\tvar list = nodeNames.split( \"|\" ),\n\t\tsafeFrag = document.createDocumentFragment();\n\n\tif ( safeFrag.createElement ) {\n\t\twhile ( list.length ) {\n\t\t\tsafeFrag.createElement(\n\t\t\t\tlist.pop()\n\t\t\t);\n\t\t}\n\t}\n\treturn safeFrag;\n}\n\nvar nodeNames = \"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|\" +\n\t\t\"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\",\n\trinlinejQuery = / jQuery\\d+=\"(?:null|\\d+)\"/g,\n\trnoshimcache = new RegExp(\"<(?:\" + nodeNames + \")[\\\\s/>]\", \"i\"),\n\trleadingWhitespace = /^\\s+/,\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\n\trtagName = /<([\\w:]+)/,\n\trtbody = /\\s*$/g,\n\n\t// We have to close these tags to support XHTML (#13200)\n\twrapMap = {\n\t\toption: [ 1, \"\" ],\n\t\tlegend: [ 1, \"
    \", \"
    \" ],\n\t\tarea: [ 1, \"\", \"\" ],\n\t\tparam: [ 1, \"\", \"\" ],\n\t\tthead: [ 1, \"\", \"
    \" ],\n\t\ttr: [ 2, \"\", \"
    \" ],\n\t\tcol: [ 2, \"\", \"
    \" ],\n\t\ttd: [ 3, \"\", \"
    \" ],\n\n\t\t// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,\n\t\t// unless wrapped in a div with non-breaking characters in front of it.\n\t\t_default: support.htmlSerialize ? [ 0, \"\", \"\" ] : [ 1, \"X
    \", \"
    \" ]\n\t},\n\tsafeFragment = createSafeFragment( document ),\n\tfragmentDiv = safeFragment.appendChild( document.createElement(\"div\") );\n\nwrapMap.optgroup = wrapMap.option;\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\nfunction getAll( context, tag ) {\n\tvar elems, elem,\n\t\ti = 0,\n\t\tfound = typeof context.getElementsByTagName !== strundefined ? context.getElementsByTagName( tag || \"*\" ) :\n\t\t\ttypeof context.querySelectorAll !== strundefined ? context.querySelectorAll( tag || \"*\" ) :\n\t\t\tundefined;\n\n\tif ( !found ) {\n\t\tfor ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( !tag || jQuery.nodeName( elem, tag ) ) {\n\t\t\t\tfound.push( elem );\n\t\t\t} else {\n\t\t\t\tjQuery.merge( found, getAll( elem, tag ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], found ) :\n\t\tfound;\n}\n\n// Used in buildFragment, fixes the defaultChecked property\nfunction fixDefaultChecked( elem ) {\n\tif ( rcheckableType.test( elem.type ) ) {\n\t\telem.defaultChecked = elem.checked;\n\t}\n}\n\n// Support: IE<8\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName(\"tbody\")[0] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement(\"tbody\") ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = (jQuery.find.attr( elem, \"type\" ) !== null) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\tif ( match ) {\n\t\telem.type = match[1];\n\t} else {\n\t\telem.removeAttribute(\"type\");\n\t}\n\treturn elem;\n}\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar elem,\n\t\ti = 0;\n\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\tjQuery._data( elem, \"globalEval\", !refElements || jQuery._data( refElements[i], \"globalEval\" ) );\n\t}\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\n\tif ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {\n\t\treturn;\n\t}\n\n\tvar type, i, l,\n\t\toldData = jQuery._data( src ),\n\t\tcurData = jQuery._data( dest, oldData ),\n\t\tevents = oldData.events;\n\n\tif ( events ) {\n\t\tdelete curData.handle;\n\t\tcurData.events = {};\n\n\t\tfor ( type in events ) {\n\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t}\n\t\t}\n\t}\n\n\t// make the cloned public data object a copy from the original\n\tif ( curData.data ) {\n\t\tcurData.data = jQuery.extend( {}, curData.data );\n\t}\n}\n\nfunction fixCloneNodeIssues( src, dest ) {\n\tvar nodeName, e, data;\n\n\t// We do not need to do anything for non-Elements\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\tnodeName = dest.nodeName.toLowerCase();\n\n\t// IE6-8 copies events bound via attachEvent when using cloneNode.\n\tif ( !support.noCloneEvent && dest[ jQuery.expando ] ) {\n\t\tdata = jQuery._data( dest );\n\n\t\tfor ( e in data.events ) {\n\t\t\tjQuery.removeEvent( dest, e, data.handle );\n\t\t}\n\n\t\t// Event data gets referenced instead of copied if the expando gets copied too\n\t\tdest.removeAttribute( jQuery.expando );\n\t}\n\n\t// IE blanks contents when cloning scripts, and tries to evaluate newly-set text\n\tif ( nodeName === \"script\" && dest.text !== src.text ) {\n\t\tdisableScript( dest ).text = src.text;\n\t\trestoreScript( dest );\n\n\t// IE6-10 improperly clones children of object elements using classid.\n\t// IE10 throws NoModificationAllowedError if parent is null, #12132.\n\t} else if ( nodeName === \"object\" ) {\n\t\tif ( dest.parentNode ) {\n\t\t\tdest.outerHTML = src.outerHTML;\n\t\t}\n\n\t\t// This path appears unavoidable for IE9. When cloning an object\n\t\t// element in IE9, the outerHTML strategy above is not sufficient.\n\t\t// If the src has innerHTML and the destination does not,\n\t\t// copy the src.innerHTML into the dest.innerHTML. #10324\n\t\tif ( support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {\n\t\t\tdest.innerHTML = src.innerHTML;\n\t\t}\n\n\t} else if ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\t// IE6-8 fails to persist the checked state of a cloned checkbox\n\t\t// or radio button. Worse, IE6-7 fail to give the cloned element\n\t\t// a checked appearance if the defaultChecked value isn't also set\n\n\t\tdest.defaultChecked = dest.checked = src.checked;\n\n\t\t// IE6-7 get confused and end up setting the value of a cloned\n\t\t// checkbox/radio button to an empty string instead of \"on\"\n\t\tif ( dest.value !== src.value ) {\n\t\t\tdest.value = src.value;\n\t\t}\n\n\t// IE6-8 fails to return the selected option to the default selected\n\t// state when cloning options\n\t} else if ( nodeName === \"option\" ) {\n\t\tdest.defaultSelected = dest.selected = src.defaultSelected;\n\n\t// IE6-8 fails to set the defaultValue to the correct value when\n\t// cloning other types of input fields\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\njQuery.extend({\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar destElements, node, clone, i, srcElements,\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\tif ( support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( \"<\" + elem.nodeName + \">\" ) ) {\n\t\t\tclone = elem.cloneNode( true );\n\n\t\t// IE<=8 does not properly clone detached, unknown element nodes\n\t\t} else {\n\t\t\tfragmentDiv.innerHTML = elem.outerHTML;\n\t\t\tfragmentDiv.removeChild( clone = fragmentDiv.firstChild );\n\t\t}\n\n\t\tif ( (!support.noCloneEvent || !support.noCloneChecked) &&\n\t\t\t\t(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\t// Fix all IE cloning issues\n\t\t\tfor ( i = 0; (node = srcElements[i]) != null; ++i ) {\n\t\t\t\t// Ensure that the destination node is not null; Fixes #9587\n\t\t\t\tif ( destElements[i] ) {\n\t\t\t\t\tfixCloneNodeIssues( node, destElements[i] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0; (node = srcElements[i]) != null; i++ ) {\n\t\t\t\t\tcloneCopyEvent( node, destElements[i] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\tdestElements = srcElements = node = null;\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tbuildFragment: function( elems, context, scripts, selection ) {\n\t\tvar j, elem, contains,\n\t\t\ttmp, tag, tbody, wrap,\n\t\t\tl = elems.length,\n\n\t\t\t// Ensure a safe fragment\n\t\t\tsafe = createSafeFragment( context ),\n\n\t\t\tnodes = [],\n\t\t\ti = 0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\telem = elems[ i ];\n\n\t\t\tif ( elem || elem === 0 ) {\n\n\t\t\t\t// Add nodes directly\n\t\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\t\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t\t// Convert non-html into a text node\n\t\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t\t// Convert html into DOM nodes\n\t\t\t\t} else {\n\t\t\t\t\ttmp = tmp || safe.appendChild( context.createElement(\"div\") );\n\n\t\t\t\t\t// Deserialize a standard representation\n\t\t\t\t\ttag = (rtagName.exec( elem ) || [ \"\", \"\" ])[ 1 ].toLowerCase();\n\t\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\n\t\t\t\t\ttmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, \"<$1>\" ) + wrap[2];\n\n\t\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\t\tj = wrap[0];\n\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Manually add leading whitespace removed by IE\n\t\t\t\t\tif ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {\n\t\t\t\t\t\tnodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove IE's autoinserted from table fragments\n\t\t\t\t\tif ( !support.tbody ) {\n\n\t\t\t\t\t\t// String was a , *may* have spurious \n\t\t\t\t\t\telem = tag === \"table\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\ttmp.firstChild :\n\n\t\t\t\t\t\t\t// String was a bare or \n\t\t\t\t\t\t\twrap[1] === \"
    \" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\t\ttmp :\n\t\t\t\t\t\t\t\t0;\n\n\t\t\t\t\t\tj = elem && elem.childNodes.length;\n\t\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\t\tif ( jQuery.nodeName( (tbody = elem.childNodes[j]), \"tbody\" ) && !tbody.childNodes.length ) {\n\t\t\t\t\t\t\t\telem.removeChild( tbody );\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\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t\t// Fix #12392 for WebKit and IE > 9\n\t\t\t\t\ttmp.textContent = \"\";\n\n\t\t\t\t\t// Fix #12392 for oldIE\n\t\t\t\t\twhile ( tmp.firstChild ) {\n\t\t\t\t\t\ttmp.removeChild( tmp.firstChild );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remember the top-level container for proper cleanup\n\t\t\t\t\ttmp = safe.lastChild;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Fix #11356: Clear elements from fragment\n\t\tif ( tmp ) {\n\t\t\tsafe.removeChild( tmp );\n\t\t}\n\n\t\t// Reset defaultChecked for any radios and checkboxes\n\t\t// about to be appended to the DOM in IE 6/7 (#8060)\n\t\tif ( !support.appendChecked ) {\n\t\t\tjQuery.grep( getAll( nodes, \"input\" ), fixDefaultChecked );\n\t\t}\n\n\t\ti = 0;\n\t\twhile ( (elem = nodes[ i++ ]) ) {\n\n\t\t\t// #4087 - If origin and destination elements are the same, and this is\n\t\t\t// that element, do not do anything\n\t\t\tif ( selection && jQuery.inArray( elem, selection ) !== -1 ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t\t// Append to fragment\n\t\t\ttmp = getAll( safe.appendChild( elem ), \"script\" );\n\n\t\t\t// Preserve script evaluation history\n\t\t\tif ( contains ) {\n\t\t\t\tsetGlobalEval( tmp );\n\t\t\t}\n\n\t\t\t// Capture executables\n\t\t\tif ( scripts ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (elem = tmp[ j++ ]) ) {\n\t\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\t\tscripts.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttmp = null;\n\n\t\treturn safe;\n\t},\n\n\tcleanData: function( elems, /* internal */ acceptData ) {\n\t\tvar elem, type, id, data,\n\t\t\ti = 0,\n\t\t\tinternalKey = jQuery.expando,\n\t\t\tcache = jQuery.cache,\n\t\t\tdeleteExpando = support.deleteExpando,\n\t\t\tspecial = jQuery.event.special;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( acceptData || jQuery.acceptData( elem ) ) {\n\n\t\t\t\tid = elem[ internalKey ];\n\t\t\t\tdata = id && cache[ id ];\n\n\t\t\t\tif ( data ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\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\t// Remove cache only if it was not already removed by jQuery.event.remove\n\t\t\t\t\tif ( cache[ id ] ) {\n\n\t\t\t\t\t\tdelete cache[ id ];\n\n\t\t\t\t\t\t// IE does not allow us to delete expando properties from nodes,\n\t\t\t\t\t\t// nor does it have a removeAttribute function on Document nodes;\n\t\t\t\t\t\t// we must handle all of these cases\n\t\t\t\t\t\tif ( deleteExpando ) {\n\t\t\t\t\t\t\tdelete elem[ internalKey ];\n\n\t\t\t\t\t\t} else if ( typeof elem.removeAttribute !== strundefined ) {\n\t\t\t\t\t\t\telem.removeAttribute( internalKey );\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telem[ internalKey ] = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdeletedIds.push( id );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n});\n\njQuery.fn.extend({\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t});\n\t},\n\n\tprepend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t});\n\t},\n\n\tbefore: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t});\n\t},\n\n\tafter: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t});\n\t},\n\n\tremove: function( selector, keepData /* Internal Use Only */ ) {\n\t\tvar elem,\n\t\t\telems = selector ? jQuery.filter( selector, this ) : this,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\n\t\t\tif ( !keepData && elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem ) );\n\t\t\t}\n\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\tif ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\t\tsetGlobalEval( getAll( elem, \"script\" ) );\n\t\t\t\t}\n\t\t\t\telem.parentNode.removeChild( elem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = this[i]) != null; i++ ) {\n\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t}\n\n\t\t\t// Remove any remaining nodes\n\t\t\twhile ( elem.firstChild ) {\n\t\t\t\telem.removeChild( elem.firstChild );\n\t\t\t}\n\n\t\t\t// If this is a select, ensure that it displays empty (#12336)\n\t\t\t// Support: IE<9\n\t\t\tif ( elem.options && jQuery.nodeName( elem, \"select\" ) ) {\n\t\t\t\telem.options.length = 0;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map(function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t});\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined ) {\n\t\t\t\treturn elem.nodeType === 1 ?\n\t\t\t\t\telem.innerHTML.replace( rinlinejQuery, \"\" ) :\n\t\t\t\t\tundefined;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t( support.htmlSerialize || !rnoshimcache.test( value ) ) &&\n\t\t\t\t( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&\n\t\t\t\t!wrapMap[ (rtagName.exec( value ) || [ \"\", \"\" ])[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = value.replace( rxhtmlTag, \"<$1>\" );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor (; i < l; i++ ) {\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\telem = this[i] || {};\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar arg = arguments[ 0 ];\n\n\t\t// Make the changes, replacing each context element with the new content\n\t\tthis.domManip( arguments, function( elem ) {\n\t\t\targ = this.parentNode;\n\n\t\t\tjQuery.cleanData( getAll( this ) );\n\n\t\t\tif ( arg ) {\n\t\t\t\targ.replaceChild( elem, this );\n\t\t\t}\n\t\t});\n\n\t\t// Force removal if there was no new content (e.g., from empty arguments)\n\t\treturn arg && (arg.length || arg.nodeType) ? this : this.remove();\n\t},\n\n\tdetach: function( selector ) {\n\t\treturn this.remove( selector, true );\n\t},\n\n\tdomManip: function( args, callback ) {\n\n\t\t// Flatten any nested arrays\n\t\targs = concat.apply( [], args );\n\n\t\tvar first, node, hasScripts,\n\t\t\tscripts, doc, fragment,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tset = this,\n\t\t\tiNoClone = l - 1,\n\t\t\tvalue = args[0],\n\t\t\tisFunction = jQuery.isFunction( value );\n\n\t\t// We can't cloneNode fragments that contain checked, in WebKit\n\t\tif ( isFunction ||\n\t\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\t\treturn this.each(function( index ) {\n\t\t\t\tvar self = set.eq( index );\n\t\t\t\tif ( isFunction ) {\n\t\t\t\t\targs[0] = value.call( this, index, self.html() );\n\t\t\t\t}\n\t\t\t\tself.domManip( args, callback );\n\t\t\t});\n\t\t}\n\n\t\tif ( l ) {\n\t\t\tfragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );\n\t\t\tfirst = fragment.firstChild;\n\n\t\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\t\tfragment = first;\n\t\t\t}\n\n\t\t\tif ( first ) {\n\t\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\t\thasScripts = scripts.length;\n\n\t\t\t\t// Use the original fragment for the last item instead of the first because it can end up\n\t\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tnode = fragment;\n\n\t\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback.call( this[i], node, i );\n\t\t\t\t}\n\n\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t\t// Reenable scripts\n\t\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t\t!jQuery._data( node, \"globalEval\" ) && jQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\t\tif ( node.src ) {\n\t\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.globalEval( ( node.text || node.textContent || node.innerHTML || \"\" ).replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fix #11809: Avoid leaking memory\n\t\t\t\tfragment = first = null;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n});\n\njQuery.each({\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\ti = 0,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone(true);\n\t\t\tjQuery( insert[i] )[ original ]( elems );\n\n\t\t\t// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\n\nvar iframe,\n\telemdisplay = {};\n\n/**\n * Retrieve the actual display of a element\n * @param {String} name nodeName of the element\n * @param {Object} doc Document object\n */\n// Called only from within defaultDisplay\nfunction actualDisplay( name, doc ) {\n\tvar style,\n\t\telem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\n\n\t\t// getDefaultComputedStyle might be reliably used only on attached element\n\t\tdisplay = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?\n\n\t\t\t// Use of this method is a temporary fix (more like optmization) until something better comes along,\n\t\t\t// since it was removed from specification and supported only in FF\n\t\t\tstyle.display : jQuery.css( elem[ 0 ], \"display\" );\n\n\t// We don't have any data stored on the element,\n\t// so use \"detach\" method as fast way to get rid of the element\n\telem.detach();\n\n\treturn display;\n}\n\n/**\n * Try to determine the default display value of an element\n * @param {String} nodeName\n */\nfunction defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = (iframe || jQuery( \"\"\n )\n });\n modal.show( { backdrop: true } );\n}\n\n\n// ============================================================================\n return {\n Modal : Modal,\n hide_modal : hide_modal,\n show_modal : show_modal,\n show_message : show_message,\n show_in_overlay : show_in_overlay,\n };\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/layout/modal.js\n ** module id = 129\n ** module chunks = 4\n **/","// ============================================================================\n// Globals (temporary)\n// ============================================================================\n// HACK: add these to global scope until we stop asking for them there...\n// Via webpack: these are required here automatically by the provider plugin\n// Via script tag: these are redundant (identities) since they're already global\nwindow[ 'jQuery' ] = jQuery; // a weird form to prevent webpack from sub'ing 'window.jQuery' in the provider plugin\nwindow.$ = jQuery;\nwindow._ = _;\nwindow.Backbone = Backbone;\n// console.debug('globals loaded:', window.jQuery, window.Backbone, '...');\n\n// these are galaxy globals not defined in the provider (although they could be - but why encourage that?)\nwindow.panels = require( 'layout/panel' );\n// using extend bc there are multiple fns/objs to decorate the window with\n_.extend( window, require( 'layout/modal' ) );\nwindow.async_save_text = require( 'utils/async-save-text' );\nvar POPUPMENU = require( 'ui/popupmenu' );\nwindow.make_popupmenu = POPUPMENU.make_popupmenu;\nwindow.make_popup_menus = POPUPMENU.make_popup_menus;\nwindow.init_tag_click_function = require( 'ui/autocom_tagging' );\nvar TOURS = require( 'mvc/tours' );\nvar QUERY_STRING = require( 'utils/query-string-parsing' );\n// console.debug( 'galaxy globals loaded' );\n\n// ============================================================================\n// jquery on document ready\n// ============================================================================\n// Replace select box with a text input box + autocomplete.\nfunction replace_big_select_inputs(min_length, max_length, select_elts) {\n\n function refresh_select2( element ) {\n var select_elt = $(element);\n var options = { placeholder:'Click to select',\n closeOnSelect: !select_elt.is(\"[MULTIPLE]\"),\n dropdownAutoWidth : true,\n containerCssClass: 'select2-minwidth'\n };\n return element.select2( options );\n }\n\n // To do replace, the select2 plugin must be loaded.\n if (!jQuery.fn.select2) {\n return;\n }\n\n // Set default for min_length and max_length\n if (min_length === undefined) {\n min_length = 20;\n }\n if (max_length === undefined) {\n max_length = 3000;\n }\n\n select_elts = select_elts || $('select');\n\n select_elts.each( function() {\n var select_elt = $(this).not('[multiple]');\n // Make sure that options is within range.\n var num_options = select_elt.find('option').length;\n if ( (num_options < min_length) || (num_options > max_length) ) {\n return;\n }\n\n if (select_elt.hasClass(\"no-autocomplete\")) {\n return;\n }\n\n /* Replaced jQuery.autocomplete with select2, notes:\n * - multiple selects are supported\n * - the original element is updated with the value, convert_to_values should not be needed\n * - events are fired when updating the original element, so refresh_on_change should just work\n *\n * - should we still sort dbkey fields here?\n */\n refresh_select2( select_elt );\n });\n}\n\n// Initialize refresh events.\nfunction init_refresh_on_change () {\n $(\"select[refresh_on_change='true']\")\n .off('change')\n .change(function() {\n var select_field = $(this),\n select_val = select_field.val(),\n refresh = false,\n ref_on_change_vals = select_field.attr(\"refresh_on_change_values\");\n if (ref_on_change_vals) {\n ref_on_change_vals = ref_on_change_vals.split(',');\n var last_selected_value = select_field.attr(\"last_selected_value\");\n if ($.inArray(select_val, ref_on_change_vals) === -1 && $.inArray(last_selected_value, ref_on_change_vals) === -1) {\n return;\n }\n }\n $(window).trigger(\"refresh_on_change\");\n $(document).trigger(\"convert_to_values\"); // Convert autocomplete text to values\n select_field.get(0).form.submit();\n });\n\n // checkboxes refresh on change\n $(\":checkbox[refresh_on_change='true']\")\n .off('click')\n .click( function() {\n var select_field = $(this),\n select_val = select_field.val(),\n refresh = false,\n ref_on_change_vals = select_field.attr(\"refresh_on_change_values\");\n if (ref_on_change_vals) {\n ref_on_change_vals = ref_on_change_vals.split(',');\n var last_selected_value = select_field.attr(\"last_selected_value\");\n if ($.inArray(select_val, ref_on_change_vals) === -1 && $.inArray(last_selected_value, ref_on_change_vals) === -1) {\n return;\n }\n }\n $(window).trigger(\"refresh_on_change\");\n select_field.get(0).form.submit();\n });\n\n // Links with confirmation\n $( \"a[confirm]\" )\n .off('click')\n .click( function() {\n return confirm( $(this).attr(\"confirm\") );\n });\n}\n// used globally in grid-view\nwindow.init_refresh_on_change = init_refresh_on_change;\n\n$(document).ready( function() {\n // Refresh events for form fields.\n init_refresh_on_change();\n\n // Tooltips\n if ( $.fn.tooltip ) {\n // Put tooltips below items in panel header so that they do not overlap masthead.\n $(\".unified-panel-header [title]\").tooltip( { placement: 'bottom' } );\n\n // default tooltip initialization, it will follow the data-placement tag for tooltip location\n // and fallback to 'top' if not present\n $(\"[title]\").tooltip();\n }\n // Make popup menus.\n make_popup_menus();\n\n // Replace big selects.\n replace_big_select_inputs(20, 1500);\n\n // If galaxy_main frame does not exist and link targets galaxy_main,\n // add use_panels=True and set target to self.\n $(\"a\").click( function() {\n var anchor = $(this);\n var galaxy_main_exists = (parent.frames && parent.frames.galaxy_main);\n if ( ( anchor.attr( \"target\" ) == \"galaxy_main\" ) && ( !galaxy_main_exists ) ) {\n var href = anchor.attr(\"href\");\n if (href.indexOf(\"?\") == -1) {\n href += \"?\";\n }\n else {\n href += \"&\";\n }\n href += \"use_panels=True\";\n anchor.attr(\"href\", href);\n anchor.attr(\"target\", \"_self\");\n }\n return anchor;\n });\n\n var et = JSON.parse(sessionStorage.getItem('activeGalaxyTour'));\n if (et){\n et = TOURS.hooked_tour_from_data(et);\n if (et && et.steps){\n if (window && window.self === window.top){\n // Only kick off a new tour if this is the toplevel window (non-iframe). This\n // functionality actually *could* be useful, but we'd need to handle it better and\n // come up with some design guidelines for tours jumping between windows.\n // Disabling for now.\n var tour = new Tour(_.extend({\n steps: et.steps,\n }, TOURS.tour_opts));\n tour.init();\n tour.restart();\n }\n }\n }\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/onload.js\n ** module id = 130\n ** module chunks = 4\n **/","define([ 'jquery' ], function( jQuery ){\n'use_strict';\n\nvar $ = jQuery;\n// ============================================================================\n/**\n * Edit and save text asynchronously.\n */\nfunction async_save_text( click_to_edit_elt, text_elt_id, save_url,\n text_parm_name, num_cols, use_textarea, num_rows, on_start, on_finish ) {\n // Set defaults if necessary.\n if (num_cols === undefined) {\n num_cols = 30;\n }\n if (num_rows === undefined) {\n num_rows = 4;\n }\n\n // Set up input element.\n $(\"#\" + click_to_edit_elt).click(function() {\n // Check if this is already active\n if ( $(\"#renaming-active\").length > 0) {\n return;\n }\n var text_elt = $(\"#\" + text_elt_id),\n old_text = text_elt.text(),\n t;\n\n if (use_textarea) {\n t = $(\"\").attr({ rows: num_rows, cols: num_cols }).text( $.trim(old_text) );\n } else {\n t = $(\"\").attr({ value: $.trim(old_text), size: num_cols });\n }\n t.attr(\"id\", \"renaming-active\");\n t.blur( function() {\n $(this).remove();\n text_elt.show();\n if (on_finish) {\n on_finish(t);\n }\n });\n t.keyup( function( e ) {\n if ( e.keyCode === 27 ) {\n // Escape key\n $(this).trigger( \"blur\" );\n } else if ( e.keyCode === 13 ) {\n // Enter key submits\n var ajax_data = {};\n ajax_data[text_parm_name] = $(this).val();\n $(this).trigger( \"blur\" );\n $.ajax({\n url: save_url,\n data: ajax_data,\n error: function() {\n alert( \"Text editing for elt \" + text_elt_id + \" failed\" );\n // TODO: call finish or no? For now, let's not because error occurred.\n },\n success: function(processed_text) {\n // Set new text and call finish method.\n if (processed_text !== \"\") {\n text_elt.text(processed_text);\n } else {\n text_elt.html(\"None\");\n }\n if (on_finish) {\n on_finish(t);\n }\n }\n });\n }\n });\n\n if (on_start) {\n on_start(t);\n }\n // Replace text with input object and focus & select.\n text_elt.hide();\n t.insertAfter(text_elt);\n t.focus();\n t.select();\n\n return;\n });\n}\n\n// ============================================================================\n return async_save_text;\n});\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/utils/async-save-text.js\n ** module id = 131\n ** module chunks = 4\n **/","define([ 'jquery' ], function( jQuery ){\n'use_strict';\n\nvar $ = jQuery;\n\n// ============================================================================\n// TODO: unify popup menus and/or eliminate this\n/**\n * Sets up popupmenu rendering and binds options functions to the appropriate links.\n * initial_options is a dict with text describing the option pointing to either (a) a\n * function to perform; or (b) another dict with two required keys, 'url' and 'action' (the\n * function to perform. (b) is useful for exposing the underlying URL of the option.\n */\nfunction make_popupmenu(button_element, initial_options) {\n /* Use the $.data feature to store options with the link element.\n This allows options to be changed at a later time\n */\n var element_menu_exists = (button_element.data(\"menu_options\"));\n button_element.data(\"menu_options\", initial_options);\n\n // If element already has menu, nothing else to do since HTML and actions are already set.\n if (element_menu_exists) { return; }\n\n button_element.bind(\"click.show_popup\", function(e) {\n // Close existing visible menus\n $(\".popmenu-wrapper\").remove();\n\n // Need setTimeouts so clicks don't interfere with each other\n setTimeout( function() {\n // Dynamically generate the wrapper holding all the selectable options of the menu.\n var menu_element = $( \"\" );\n var options = button_element.data(\"menu_options\");\n if (_.size(options) <= 0) {\n $(\"
  • No Options.
  • \").appendTo(menu_element);\n }\n $.each( options, function( k, v ) {\n if (v) {\n // Action can be either an anonymous function and a mapped dict.\n var action = v.action || v;\n menu_element.append( $(\"
  • \").append( $(\"\").attr(\"href\", v.url).html(k).click(action) ) );\n } else {\n menu_element.append( $(\"
  • \").addClass( \"head\" ).append( $(\"
    \").html(k) ) );\n }\n });\n var wrapper = $( \"
    \" )\n .append( menu_element ).appendTo( \"body\" );\n\n var x = e.pageX - wrapper.width() / 2 ;\n x = Math.min( x, $(document).scrollLeft() + $(window).width() - $(wrapper).width() - 5 );\n x = Math.max( x, $(document).scrollLeft() + 5 );\n\n wrapper.css({\n top: e.pageY,\n left: x\n });\n }, 10);\n\n setTimeout( function() {\n // Bind click event to current window and all frames to remove any visible menus\n // Bind to document object instead of window object for IE compat\n var close_popup = function(el) {\n $(el).bind(\"click.close_popup\", function() {\n $(\".popmenu-wrapper\").remove();\n el.unbind(\"click.close_popup\");\n });\n };\n close_popup( $(window.document) ); // Current frame\n close_popup( $(window.top.document) ); // Parent frame\n for (var frame_id = window.top.frames.length; frame_id--;) { // Sibling frames\n var frame = $(window.top.frames[frame_id].document);\n close_popup(frame);\n }\n }, 50);\n\n return false;\n });\n\n}\n\n/**\n * Convert two seperate (often adjacent) divs into galaxy popupmenu\n * - div 1 contains a number of anchors which become the menu options\n * - div 1 should have a 'popupmenu' attribute\n * - this popupmenu attribute contains the id of div 2\n * - div 2 becomes the 'face' of the popupmenu\n *\n * NOTE: make_popup_menus finds and operates on all divs with a popupmenu attr (no need to point it at something)\n * but (since that selector searches the dom on the page), you can send a parent in\n * NOTE: make_popup_menus, and make_popupmenu are horrible names\n */\nfunction make_popup_menus( parent ) {\n // find all popupmenu menu divs (divs that contains anchors to be converted to menu options)\n // either in the parent or the document if no parent passed\n parent = parent || document;\n $( parent ).find( \"div[popupmenu]\" ).each( function() {\n var options = {};\n var menu = $(this);\n\n // find each anchor in the menu, convert them into an options map: { a.text : click_function }\n menu.find( \"a\" ).each( function() {\n var link = $(this),\n link_dom = link.get(0),\n confirmtext = link_dom.getAttribute( \"confirm\" ),\n href = link_dom.getAttribute( \"href\" ),\n target = link_dom.getAttribute( \"target\" );\n\n // no href - no function (gen. a label)\n if (!href) {\n options[ link.text() ] = null;\n\n } else {\n options[ link.text() ] = {\n url: href,\n action: function( event ) {\n\n // if theres confirm text, send the dialog\n if ( !confirmtext || confirm( confirmtext ) ) {\n // link.click() doesn't use target for some reason,\n // so manually do it here.\n if (target) {\n window.open(href, target);\n return false;\n }\n // For all other links, do the default action.\n else {\n link.click();\n }\n } else {\n event.preventDefault();\n }\n\n }\n };\n }\n });\n // locate the element with the id corresponding to the menu's popupmenu attr\n var box = $( parent ).find( \"#\" + menu.attr( 'popupmenu' ) );\n\n // For menus with clickable link text, make clicking on the link go through instead\n // of activating the popup menu\n box.find(\"a\").bind(\"click\", function(e) {\n e.stopPropagation(); // Stop bubbling so clicking on the link goes through\n return true;\n });\n\n // attach the click events and menu box building to the box element\n make_popupmenu(box, options);\n box.addClass(\"popup\");\n menu.remove();\n });\n}\n\n// ============================================================================\n return {\n make_popupmenu : make_popupmenu,\n make_popup_menus : make_popup_menus\n };\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/ui/popupmenu.js\n ** module id = 132\n ** module chunks = 4\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap d74709c4f5af67947981","webpack:///./galaxy/scripts/libs/underscore.js","webpack:///./galaxy/scripts/libs/backbone.js","webpack:///./galaxy/scripts/libs/jquery/jquery.js","webpack:///./galaxy/scripts/galaxy.js","webpack:///./galaxy/scripts/mvc/base-mvc.js","webpack:///./galaxy/scripts/utils/add-logging.js","webpack:///./galaxy/scripts/utils/localization.js","webpack:///./galaxy/scripts/nls/locale.js","webpack:///./galaxy/scripts/mvc/user/user-model.js","webpack:///./galaxy/scripts/utils/metrics-logger.js","webpack:///./galaxy/scripts/utils/query-string-parsing.js","webpack:///./galaxy/scripts/layout/panel.js","webpack:///./galaxy/scripts/mvc/ui/ui-modal.js","webpack:///./galaxy/scripts/mvc/ui/ui-frames.js","webpack:///./galaxy/scripts/utils/utils.js","webpack:///./galaxy/scripts/layout/page.js","webpack:///./galaxy/scripts/layout/masthead.js","webpack:///./galaxy/scripts/layout/menu.js","webpack:///./galaxy/scripts/mvc/tours.js","webpack:///./galaxy/scripts/libs/bootstrap-tour.js","webpack:///./galaxy/scripts/layout/scratchbook.js","webpack:///./galaxy/scripts/libs/jquery/jquery.event.hover.js","webpack:///./galaxy/scripts/libs/jquery/jquery-ui.js","webpack:///./galaxy/scripts/libs/jquery/select2.js","webpack:///./galaxy/scripts/libs/jquery/jquery.form.js","webpack:///./galaxy/scripts/libs/jquery/jquery.rating.js","webpack:///./galaxy/scripts/mvc/user/user-quotameter.js","webpack:///./galaxy/scripts/polyfills.js","webpack:///./galaxy/scripts/libs/jquery/jquery.migrate.js","webpack:///./galaxy/scripts/libs/jquery.sparklines.js","webpack:///./galaxy/scripts/libs/bootstrap.js","webpack:///./galaxy/scripts/ui/autocom_tagging.js","webpack:///./galaxy/scripts/layout/modal.js","webpack:///./galaxy/scripts/onload.js","webpack:///./galaxy/scripts/utils/async-save-text.js","webpack:///./galaxy/scripts/ui/popupmenu.js"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wEAAgE,2BAA2B;AAC3F;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5FA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,YAAY;AAC7B;AACA;AACA,MAAK;AACL;AACA,wCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU,gBAAgB;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B,gBAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,qDAAoD;AACpD,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,2CAA0C;AAC1C,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA0C,YAAY;AACtD;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C,YAAY;AACtD;AACA;AACA,sBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC,YAAY;AACrD;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,WAAU,YAAY;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAqB,cAAc;AACnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C,YAAY;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO,eAAe;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAAyC,YAAY;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,4CAA2C,YAAY;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAqD;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAmB,OAAO;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAe;AACf,eAAc;AACd,eAAc;AACd,iBAAgB;AAChB,iBAAgB;AAChB,iBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP,sBAAqB;AACrB;;AAEA;AACA;AACA,MAAK;AACL,kBAAiB;;AAEjB;AACA,mDAAkD,EAAE,iBAAiB;;AAErE;AACA,yBAAwB,8BAA8B;AACtD,4BAA2B;;AAE3B;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mDAAkD,iBAAiB;;AAEnE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC;;;;;;;;;;ACt4CD;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,IAAG;AACH;AACA;;AAEA;AACA,IAAG;AACH,qCAAoC;AACpC;;AAEA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4BAA2B;AAC3B;AACA;AACA;AACA;AACA,yCAAwC,mBAAmB,EAAE;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAwC;AACxC;AACA,oBAAmB,2DAA2D;AAC9E;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA,2CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,0DAAyD,eAAe;AACxE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAqE;AACrE,0EAAyE;AACzE,8EAA6E;AAC7E,kFAAiF;AACjF,8EAA6E;AAC7E;AACA;;AAEA,wBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA,qEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA4B;AAC5B;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,6BAA4B;;AAE5B;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA0C,WAAW;AACrD;AACA;AACA;AACA,QAAO;AACP,oBAAmB;AACnB;;AAEA,+BAA8B;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA2C,OAAO;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,gDAA+C,YAAY,YAAY;AACvE,MAAK;;AAEL;AACA;AACA;AACA;AACA,yCAAwC,YAAY,YAAY;AAChE,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC;AACjC;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA,2CAA0C,WAAW;AACrD;AACA;AACA;AACA,QAAO;AACP,oBAAmB;AACnB;;AAEA,2BAA0B,eAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA,wCAAuC,WAAW;AAClD;AACA,sCAAqC;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,+BAA8B,wBAAwB,GAAG,iBAAiB;AAC1E,MAAK;;AAEL;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA,+DAA8D,uBAAuB;AACrF;AACA;;AAEA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA4B;AAC5B;AACA;AACA;AACA;AACA,8CAA6C,aAAa;AAC1D;;AAEA;AACA,qBAAoB;AACpB,qBAAoB;;AAEpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,6BAA4B;;AAE5B;AACA;AACA;AACA,uCAAsC,8BAA8B,EAAE;AACtE,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,yCAAwC,aAAa;AACrD,MAAK;;AAEL;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA,qCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qCAAoC,OAAO;AAC3C;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qCAAoC,OAAO;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAuC,OAAO;AAC9C;AACA;AACA,UAAS;AACT;AACA;AACA,gDAA+C,OAAO;AACtD;AACA;AACA;AACA;;AAEA;AACA,4BAA2B,aAAa;;AAExC;AACA;AACA,sCAAqC,OAAO;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B,8CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA,2CAA0C,aAAa;AACvD;AACA;AACA,MAAK;;AAEL;AACA;AACA,wCAAuC,gBAAgB;AACvD,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,wCAAuC,MAAM;AAC7C,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,+BAA8B;;AAE9B;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA4B;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,6BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,UAAS,6BAA6B;AACtC;AACA;AACA;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAuC;AACvC;AACA;AACA,MAAK;;AAEL;AACA,mBAAkB;;AAElB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAmC,mBAAmB;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,6BAA4B;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA4B;;AAE5B;AACA;;AAEA;AACA;AACA,6BAA4B;;AAE5B;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA,uCAAsC;AACtC;;AAEA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,8BAA6B,iCAAiC;AAC9D,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAmD;;AAEnD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wEAAuE;;AAEvE;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA,IAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,0BAAyB,sCAAsC;AAC/D;;AAEA;AACA;;AAEA;AACA;AACA,gCAA+B,0BAA0B;AACzD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,EAAC;;;;;;;;;;ACvkDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;;;AAIA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,OAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF,qBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA,GAAE;;AAEF,iCAAgC;AAChC;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,YAAY;AACvB;;AAEA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA,YAAW,YAAY;AACvB;;AAEA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,WAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS,YAAY;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAU,YAAY;AACtB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,EAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA,iBAAgB,IAAI;;AAEpB;AACA;;AAEA;AACA;;AAEA;AACA,yCAAwC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD,UAAS;;AAET;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;;AAEA;AACA,KAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAa,yBAAyB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,QAAQ;AACnB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;;AAEA;AACA;AACA,YAAW,gBAAgB;AAC3B,cAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAW,eAAe;AAC1B,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAW,eAAe;AAC1B,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,iCAAgC,MAAM;AACtC;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,gBAAe;;AAEf,UAAS;;AAET;AACA,SAAQ,iCAAiC;AACzC,SAAQ,oBAAoB;AAC5B,SAAQ,sCAAsC;AAC9C,SAAQ;AACR,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;;AAEA;AACA;AACA;AACA,iBAAgB,aAAa,EAAE;AAC/B;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iEAAgE;AAChE;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAO,yEAAyE;AAChF;;AAEA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAmD;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA,kEAAiE,UAAU;AAC3E,uCAAsC,2BAA2B;AACjE;AACA,iCAAgC,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,WAAU,YAAY;AACtB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,WAAU,YAAY;AACtB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,WAAU,UAAU;AACpB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,WAAU,cAAc;AACxB;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA,aAAY,uEAAuE;AACnF;AACA;AACA,aAAY,4BAA4B;AACxC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,4DAA2D;AAC3D;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;;AAEA,oCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,SAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH,SAAQ,SAAS;AACjB;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAuC,iDAAiD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kDAAiD;AACjD,WAAU,wCAAwC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,gBAAgB;AAC3B;AACA,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;;AAEA,EAAC;;;;AAID;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA,eAAc,SAAS;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAQ;AACR;AACA;AACA;AACA;;AAEA;;AAEA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;;AAEA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA,UAAS,GAAG;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAS,OAAO;AAChB,wBAAuB,wBAAwB;AAC/C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA,iDAAgD;AAChD,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;AACD;;;;AAIA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU,oCAAoC;AAC9C;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ;AACR;AACA;AACA;AACA,QAAO;AACP,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,SAAQ;AACR,QAAO;AACP;AACA,OAAM;AACN,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+CAA8C;AAC9C,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAM;AACN;AACA;AACA;AACA,KAAI;;AAEJ;;AAEA,6CAA4C;AAC5C;AACA;AACA;AACA;AACA,WAAU,YAAY;AACtB;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;AAGD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA8C,SAAS,QAAQ,SAAS,MAAM;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAsC,SAAS,SAAS,YAAY,UAAU;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mDAAkD;AAClD;AACA;;;AAGA,qBAAoB,SAAS;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;;AAEA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kDAAiD;AACjD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA2B,IAAI;AAC/B;;AAEA,wEAAuE;AACvE;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA,WAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;;AAEA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ,GAAE;AACF;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;AACF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAU,YAAY;AACtB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;;AAEA;AACA,cAAa,4CAA4C;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE,gBAAgB;AAClB;;AAEA;AACA;AACA;AACA;AACA;;AAEA,YAAW;;AAEX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,OAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,uCAAsC;AACtC;AACA;AACA;;AAEA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+CAA8C;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA2C;AAC3C;;AAEA;AACA;AACA;AACA;AACA,WAAU,KAAK;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kDAAiD;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qDAAoD;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0BAAyB;AACzB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,+DAA8D;AAC9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAU,aAAa;AACvB;;AAEA;AACA;AACA;AACA;AACA,kBAAiB,mBAAmB;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB,+BAA+B;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAsB,wDAAwD;AAC9E;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;;AAEA,cAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uCAAsC,cAAc;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA,KAAI;AACJ;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA,2DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA,uBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA,KAAI;AACJ,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAc,qCAAqC;;AAEnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2DAA0D,2BAA2B;AACrF;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAQ,2BAA2B;AACnC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2CAA0C,OAAO;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAkC;AAClC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE;AACF;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAe,iCAAiC;AAChD,qDAAoD;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAgB,iCAAiC;AACjD;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,UAAS,OAAO;AAChB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,MAAK;AACL;;AAEA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAS,2BAA2B;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,QAAO;AACP;;AAEA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;;AAEA,UAAS,2BAA2B;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA,UAAS,0BAA0B;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA,8BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAS,WAAW;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;AAGD;AACA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gDAA+C,SAAS,QAAQ,SAAS,MAAM;AAC/E;;AAEA;AACA;AACA;AACA,6BAA4B,SAAS,QAAQ;AAC7C;AACA;AACA;AACA,qCAAoC,4BAA4B;AAChE,6BAA4B,cAAc,SAAS,SAAS;AAC5D,kBAAiB,UAAU;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,EAAC;AACD;;AAEA;;;;AAIA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA4C;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAkB;;AAElB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA6B;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gDAA+C,SAAS,QAAQ,SAAS,MAAM;AAC/E;;AAEA;AACA;AACA;AACA,mCAAkC,2BAA2B;AAC7D,2BAA0B,cAAc,cAAc,OAAO;AAC7D,gBAAe,YAAY,UAAU;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA,mEAAkE;AAClE;AACA,gDAA+C,eAAe;;AAE9D;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,SAAS,QAAQ,QAAQ;AACrD;AACA;AACA;AACA,qCAAoC,4BAA4B;AAChE,6BAA4B,cAAc,SAAS,SAAS;AAC5D;AACA;;AAEA;AACA,mEAAkE;;AAElE;AACA;;AAEA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA,aAAY;AACZ;AACA;AACA,2CAA0C,SAAS,UAAU;AAC7D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,aAAY,+DAA+D;AAC3E;AACA;AACA;AACA,GAAE;;AAEF;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAQ,gBAAgB;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,SAAQ,OAAO;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA8B,4BAA4B;AAC1D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA,kBAAiB;;AAEjB;AACA;;AAEA,WAAU,OAAO;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,aAAY;AACZ;;AAEA;AACA;AACA;;AAEA,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,YAAW,eAAe;AAC1B;;AAEA;AACA;AACA;AACA,SAAQ,QAAQ;AAChB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAQ,gBAAgB;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,+CAA8C;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAU,iBAAiB;AAC3B;AACA;;AAEA;;AAEA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,4BAA2B;AAC3B,gCAA+B,kBAAkB,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,iBAAiB;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;AAEA,SAAQ,iBAAiB;AACzB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,UAAS,iBAAiB;AAC1B;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC;;AAED;AACA,kEAAiE;AACjE;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAmB,cAAc;AACjC,GAAE;AACF;AACA;AACA;AACA;AACA;AACA,kDAAiD;;AAEjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gCAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,WAAU,kBAAkB;AAC5B,YAAW,kBAAkB;AAC7B,eAAc;AACd,EAAC;AACD;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA,SAAQ,mBAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0DAAyD;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAI;AACJ;AACA;;AAEA,kCAAiC;AACjC;AACA;AACA,KAAI;AACJ;AACA,KAAI;AACJ;AACA;AACA,MAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAW,SAAS;AACpB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAO;;AAEP;AACA;AACA;;AAEA,OAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,KAAI;AACJ;;AAEA,KAAI;AACJ;AACA;AACA;;AAEA,IAAG;AACH;;AAEA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ,wCAAuC;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;;AAEA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,IAAG;AACH;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;;;;AAKA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;AACA;;AAEA,WAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA,WAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;;AAEA;AACA,KAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA,UAAS,OAAO;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;;;AAKD;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA,EAAC;;;AAGD;;AAEA;;;;AAIA,8BAA6B,IAAI,gDAAgD,EAAE;;AAEnF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oCAAmC;AACnC;;AAEA;AACA,kCAAiC;AACjC,mCAAkC;AAClC;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA2B;AAC3B;AACA;AACA,IAAG,OAAO;AACV;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA,iBAAgB;;AAEhB,iDAAgD;AAChD;;AAEA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wDAAuD;AACvD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,KAAI;;AAEJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA,QAAO;AACP,gBAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;AACA,kBAAiB;AACjB,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC;AAClC;AACA,uBAAsB;AACtB,4BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oFAAmF;AACnF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAc,oCAAoC;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAK;AACL;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;;;AAGA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAI;AACJ;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA,KAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,KAAI;AACJ;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;;AAEA;AACA;AACA,IAAG;AACH,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI;AACJ;AACA;AACA;AACA,IAAG;;AAEH,GAAE;AACF;AACA;AACA;AACA;;AAEA,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAc;AACd,OAAM;AACN,OAAM;AACN,IAAG;AACH;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;;AAEA;AACA,mBAAkB;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA,GAAE;AACF;;;;;AAKA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA,EAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAG;AACH;AACA,IAAG;AACH;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;AAKD;AACA;AACA;AACA,GAAE;AACF;;;;;;AAMA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA,WAAU,kBAAkB;AAC5B;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA,oBAAmB,kBAAkB;AACrC;;AAEA,6DAA4D,eAAe;AAC3E;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA,eAAc,sDAAsD;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAI;AACJ;AACA;AACA,IAAG;AACH;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;AACA,eAAc,mCAAmC;AACjD,gBAAe,6DAA6D;AAC5E;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAI;AACJ;AACA,GAAE;AACF,EAAC;;;AAGD;AACA;AACA;AACA;;AAEA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;;;;;AAKA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;;AAEA,EAAC;;;;;;;;;;0GC9mUD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAoC,oBAAoB;AACxD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA0C;AAC1C;;AAEA,uDAAsD;AACtD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,uCAAsC;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;+GC/PD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAqE,SAAS;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,OAAO;AACtB;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qEAAoE;AACpE,qBAAoB,eAAe;AACnC,gCAA+B,4CAA4C,eAAe;;AAE1F;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA,gEAA+D;AAC/D,8DAA6D;AAC7D,gEAA+D;AAC/D,gEAA+D;AAC/D;AACA;AACA,mCAAkC,mBAAmB;AACrD,UAAS;AACT,iCAAgC,iBAAiB;AACjD;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,EAAC;AACD;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA,sEAAqE,mBAAmB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL,wEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAmC,yDAAyD;AAC5F;AACA,MAAK;;AAEL,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL,gDAA+C;AAC/C;AACA;AACA;AACA;AACA,iBAAgB,OAAO;AACvB,mBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA4E,YAAY,EAAE;AAC1F;AACA;AACA;AACA,UAAS;AACT;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB,QAAQ;AACjC;AACA;AACA;;AAEA;AACA,iBAAgB,OAAO;AACvB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAiD;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA,iBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,iBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,aAAY,SAAS;AACrB,aAAY,OAAO;AACnB,eAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;iEC9kBD;AACA;AACA;AACA;AACA;AACA,aAAY,OAAO;AACnB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA,EAAC;;;;;;;;;;iECzCD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA,EAAC;;;;;;;;;;ACjDD,cAAa,UAAU,2nFAA2nF,SAAS,27CAA27C,SAAS,6pCAA6pC;AAC5vK;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,KAAI,eAAe,uB;;;;;;;;;iECTnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAAyB,kCAAkC,EAAE;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,iBAAgB,OAAO;AACvB;AACA;AACA;;AAEA,oDAAmD,gDAAgD,EAAE;AACrG,oDAAmD,yDAAyD,EAAE;AAC9G,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,iBAAgB,OAAO;AACvB,iBAAgB,OAAO;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAAyB,8BAA8B;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAa;AACb;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAAyB,kCAAkC,EAAE;AAC7D;AACA,EAAC;;;AAGD;AACA;AACA;AACA,IAAG;;;;;;;;;;+GC9HH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAwD,MAAM;AAC9D;AACA;AACA;AACA,mDAAkD,qBAAqB;AACvE;AACA;AACA;AACA;AACA,yDAAwD,kBAAkB;AAC1E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8DAA6D;AAC7D;AACA,wEAAuE;AACvE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6DAA4D;AAC5D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0GAAyG;AACzG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA8B,aAAa;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAoC;AACpC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;iEC1dD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAuB,WAAW;AAClC,oBAAmB;AACnB;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;iEChCD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,4BAA2B,QAAQ;AACnC;AACA,2BAA0B;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA,MAAK;;AAEL;AACA,2BAA0B,QAAQ;AAClC;AACA,2BAA0B;AAC1B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,4BAA2B,oBAAoB;AAC/C,4BAA2B,oBAAoB;AAC/C;AACA,MAAK;;AAEL,2BAA0B,qCAAqC;AAC/D,EAAC;;AAED;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,6CAA4C,aAAa;AACzD;AACA,oDAAmD,aAAa,cAAc;AAC9E;AACA,4CAA2C,oBAAoB,aAAa,cAAc,eAAe,gBAAgB;AACzH;AACA;AACA,MAAK;;AAEL,2BAA0B,sBAAsB;AAChD,EAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;;;;uHCpSD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,mBAAkB;;AAElB;AACA;AACA;AACA,iDAAgD;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE,uCAAuC;AAC1G,yDAAwD,oBAAoB;AAC5E;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAA+D;AAC/D;AACA,cAAa;AACb,UAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iECzLD;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB;AACxB;AACA;AACA,yBAAwB;;AAExB;AACA;AACA,iDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAgC;AAChC,iCAAgC;AAChC;AACA;AACA;AACA,gDAA+C,sBAAsB;AACrE;;AAEA;AACA;AACA;AACA,yCAAwC,uCAAuC;AAC/E,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA2B,uBAAuB,sBAAsB;AACxE,cAAa;;AAEb,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,gCAA+B,uBAAuB,sBAAsB;AAC5E,kBAAiB;AACjB,cAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA,yCAAwC;AACxC,yCAAwC;AACxC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA2C,+CAA+C;AAC1F,4CAA2C,kBAAkB;AAC7D;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,kDAAiD,mBAAmB;AACpE;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,mDAAkD,+BAA+B;AACjF,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,yBAAwB,uBAAuB;AAC/C,6BAA4B,uCAAuC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAmC,2BAA2B;AAC9D;AACA,cAAa;AACb,UAAS;AACT,iCAAgC,2BAA2B;AAC3D;AACA,MAAK;;AAEL;AACA;AACA,6BAA4B,mCAAmC;AAC/D;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,iBAAgB;AAChB,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;;;iEChkBD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0EAAyE,cAAc;AACvF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAU,OAAO;AACjB;AACA;AACA,qBAAoB;AACpB;AACA;AACA;;AAEA;AACA;AACA,WAAU,OAAO;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAU,OAAO;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAU,OAAO;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAU,OAAO;AACjB,WAAU,SAAS;AACnB,WAAU,SAAS;AACnB,WAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA,WAAU,OAAO;AACjB,WAAU,OAAO;AACjB,WAAU,OAAO;AACjB,WAAU,SAAS;AACnB,WAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,yCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;;AAEA;AACA;AACA,WAAU,OAAO;AACjB,WAAU,OAAO;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAU,OAAO;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAU,OAAO;AACjB,WAAU,OAAO;AACjB;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;;AAGA;AACA;AACA,WAAU,OAAO;AACjB,WAAU,OAAO;AACjB;AACA;AACA;AACA,kBAAiB,aAAa;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU,QAAQ;AAClB,WAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA;AACA,qBAAoB,kBAAkB,aAAa,EAAE;AACrD,qBAAoB,kBAAkB,aAAa,EAAE;AACrD,qBAAoB,kBAAkB,aAAa,EAAE;AACrD,qBAAoB,kBAAkB,aAAa,EAAE;AACrD,oBAAmB,YAAY;AAC/B,WAAU,iDAAiD;AAC3D;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uHCpRD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL,4BAA2B,yBAAyB;AACpD,EAAC;;AAED;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;oHC3ID;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qDAAoD,gBAAgB;AACpE,UAAS;AACT;AACA,UAAS;AACT,mDAAkD,gBAAgB;AAClE,UAAS;;AAET;AACA,uDAAsD,8BAA8B;;AAEpF;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA,EAAC,gJ;;;;;;;;;;iEC3FD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,kBAAiB;AACjB;AACA;AACA,kBAAiB;AACjB;AACA;AACA,kBAAiB;AACjB;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,kBAAiB;AACjB;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,wBAAuB,oEAAoE;AAC3F;AACA;AACA;AACA;AACA,0BAAyB,iEAAiE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA8D,sBAAsB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,4CAA2C;AAC3C;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA,yBAAwB;AACxB;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,qCAAoC,oCAAoC;AACxE;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iEC7XD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,sBAAqB;AACrB;AACA;AACA,wBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,mDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,EAAE;AACvB;AACA,gCAA+B,yBAAyB;AACxD;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL,aAAY;AACZ;AACA;AACA;AACA,EAAC;;;;;;;;;;;ACzHD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+QAA8Q,mFAAmF;AACjW,+CAA8C;AAC9C,+CAA8C;AAC9C,2CAA0C;AAC1C,mCAAkC;AAClC,iCAAgC;AAChC,kCAAiC;AACjC,mCAAkC;AAClC,kCAAiC;AACjC,oCAAmC;AACnC,kCAAiC;AACjC,kCAAiC;AACjC,6CAA4C;AAC5C;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAkD,6EAA6E;AAC/H;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAY;AACZ;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,IAAG;AACH;AACA,EAAC;;;;;;;;;;;iECjyBD;AACA;AACA;AACA;AACA;AACA;AACA,wCAAuC,kBAAkB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,mCAAkC,sDAAsD;AACxF,UAAS;AACT,mCAAkC,6EAA6E;AAC/G,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA,+E,4CAAA;AACA,8CAA6C,kBAAkB;AAC/D;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAqB;;AAErB,sEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA,cAAa;AACb,U;yHAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA,+E,4CAAA;AACA,wDAAuD,WAAW;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,U;yHAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,cAAa;AACb;AACA,UAAS;AACT;AACA;AACA;AACA,EAAC;;AAED,EAAC,gJ;;;;;;;;;;;;;;;;;;;AC9JD,gDAAC,aAAa;AACd;AACA;AACA;AACA;AACA;A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eAAe,oBAAoB,kBAAkB,GAAG,EAAE;;;AAGnF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,eAAc,OAAO;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA2D;AAC3D,4DAA2D;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAmC,OAAO;AAC1C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;;AAEA;AACA,wDAAuD,yCAAyC;AAChG;AACA;AACA,UAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,oCAAmC;;AAEnC;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;;AAEA;AACA,oCAAmC;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAwB;AACxB,wBAAuB;AACvB,uBAAsB;AACtB,uBAAsB;AACtB,yBAAwB;AACxB,wBAAuB;AACvB,wBAAuB;AACvB;;AAEA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAsB,UAAU,iBAAiB,EAAE,kBAAkB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB,yCAAwC;;AAExC;AACA;;AAEA,sEAAqE,iBAAiB;;AAEtF;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB;AACjB;AACA,cAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAoC,qBAAqB,GAAG;;AAE5D;AACA;AACA,qBAAoB;AACpB;;AAEA;AACA;AACA,gCAA+B,YAAY;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAAyC;AACzC,yCAAwC,uBAAuB;AAC/D;AACA;;AAEA;AACA,6CAA4C,cAAc;AAC1D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAqE,qCAAqC,EAAE;AAC5G;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA,yDAAwD,kCAAkC,EAAE;AAC5F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,kEAAiE,qBAAqB;AACtF;AACA,kBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAsB;;AAEtB;;AAEA;AACA;;AAEA,yDAAwD,OAAO;AAC/D;AACA;AACA;AACA;;AAEA,kCAAiC;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA,sDAAqD,OAAO;AAC5D;AACA,yCAAwC;AACxC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA,8BAA6B;AAC7B;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAgD;;AAEhD;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;;AAEA;AACA,2EAA0E,qBAAqB;AAC/F,0EAAyE,qBAAqB;;AAE9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,kBAAiB;AACjB;;AAEA;AACA;AACA,6CAA4C,oCAAoC,EAAE;AAClF,4CAA2C,wCAAwC;;AAEnF;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA,mGAAkG,qBAAqB,EAAE;;AAEzH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAS;;AAET;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,+BAA+B;AACjE,kBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;;AAEA,+BAA8B;AAC9B;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,wDAAuD,OAAO;;AAE9D;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,4CAA2C,mCAAmC;AAC9E,4CAA2C,+CAA+C;AAC1F;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAa;;AAEb;AACA;AACA,yCAAwC,iBAAiB;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAgC,2BAA2B;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA,wEAAuE,8BAA8B,EAAE;AACvG;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAqD,4BAA4B,EAAE;;AAEnF;AACA,kBAAiB;AACjB;AACA,sCAAqC,aAAa;AAClD,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA,sBAAqB;AACrB;AACA;AACA,wEAAuE,SAAS,sCAAsC;AACtH;AACA;AACA;AACA;AACA;AACA,gDAA+C,uBAAuB;AACtE;AACA;AACA,8DAA6D,8BAA8B,YAAY,cAAc,EAAE,EAAE;AACzH;AACA,kCAAiC;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yEAAwE,oBAAoB;AAC5F;AACA;AACA,yEAAwE,iBAAiB;AACzF;AACA;AACA;AACA;;AAEA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAa;;AAEb;AACA;AACA;AACA;AACA,kBAAiB;AACjB;;AAEA;AACA;AACA;AACA,6CAA4C,8BAA8B,8BAA8B;AACxG;AACA;AACA,kBAAiB;AACjB,2DAA0D,iCAAiC;AAC3F;AACA,UAAS;;AAET;AACA;AACA,qDAAoD,iDAAiD;AACrG;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAgC,YAAY,kCAAkC;AAC9E;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAS;;AAET;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,qBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAoD,cAAc;AAClE;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB,cAAa;;;AAGb,UAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oEAAmE,6CAA6C,EAAE;;AAElH;;AAEA;AACA,4CAA2C;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,8CAA6C;;AAE7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4DAA2D;AAC3D;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,4CAA2C,8DAA8D;AACzG;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA,kFAAiF,wCAAwC;AACzH;;AAEA;AACA;AACA,uDAAsD,yBAAyB,EAAE;AACjF,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,gDAA+C,sCAAsC;AACrF,kBAAiB,EAAE;AACnB;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB;;AAExB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8EAA6E,yDAAyD;;AAEtI;AACA;AACA,mDAAkD,yBAAyB,EAAE;AAC7E;;AAEA;;AAEA;;AAEA,4CAA2C,sCAAsC;AACjF,cAAa,EAAE;AACf,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,yCAAwC,cAAc;;AAEtD;AACA;AACA;AACA,6DAA4D,oBAAoB;AAChF;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB;AACjB;AACA,kBAAiB;AACjB;AACA;AACA;AACA,+CAA8C;AAC9C,sDAAqD,OAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAiB;AACjB;AACA,kBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA,wDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAa;AACb;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAgD,cAAc;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA,cAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;;AAGb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;;AAEA,UAAS;;AAET;AACA;AACA;AACA,wBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAA+C,4DAA4D;AAC3G,yCAAwC,aAAa;AACrD;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,UAAS;;AAET;AACA;AACA,mEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8EAA6E,yCAAyC;AACtH;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA,sBAAqB;AACrB;AACA;;AAEA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAS;;AAET;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,UAAS;;AAET;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA,6CAA4C,QAAQ;;AAEpD;AACA;;AAEA;AACA;;AAEA,wCAAuC,6DAA6D;;AAEpG;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAoC,gCAAgC;AACpE;AACA,UAAS;;AAET;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wDAAuD,uBAAuB;AAC9E;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,yCAAwC,6BAA6B;AACrE;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA4C,6BAA6B;AACzE;AACA,kBAAiB;AACjB;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,6CAA4C,2BAA2B;AACvE;AACA;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA,+DAA8D,yCAAyC;AACvG;AACA,sBAAqB;AACrB;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA,4CAA2C,gBAAgB;AAC3D;AACA,gDAA+C,oBAAoB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;;AAEA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;;AAEA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;;AAEA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAa;;AAEb;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;;AAEA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,qCAAoC;AACpC;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAS;;AAET;AACA;;AAEA,iEAAgE,QAAQ;;AAExE;;AAEA,wCAAuC,qDAAqD;;AAE5F;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAgC,cAAc;;AAE9C;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA,gBAAe;AACf;;AAEA;AACA;;AAEA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,wCAAuC,4DAA4D;AACnG,iCAAgC,gBAAgB;;AAEhD;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,4BAA2B,oBAAoB;AAC/C,gCAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAoB;AACpB,UAAS;;;AAGT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAwC,qCAAqC;AAC7E;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,uCAAsC,qCAAqC,EAAE;AAC7E;AACA,cAAa;AACb;AACA,+BAA8B,aAAa;AAC3C,kDAAiD,wBAAwB,EAAE;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA0B;;AAE1B;AACA;AACA,8CAA6C,cAAc;AAC3D;;AAEA;AACA;AACA,kBAAiB;AACjB;AACA,0CAAyC;AACzC;;AAEA;AACA;AACA,cAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kBAAiB;AACjB;AACA,kBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA,kCAAiC;AACjC;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB;AACxB,wBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT,+CAA8C,iBAAiB;AAC/D,6DAA4D,kBAAkB;AAC9E;AACA;AACA;AACA;AACA,2BAA0B,qCAAqC,EAAE;AACjE;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,UAAU,EAAE;AACzD,6CAA4C,aAAa,EAAE;AAC3D,sEAAqE,kBAAkB,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,6CAA4C,qBAAqB,6DAA6D,EAAE,oFAAoF,EAAE;AACtN,wCAAuC,2BAA2B,EAAE;AACpE,sEAAqE,yBAAyB,EAAE;AAChG,sDAAqD,4BAA4B,yEAAyE,EAAE;AAC5J,qDAAoD,4BAA4B,kEAAkE,EAAE;AACpJ,mDAAkD,2EAA2E,EAAE;AAC/H,iDAAgD,gCAAgC,EAAE;AAClF,wCAAuC,qBAAqB,EAAE;AAC9D;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;;ACl7GD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,cAAa;AACb,UAAS;AACT,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,yDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA4B;AAC5B;AACA;AACA,0BAAyB;AACzB;;AAEA;AACA;AACA,oCAAmC,mBAAmB,EAAE;AACxD;AACA;AACA,oCAAmC,wCAAwC,EAAE;AAC7E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA,oDAAmD;AACnD,gDAA+C;AAC/C,4CAA2C,SAAS;AACpD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,6EAA4E,6BAA6B,EAAE;;AAE3G;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kBAAiB,qBAAqB;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,SAAS;AAC1B,qBAAoB;AACpB;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAqB,cAAc;AACnC;AACA;;AAEA;AACA;AACA,sBAAqB,2BAA2B;AAChD;AACA;AACA;;AAEA;;AAEA,kCAAiC;AACjC;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,wDAAwD;AAC7E;AACA;;;AAGA,gBAAe;AACf;AACA;AACA;AACA;AACA;AACA,iDAAgD;AAChD,6CAA4C;AAC5C,4CAA2C;AAC3C;AACA;AACA;AACA;;AAEA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;;AAEA,uBAAsB;AACtB;AACA;;AAEA,kBAAiB;AACjB;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;;AAEA;AACA;AACA,wDAAuD,iBAAiB,0BAA0B,EAAE;AACpG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA,qDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAiD;;AAEjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,0BAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAkC;AAClC;AACA,yCAAwC;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,4BAA2B,2CAA2C,EAAE;AACxE;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM,oCAAoC,GAAG,oCAAoC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAwB,4CAA4C;AACpE,yBAAwB,gCAAgC,GAAG,gCAAgC;AAC3F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAmC,UAAU;AAC7C,yBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB;AAC3C,6BAA4B,wCAAwC;AACpE;AACA;AACA;AACA;AACA,yBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA;AACA,qBAAoB,wDAAwD;AAC5E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAoB,6BAA6B;AACjD,qBAAoB,gCAAgC,GAAG,gCAAgC;AACvF;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAmC;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAsC,SAAS;AAC/C,yBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA,qBAAoB,0BAA0B;AAC9C;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAoC,SAAS;AAC7C;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,2GAA0G;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA,0CAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;ACnrCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC;AACD;;AAEA;AACA,qDAAoD,2DAA2D,WAAW;AAC1H;;AAEA;AACA;AACA,kCAAiC;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,iBAAgB;AAChB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4DAA2D;AAC3D;;AAEA;AACA;;AAEA,2BAA0B;AAC1B;AACA;;AAEA,OAAM;AACN;AACA;;AAEA;AACA;AACA,QAAO;AACP,mBAAkB;AAClB,sEAAqE;AACrE,OAAM;AACN;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA,OAAM;AACN;AACA;;AAEA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB,qCAAqC;AACzD;;AAEA;AACA,2BAA0B;AAC1B;AACA;AACA,OAAM;AACN,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA,OAAM;AACN;AACA;AACA,OAAM;AACN;AACA,QAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAqC;AACrC,IAAG,EAAE;;AAEL;AACA;;AAEA,eAAc;AACd;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAqC;AACrC,mCAAkC;AAClC;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA,sCAAqC;AACrC,kCAAiC;AACjC;AACA;AACA;AACA;AACA,IAAG;;AAEH,oBAAmB;AACnB,sCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH,sBAAqB;AACrB,sCAAqC;AACrC;AACA;AACA;AACA;AACA,IAAG;;AAEH,oBAAmB;AACnB,sCAAqC;AACrC;AACA;AACA;AACA,uCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;;;;;AAMH,wCAAuC;AACvC,sCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC;AACjC,iCAAgC;AAChC;AACA,mDAAkD,oCAAoC;AACtF;AACA,wJAAuJ;AACvJ;AACA;AACA,IAAG;;;;;;AAMH,uCAAsC;AACtC,sCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH,uBAAsB;AACtB;AACA,IAAG;;AAEH,sBAAqB;AACrB;AACA,IAAG;;AAEH,GAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,6HAA4H;AAC5H,4BAA2B;AAC3B,4BAA2B;AAC3B,IAAG,IAAI,EAAE;;AAET;;;AAGA;AACA;AACA;AACA,MAAK;;;AAGL;AACA,EAAC;AACD;;;;;;;;;;;uHCvXA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA,qDAAoD,2CAA2C,EAAE;AACjG;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,kBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,mBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,mBAAkB,OAAO;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,gEAA+D;AAC/D;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,EAAC;;;AAGD;AACA;AACA;AACA,IAAG;;;;;;;;;;;AC7JH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA8B;AAC9B,+BAA8B;AAC9B,+BAA8B;AAC9B,+BAA8B;AAC9B,+BAA8B;AAC9B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mBAAkB,qDAAqD;AACvE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAmD,iCAAiC,EAAE;AACtF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS,kDAAkD,wCAAwC,EAAE,EAAE;AACvG,UAAS;AACT;AACA;AACA,cAAa;AACb;AACA,WAAU;AACV;AACA;AACA;AACA,sCAAqC,8BAA8B,EAAE;AACrE,mCAAkC,qBAAqB,EAAE;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;AC5ED;AACA;AACA;AACA,wEAAuE;AACvE;AACA;AACA;AACA;;;AAGA;;AAEA,mCAAkC;AAClC;;AAEA,0CAAyC;AACzC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4CAA2C;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA,IAAG;AACH;AACA;AACA;;AAEA,iCAAgC;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,mCAAkC,UAAU;AAC5C;AACA;AACA,eAAc,aAAa,EAAE;AAC7B;AACA,eAAc,kBAAkB,EAAE;AAClC;AACA;AACA;AACA;;AAEA;AACA,gDAA+C;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mEAAkE;AAClE,gEAA+D,iBAAiB;AAChF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,0DAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAmC;AACnC;AACA,gCAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,EAAC;;;AAGD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAe,yBAAyB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAuD;AACvD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAsC;AACtC;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,EAAC;;;;;;;;;;;ACxgBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,+BAA+B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C,YAAY;AACtD;AACA;AACA;AACA,2CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C,sCAAsC;AAChF,wCAAuC,wCAAwC;AAC/E,kDAAiD,kBAAkB;AACnE,kDAAiD,kBAAkB;AACnE,6CAA4C,gBAAgB;AAC5D,mCAAkC,aAAa;AAC/C;;AAEA;;AAEA,uCAAsC;AACtC;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,0BAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE,OAAO,SAAS,UAAU,UAAU,KAAK,QAAQ;AACpH,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE,OAAO,SAAS,UAAU,UAAU,SAAS,QAAQ;AACxH,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA4B;AAC5B,oEAAmE,OAAO,SAAS,UAAU,WAAW;AACxG,uCAAsC,OAAO,wCAAwC;AACrF,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAA+C,UAAU,SAAS,QAAQ;AAC1E,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAA+C,iBAAiB,KAAK,OAAO;AAC5E,uCAAsC,UAAU,0CAA0C;AAC1F,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE,OAAO,SAAS,UAAU,OAAO,IAAI,WAAW;AACnH,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAA+C,cAAc,IAAI,OAAO;AACxE;AACA,uCAAsC,UAAU;AAChD;AACA,6DAA4D;AAC5D;AACA;AACA;;AAEA;AACA,mCAAkC;AAClC,iCAAgC;AAChC,wBAAuB;AACvB,uBAAsB;AACtB,iCAAgC;AAChC,mDAAkD;AAClD,gDAA+C;AAC/C,gHAA+G;AAC/G,uHAAsH;AACtH,2BAA0B;AAC1B,0CAAyC;AACzC,+BAA8B;AAC9B,kCAAiC;AACjC,2BAA0B;AAC1B,sCAAqC;AACrC,6BAA4B;AAC5B,eAAc;AACd,yBAAwB;AACxB,2BAA0B;AAC1B,0CAAyC;AACzC,+BAA8B;AAC9B,eAAc;;AAEd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT,UAAS;AACT,UAAS;AACT;AACA;AACA,iBAAgB,EAAE,oBAAoB,EAAE;AACxC;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,sCAAqC;AACrC;AACA;AACA,cAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA6B,KAAK;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B,OAAO;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA4B,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA6B,KAAK;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B,aAAa;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;;AAGL;AACA,iDAAgD;AAChD,wCAAuC;AACvC,4CAA2C;AAC3C,qCAAoC;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA4C,GAAG;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;;AAEA;;;AAGA;AACA;AACA;AACA,yCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B,GAAG;AAChC;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,6CAA4C;AAC5C,UAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,kBAAiB;AACjB;AACA,yCAAwC,KAAK;AAC7C;AACA;AACA,kBAAiB,iCAAiC;AAClD;AACA;AACA,2CAA0C,KAAK;AAC/C;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;;AAGL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET,kDAAiD;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAuC,KAAK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA,4BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET,+CAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAAyF,EAAE,WAAW,EAAE,WAAW,EAAE;AACrH;AACA;AACA;AACA,gCAA+B,OAAO;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB,kBAAiB;AACjB;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA,gDAA+C,KAAK;AACpD;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA,qDAAoD;AACpD;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,4CAA2C;AAC3C,uCAAsC,KAAK;AAC3C;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,cAAc;AACrC;AACA;AACA;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,UAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAuB,UAAU;AACjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAuB,UAAU;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA6C,UAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA6C,UAAU;AACvD;AACA;AACA;AACA;AACA;AACA,qDAAoD,UAAU;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC;AACjC;AACA;AACA,8BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA,cAAa;AACb;AACA,cAAa;AACb;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,oCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA,wBAAuB,cAAc;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAa;AACb;AACA,cAAa;AACb;AACA,cAAa;AACb;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,UAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,8BAA6B;AAC7B,mCAAkC;AAClC;;AAEA;AACA;AACA;;AAEA;AACA,wCAAuC,KAAK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAuB,UAAU;AACjC;AACA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAmC,KAAK;AACxC,iCAAgC;AAChC;AACA,oDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,kBAAiB,wCAAwC;AACzD,kBAAiB,yCAAyC;AAC1D,kBAAiB;AACjB;AACA;AACA,8BAA6B,mCAAmC;AAChE;AACA;AACA,8BAA6B,mCAAmC;AAChE;AACA;AACA,8BAA6B,mCAAmC;AAChE;AACA;AACA,8BAA6B,mCAAmC;AAChE;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,8CAA6C,cAAc,EAAE;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAgC,8EAA8E;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAgC,iDAAiD;AACjF,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,4CAA2C,UAAU;AACrD,oEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,sCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,8BAA6B;AAC7B;;AAEA,sCAAqC,KAAK;AAC1C;AACA;AACA,sCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAmC,KAAK;AACxC;AACA;AACA;;AAEA,UAAS;;AAET;AACA;AACA;AACA,sCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,sCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAgC,sJAAsJ;AACtL;AACA;AACA;AACA;AACA;AACA,gDAA+C,MAAM,OAAO,gCAAgC,kCAAkC;AAC9H;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,4CAA2C,UAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C,SAAS,QAAQ,kCAAkC,gCAAgC,YAAY,WAAW;AACrJ;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C,gBAAgB,kBAAkB,8BAA8B;AAC3G;;AAEA,UAAS;;AAET;AACA;AACA;AACA,2BAA0B;AAC1B;AACA;AACA,kCAAiC;AACjC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C,SAAS,QAAQ,kCAAkC,gCAAgC,YAAY,WAAW;AACrJ;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,UAAU;AACjC;AACA;AACA;AACA,wBAAuB,qBAAqB;AAC5C;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL,EAAC,GAAG,kB;;;;;;;;;AC7+FJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,gBAAe;;AAEf;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA,wDAAuD,gBAAgB;AACvE,iCAAgC;AAChC;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,gBAAe;;AAEf;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,gBAAe;;AAEf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kCAAiC,KAAK;AACtC;;AAEA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,mCAAkC,iBAAiB,kCAAkC;AACrF;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0BAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,eAAc,oCAAoC;AAClD;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAsB;AACtB;AACA;AACA,MAAK;AACL;;AAEA;AACA,qCAAoC,iFAAiF;AACrH,qCAAoC,iFAAiF;AACrH,qCAAoC,iFAAiF;AACrH,qCAAoC;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,gBAAe;;AAEf;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,uEAAsE,sBAAsB;AAC5F;AACA;;AAEA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,gBAAe;;AAEf;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,iCAAgC;AAChC;AACA;AACA;AACA;AACA,IAAG;;;AAGH;AACA;;AAEA,kCAAiC;;AAEjC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,EAAC;;;;;;;;;;;iGCj1BD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,EAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;AACT,iDAAgD;AAChD;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,sGAAqG;AACrG;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC;AACA;;;AAGA;AACA;AACA;AACA,MAAK;;;AAGL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA,qCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA,sBAAqB;AACrB,kBAAiB;AACjB;AACA,cAAa;;AAEb;AACA,UAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,EAAC;;;;;;;;;;;iECtYD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ;AACR;AACA,EAAC;;AAED;;AAEA;AACA,wBAAuB,+FAA+F;AACtH,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA,wBAAuB,2EAA2E;AAClG,kBAAiB,iBAAiB;AAClC;;AAEA;AACA,wBAAuB,2EAA2E;AAClG,kBAAiB,kBAAkB;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,uBAAsB;AACtB;AACA,uCAAsC,2BAA2B,YAAY;AAC7E;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,kBAAiB,iBAAiB;AAClC;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;ACrJD;AACA;AACA;AACA;AACA;AACA;AACA,6BAA4B;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAqD;AACrD;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAqD,sBAAsB;;AAE3E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;;;;;iECzLD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAiD,iCAAiC;AAClF,UAAS;AACT,wDAAuD,0CAA0C;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAK;AACL;;AAEA;AACA;AACA,EAAC;;;;;;;;;;;0GCvFD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA8B,QAAQ;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,cAAa;AACb,sFAAqF,QAAQ,YAAY;AACzG;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,+CAA8C;AAC9C,mDAAkD;AAClD,0DAAyD,YAAY,GAAG;AACxE;AACA;AACA;AACA,UAAS;;AAET;AACA,MAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,cAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,iCAAgC;AAChC;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC","file":"libs.bundled.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n \t\tif(moreModules[0]) {\n \t\t\tinstalledModules[0] = 0;\n \t\t\treturn __webpack_require__(0);\n \t\t}\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t4:0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n\n \t\t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".\" + ({\"0\":\"analysis\",\"5\":\"login\"}[chunkId]||chunkId) + \".bundled.js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap d74709c4f5af67947981\n **/","// Underscore.js 1.7.0\n// http://underscorejs.org\n// (c) 2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n(function() {\n\n // Baseline setup\n // --------------\n\n // Establish the root object, `window` in the browser, or `exports` on the server.\n var root = this;\n\n // Save the previous value of the `_` variable.\n var previousUnderscore = root._;\n\n // Save bytes in the minified (but not gzipped) version:\n var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;\n\n // Create quick reference variables for speed access to core prototypes.\n var\n push = ArrayProto.push,\n slice = ArrayProto.slice,\n concat = ArrayProto.concat,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n // All **ECMAScript 5** native function implementations that we hope to use\n // are declared here.\n var\n nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeBind = FuncProto.bind;\n\n // Create a safe reference to the Underscore object for use below.\n var _ = function(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n };\n\n // Export the Underscore object for **Node.js**, with\n // backwards-compatibility for the old `require()` API. If we're in\n // the browser, add `_` as a global object.\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = _;\n }\n exports._ = _;\n } else {\n root._ = _;\n }\n\n // Current version.\n _.VERSION = '1.7.0';\n\n // Internal function that returns an efficient (for current engines) version\n // of the passed-in callback, to be repeatedly applied in other Underscore\n // functions.\n var createCallback = function(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n case 2: return function(value, other) {\n return func.call(context, value, other);\n };\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n };\n\n // A mostly-internal function to generate callbacks that can be applied\n // to each element in a collection, returning the desired result — either\n // identity, an arbitrary callback, a property matcher, or a property accessor.\n _.iteratee = function(value, context, argCount) {\n if (value == null) return _.identity;\n if (_.isFunction(value)) return createCallback(value, context, argCount);\n if (_.isObject(value)) return _.matches(value);\n return _.property(value);\n };\n\n // Collection Functions\n // --------------------\n\n // The cornerstone, an `each` implementation, aka `forEach`.\n // Handles raw objects in addition to array-likes. Treats all\n // sparse array-likes as if they were dense.\n _.each = _.forEach = function(obj, iteratee, context) {\n if (obj == null) return obj;\n iteratee = createCallback(iteratee, context);\n var i, length = obj.length;\n if (length === +length) {\n for (i = 0; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var keys = _.keys(obj);\n for (i = 0, length = keys.length; i < length; i++) {\n iteratee(obj[keys[i]], keys[i], obj);\n }\n }\n return obj;\n };\n\n // Return the results of applying the iteratee to each element.\n _.map = _.collect = function(obj, iteratee, context) {\n if (obj == null) return [];\n iteratee = _.iteratee(iteratee, context);\n var keys = obj.length !== +obj.length && _.keys(obj),\n length = (keys || obj).length,\n results = Array(length),\n currentKey;\n for (var index = 0; index < length; index++) {\n currentKey = keys ? keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n var reduceError = 'Reduce of empty array with no initial value';\n\n // **Reduce** builds up a single result from a list of values, aka `inject`,\n // or `foldl`.\n _.reduce = _.foldl = _.inject = function(obj, iteratee, memo, context) {\n if (obj == null) obj = [];\n iteratee = createCallback(iteratee, context, 4);\n var keys = obj.length !== +obj.length && _.keys(obj),\n length = (keys || obj).length,\n index = 0, currentKey;\n if (arguments.length < 3) {\n if (!length) throw new TypeError(reduceError);\n memo = obj[keys ? keys[index++] : index++];\n }\n for (; index < length; index++) {\n currentKey = keys ? keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n // The right-associative version of reduce, also known as `foldr`.\n _.reduceRight = _.foldr = function(obj, iteratee, memo, context) {\n if (obj == null) obj = [];\n iteratee = createCallback(iteratee, context, 4);\n var keys = obj.length !== + obj.length && _.keys(obj),\n index = (keys || obj).length,\n currentKey;\n if (arguments.length < 3) {\n if (!index) throw new TypeError(reduceError);\n memo = obj[keys ? keys[--index] : --index];\n }\n while (index--) {\n currentKey = keys ? keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n // Return the first value which passes a truth test. Aliased as `detect`.\n _.find = _.detect = function(obj, predicate, context) {\n var result;\n predicate = _.iteratee(predicate, context);\n _.some(obj, function(value, index, list) {\n if (predicate(value, index, list)) {\n result = value;\n return true;\n }\n });\n return result;\n };\n\n // Return all the elements that pass a truth test.\n // Aliased as `select`.\n _.filter = _.select = function(obj, predicate, context) {\n var results = [];\n if (obj == null) return results;\n predicate = _.iteratee(predicate, context);\n _.each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n };\n\n // Return all the elements for which a truth test fails.\n _.reject = function(obj, predicate, context) {\n return _.filter(obj, _.negate(_.iteratee(predicate)), context);\n };\n\n // Determine whether all of the elements match a truth test.\n // Aliased as `all`.\n _.every = _.all = function(obj, predicate, context) {\n if (obj == null) return true;\n predicate = _.iteratee(predicate, context);\n var keys = obj.length !== +obj.length && _.keys(obj),\n length = (keys || obj).length,\n index, currentKey;\n for (index = 0; index < length; index++) {\n currentKey = keys ? keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n };\n\n // Determine if at least one element in the object matches a truth test.\n // Aliased as `any`.\n _.some = _.any = function(obj, predicate, context) {\n if (obj == null) return false;\n predicate = _.iteratee(predicate, context);\n var keys = obj.length !== +obj.length && _.keys(obj),\n length = (keys || obj).length,\n index, currentKey;\n for (index = 0; index < length; index++) {\n currentKey = keys ? keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n };\n\n // Determine if the array or object contains a given value (using `===`).\n // Aliased as `include`.\n _.contains = _.include = function(obj, target) {\n if (obj == null) return false;\n if (obj.length !== +obj.length) obj = _.values(obj);\n return _.indexOf(obj, target) >= 0;\n };\n\n // Invoke a method (with arguments) on every item in a collection.\n _.invoke = function(obj, method) {\n var args = slice.call(arguments, 2);\n var isFunc = _.isFunction(method);\n return _.map(obj, function(value) {\n return (isFunc ? method : value[method]).apply(value, args);\n });\n };\n\n // Convenience version of a common use case of `map`: fetching a property.\n _.pluck = function(obj, key) {\n return _.map(obj, _.property(key));\n };\n\n // Convenience version of a common use case of `filter`: selecting only objects\n // containing specific `key:value` pairs.\n _.where = function(obj, attrs) {\n return _.filter(obj, _.matches(attrs));\n };\n\n // Convenience version of a common use case of `find`: getting the first object\n // containing specific `key:value` pairs.\n _.findWhere = function(obj, attrs) {\n return _.find(obj, _.matches(attrs));\n };\n\n // Return the maximum element (or element-based computation).\n _.max = function(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = obj.length === +obj.length ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value > result) {\n result = value;\n }\n }\n } else {\n iteratee = _.iteratee(iteratee, context);\n _.each(obj, function(value, index, list) {\n computed = iteratee(value, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Return the minimum element (or element-based computation).\n _.min = function(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = obj.length === +obj.length ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value < result) {\n result = value;\n }\n }\n } else {\n iteratee = _.iteratee(iteratee, context);\n _.each(obj, function(value, index, list) {\n computed = iteratee(value, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Shuffle a collection, using the modern version of the\n // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n _.shuffle = function(obj) {\n var set = obj && obj.length === +obj.length ? obj : _.values(obj);\n var length = set.length;\n var shuffled = Array(length);\n for (var index = 0, rand; index < length; index++) {\n rand = _.random(0, index);\n if (rand !== index) shuffled[index] = shuffled[rand];\n shuffled[rand] = set[index];\n }\n return shuffled;\n };\n\n // Sample **n** random values from a collection.\n // If **n** is not specified, returns a single random element.\n // The internal `guard` argument allows it to work with `map`.\n _.sample = function(obj, n, guard) {\n if (n == null || guard) {\n if (obj.length !== +obj.length) obj = _.values(obj);\n return obj[_.random(obj.length - 1)];\n }\n return _.shuffle(obj).slice(0, Math.max(0, n));\n };\n\n // Sort the object's values by a criterion produced by an iteratee.\n _.sortBy = function(obj, iteratee, context) {\n iteratee = _.iteratee(iteratee, context);\n return _.pluck(_.map(obj, function(value, index, list) {\n return {\n value: value,\n index: index,\n criteria: iteratee(value, index, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n };\n\n // An internal function used for aggregate \"group by\" operations.\n var group = function(behavior) {\n return function(obj, iteratee, context) {\n var result = {};\n iteratee = _.iteratee(iteratee, context);\n _.each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n };\n\n // Groups the object's values by a criterion. Pass either a string attribute\n // to group by, or a function that returns the criterion.\n _.groupBy = group(function(result, value, key) {\n if (_.has(result, key)) result[key].push(value); else result[key] = [value];\n });\n\n // Indexes the object's values by a criterion, similar to `groupBy`, but for\n // when you know that your index values will be unique.\n _.indexBy = group(function(result, value, key) {\n result[key] = value;\n });\n\n // Counts instances of an object that group by a certain criterion. Pass\n // either a string attribute to count by, or a function that returns the\n // criterion.\n _.countBy = group(function(result, value, key) {\n if (_.has(result, key)) result[key]++; else result[key] = 1;\n });\n\n // Use a comparator function to figure out the smallest index at which\n // an object should be inserted so as to maintain order. Uses binary search.\n _.sortedIndex = function(array, obj, iteratee, context) {\n iteratee = _.iteratee(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = array.length;\n while (low < high) {\n var mid = low + high >>> 1;\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n };\n\n // Safely create a real, live array from anything iterable.\n _.toArray = function(obj) {\n if (!obj) return [];\n if (_.isArray(obj)) return slice.call(obj);\n if (obj.length === +obj.length) return _.map(obj, _.identity);\n return _.values(obj);\n };\n\n // Return the number of elements in an object.\n _.size = function(obj) {\n if (obj == null) return 0;\n return obj.length === +obj.length ? obj.length : _.keys(obj).length;\n };\n\n // Split a collection into two arrays: one whose elements all satisfy the given\n // predicate, and one whose elements all do not satisfy the predicate.\n _.partition = function(obj, predicate, context) {\n predicate = _.iteratee(predicate, context);\n var pass = [], fail = [];\n _.each(obj, function(value, key, obj) {\n (predicate(value, key, obj) ? pass : fail).push(value);\n });\n return [pass, fail];\n };\n\n // Array Functions\n // ---------------\n\n // Get the first element of an array. Passing **n** will return the first N\n // values in the array. Aliased as `head` and `take`. The **guard** check\n // allows it to work with `_.map`.\n _.first = _.head = _.take = function(array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[0];\n if (n < 0) return [];\n return slice.call(array, 0, n);\n };\n\n // Returns everything but the last entry of the array. Especially useful on\n // the arguments object. Passing **n** will return all the values in\n // the array, excluding the last N. The **guard** check allows it to work with\n // `_.map`.\n _.initial = function(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n };\n\n // Get the last element of an array. Passing **n** will return the last N\n // values in the array. The **guard** check allows it to work with `_.map`.\n _.last = function(array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[array.length - 1];\n return slice.call(array, Math.max(array.length - n, 0));\n };\n\n // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.\n // Especially useful on the arguments object. Passing an **n** will return\n // the rest N values in the array. The **guard**\n // check allows it to work with `_.map`.\n _.rest = _.tail = _.drop = function(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n };\n\n // Trim out all falsy values from an array.\n _.compact = function(array) {\n return _.filter(array, _.identity);\n };\n\n // Internal implementation of a recursive `flatten` function.\n var flatten = function(input, shallow, strict, output) {\n if (shallow && _.every(input, _.isArray)) {\n return concat.apply(output, input);\n }\n for (var i = 0, length = input.length; i < length; i++) {\n var value = input[i];\n if (!_.isArray(value) && !_.isArguments(value)) {\n if (!strict) output.push(value);\n } else if (shallow) {\n push.apply(output, value);\n } else {\n flatten(value, shallow, strict, output);\n }\n }\n return output;\n };\n\n // Flatten out an array, either recursively (by default), or just one level.\n _.flatten = function(array, shallow) {\n return flatten(array, shallow, false, []);\n };\n\n // Return a version of the array that does not contain the specified value(s).\n _.without = function(array) {\n return _.difference(array, slice.call(arguments, 1));\n };\n\n // Produce a duplicate-free version of the array. If the array has already\n // been sorted, you have the option of using a faster algorithm.\n // Aliased as `unique`.\n _.uniq = _.unique = function(array, isSorted, iteratee, context) {\n if (array == null) return [];\n if (!_.isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = _.iteratee(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = array.length; i < length; i++) {\n var value = array[i];\n if (isSorted) {\n if (!i || seen !== value) result.push(value);\n seen = value;\n } else if (iteratee) {\n var computed = iteratee(value, i, array);\n if (_.indexOf(seen, computed) < 0) {\n seen.push(computed);\n result.push(value);\n }\n } else if (_.indexOf(result, value) < 0) {\n result.push(value);\n }\n }\n return result;\n };\n\n // Produce an array that contains the union: each distinct element from all of\n // the passed-in arrays.\n _.union = function() {\n return _.uniq(flatten(arguments, true, true, []));\n };\n\n // Produce an array that contains every item shared between all the\n // passed-in arrays.\n _.intersection = function(array) {\n if (array == null) return [];\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = array.length; i < length; i++) {\n var item = array[i];\n if (_.contains(result, item)) continue;\n for (var j = 1; j < argsLength; j++) {\n if (!_.contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n };\n\n // Take the difference between one array and a number of other arrays.\n // Only the elements present in just the first array will remain.\n _.difference = function(array) {\n var rest = flatten(slice.call(arguments, 1), true, true, []);\n return _.filter(array, function(value){\n return !_.contains(rest, value);\n });\n };\n\n // Zip together multiple lists into a single array -- elements that share\n // an index go together.\n _.zip = function(array) {\n if (array == null) return [];\n var length = _.max(arguments, 'length').length;\n var results = Array(length);\n for (var i = 0; i < length; i++) {\n results[i] = _.pluck(arguments, i);\n }\n return results;\n };\n\n // Converts lists into objects. Pass either a single array of `[key, value]`\n // pairs, or two parallel arrays of the same length -- one of keys, and one of\n // the corresponding values.\n _.object = function(list, values) {\n if (list == null) return {};\n var result = {};\n for (var i = 0, length = list.length; i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n };\n\n // Return the position of the first occurrence of an item in an array,\n // or -1 if the item is not included in the array.\n // If the array is large and already in sort order, pass `true`\n // for **isSorted** to use binary search.\n _.indexOf = function(array, item, isSorted) {\n if (array == null) return -1;\n var i = 0, length = array.length;\n if (isSorted) {\n if (typeof isSorted == 'number') {\n i = isSorted < 0 ? Math.max(0, length + isSorted) : isSorted;\n } else {\n i = _.sortedIndex(array, item);\n return array[i] === item ? i : -1;\n }\n }\n for (; i < length; i++) if (array[i] === item) return i;\n return -1;\n };\n\n _.lastIndexOf = function(array, item, from) {\n if (array == null) return -1;\n var idx = array.length;\n if (typeof from == 'number') {\n idx = from < 0 ? idx + from + 1 : Math.min(idx, from + 1);\n }\n while (--idx >= 0) if (array[idx] === item) return idx;\n return -1;\n };\n\n // Generate an integer Array containing an arithmetic progression. A port of\n // the native Python `range()` function. See\n // [the Python documentation](http://docs.python.org/library/functions.html#range).\n _.range = function(start, stop, step) {\n if (arguments.length <= 1) {\n stop = start || 0;\n start = 0;\n }\n step = step || 1;\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n };\n\n // Function (ahem) Functions\n // ------------------\n\n // Reusable constructor function for prototype setting.\n var Ctor = function(){};\n\n // Create a function bound to a given object (assigning `this`, and arguments,\n // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if\n // available.\n _.bind = function(func, context) {\n var args, bound;\n if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));\n if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');\n args = slice.call(arguments, 2);\n bound = function() {\n if (!(this instanceof bound)) return func.apply(context, args.concat(slice.call(arguments)));\n Ctor.prototype = func.prototype;\n var self = new Ctor;\n Ctor.prototype = null;\n var result = func.apply(self, args.concat(slice.call(arguments)));\n if (_.isObject(result)) return result;\n return self;\n };\n return bound;\n };\n\n // Partially apply a function by creating a version that has had some of its\n // arguments pre-filled, without changing its dynamic `this` context. _ acts\n // as a placeholder, allowing any combination of arguments to be pre-filled.\n _.partial = function(func) {\n var boundArgs = slice.call(arguments, 1);\n return function() {\n var position = 0;\n var args = boundArgs.slice();\n for (var i = 0, length = args.length; i < length; i++) {\n if (args[i] === _) args[i] = arguments[position++];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return func.apply(this, args);\n };\n };\n\n // Bind a number of an object's methods to that object. Remaining arguments\n // are the method names to be bound. Useful for ensuring that all callbacks\n // defined on an object belong to it.\n _.bindAll = function(obj) {\n var i, length = arguments.length, key;\n if (length <= 1) throw new Error('bindAll must be passed function names');\n for (i = 1; i < length; i++) {\n key = arguments[i];\n obj[key] = _.bind(obj[key], obj);\n }\n return obj;\n };\n\n // Memoize an expensive function by storing its results.\n _.memoize = function(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = hasher ? hasher.apply(this, arguments) : key;\n if (!_.has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n };\n\n // Delays a function for the given number of milliseconds, and then calls\n // it with the arguments supplied.\n _.delay = function(func, wait) {\n var args = slice.call(arguments, 2);\n return setTimeout(function(){\n return func.apply(null, args);\n }, wait);\n };\n\n // Defers a function, scheduling it to run after the current call stack has\n // cleared.\n _.defer = function(func) {\n return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1)));\n };\n\n // Returns a function, that, when invoked, will only be triggered at most once\n // during a given window of time. Normally, the throttled function will run\n // as much as it can, without ever going more than once per `wait` duration;\n // but if you'd like to disable the execution on the leading edge, pass\n // `{leading: false}`. To disable execution on the trailing edge, ditto.\n _.throttle = function(func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n var later = function() {\n previous = options.leading === false ? 0 : _.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n return function() {\n var now = _.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n clearTimeout(timeout);\n timeout = null;\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n };\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n _.debounce = function(func, wait, immediate) {\n var timeout, args, context, timestamp, result;\n\n var later = function() {\n var last = _.now() - timestamp;\n\n if (last < wait && last > 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n }\n }\n };\n\n return function() {\n context = this;\n args = arguments;\n timestamp = _.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n };\n\n // Returns the first function passed as an argument to the second,\n // allowing you to adjust arguments, run code before and after, and\n // conditionally execute the original function.\n _.wrap = function(func, wrapper) {\n return _.partial(wrapper, func);\n };\n\n // Returns a negated version of the passed-in predicate.\n _.negate = function(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n };\n\n // Returns a function that is the composition of a list of functions, each\n // consuming the return value of the function that follows.\n _.compose = function() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n };\n\n // Returns a function that will only be executed after being called N times.\n _.after = function(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n };\n\n // Returns a function that will only be executed before being called N times.\n _.before = function(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n } else {\n func = null;\n }\n return memo;\n };\n };\n\n // Returns a function that will be executed at most one time, no matter how\n // often you call it. Useful for lazy initialization.\n _.once = _.partial(_.before, 2);\n\n // Object Functions\n // ----------------\n\n // Retrieve the names of an object's properties.\n // Delegates to **ECMAScript 5**'s native `Object.keys`\n _.keys = function(obj) {\n if (!_.isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (_.has(obj, key)) keys.push(key);\n return keys;\n };\n\n // Retrieve the values of an object's properties.\n _.values = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[keys[i]];\n }\n return values;\n };\n\n // Convert an object into a list of `[key, value]` pairs.\n _.pairs = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [keys[i], obj[keys[i]]];\n }\n return pairs;\n };\n\n // Invert the keys and values of an object. The values must be serializable.\n _.invert = function(obj) {\n var result = {};\n var keys = _.keys(obj);\n for (var i = 0, length = keys.length; i < length; i++) {\n result[obj[keys[i]]] = keys[i];\n }\n return result;\n };\n\n // Return a sorted list of the function names available on the object.\n // Aliased as `methods`\n _.functions = _.methods = function(obj) {\n var names = [];\n for (var key in obj) {\n if (_.isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n };\n\n // Extend a given object with all the properties in passed-in object(s).\n _.extend = function(obj) {\n if (!_.isObject(obj)) return obj;\n var source, prop;\n for (var i = 1, length = arguments.length; i < length; i++) {\n source = arguments[i];\n for (prop in source) {\n if (hasOwnProperty.call(source, prop)) {\n obj[prop] = source[prop];\n }\n }\n }\n return obj;\n };\n\n // Return a copy of the object only containing the whitelisted properties.\n _.pick = function(obj, iteratee, context) {\n var result = {}, key;\n if (obj == null) return result;\n if (_.isFunction(iteratee)) {\n iteratee = createCallback(iteratee, context);\n for (key in obj) {\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n } else {\n var keys = concat.apply([], slice.call(arguments, 1));\n obj = new Object(obj);\n for (var i = 0, length = keys.length; i < length; i++) {\n key = keys[i];\n if (key in obj) result[key] = obj[key];\n }\n }\n return result;\n };\n\n // Return a copy of the object without the blacklisted properties.\n _.omit = function(obj, iteratee, context) {\n if (_.isFunction(iteratee)) {\n iteratee = _.negate(iteratee);\n } else {\n var keys = _.map(concat.apply([], slice.call(arguments, 1)), String);\n iteratee = function(value, key) {\n return !_.contains(keys, key);\n };\n }\n return _.pick(obj, iteratee, context);\n };\n\n // Fill in a given object with default properties.\n _.defaults = function(obj) {\n if (!_.isObject(obj)) return obj;\n for (var i = 1, length = arguments.length; i < length; i++) {\n var source = arguments[i];\n for (var prop in source) {\n if (obj[prop] === void 0) obj[prop] = source[prop];\n }\n }\n return obj;\n };\n\n // Create a (shallow-cloned) duplicate of an object.\n _.clone = function(obj) {\n if (!_.isObject(obj)) return obj;\n return _.isArray(obj) ? obj.slice() : _.extend({}, obj);\n };\n\n // Invokes interceptor with the obj, and then returns obj.\n // The primary purpose of this method is to \"tap into\" a method chain, in\n // order to perform operations on intermediate results within the chain.\n _.tap = function(obj, interceptor) {\n interceptor(obj);\n return obj;\n };\n\n // Internal recursive comparison function for `isEqual`.\n var eq = function(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // A strict comparison is necessary because `null == undefined`.\n if (a == null || b == null) return a === b;\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n }\n if (typeof a != 'object' || typeof b != 'object') return false;\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n // Objects with different constructors are not equivalent, but `Object`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (\n aCtor !== bCtor &&\n // Handle Object.create(x) cases\n 'constructor' in a && 'constructor' in b &&\n !(_.isFunction(aCtor) && aCtor instanceof aCtor &&\n _.isFunction(bCtor) && bCtor instanceof bCtor)\n ) {\n return false;\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n var size, result;\n // Recursively compare objects and arrays.\n if (className === '[object Array]') {\n // Compare array lengths to determine if a deep comparison is necessary.\n size = a.length;\n result = size === b.length;\n if (result) {\n // Deep compare the contents, ignoring non-numeric properties.\n while (size--) {\n if (!(result = eq(a[size], b[size], aStack, bStack))) break;\n }\n }\n } else {\n // Deep compare objects.\n var keys = _.keys(a), key;\n size = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n result = _.keys(b).length === size;\n if (result) {\n while (size--) {\n // Deep compare each member\n key = keys[size];\n if (!(result = _.has(b, key) && eq(a[key], b[key], aStack, bStack))) break;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return result;\n };\n\n // Perform a deep comparison to check if two objects are equal.\n _.isEqual = function(a, b) {\n return eq(a, b, [], []);\n };\n\n // Is a given array, string, or object empty?\n // An \"empty\" object has no enumerable own-properties.\n _.isEmpty = function(obj) {\n if (obj == null) return true;\n if (_.isArray(obj) || _.isString(obj) || _.isArguments(obj)) return obj.length === 0;\n for (var key in obj) if (_.has(obj, key)) return false;\n return true;\n };\n\n // Is a given value a DOM element?\n _.isElement = function(obj) {\n return !!(obj && obj.nodeType === 1);\n };\n\n // Is a given value an array?\n // Delegates to ECMA5's native Array.isArray\n _.isArray = nativeIsArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n };\n\n // Is a given variable an object?\n _.isObject = function(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n };\n\n // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp.\n _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp'], function(name) {\n _['is' + name] = function(obj) {\n return toString.call(obj) === '[object ' + name + ']';\n };\n });\n\n // Define a fallback version of the method in browsers (ahem, IE), where\n // there isn't any inspectable \"Arguments\" type.\n if (!_.isArguments(arguments)) {\n _.isArguments = function(obj) {\n return _.has(obj, 'callee');\n };\n }\n\n // Optimize `isFunction` if appropriate. Work around an IE 11 bug.\n if (typeof /./ !== 'function') {\n _.isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n }\n\n // Is a given object a finite number?\n _.isFinite = function(obj) {\n return isFinite(obj) && !isNaN(parseFloat(obj));\n };\n\n // Is the given value `NaN`? (NaN is the only number which does not equal itself).\n _.isNaN = function(obj) {\n return _.isNumber(obj) && obj !== +obj;\n };\n\n // Is a given value a boolean?\n _.isBoolean = function(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n };\n\n // Is a given value equal to null?\n _.isNull = function(obj) {\n return obj === null;\n };\n\n // Is a given variable undefined?\n _.isUndefined = function(obj) {\n return obj === void 0;\n };\n\n // Shortcut function for checking if an object has a given property directly\n // on itself (in other words, not on a prototype).\n _.has = function(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n };\n\n // Utility Functions\n // -----------------\n\n // Run Underscore.js in *noConflict* mode, returning the `_` variable to its\n // previous owner. Returns a reference to the Underscore object.\n _.noConflict = function() {\n root._ = previousUnderscore;\n return this;\n };\n\n // Keep the identity function around for default iteratees.\n _.identity = function(value) {\n return value;\n };\n\n _.constant = function(value) {\n return function() {\n return value;\n };\n };\n\n _.noop = function(){};\n\n _.property = function(key) {\n return function(obj) {\n return obj[key];\n };\n };\n\n // Returns a predicate for checking whether an object has a given set of `key:value` pairs.\n _.matches = function(attrs) {\n var pairs = _.pairs(attrs), length = pairs.length;\n return function(obj) {\n if (obj == null) return !length;\n obj = new Object(obj);\n for (var i = 0; i < length; i++) {\n var pair = pairs[i], key = pair[0];\n if (pair[1] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n };\n };\n\n // Run a function **n** times.\n _.times = function(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = createCallback(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n };\n\n // Return a random integer between min and max (inclusive).\n _.random = function(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n };\n\n // A (possibly faster) way to get the current timestamp as an integer.\n _.now = Date.now || function() {\n return new Date().getTime();\n };\n\n // List of HTML entities for escaping.\n var escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n };\n var unescapeMap = _.invert(escapeMap);\n\n // Functions for escaping and unescaping strings to/from HTML interpolation.\n var createEscaper = function(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped\n var source = '(?:' + _.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n };\n _.escape = createEscaper(escapeMap);\n _.unescape = createEscaper(unescapeMap);\n\n // If the value of the named `property` is a function then invoke it with the\n // `object` as context; otherwise, return it.\n _.result = function(object, property) {\n if (object == null) return void 0;\n var value = object[property];\n return _.isFunction(value) ? object[property]() : value;\n };\n\n // Generate a unique integer id (unique within the entire client session).\n // Useful for temporary DOM ids.\n var idCounter = 0;\n _.uniqueId = function(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n };\n\n // By default, Underscore uses ERB-style template delimiters, change the\n // following template settings to use alternative delimiters.\n _.templateSettings = {\n evaluate : /<%([\\s\\S]+?)%>/g,\n interpolate : /<%=([\\s\\S]+?)%>/g,\n escape : /<%-([\\s\\S]+?)%>/g\n };\n\n // When customizing `templateSettings`, if you don't want to define an\n // interpolation, evaluation or escaping regex, we need one that is\n // guaranteed not to match.\n var noMatch = /(.)^/;\n\n // Certain characters need to be escaped so that they can be put into a\n // string literal.\n var escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n var escaper = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\n var escapeChar = function(match) {\n return '\\\\' + escapes[match];\n };\n\n // JavaScript micro-templating, similar to John Resig's implementation.\n // Underscore templating handles arbitrary delimiters, preserves whitespace,\n // and correctly escapes quotes within interpolated code.\n // NB: `oldSettings` only exists for backwards compatibility.\n _.template = function(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = _.defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escaper, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offest.\n return match;\n });\n source += \"';\\n\";\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n try {\n var render = new Function(settings.variable || 'obj', '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n var argument = settings.variable || 'obj';\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n };\n\n // Add a \"chain\" function. Start chaining a wrapped Underscore object.\n _.chain = function(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n };\n\n // OOP\n // ---------------\n // If Underscore is called as a function, it returns a wrapped object that\n // can be used OO-style. This wrapper holds altered versions of all the\n // underscore functions. Wrapped objects may be chained.\n\n // Helper function to continue chaining intermediate results.\n var result = function(obj) {\n return this._chain ? _(obj).chain() : obj;\n };\n\n // Add your own custom functions to the Underscore object.\n _.mixin = function(obj) {\n _.each(_.functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return result.call(this, func.apply(_, args));\n };\n });\n };\n\n // Add all of the Underscore functions to the wrapper object.\n _.mixin(_);\n\n // Add all mutator Array functions to the wrapper.\n _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];\n return result.call(this, obj);\n };\n });\n\n // Add all accessor Array functions to the wrapper.\n _.each(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n return result.call(this, method.apply(this._wrapped, arguments));\n };\n });\n\n // Extracts the result from a wrapped and chained object.\n _.prototype.value = function() {\n return this._wrapped;\n };\n\n // AMD registration happens at the end for compatibility with AMD loaders\n // that may not enforce next-turn semantics on modules. Even though general\n // practice for AMD registration is to be anonymous, underscore registers\n // as a named module because, like jQuery, it is a base library that is\n // popular enough to be bundled in a third party lib, but not be part of\n // an AMD load request. Those cases could generate an error when an\n // anonymous define() is called outside of a loader request.\n if (typeof define === 'function' && define.amd) {\n define('underscore', [], function() {\n return _;\n });\n }\n}.call(this));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/libs/underscore.js\n ** module id = 1\n ** module chunks = 4\n **/","// Backbone.js 1.1.2\n\n// (c) 2010-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Backbone may be freely distributed under the MIT license.\n// For all details and documentation:\n// http://backbonejs.org\n\n(function(root, factory) {\n\n // Set up Backbone appropriately for the environment. Start with AMD.\n if (typeof define === 'function' && define.amd) {\n define(['underscore', 'jquery', 'exports'], function(_, $, exports) {\n // Export global even in AMD case in case this script is loaded with\n // others that may still expect a global Backbone.\n root.Backbone = factory(root, exports, _, $);\n });\n\n // Next for Node.js or CommonJS. jQuery may not be needed as a module.\n } else if (typeof exports !== 'undefined') {\n var _ = require('underscore');\n factory(root, exports, _);\n\n // Finally, as a browser global.\n } else {\n root.Backbone = factory(root, {}, root._, (root.jQuery || root.Zepto || root.ender || root.$));\n }\n\n}(this, function(root, Backbone, _, $) {\n\n // Initial Setup\n // -------------\n\n // Save the previous value of the `Backbone` variable, so that it can be\n // restored later on, if `noConflict` is used.\n var previousBackbone = root.Backbone;\n\n // Create local references to array methods we'll want to use later.\n var array = [];\n var push = array.push;\n var slice = array.slice;\n var splice = array.splice;\n\n // Current version of the library. Keep in sync with `package.json`.\n Backbone.VERSION = '1.1.2';\n\n // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns\n // the `$` variable.\n Backbone.$ = $;\n\n // Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable\n // to its previous owner. Returns a reference to this Backbone object.\n Backbone.noConflict = function() {\n root.Backbone = previousBackbone;\n return this;\n };\n\n // Turn on `emulateHTTP` to support legacy HTTP servers. Setting this option\n // will fake `\"PATCH\"`, `\"PUT\"` and `\"DELETE\"` requests via the `_method` parameter and\n // set a `X-Http-Method-Override` header.\n Backbone.emulateHTTP = false;\n\n // Turn on `emulateJSON` to support legacy servers that can't deal with direct\n // `application/json` requests ... will encode the body as\n // `application/x-www-form-urlencoded` instead and will send the model in a\n // form param named `model`.\n Backbone.emulateJSON = false;\n\n // Backbone.Events\n // ---------------\n\n // A module that can be mixed in to *any object* in order to provide it with\n // custom events. You may bind with `on` or remove with `off` callback\n // functions to an event; `trigger`-ing an event fires all callbacks in\n // succession.\n //\n // var object = {};\n // _.extend(object, Backbone.Events);\n // object.on('expand', function(){ alert('expanded'); });\n // object.trigger('expand');\n //\n var Events = Backbone.Events = {\n\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n on: function(name, callback, context) {\n if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this;\n this._events || (this._events = {});\n var events = this._events[name] || (this._events[name] = []);\n events.push({callback: callback, context: context, ctx: context || this});\n return this;\n },\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, it will be removed.\n once: function(name, callback, context) {\n if (!eventsApi(this, 'once', name, [callback, context]) || !callback) return this;\n var self = this;\n var once = _.once(function() {\n self.off(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n return this.on(name, once, context);\n },\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n off: function(name, callback, context) {\n var retain, ev, events, names, i, l, j, k;\n if (!this._events || !eventsApi(this, 'off', name, [callback, context])) return this;\n if (!name && !callback && !context) {\n this._events = void 0;\n return this;\n }\n names = name ? [name] : _.keys(this._events);\n for (i = 0, l = names.length; i < l; i++) {\n name = names[i];\n if (events = this._events[name]) {\n this._events[name] = retain = [];\n if (callback || context) {\n for (j = 0, k = events.length; j < k; j++) {\n ev = events[j];\n if ((callback && callback !== ev.callback && callback !== ev.callback._callback) ||\n (context && context !== ev.context)) {\n retain.push(ev);\n }\n }\n }\n if (!retain.length) delete this._events[name];\n }\n }\n\n return this;\n },\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n trigger: function(name) {\n if (!this._events) return this;\n var args = slice.call(arguments, 1);\n if (!eventsApi(this, 'trigger', name, args)) return this;\n var events = this._events[name];\n var allEvents = this._events.all;\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, arguments);\n return this;\n },\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n stopListening: function(obj, name, callback) {\n var listeningTo = this._listeningTo;\n if (!listeningTo) return this;\n var remove = !name && !callback;\n if (!callback && typeof name === 'object') callback = this;\n if (obj) (listeningTo = {})[obj._listenId] = obj;\n for (var id in listeningTo) {\n obj = listeningTo[id];\n obj.off(name, callback, this);\n if (remove || _.isEmpty(obj._events)) delete this._listeningTo[id];\n }\n return this;\n }\n\n };\n\n // Regular expression used to split event strings.\n var eventSplitter = /\\s+/;\n\n // Implement fancy features of the Events API such as multiple event\n // names `\"change blur\"` and jQuery-style event maps `{change: action}`\n // in terms of the existing API.\n var eventsApi = function(obj, action, name, rest) {\n if (!name) return true;\n\n // Handle event maps.\n if (typeof name === 'object') {\n for (var key in name) {\n obj[action].apply(obj, [key, name[key]].concat(rest));\n }\n return false;\n }\n\n // Handle space separated event names.\n if (eventSplitter.test(name)) {\n var names = name.split(eventSplitter);\n for (var i = 0, l = names.length; i < l; i++) {\n obj[action].apply(obj, [names[i]].concat(rest));\n }\n return false;\n }\n\n return true;\n };\n\n // A difficult-to-believe, but optimized internal dispatch function for\n // triggering events. Tries to keep the usual cases speedy (most internal\n // Backbone events have 3 arguments).\n var triggerEvents = function(events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return;\n }\n };\n\n var listenMethods = {listenTo: 'on', listenToOnce: 'once'};\n\n // Inversion-of-control versions of `on` and `once`. Tell *this* object to\n // listen to an event in another object ... keeping track of what it's\n // listening to.\n _.each(listenMethods, function(implementation, method) {\n Events[method] = function(obj, name, callback) {\n var listeningTo = this._listeningTo || (this._listeningTo = {});\n var id = obj._listenId || (obj._listenId = _.uniqueId('l'));\n listeningTo[id] = obj;\n if (!callback && typeof name === 'object') callback = this;\n obj[implementation](name, callback, this);\n return this;\n };\n });\n\n // Aliases for backwards compatibility.\n Events.bind = Events.on;\n Events.unbind = Events.off;\n\n // Allow the `Backbone` object to serve as a global event bus, for folks who\n // want global \"pubsub\" in a convenient place.\n _.extend(Backbone, Events);\n\n // Backbone.Model\n // --------------\n\n // Backbone **Models** are the basic data object in the framework --\n // frequently representing a row in a table in a database on your server.\n // A discrete chunk of data and a bunch of useful, related methods for\n // performing computations and transformations on that data.\n\n // Create a new model with the specified attributes. A client id (`cid`)\n // is automatically generated and assigned for you.\n var Model = Backbone.Model = function(attributes, options) {\n var attrs = attributes || {};\n options || (options = {});\n this.cid = _.uniqueId('c');\n this.attributes = {};\n if (options.collection) this.collection = options.collection;\n if (options.parse) attrs = this.parse(attrs, options) || {};\n attrs = _.defaults({}, attrs, _.result(this, 'defaults'));\n this.set(attrs, options);\n this.changed = {};\n this.initialize.apply(this, arguments);\n };\n\n // Attach all inheritable methods to the Model prototype.\n _.extend(Model.prototype, Events, {\n\n // A hash of attributes whose current and previous value differ.\n changed: null,\n\n // The value returned during the last failed validation.\n validationError: null,\n\n // The default name for the JSON `id` attribute is `\"id\"`. MongoDB and\n // CouchDB users may want to set this to `\"_id\"`.\n idAttribute: 'id',\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Return a copy of the model's `attributes` object.\n toJSON: function(options) {\n return _.clone(this.attributes);\n },\n\n // Proxy `Backbone.sync` by default -- but override this if you need\n // custom syncing semantics for *this* particular model.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Get the value of an attribute.\n get: function(attr) {\n return this.attributes[attr];\n },\n\n // Get the HTML-escaped value of an attribute.\n escape: function(attr) {\n return _.escape(this.get(attr));\n },\n\n // Returns `true` if the attribute contains a value that is not null\n // or undefined.\n has: function(attr) {\n return this.get(attr) != null;\n },\n\n // Set a hash of model attributes on the object, firing `\"change\"`. This is\n // the core primitive operation of a model, updating the data and notifying\n // anyone who needs to know about the change in state. The heart of the beast.\n set: function(key, val, options) {\n var attr, attrs, unset, changes, silent, changing, prev, current;\n if (key == null) return this;\n\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n if (typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options || (options = {});\n\n // Run validation.\n if (!this._validate(attrs, options)) return false;\n\n // Extract attributes and options.\n unset = options.unset;\n silent = options.silent;\n changes = [];\n changing = this._changing;\n this._changing = true;\n\n if (!changing) {\n this._previousAttributes = _.clone(this.attributes);\n this.changed = {};\n }\n current = this.attributes, prev = this._previousAttributes;\n\n // Check for changes of `id`.\n if (this.idAttribute in attrs) this.id = attrs[this.idAttribute];\n\n // For each `set` attribute, update or delete the current value.\n for (attr in attrs) {\n val = attrs[attr];\n if (!_.isEqual(current[attr], val)) changes.push(attr);\n if (!_.isEqual(prev[attr], val)) {\n this.changed[attr] = val;\n } else {\n delete this.changed[attr];\n }\n unset ? delete current[attr] : current[attr] = val;\n }\n\n // Trigger all relevant attribute changes.\n if (!silent) {\n if (changes.length) this._pending = options;\n for (var i = 0, l = changes.length; i < l; i++) {\n this.trigger('change:' + changes[i], this, current[changes[i]], options);\n }\n }\n\n // You might be wondering why there's a `while` loop here. Changes can\n // be recursively nested within `\"change\"` events.\n if (changing) return this;\n if (!silent) {\n while (this._pending) {\n options = this._pending;\n this._pending = false;\n this.trigger('change', this, options);\n }\n }\n this._pending = false;\n this._changing = false;\n return this;\n },\n\n // Remove an attribute from the model, firing `\"change\"`. `unset` is a noop\n // if the attribute doesn't exist.\n unset: function(attr, options) {\n return this.set(attr, void 0, _.extend({}, options, {unset: true}));\n },\n\n // Clear all attributes on the model, firing `\"change\"`.\n clear: function(options) {\n var attrs = {};\n for (var key in this.attributes) attrs[key] = void 0;\n return this.set(attrs, _.extend({}, options, {unset: true}));\n },\n\n // Determine if the model has changed since the last `\"change\"` event.\n // If you specify an attribute name, determine if that attribute has changed.\n hasChanged: function(attr) {\n if (attr == null) return !_.isEmpty(this.changed);\n return _.has(this.changed, attr);\n },\n\n // Return an object containing all the attributes that have changed, or\n // false if there are no changed attributes. Useful for determining what\n // parts of a view need to be updated and/or what attributes need to be\n // persisted to the server. Unset attributes will be set to undefined.\n // You can also pass an attributes object to diff against the model,\n // determining if there *would be* a change.\n changedAttributes: function(diff) {\n if (!diff) return this.hasChanged() ? _.clone(this.changed) : false;\n var val, changed = false;\n var old = this._changing ? this._previousAttributes : this.attributes;\n for (var attr in diff) {\n if (_.isEqual(old[attr], (val = diff[attr]))) continue;\n (changed || (changed = {}))[attr] = val;\n }\n return changed;\n },\n\n // Get the previous value of an attribute, recorded at the time the last\n // `\"change\"` event was fired.\n previous: function(attr) {\n if (attr == null || !this._previousAttributes) return null;\n return this._previousAttributes[attr];\n },\n\n // Get all of the attributes of the model at the time of the previous\n // `\"change\"` event.\n previousAttributes: function() {\n return _.clone(this._previousAttributes);\n },\n\n // Fetch the model from the server. If the server's representation of the\n // model differs from its current attributes, they will be overridden,\n // triggering a `\"change\"` event.\n fetch: function(options) {\n options = options ? _.clone(options) : {};\n if (options.parse === void 0) options.parse = true;\n var model = this;\n var success = options.success;\n options.success = function(resp) {\n if (!model.set(model.parse(resp, options), options)) return false;\n if (success) success(model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Set a hash of model attributes, and sync the model to the server.\n // If the server returns an attributes hash that differs, the model's\n // state will be `set` again.\n save: function(key, val, options) {\n var attrs, method, xhr, attributes = this.attributes;\n\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n if (key == null || typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options = _.extend({validate: true}, options);\n\n // If we're not waiting and attributes exist, save acts as\n // `set(attr).save(null, opts)` with validation. Otherwise, check if\n // the model will be valid when the attributes, if any, are set.\n if (attrs && !options.wait) {\n if (!this.set(attrs, options)) return false;\n } else {\n if (!this._validate(attrs, options)) return false;\n }\n\n // Set temporary attributes if `{wait: true}`.\n if (attrs && options.wait) {\n this.attributes = _.extend({}, attributes, attrs);\n }\n\n // After a successful server-side save, the client is (optionally)\n // updated with the server-side state.\n if (options.parse === void 0) options.parse = true;\n var model = this;\n var success = options.success;\n options.success = function(resp) {\n // Ensure attributes are restored during synchronous saves.\n model.attributes = attributes;\n var serverAttrs = model.parse(resp, options);\n if (options.wait) serverAttrs = _.extend(attrs || {}, serverAttrs);\n if (_.isObject(serverAttrs) && !model.set(serverAttrs, options)) {\n return false;\n }\n if (success) success(model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n\n method = this.isNew() ? 'create' : (options.patch ? 'patch' : 'update');\n if (method === 'patch') options.attrs = attrs;\n xhr = this.sync(method, this, options);\n\n // Restore attributes.\n if (attrs && options.wait) this.attributes = attributes;\n\n return xhr;\n },\n\n // Destroy this model on the server if it was already persisted.\n // Optimistically removes the model from its collection, if it has one.\n // If `wait: true` is passed, waits for the server to respond before removal.\n destroy: function(options) {\n options = options ? _.clone(options) : {};\n var model = this;\n var success = options.success;\n\n var destroy = function() {\n model.trigger('destroy', model, model.collection, options);\n };\n\n options.success = function(resp) {\n if (options.wait || model.isNew()) destroy();\n if (success) success(model, resp, options);\n if (!model.isNew()) model.trigger('sync', model, resp, options);\n };\n\n if (this.isNew()) {\n options.success();\n return false;\n }\n wrapError(this, options);\n\n var xhr = this.sync('delete', this, options);\n if (!options.wait) destroy();\n return xhr;\n },\n\n // Default URL for the model's representation on the server -- if you're\n // using Backbone's restful methods, override this to change the endpoint\n // that will be called.\n url: function() {\n var base =\n _.result(this, 'urlRoot') ||\n _.result(this.collection, 'url') ||\n urlError();\n if (this.isNew()) return base;\n return base.replace(/([^\\/])$/, '$1/') + encodeURIComponent(this.id);\n },\n\n // **parse** converts a response into the hash of attributes to be `set` on\n // the model. The default implementation is just to pass the response along.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new model with identical attributes to this one.\n clone: function() {\n return new this.constructor(this.attributes);\n },\n\n // A model is new if it has never been saved to the server, and lacks an id.\n isNew: function() {\n return !this.has(this.idAttribute);\n },\n\n // Check if the model is currently in a valid state.\n isValid: function(options) {\n return this._validate({}, _.extend(options || {}, { validate: true }));\n },\n\n // Run validation against the next complete set of model attributes,\n // returning `true` if all is well. Otherwise, fire an `\"invalid\"` event.\n _validate: function(attrs, options) {\n if (!options.validate || !this.validate) return true;\n attrs = _.extend({}, this.attributes, attrs);\n var error = this.validationError = this.validate(attrs, options) || null;\n if (!error) return true;\n this.trigger('invalid', this, error, _.extend(options, {validationError: error}));\n return false;\n }\n\n });\n\n // Underscore methods that we want to implement on the Model.\n var modelMethods = ['keys', 'values', 'pairs', 'invert', 'pick', 'omit'];\n\n // Mix in each Underscore method as a proxy to `Model#attributes`.\n _.each(modelMethods, function(method) {\n Model.prototype[method] = function() {\n var args = slice.call(arguments);\n args.unshift(this.attributes);\n return _[method].apply(_, args);\n };\n });\n\n // Backbone.Collection\n // -------------------\n\n // If models tend to represent a single row of data, a Backbone Collection is\n // more analagous to a table full of data ... or a small slice or page of that\n // table, or a collection of rows that belong together for a particular reason\n // -- all of the messages in this particular folder, all of the documents\n // belonging to this particular author, and so on. Collections maintain\n // indexes of their models, both in order, and for lookup by `id`.\n\n // Create a new **Collection**, perhaps to contain a specific type of `model`.\n // If a `comparator` is specified, the Collection will maintain\n // its models in sort order, as they're added and removed.\n var Collection = Backbone.Collection = function(models, options) {\n options || (options = {});\n if (options.model) this.model = options.model;\n if (options.comparator !== void 0) this.comparator = options.comparator;\n this._reset();\n this.initialize.apply(this, arguments);\n if (models) this.reset(models, _.extend({silent: true}, options));\n };\n\n // Default options for `Collection#set`.\n var setOptions = {add: true, remove: true, merge: true};\n var addOptions = {add: true, remove: false};\n\n // Define the Collection's inheritable methods.\n _.extend(Collection.prototype, Events, {\n\n // The default model for a collection is just a **Backbone.Model**.\n // This should be overridden in most cases.\n model: Model,\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // The JSON representation of a Collection is an array of the\n // models' attributes.\n toJSON: function(options) {\n return this.map(function(model){ return model.toJSON(options); });\n },\n\n // Proxy `Backbone.sync` by default.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Add a model, or list of models to the set.\n add: function(models, options) {\n return this.set(models, _.extend({merge: false}, options, addOptions));\n },\n\n // Remove a model, or a list of models from the set.\n remove: function(models, options) {\n var singular = !_.isArray(models);\n models = singular ? [models] : _.clone(models);\n options || (options = {});\n var i, l, index, model;\n for (i = 0, l = models.length; i < l; i++) {\n model = models[i] = this.get(models[i]);\n if (!model) continue;\n delete this._byId[model.id];\n delete this._byId[model.cid];\n index = this.indexOf(model);\n this.models.splice(index, 1);\n this.length--;\n if (!options.silent) {\n options.index = index;\n model.trigger('remove', model, this, options);\n }\n this._removeReference(model, options);\n }\n return singular ? models[0] : models;\n },\n\n // Update a collection by `set`-ing a new list of models, adding new ones,\n // removing models that are no longer present, and merging models that\n // already exist in the collection, as necessary. Similar to **Model#set**,\n // the core operation for updating the data contained by the collection.\n set: function(models, options) {\n options = _.defaults({}, options, setOptions);\n if (options.parse) models = this.parse(models, options);\n var singular = !_.isArray(models);\n models = singular ? (models ? [models] : []) : _.clone(models);\n var i, l, id, model, attrs, existing, sort;\n var at = options.at;\n var targetModel = this.model;\n var sortable = this.comparator && (at == null) && options.sort !== false;\n var sortAttr = _.isString(this.comparator) ? this.comparator : null;\n var toAdd = [], toRemove = [], modelMap = {};\n var add = options.add, merge = options.merge, remove = options.remove;\n var order = !sortable && add && remove ? [] : false;\n\n // Turn bare objects into model references, and prevent invalid models\n // from being added.\n for (i = 0, l = models.length; i < l; i++) {\n attrs = models[i] || {};\n if (attrs instanceof Model) {\n id = model = attrs;\n } else {\n id = attrs[targetModel.prototype.idAttribute || 'id'];\n }\n\n // If a duplicate is found, prevent it from being added and\n // optionally merge it into the existing model.\n if (existing = this.get(id)) {\n if (remove) modelMap[existing.cid] = true;\n if (merge) {\n attrs = attrs === model ? model.attributes : attrs;\n if (options.parse) attrs = existing.parse(attrs, options);\n existing.set(attrs, options);\n if (sortable && !sort && existing.hasChanged(sortAttr)) sort = true;\n }\n models[i] = existing;\n\n // If this is a new, valid model, push it to the `toAdd` list.\n } else if (add) {\n model = models[i] = this._prepareModel(attrs, options);\n if (!model) continue;\n toAdd.push(model);\n this._addReference(model, options);\n }\n\n // Do not add multiple models with the same `id`.\n model = existing || model;\n if (order && (model.isNew() || !modelMap[model.id])) order.push(model);\n modelMap[model.id] = true;\n }\n\n // Remove nonexistent models if appropriate.\n if (remove) {\n for (i = 0, l = this.length; i < l; ++i) {\n if (!modelMap[(model = this.models[i]).cid]) toRemove.push(model);\n }\n if (toRemove.length) this.remove(toRemove, options);\n }\n\n // See if sorting is needed, update `length` and splice in new models.\n if (toAdd.length || (order && order.length)) {\n if (sortable) sort = true;\n this.length += toAdd.length;\n if (at != null) {\n for (i = 0, l = toAdd.length; i < l; i++) {\n this.models.splice(at + i, 0, toAdd[i]);\n }\n } else {\n if (order) this.models.length = 0;\n var orderedModels = order || toAdd;\n for (i = 0, l = orderedModels.length; i < l; i++) {\n this.models.push(orderedModels[i]);\n }\n }\n }\n\n // Silently sort the collection if appropriate.\n if (sort) this.sort({silent: true});\n\n // Unless silenced, it's time to fire all appropriate add/sort events.\n if (!options.silent) {\n for (i = 0, l = toAdd.length; i < l; i++) {\n (model = toAdd[i]).trigger('add', model, this, options);\n }\n if (sort || (order && order.length)) this.trigger('sort', this, options);\n }\n\n // Return the added (or merged) model (or models).\n return singular ? models[0] : models;\n },\n\n // When you have more items than you want to add or remove individually,\n // you can reset the entire set with a new list of models, without firing\n // any granular `add` or `remove` events. Fires `reset` when finished.\n // Useful for bulk operations and optimizations.\n reset: function(models, options) {\n options || (options = {});\n for (var i = 0, l = this.models.length; i < l; i++) {\n this._removeReference(this.models[i], options);\n }\n options.previousModels = this.models;\n this._reset();\n models = this.add(models, _.extend({silent: true}, options));\n if (!options.silent) this.trigger('reset', this, options);\n return models;\n },\n\n // Add a model to the end of the collection.\n push: function(model, options) {\n return this.add(model, _.extend({at: this.length}, options));\n },\n\n // Remove a model from the end of the collection.\n pop: function(options) {\n var model = this.at(this.length - 1);\n this.remove(model, options);\n return model;\n },\n\n // Add a model to the beginning of the collection.\n unshift: function(model, options) {\n return this.add(model, _.extend({at: 0}, options));\n },\n\n // Remove a model from the beginning of the collection.\n shift: function(options) {\n var model = this.at(0);\n this.remove(model, options);\n return model;\n },\n\n // Slice out a sub-array of models from the collection.\n slice: function() {\n return slice.apply(this.models, arguments);\n },\n\n // Get a model from the set by id.\n get: function(obj) {\n if (obj == null) return void 0;\n return this._byId[obj] || this._byId[obj.id] || this._byId[obj.cid];\n },\n\n // Get the model at the given index.\n at: function(index) {\n return this.models[index];\n },\n\n // Return models with matching attributes. Useful for simple cases of\n // `filter`.\n where: function(attrs, first) {\n if (_.isEmpty(attrs)) return first ? void 0 : [];\n return this[first ? 'find' : 'filter'](function(model) {\n for (var key in attrs) {\n if (attrs[key] !== model.get(key)) return false;\n }\n return true;\n });\n },\n\n // Return the first model with matching attributes. Useful for simple cases\n // of `find`.\n findWhere: function(attrs) {\n return this.where(attrs, true);\n },\n\n // Force the collection to re-sort itself. You don't need to call this under\n // normal circumstances, as the set will maintain sort order as each item\n // is added.\n sort: function(options) {\n if (!this.comparator) throw new Error('Cannot sort a set without a comparator');\n options || (options = {});\n\n // Run sort based on type of `comparator`.\n if (_.isString(this.comparator) || this.comparator.length === 1) {\n this.models = this.sortBy(this.comparator, this);\n } else {\n this.models.sort(_.bind(this.comparator, this));\n }\n\n if (!options.silent) this.trigger('sort', this, options);\n return this;\n },\n\n // Pluck an attribute from each model in the collection.\n pluck: function(attr) {\n return _.invoke(this.models, 'get', attr);\n },\n\n // Fetch the default set of models for this collection, resetting the\n // collection when they arrive. If `reset: true` is passed, the response\n // data will be passed through the `reset` method instead of `set`.\n fetch: function(options) {\n options = options ? _.clone(options) : {};\n if (options.parse === void 0) options.parse = true;\n var success = options.success;\n var collection = this;\n options.success = function(resp) {\n var method = options.reset ? 'reset' : 'set';\n collection[method](resp, options);\n if (success) success(collection, resp, options);\n collection.trigger('sync', collection, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Create a new instance of a model in this collection. Add the model to the\n // collection immediately, unless `wait: true` is passed, in which case we\n // wait for the server to agree.\n create: function(model, options) {\n options = options ? _.clone(options) : {};\n if (!(model = this._prepareModel(model, options))) return false;\n if (!options.wait) this.add(model, options);\n var collection = this;\n var success = options.success;\n options.success = function(model, resp) {\n if (options.wait) collection.add(model, options);\n if (success) success(model, resp, options);\n };\n model.save(null, options);\n return model;\n },\n\n // **parse** converts a response into a list of models to be added to the\n // collection. The default implementation is just to pass it through.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new collection with an identical list of models as this one.\n clone: function() {\n return new this.constructor(this.models);\n },\n\n // Private method to reset all internal state. Called when the collection\n // is first initialized or reset.\n _reset: function() {\n this.length = 0;\n this.models = [];\n this._byId = {};\n },\n\n // Prepare a hash of attributes (or other model) to be added to this\n // collection.\n _prepareModel: function(attrs, options) {\n if (attrs instanceof Model) return attrs;\n options = options ? _.clone(options) : {};\n options.collection = this;\n var model = new this.model(attrs, options);\n if (!model.validationError) return model;\n this.trigger('invalid', this, model.validationError, options);\n return false;\n },\n\n // Internal method to create a model's ties to a collection.\n _addReference: function(model, options) {\n this._byId[model.cid] = model;\n if (model.id != null) this._byId[model.id] = model;\n if (!model.collection) model.collection = this;\n model.on('all', this._onModelEvent, this);\n },\n\n // Internal method to sever a model's ties to a collection.\n _removeReference: function(model, options) {\n if (this === model.collection) delete model.collection;\n model.off('all', this._onModelEvent, this);\n },\n\n // Internal method called every time a model in the set fires an event.\n // Sets need to update their indexes when models change ids. All other\n // events simply proxy through. \"add\" and \"remove\" events that originate\n // in other collections are ignored.\n _onModelEvent: function(event, model, collection, options) {\n if ((event === 'add' || event === 'remove') && collection !== this) return;\n if (event === 'destroy') this.remove(model, options);\n if (model && event === 'change:' + model.idAttribute) {\n delete this._byId[model.previous(model.idAttribute)];\n if (model.id != null) this._byId[model.id] = model;\n }\n this.trigger.apply(this, arguments);\n }\n\n });\n\n // Underscore methods that we want to implement on the Collection.\n // 90% of the core usefulness of Backbone Collections is actually implemented\n // right here:\n var methods = ['forEach', 'each', 'map', 'collect', 'reduce', 'foldl',\n 'inject', 'reduceRight', 'foldr', 'find', 'detect', 'filter', 'select',\n 'reject', 'every', 'all', 'some', 'any', 'include', 'contains', 'invoke',\n 'max', 'min', 'toArray', 'size', 'first', 'head', 'take', 'initial', 'rest',\n 'tail', 'drop', 'last', 'without', 'difference', 'indexOf', 'shuffle',\n 'lastIndexOf', 'isEmpty', 'chain', 'sample'];\n\n // Mix in each Underscore method as a proxy to `Collection#models`.\n _.each(methods, function(method) {\n Collection.prototype[method] = function() {\n var args = slice.call(arguments);\n args.unshift(this.models);\n return _[method].apply(_, args);\n };\n });\n\n // Underscore methods that take a property name as an argument.\n var attributeMethods = ['groupBy', 'countBy', 'sortBy', 'indexBy'];\n\n // Use attributes instead of properties.\n _.each(attributeMethods, function(method) {\n Collection.prototype[method] = function(value, context) {\n var iterator = _.isFunction(value) ? value : function(model) {\n return model.get(value);\n };\n return _[method](this.models, iterator, context);\n };\n });\n\n // Backbone.View\n // -------------\n\n // Backbone Views are almost more convention than they are actual code. A View\n // is simply a JavaScript object that represents a logical chunk of UI in the\n // DOM. This might be a single item, an entire list, a sidebar or panel, or\n // even the surrounding frame which wraps your whole app. Defining a chunk of\n // UI as a **View** allows you to define your DOM events declaratively, without\n // having to worry about render order ... and makes it easy for the view to\n // react to specific changes in the state of your models.\n\n // Creating a Backbone.View creates its initial element outside of the DOM,\n // if an existing element is not provided...\n var View = Backbone.View = function(options) {\n this.cid = _.uniqueId('view');\n options || (options = {});\n _.extend(this, _.pick(options, viewOptions));\n this._ensureElement();\n this.initialize.apply(this, arguments);\n this.delegateEvents();\n };\n\n // Cached regex to split keys for `delegate`.\n var delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n // List of view options to be merged as properties.\n var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events'];\n\n // Set up all inheritable **Backbone.View** properties and methods.\n _.extend(View.prototype, Events, {\n\n // The default `tagName` of a View's element is `\"div\"`.\n tagName: 'div',\n\n // jQuery delegate for element lookup, scoped to DOM elements within the\n // current view. This should be preferred to global lookups where possible.\n $: function(selector) {\n return this.$el.find(selector);\n },\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // **render** is the core function that your view should override, in order\n // to populate its element (`this.el`), with the appropriate HTML. The\n // convention is for **render** to always return `this`.\n render: function() {\n return this;\n },\n\n // Remove this view by taking the element out of the DOM, and removing any\n // applicable Backbone.Events listeners.\n remove: function() {\n this.$el.remove();\n this.stopListening();\n return this;\n },\n\n // Change the view's element (`this.el` property), including event\n // re-delegation.\n setElement: function(element, delegate) {\n if (this.$el) this.undelegateEvents();\n this.$el = element instanceof Backbone.$ ? element : Backbone.$(element);\n this.el = this.$el[0];\n if (delegate !== false) this.delegateEvents();\n return this;\n },\n\n // Set callbacks, where `this.events` is a hash of\n //\n // *{\"event selector\": \"callback\"}*\n //\n // {\n // 'mousedown .title': 'edit',\n // 'click .button': 'save',\n // 'click .open': function(e) { ... }\n // }\n //\n // pairs. Callbacks will be bound to the view, with `this` set properly.\n // Uses event delegation for efficiency.\n // Omitting the selector binds the event to `this.el`.\n // This only works for delegate-able events: not `focus`, `blur`, and\n // not `change`, `submit`, and `reset` in Internet Explorer.\n delegateEvents: function(events) {\n if (!(events || (events = _.result(this, 'events')))) return this;\n this.undelegateEvents();\n for (var key in events) {\n var method = events[key];\n if (!_.isFunction(method)) method = this[events[key]];\n if (!method) continue;\n\n var match = key.match(delegateEventSplitter);\n var eventName = match[1], selector = match[2];\n method = _.bind(method, this);\n eventName += '.delegateEvents' + this.cid;\n if (selector === '') {\n this.$el.on(eventName, method);\n } else {\n this.$el.on(eventName, selector, method);\n }\n }\n return this;\n },\n\n // Clears all callbacks previously bound to the view with `delegateEvents`.\n // You usually don't need to use this, but may wish to if you have multiple\n // Backbone views attached to the same DOM element.\n undelegateEvents: function() {\n this.$el.off('.delegateEvents' + this.cid);\n return this;\n },\n\n // Ensure that the View has a DOM element to render into.\n // If `this.el` is a string, pass it through `$()`, take the first\n // matching element, and re-assign it to `el`. Otherwise, create\n // an element from the `id`, `className` and `tagName` properties.\n _ensureElement: function() {\n if (!this.el) {\n var attrs = _.extend({}, _.result(this, 'attributes'));\n if (this.id) attrs.id = _.result(this, 'id');\n if (this.className) attrs['class'] = _.result(this, 'className');\n var $el = Backbone.$('<' + _.result(this, 'tagName') + '>').attr(attrs);\n this.setElement($el, false);\n } else {\n this.setElement(_.result(this, 'el'), false);\n }\n }\n\n });\n\n // Backbone.sync\n // -------------\n\n // Override this function to change the manner in which Backbone persists\n // models to the server. You will be passed the type of request, and the\n // model in question. By default, makes a RESTful Ajax request\n // to the model's `url()`. Some possible customizations could be:\n //\n // * Use `setTimeout` to batch rapid-fire updates into a single request.\n // * Send up the models as XML instead of JSON.\n // * Persist models via WebSockets instead of Ajax.\n //\n // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests\n // as `POST`, with a `_method` parameter containing the true HTTP method,\n // as well as all requests with the body as `application/x-www-form-urlencoded`\n // instead of `application/json` with the model in a param named `model`.\n // Useful when interfacing with server-side languages like **PHP** that make\n // it difficult to read the body of `PUT` requests.\n Backbone.sync = function(method, model, options) {\n var type = methodMap[method];\n\n // Default options, unless specified.\n _.defaults(options || (options = {}), {\n emulateHTTP: Backbone.emulateHTTP,\n emulateJSON: Backbone.emulateJSON\n });\n\n // Default JSON-request options.\n var params = {type: type, dataType: 'json'};\n\n // Ensure that we have a URL.\n if (!options.url) {\n params.url = _.result(model, 'url') || urlError();\n }\n\n // Ensure that we have the appropriate request data.\n if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n params.contentType = 'application/json';\n params.data = JSON.stringify(options.attrs || model.toJSON(options));\n }\n\n // For older servers, emulate JSON by encoding the request into an HTML-form.\n if (options.emulateJSON) {\n params.contentType = 'application/x-www-form-urlencoded';\n params.data = params.data ? {model: params.data} : {};\n }\n\n // For older servers, emulate HTTP by mimicking the HTTP method with `_method`\n // And an `X-HTTP-Method-Override` header.\n if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) {\n params.type = 'POST';\n if (options.emulateJSON) params.data._method = type;\n var beforeSend = options.beforeSend;\n options.beforeSend = function(xhr) {\n xhr.setRequestHeader('X-HTTP-Method-Override', type);\n if (beforeSend) return beforeSend.apply(this, arguments);\n };\n }\n\n // Don't process data on a non-GET request.\n if (params.type !== 'GET' && !options.emulateJSON) {\n params.processData = false;\n }\n\n // If we're sending a `PATCH` request, and we're in an old Internet Explorer\n // that still has ActiveX enabled by default, override jQuery to use that\n // for XHR instead. Remove this line when jQuery supports `PATCH` on IE8.\n if (params.type === 'PATCH' && noXhrPatch) {\n params.xhr = function() {\n return new ActiveXObject(\"Microsoft.XMLHTTP\");\n };\n }\n\n // Make the request, allowing the user to override any Ajax options.\n var xhr = options.xhr = Backbone.ajax(_.extend(params, options));\n model.trigger('request', model, xhr, options);\n return xhr;\n };\n\n var noXhrPatch =\n typeof window !== 'undefined' && !!window.ActiveXObject &&\n !(window.XMLHttpRequest && (new XMLHttpRequest).dispatchEvent);\n\n // Map from CRUD to HTTP for our default `Backbone.sync` implementation.\n var methodMap = {\n 'create': 'POST',\n 'update': 'PUT',\n 'patch': 'PATCH',\n 'delete': 'DELETE',\n 'read': 'GET'\n };\n\n // Set the default implementation of `Backbone.ajax` to proxy through to `$`.\n // Override this if you'd like to use a different library.\n Backbone.ajax = function() {\n return Backbone.$.ajax.apply(Backbone.$, arguments);\n };\n\n // Backbone.Router\n // ---------------\n\n // Routers map faux-URLs to actions, and fire events when routes are\n // matched. Creating a new one sets its `routes` hash, if not set statically.\n var Router = Backbone.Router = function(options) {\n options || (options = {});\n if (options.routes) this.routes = options.routes;\n this._bindRoutes();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regular expressions for matching named param parts and splatted\n // parts of route strings.\n var optionalParam = /\\((.*?)\\)/g;\n var namedParam = /(\\(\\?)?:\\w+/g;\n var splatParam = /\\*\\w+/g;\n var escapeRegExp = /[\\-{}\\[\\]+?.,\\\\\\^$|#\\s]/g;\n\n // Set up all inheritable **Backbone.Router** properties and methods.\n _.extend(Router.prototype, Events, {\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Manually bind a single named route to a callback. For example:\n //\n // this.route('search/:query/p:num', 'search', function(query, num) {\n // ...\n // });\n //\n route: function(route, name, callback) {\n if (!_.isRegExp(route)) route = this._routeToRegExp(route);\n if (_.isFunction(name)) {\n callback = name;\n name = '';\n }\n if (!callback) callback = this[name];\n var router = this;\n Backbone.history.route(route, function(fragment) {\n var args = router._extractParameters(route, fragment);\n router.execute(callback, args);\n router.trigger.apply(router, ['route:' + name].concat(args));\n router.trigger('route', name, args);\n Backbone.history.trigger('route', router, name, args);\n });\n return this;\n },\n\n // Execute a route handler with the provided parameters. This is an\n // excellent place to do pre-route setup or post-route cleanup.\n execute: function(callback, args) {\n if (callback) callback.apply(this, args);\n },\n\n // Simple proxy to `Backbone.history` to save a fragment into the history.\n navigate: function(fragment, options) {\n Backbone.history.navigate(fragment, options);\n return this;\n },\n\n // Bind all defined routes to `Backbone.history`. We have to reverse the\n // order of the routes here to support behavior where the most general\n // routes can be defined at the bottom of the route map.\n _bindRoutes: function() {\n if (!this.routes) return;\n this.routes = _.result(this, 'routes');\n var route, routes = _.keys(this.routes);\n while ((route = routes.pop()) != null) {\n this.route(route, this.routes[route]);\n }\n },\n\n // Convert a route string into a regular expression, suitable for matching\n // against the current location hash.\n _routeToRegExp: function(route) {\n route = route.replace(escapeRegExp, '\\\\$&')\n .replace(optionalParam, '(?:$1)?')\n .replace(namedParam, function(match, optional) {\n return optional ? match : '([^/?]+)';\n })\n .replace(splatParam, '([^?]*?)');\n return new RegExp('^' + route + '(?:\\\\?([\\\\s\\\\S]*))?$');\n },\n\n // Given a route, and a URL fragment that it matches, return the array of\n // extracted decoded parameters. Empty or unmatched parameters will be\n // treated as `null` to normalize cross-browser behavior.\n _extractParameters: function(route, fragment) {\n var params = route.exec(fragment).slice(1);\n return _.map(params, function(param, i) {\n // Don't decode the search params.\n if (i === params.length - 1) return param || null;\n return param ? decodeURIComponent(param) : null;\n });\n }\n\n });\n\n // Backbone.History\n // ----------------\n\n // Handles cross-browser history management, based on either\n // [pushState](http://diveintohtml5.info/history.html) and real URLs, or\n // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange)\n // and URL fragments. If the browser supports neither (old IE, natch),\n // falls back to polling.\n var History = Backbone.History = function() {\n this.handlers = [];\n _.bindAll(this, 'checkUrl');\n\n // Ensure that `History` can be used outside of the browser.\n if (typeof window !== 'undefined') {\n this.location = window.location;\n this.history = window.history;\n }\n };\n\n // Cached regex for stripping a leading hash/slash and trailing space.\n var routeStripper = /^[#\\/]|\\s+$/g;\n\n // Cached regex for stripping leading and trailing slashes.\n var rootStripper = /^\\/+|\\/+$/g;\n\n // Cached regex for detecting MSIE.\n var isExplorer = /msie [\\w.]+/;\n\n // Cached regex for removing a trailing slash.\n var trailingSlash = /\\/$/;\n\n // Cached regex for stripping urls of hash.\n var pathStripper = /#.*$/;\n\n // Has the history handling already been started?\n History.started = false;\n\n // Set up all inheritable **Backbone.History** properties and methods.\n _.extend(History.prototype, Events, {\n\n // The default interval to poll for hash changes, if necessary, is\n // twenty times a second.\n interval: 50,\n\n // Are we at the app root?\n atRoot: function() {\n return this.location.pathname.replace(/[^\\/]$/, '$&/') === this.root;\n },\n\n // Gets the true hash value. Cannot use location.hash directly due to bug\n // in Firefox where location.hash will always be decoded.\n getHash: function(window) {\n var match = (window || this).location.href.match(/#(.*)$/);\n return match ? match[1] : '';\n },\n\n // Get the cross-browser normalized URL fragment, either from the URL,\n // the hash, or the override.\n getFragment: function(fragment, forcePushState) {\n if (fragment == null) {\n if (this._hasPushState || !this._wantsHashChange || forcePushState) {\n fragment = decodeURI(this.location.pathname + this.location.search);\n var root = this.root.replace(trailingSlash, '');\n if (!fragment.indexOf(root)) fragment = fragment.slice(root.length);\n } else {\n fragment = this.getHash();\n }\n }\n return fragment.replace(routeStripper, '');\n },\n\n // Start the hash change handling, returning `true` if the current URL matches\n // an existing route, and `false` otherwise.\n start: function(options) {\n if (History.started) throw new Error(\"Backbone.history has already been started\");\n History.started = true;\n\n // Figure out the initial configuration. Do we need an iframe?\n // Is pushState desired ... is it available?\n this.options = _.extend({root: '/'}, this.options, options);\n this.root = this.options.root;\n this._wantsHashChange = this.options.hashChange !== false;\n this._wantsPushState = !!this.options.pushState;\n this._hasPushState = !!(this.options.pushState && this.history && this.history.pushState);\n var fragment = this.getFragment();\n var docMode = document.documentMode;\n var oldIE = (isExplorer.exec(navigator.userAgent.toLowerCase()) && (!docMode || docMode <= 7));\n\n // Normalize root to always include a leading and trailing slash.\n this.root = ('/' + this.root + '/').replace(rootStripper, '/');\n\n if (oldIE && this._wantsHashChange) {\n var frame = Backbone.$('\"\n )\n });\n modal.show( { backdrop: true } );\n}\n\n\n// ============================================================================\n return {\n Modal : Modal,\n hide_modal : hide_modal,\n show_modal : show_modal,\n show_message : show_message,\n show_in_overlay : show_in_overlay,\n };\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/layout/modal.js\n ** module id = 129\n ** module chunks = 4\n **/","// ============================================================================\n// Globals (temporary)\n// ============================================================================\n// HACK: add these to global scope until we stop asking for them there...\n// Via webpack: these are required here automatically by the provider plugin\n// Via script tag: these are redundant (identities) since they're already global\nwindow[ 'jQuery' ] = jQuery; // a weird form to prevent webpack from sub'ing 'window.jQuery' in the provider plugin\nwindow.$ = jQuery;\nwindow._ = _;\nwindow.Backbone = Backbone;\n// console.debug('globals loaded:', window.jQuery, window.Backbone, '...');\n\n// these are galaxy globals not defined in the provider (although they could be - but why encourage that?)\nwindow.panels = require( 'layout/panel' );\n// using extend bc there are multiple fns/objs to decorate the window with\n_.extend( window, require( 'layout/modal' ) );\nwindow.async_save_text = require( 'utils/async-save-text' );\nvar POPUPMENU = require( 'ui/popupmenu' );\nwindow.make_popupmenu = POPUPMENU.make_popupmenu;\nwindow.make_popup_menus = POPUPMENU.make_popup_menus;\nwindow.init_tag_click_function = require( 'ui/autocom_tagging' );\nvar TOURS = require( 'mvc/tours' );\nvar QUERY_STRING = require( 'utils/query-string-parsing' );\n// console.debug( 'galaxy globals loaded' );\n\n// ============================================================================\n// jquery on document ready\n// ============================================================================\n// Replace select box with a text input box + autocomplete.\nfunction replace_big_select_inputs(min_length, max_length, select_elts) {\n\n function refresh_select2( element ) {\n var select_elt = $(element);\n var options = { placeholder:'Click to select',\n closeOnSelect: !select_elt.is(\"[MULTIPLE]\"),\n dropdownAutoWidth : true,\n containerCssClass: 'select2-minwidth'\n };\n return element.select2( options );\n }\n\n // To do replace, the select2 plugin must be loaded.\n if (!jQuery.fn.select2) {\n return;\n }\n\n // Set default for min_length and max_length\n if (min_length === undefined) {\n min_length = 20;\n }\n if (max_length === undefined) {\n max_length = 3000;\n }\n\n select_elts = select_elts || $('select');\n\n select_elts.each( function() {\n var select_elt = $(this).not('[multiple]');\n // Make sure that options is within range.\n var num_options = select_elt.find('option').length;\n if ( (num_options < min_length) || (num_options > max_length) ) {\n return;\n }\n\n if (select_elt.hasClass(\"no-autocomplete\")) {\n return;\n }\n\n /* Replaced jQuery.autocomplete with select2, notes:\n * - multiple selects are supported\n * - the original element is updated with the value, convert_to_values should not be needed\n * - events are fired when updating the original element, so refresh_on_change should just work\n *\n * - should we still sort dbkey fields here?\n */\n refresh_select2( select_elt );\n });\n}\n\n// Initialize refresh events.\nfunction init_refresh_on_change () {\n $(\"select[refresh_on_change='true']\")\n .off('change')\n .change(function() {\n var select_field = $(this),\n select_val = select_field.val(),\n refresh = false,\n ref_on_change_vals = select_field.attr(\"refresh_on_change_values\");\n if (ref_on_change_vals) {\n ref_on_change_vals = ref_on_change_vals.split(',');\n var last_selected_value = select_field.attr(\"last_selected_value\");\n if ($.inArray(select_val, ref_on_change_vals) === -1 && $.inArray(last_selected_value, ref_on_change_vals) === -1) {\n return;\n }\n }\n $(window).trigger(\"refresh_on_change\");\n $(document).trigger(\"convert_to_values\"); // Convert autocomplete text to values\n select_field.get(0).form.submit();\n });\n\n // checkboxes refresh on change\n $(\":checkbox[refresh_on_change='true']\")\n .off('click')\n .click( function() {\n var select_field = $(this),\n select_val = select_field.val(),\n refresh = false,\n ref_on_change_vals = select_field.attr(\"refresh_on_change_values\");\n if (ref_on_change_vals) {\n ref_on_change_vals = ref_on_change_vals.split(',');\n var last_selected_value = select_field.attr(\"last_selected_value\");\n if ($.inArray(select_val, ref_on_change_vals) === -1 && $.inArray(last_selected_value, ref_on_change_vals) === -1) {\n return;\n }\n }\n $(window).trigger(\"refresh_on_change\");\n select_field.get(0).form.submit();\n });\n\n // Links with confirmation\n $( \"a[confirm]\" )\n .off('click')\n .click( function() {\n return confirm( $(this).attr(\"confirm\") );\n });\n}\n// used globally in grid-view\nwindow.init_refresh_on_change = init_refresh_on_change;\n\n$(document).ready( function() {\n // Refresh events for form fields.\n init_refresh_on_change();\n\n // Tooltips\n if ( $.fn.tooltip ) {\n // Put tooltips below items in panel header so that they do not overlap masthead.\n $(\".unified-panel-header [title]\").tooltip( { placement: 'bottom' } );\n\n // default tooltip initialization, it will follow the data-placement tag for tooltip location\n // and fallback to 'top' if not present\n $(\"[title]\").tooltip();\n }\n // Make popup menus.\n make_popup_menus();\n\n // Replace big selects.\n replace_big_select_inputs(20, 1500);\n\n // If galaxy_main frame does not exist and link targets galaxy_main,\n // add use_panels=True and set target to self.\n $(\"a\").click( function() {\n var anchor = $(this);\n var galaxy_main_exists = (parent.frames && parent.frames.galaxy_main);\n if ( ( anchor.attr( \"target\" ) == \"galaxy_main\" ) && ( !galaxy_main_exists ) ) {\n var href = anchor.attr(\"href\");\n if (href.indexOf(\"?\") == -1) {\n href += \"?\";\n }\n else {\n href += \"&\";\n }\n href += \"use_panels=True\";\n anchor.attr(\"href\", href);\n anchor.attr(\"target\", \"_self\");\n }\n return anchor;\n });\n\n var et = JSON.parse(sessionStorage.getItem('activeGalaxyTour'));\n if (et){\n et = TOURS.hooked_tour_from_data(et);\n if (et && et.steps){\n if (window && window.self === window.top){\n // Only kick off a new tour if this is the toplevel window (non-iframe). This\n // functionality actually *could* be useful, but we'd need to handle it better and\n // come up with some design guidelines for tours jumping between windows.\n // Disabling for now.\n var tour = new Tour(_.extend({\n steps: et.steps,\n }, TOURS.tour_opts));\n tour.init();\n tour.restart();\n }\n }\n }\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/onload.js\n ** module id = 130\n ** module chunks = 4\n **/","define([ 'jquery' ], function( jQuery ){\n'use_strict';\n\nvar $ = jQuery;\n// ============================================================================\n/**\n * Edit and save text asynchronously.\n */\nfunction async_save_text( click_to_edit_elt, text_elt_id, save_url,\n text_parm_name, num_cols, use_textarea, num_rows, on_start, on_finish ) {\n // Set defaults if necessary.\n if (num_cols === undefined) {\n num_cols = 30;\n }\n if (num_rows === undefined) {\n num_rows = 4;\n }\n\n // Set up input element.\n $(\"#\" + click_to_edit_elt).click(function() {\n // Check if this is already active\n if ( $(\"#renaming-active\").length > 0) {\n return;\n }\n var text_elt = $(\"#\" + text_elt_id),\n old_text = text_elt.text(),\n t;\n\n if (use_textarea) {\n t = $(\"\").attr({ rows: num_rows, cols: num_cols }).text( $.trim(old_text) );\n } else {\n t = $(\"\").attr({ value: $.trim(old_text), size: num_cols });\n }\n t.attr(\"id\", \"renaming-active\");\n t.blur( function() {\n $(this).remove();\n text_elt.show();\n if (on_finish) {\n on_finish(t);\n }\n });\n t.keyup( function( e ) {\n if ( e.keyCode === 27 ) {\n // Escape key\n $(this).trigger( \"blur\" );\n } else if ( e.keyCode === 13 ) {\n // Enter key submits\n var ajax_data = {};\n ajax_data[text_parm_name] = $(this).val();\n $(this).trigger( \"blur\" );\n $.ajax({\n url: save_url,\n data: ajax_data,\n error: function() {\n alert( \"Text editing for elt \" + text_elt_id + \" failed\" );\n // TODO: call finish or no? For now, let's not because error occurred.\n },\n success: function(processed_text) {\n // Set new text and call finish method.\n if (processed_text !== \"\") {\n text_elt.text(processed_text);\n } else {\n text_elt.html(\"None\");\n }\n if (on_finish) {\n on_finish(t);\n }\n }\n });\n }\n });\n\n if (on_start) {\n on_start(t);\n }\n // Replace text with input object and focus & select.\n text_elt.hide();\n t.insertAfter(text_elt);\n t.focus();\n t.select();\n\n return;\n });\n}\n\n// ============================================================================\n return async_save_text;\n});\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/utils/async-save-text.js\n ** module id = 131\n ** module chunks = 4\n **/","define([ 'jquery' ], function( jQuery ){\n'use_strict';\n\nvar $ = jQuery;\n\n// ============================================================================\n// TODO: unify popup menus and/or eliminate this\n/**\n * Sets up popupmenu rendering and binds options functions to the appropriate links.\n * initial_options is a dict with text describing the option pointing to either (a) a\n * function to perform; or (b) another dict with two required keys, 'url' and 'action' (the\n * function to perform. (b) is useful for exposing the underlying URL of the option.\n */\nfunction make_popupmenu(button_element, initial_options) {\n /* Use the $.data feature to store options with the link element.\n This allows options to be changed at a later time\n */\n var element_menu_exists = (button_element.data(\"menu_options\"));\n button_element.data(\"menu_options\", initial_options);\n\n // If element already has menu, nothing else to do since HTML and actions are already set.\n if (element_menu_exists) { return; }\n\n button_element.bind(\"click.show_popup\", function(e) {\n // Close existing visible menus\n $(\".popmenu-wrapper\").remove();\n\n // Need setTimeouts so clicks don't interfere with each other\n setTimeout( function() {\n // Dynamically generate the wrapper holding all the selectable options of the menu.\n var menu_element = $( \"\" );\n var options = button_element.data(\"menu_options\");\n if (_.size(options) <= 0) {\n $(\"
  • No Options.
  • \").appendTo(menu_element);\n }\n $.each( options, function( k, v ) {\n if (v) {\n // Action can be either an anonymous function and a mapped dict.\n var action = v.action || v;\n menu_element.append( $(\"
  • \").append( $(\"\").attr(\"href\", v.url).html(k).click(action) ) );\n } else {\n menu_element.append( $(\"
  • \").addClass( \"head\" ).append( $(\"
    \").html(k) ) );\n }\n });\n var wrapper = $( \"
    \" )\n .append( menu_element ).appendTo( \"body\" );\n\n var x = e.pageX - wrapper.width() / 2 ;\n x = Math.min( x, $(document).scrollLeft() + $(window).width() - $(wrapper).width() - 5 );\n x = Math.max( x, $(document).scrollLeft() + 5 );\n\n wrapper.css({\n top: e.pageY,\n left: x\n });\n }, 10);\n\n setTimeout( function() {\n // Bind click event to current window and all frames to remove any visible menus\n // Bind to document object instead of window object for IE compat\n var close_popup = function(el) {\n $(el).bind(\"click.close_popup\", function() {\n $(\".popmenu-wrapper\").remove();\n el.unbind(\"click.close_popup\");\n });\n };\n close_popup( $(window.document) ); // Current frame\n close_popup( $(window.top.document) ); // Parent frame\n for (var frame_id = window.top.frames.length; frame_id--;) { // Sibling frames\n var frame = $(window.top.frames[frame_id].document);\n close_popup(frame);\n }\n }, 50);\n\n return false;\n });\n\n}\n\n/**\n * Convert two seperate (often adjacent) divs into galaxy popupmenu\n * - div 1 contains a number of anchors which become the menu options\n * - div 1 should have a 'popupmenu' attribute\n * - this popupmenu attribute contains the id of div 2\n * - div 2 becomes the 'face' of the popupmenu\n *\n * NOTE: make_popup_menus finds and operates on all divs with a popupmenu attr (no need to point it at something)\n * but (since that selector searches the dom on the page), you can send a parent in\n * NOTE: make_popup_menus, and make_popupmenu are horrible names\n */\nfunction make_popup_menus( parent ) {\n // find all popupmenu menu divs (divs that contains anchors to be converted to menu options)\n // either in the parent or the document if no parent passed\n parent = parent || document;\n $( parent ).find( \"div[popupmenu]\" ).each( function() {\n var options = {};\n var menu = $(this);\n\n // find each anchor in the menu, convert them into an options map: { a.text : click_function }\n menu.find( \"a\" ).each( function() {\n var link = $(this),\n link_dom = link.get(0),\n confirmtext = link_dom.getAttribute( \"confirm\" ),\n href = link_dom.getAttribute( \"href\" ),\n target = link_dom.getAttribute( \"target\" );\n\n // no href - no function (gen. a label)\n if (!href) {\n options[ link.text() ] = null;\n\n } else {\n options[ link.text() ] = {\n url: href,\n action: function( event ) {\n\n // if theres confirm text, send the dialog\n if ( !confirmtext || confirm( confirmtext ) ) {\n // link.click() doesn't use target for some reason,\n // so manually do it here.\n if (target) {\n window.open(href, target);\n return false;\n }\n // For all other links, do the default action.\n else {\n link.click();\n }\n } else {\n event.preventDefault();\n }\n\n }\n };\n }\n });\n // locate the element with the id corresponding to the menu's popupmenu attr\n var box = $( parent ).find( \"#\" + menu.attr( 'popupmenu' ) );\n\n // For menus with clickable link text, make clicking on the link go through instead\n // of activating the popup menu\n box.find(\"a\").bind(\"click\", function(e) {\n e.stopPropagation(); // Stop bubbling so clicking on the link goes through\n return true;\n });\n\n // attach the click events and menu box building to the box element\n make_popupmenu(box, options);\n box.addClass(\"popup\");\n menu.remove();\n });\n}\n\n// ============================================================================\n return {\n make_popupmenu : make_popupmenu,\n make_popup_menus : make_popup_menus\n };\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./galaxy/scripts/ui/popupmenu.js\n ** module id = 132\n ** module chunks = 4\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/static/scripts/layout/panel.js b/static/scripts/layout/panel.js index bb9c2a5a2be..ab31a0b1c56 100644 --- a/static/scripts/layout/panel.js +++ b/static/scripts/layout/panel.js @@ -1,2 +1,2 @@ -define(["jquery","libs/underscore","libs/backbone","mvc/base-mvc"],function(a,b,c,d){"use strict";var e=a,f=160,g=800,h=c.View.extend(d.LoggableMixin).extend({_logNamespace:"layout",initialize:function(a){this.log(this+".initialize:",a),this.title=a.title||this.title||"",this.hidden=!1,this.savedSize=null,this.hiddenByTool=!1},$center:function(){return this.$el.siblings("#center")},$toggleButton:function(){return this.$(".unified-panel-footer > .panel-collapse")},render:function(){this.log(this+".render:"),this.$el.html(this.template(this.id))},template:function(){return[this._templateHeader(),this._templateBody(),this._templateFooter()].join("")},_templateHeader:function(){return['
    ','
    ','
    ','
    ',b.escape(this.title),"
    ","
    ","
    "].join("")},_templateBody:function(){return'
    '},_templateFooter:function(){return['