{"version":3,"sources":["kendo.filemanager.js"],"names":["f","define","$","undefined","kendo","window","extend","deferred","Deferred","proxy","Class","Command","init","options","this","filemanager","CreateFolderCommand","fn","call","exec","that","commandStack","_commandStack","dataSource","_viewDataSource","removeProxy","_remove","_item","_createNewModel","push","item","toJSON","fail","add","pushDestroy","RenameCommand","target","viewItem","_view","widgetComponent","dataItem","edit","_renameTreeViewItem","uid","data","treeView","getByUid","realItem","get","id","_prompt","type","defaultInput","name","done","newName","set","DeleteCommand","itemsToRemove","items","getSelected","is","length","_confirm","removeItems","_itemsToRemove","Array","isArray","_removeItem","itemToRemove","splice","then","remove","CopyCommand","i","targetDataSource","children","fileManagerNewItem","MoveCommand","cloning","promise","promises","_delete","whenAll","always","SortCommand","sortOptions","defaultSortOption","dir","field","sort","folderSortOption","SearchCommand","filter","operator","value","ChangeViewCommand","view","resize","OpenDialogCommand","dialog","open","console","warn","format","TogglePaneCommand","pane","resizable","getResizable","toggle","wrapper","find","handle","_resizeDraggable","CommandStack","_stack","_keys","guid","next","key","keys","nextCommand","resolve","command","reject","empty","ui","FileManagerCommand","commands","jQuery","amd","a1","a2","a3","ListView","TreeView","Grid","Observable","NAVIGATE","SELECT","EXPAND","CHANGE","OPEN","LOAD","KEYDOWN","KEYDOWNACTION","NS","fileManagerDraggables","fileManagerDragOrigin","registerViewComponent","componentName","component","ViewComponents","getViewComponent","Component","widget","element","Error","_bindEvents","bind","_binding","_bound","ev","trigger","preventDefault","_setDSOptions","dataSourceOptions","_initDragAndDrop","dropFilter","draggable","kendoDraggable","hint","_hint","cursorOffset","top","left","holdToDrag","ignore","hold","_hold","userEvents","minHold","droptarget","kendoDropTargetArea","drop","_onDrop","dragenter","dropTarget","addClass","dragleave","removeClass","currentTarget","selectable","clear","select","cancel","selectedItems","messages","isDirectory","targetId","itemIds","refresh","setDataSource","destroy","ViewComponent","explicitOptions","defaultOptions","kendoKeydown","_kendoKeydown","listView","isLocalBinding","layout","flex","direction","wrap","support","mobileOS","template","editTemplate","navigatable","_select","on","_dblClick","_mousedown","_keydown","_keydownAction","sender","input","isDirty","_modelFromElement","editable","dirty","_closeEditable","dataItems","entries","keyCode","ESC","node","closest","which","ENTER","preventKendoKeydown","_handleEnterKey","current","_triggerOpen","entry","addFolder","selected","off","dataTextField","_refreshDataSource","existingItem","action","parentNode","map","hasChildren","findByUid","_progress","each","index","append","_shouldFocus","focus","_nextVisible","_navigate","_expand","entryId","path","noop","selectedItem","reload","read","_setupColumns","grid","mode","confirmation","sortable","columns","title","nameField","icon","getFileGroup","extension","htmlEncode","dateCreatedField","sizeField","size","getFileSizeMessage","table","_toggleFocusable","saveRow","F2","setTimeout","editorContainer","_editContainer","_tryCancel","cancelChanges","container","val","state","addBack","toggleClass","model","_destroyEditable","_displayRow","addRow","editRow","FileManagerDetailsToggle","ToolBar","Item","toolbar","CLICK","TOGGLE","CLOSE","ACTION","FileManagerToolBar","_extendOptions","_attachEvents","events","concat","defaultTools","createFolder","text","rules","upload","sortDirection","buttons","togglable","group","sortField","menuButtons","changeView","spacer","details","overflow","search","_click","_change","tools","Object","_extendToolsOptions","tool","toolOptions","toolRules","isBuiltInTool","isPlainObject","JSON","parse","deepExtend","attributes","aria-label","data-command","data-options","_mapButtonGroups","_mapMenuButtons","remote","hidden","button","initialView","isToolEnabled","toolName","found","args","fileManagerSearch","SearchTool","iconWrapper","renderIcon","addUidAttr","addIdAttr","addOverflowAttr","attr","placeholder","_inputHandler","_input","registerComponent","label","switchElement","switchInstance","Switch","change","checked","detailsChecked","unchecked","detailsUnchecked","fileManagerDetailsToggle","parent","FileEntry","FileManagerDataSource","Node","HierarchicalDataSource","DataSource","schemas","fields","defaultValue","hasDirectories","created","createdUtc","modified","modifiedUtc","isDirectoryObject","getter","isFunction","_initChildren","transport","parameterMap","_childrenOptions","e","collection","_updateChildrenField","isNew","_defaultId","fileEntry","serverFiltering","_hierarchicalFilter","schema","modelBase","LocalTransport","_attachBubbleHandlers","insert","result","_cleanDestroyed","_hasDirectories","_destroyed","create","_dataSource","observableFileManagerData","array","fetch","_data","ContextMenu","FileManagerContextMenu","_overrideTemplates","_restrictDefaultItems","_extendItems","_onSelect","_onOpen","templates","sprite","defaultItems","rename","spriteCssClass","delete","_extendItem","menu","isEmptyObject","DataBoundWidget","outerHeight","_outerHeight","ERROR","UPLOAD","SUCCESS","HIDE","DATABINDING","DATABOUND","DROP","EXECUTE","COMMAND","CANCEL","TREE_TYPE","DOT","fileManagerStyles","header","navigation","contentContainer","content","preview","treeview","breadcrumb","list","uploadDialog","splitBar","splitBarHorizontal","splitBarHover","splitBarIcon","splitBarNavigation","splitBarPreview","fileManagerTemplateStyles","filePreview","fileInfo","fileName","fileMeta","metaLabel","metaValue","viewTypes","NO_FILE_PREVIEW_TEMPLATE","SINGLE_FILES_PREVIEW_TEMPLATE","MULTIPLE_FILES_PREVIEW_TEMPLATE","FileManager","_wrapper","_renderHeader","_renderContentContainer","_initContextMenu","_renderNavigation","_renderContent","_renderPreview","_initUploadDialog","_resizable","notify","height","contextMenu","uploadUrl","views","dialogs","width","moveConfirm","closable","deleteConfirm","renamePrompt","previewPane","metaFields","noFileTemplate","singleFileTemplate","multipleFilesTemplate","sortDirectionAsc","sortDirectionDesc","typeField","dateModifiedField","gridView","okText","close","noFileSelected","typeSortOrder","nameSortOrder","autoSync","_errorHandler","unbind","_changeHandler","_error","xhr","status","statusText","_resizeHandler","onResize","_initToolbar","menuOptions","executeCommand","_cacheFocus","_initTreeView","_initBreadcrumb","_initView","_initUpload","hide","enablePreview","previewContainer","_setPreviewPaneContent","previewTemplate","previewPaneMessages","previewPaneOptions","selection","styles","html","toolbarElement","toolbarOptions","treeViewElement","_load","_drop","indexOf","DELETE","confirm","kendoConfirm","_restoreFocus","prompt","kendoPrompt","activeElement","document","popup","visible","hasClass","_focusElement","_viewType","viewWrapper","breadcrumbElement","breadcrumbOptions","_breadcrumbChange","Breadcrumb","substring","shift","uploadInstance","dialogMessages","dialogElement","dialogOptions","modal","actions","_clearUploadFilesList","primary","_shouldInitUpload","Dialog","_toggleUploadDropZone","shouldInit","async","saveUrl","uploadElement","uploadOptions","autoUpload","dropZone","Upload","_sendUploadPathParameter","_success","clearAllFiles","zone","setOptions","source","_createResizableSplitBar","cssClass","hover","_initResizableNavigation","contentWrapperWidth","navigationWrapperWidth","contentWrapper","navigationWrapper","insertAfter","end","kendoResizable","start","delta","x","initialDelta","isRtl","getKendoResizable","_initResizablePreview","previewWrapperWidth","previewWrapper","insertBefore","_open","_cancel","el","join","commandName","commandOptions","navigate","load","sync","res","response","_navigateToParent","loaded","parentNodePath","_buildBreadcrumbPath","reverse","_adjustDimensions","gridSelector","listViewSelector","totalHeight","toolbarHeight","breadcrumbHeight","_resize","getSize","dimensions","_path","replace","isRoot","_sort","unbindResize","plugin"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;CAwBC,SAAUA,EAAGC,QACVA,OAAO,wBAAyB,cAAeD,IACjD,WA8QE,MA7QC,UAAUE,EAAGC,GAAb,GACOC,GAAQC,OAAOD,MAAOE,EAASJ,EAAEI,OAAQC,EAAWL,EAAEM,SAAUC,EAAQP,EAAEO,MAAOC,EAAQN,EAAMM,MAC/FC,EAAUD,EAAMJ,QAChBM,KAAM,SAAUC,GACZC,KAAKD,QAAUA,EACfC,KAAKC,YAAcF,EAAQE,eAG/BC,EAAsBL,EAAQL,QAC9BM,KAAM,SAAUC,GACZF,EAAQM,GAAGL,KAAKM,KAAKJ,KAAMD,IAE/BM,KAAM,WACF,GAAIC,GAAON,KAAMC,EAAcK,EAAKL,YAAaM,EAAeN,EAAYO,cAAeC,EAAaR,EAAYS,iBAAmBT,EAAYQ,WAAYE,EAAchB,EAAMW,EAAKM,QAASN,EACjMA,GAAKO,MAAQJ,EAAWK,kBACxBP,EAAaQ,MAAOC,KAAMV,EAAKO,MAAMI,WAAYC,KAAKP,GACtDF,EAAWU,IAAIb,EAAKO,QAExBD,QAAS,WACL,GAAIN,GAAON,KAAMC,EAAcK,EAAKL,YAAaQ,EAAaR,EAAYS,iBAAmBT,EAAYQ,UACzGA,GAAWW,YAAYd,EAAKO,UAGhCQ,EAAgBxB,EAAQL,QACxBM,KAAM,SAAUC,GACZF,EAAQM,GAAGL,KAAKM,KAAKJ,KAAMD,IAE/BM,KAAM,WACF,GAAIC,GAAON,KAAMsB,EAAShB,EAAKP,QAAQuB,OAAQrB,EAAcK,EAAKL,YAAaM,EAAeN,EAAYO,cAAee,EAAWtB,EAAYuB,MAAMC,gBAAgBC,SAASJ,EAC3KA,IAAUC,GACVhB,EAAaQ,MACTO,OAAQA,EACRN,KAAMO,IAEVjB,EAAKL,YAAYuB,MAAMG,KAAKL,IAE5BhB,EAAKsB,oBAAoBN,IAGjCM,oBAAqB,SAAUN,GAC3B,GAAIhB,GAAON,KAAMC,EAAcK,EAAKL,YAAaM,EAAeN,EAAYO,cAAeqB,EAAMP,EAAOQ,KAAK,OAAQd,EAAOV,EAAKL,YAAY8B,SAASN,gBAAgBhB,WAAWuB,SAASH,GAAMI,EAAW3B,EAAKL,YAAYQ,WAAWyB,IAAIlB,EAAKmB,GAChP7B,GAAKL,YAAYmC,SACbC,KAAM,SACNC,aAAcL,EAASM,KACvBjB,OAAQA,IACTkB,KAAK,SAAUC,GACdlC,EAAaQ,MACTO,OAAQA,EACRN,KAAMiB,IAEVA,EAASS,IAAI,OAAQD,QAI7BE,EAAgB9C,EAAQL,QACxBM,KAAM,SAAUC,GACZF,EAAQM,GAAGL,KAAKM,KAAKJ,KAAMD,IAE/BM,KAAM,WAAA,GACoLuC,GAM9Kf,EACAb,EACAiB,EARJ3B,EAAON,KAAMsB,EAAShB,EAAKP,QAAQuB,OAAQrB,EAAcK,EAAKL,YAAa4C,EAAQ5C,EAAY6C,cAAevB,EAAWjB,EAAKL,YAAYuB,MAAMC,gBAAgBC,SAASJ,EACzKA,IAAUA,EAAOyB,GAAG,sBAAwBF,GAASA,EAAMG,OAC3DJ,EAAgBC,EACTvB,GAAUC,EACjBqB,EAAgBrB,EACTD,IACHO,EAAMP,EAAOQ,KAAK,OAClBd,EAAOV,EAAKL,YAAY8B,SAASN,gBAAgBhB,WAAWuB,SAASH,GACrEI,EAAW3B,EAAKL,YAAYQ,WAAWyB,IAAIlB,EAAKmB,IACpDS,EAAgBX,GAEpBhC,EAAYgD,UACRZ,KAAM,SACNf,OAAQA,IACTkB,KAAK,WACJlC,EAAK4C,YAAYN,MAGzBM,YAAa,SAAUL,GACnB,GAAIvC,GAAON,IACXM,GAAK6C,eAAiBC,MAAMC,QAAQR,GAASA,GAASA,GACtDvC,EAAKgD,eAETA,YAAa,WACT,GAAIhD,GAAON,KAAMC,EAAcK,EAAKL,YAAaM,EAAeN,EAAYO,cAAeC,EAAaR,EAAYQ,WAAY8C,IAAiBjD,EAAK6C,eAAeH,QAAU1C,EAAK6C,eAAeK,OAAO,EAAG,GAAG,EAC5MD,KACAhD,EAAaQ,MAAOC,KAAMuC,IAAgBE,KAAK9D,EAAMW,EAAKgD,YAAahD,GAAOX,EAAMW,EAAKgD,YAAahD,IACtGG,EAAWiD,OAAOH,OAI1BI,EAAc9D,EAAQL,QACtBM,KAAM,SAAUC,GACZF,EAAQM,GAAGL,KAAKM,KAAKJ,KAAMD,IAE/BM,KAAM,WAAA,GAEOuD,GACD5C,EAFJV,EAAON,KAAMC,EAAcK,EAAKL,YAAaQ,EAAaR,EAAYQ,WAAYF,EAAeN,EAAYO,cAAeqC,EAAQvC,EAAKP,QAAQ8C,MAAOvB,EAASb,EAAWyB,IAAI5B,EAAKP,QAAQuB,QAASuC,EAAmBvC,EAAOwC,QACpO,KAASF,EAAI,EAAGA,EAAIf,EAAMG,OAAQY,IAC1B5C,EAAOP,EAAWyB,IAAIW,EAAMe,IAAI3C,SACpCD,EAAK+C,oBAAqB,EAC1BxD,EAAaQ,MACTC,KAAMA,EACNM,OAAQA,IAEZuC,EAAiB1C,IAAIH,MAI7BgD,EAAcnE,EAAQL,QACtBM,KAAM,SAAUC,GACZ,GAAIO,GAAON,IACXH,GAAQM,GAAGL,KAAKM,KAAKE,EAAMP,GAC3BO,EAAK6C,mBAET9C,KAAM,WAAA,GAEOuD,GACD5C,EACAiD,EAEAC,EALJ5D,EAAON,KAAMC,EAAcK,EAAKL,YAAaM,EAAeN,EAAYO,cAAeC,EAAaR,EAAYQ,WAAYoC,EAAQvC,EAAKP,QAAQ8C,MAAOvB,EAASb,EAAWyB,IAAI5B,EAAKP,QAAQuB,QAASuC,EAAmBvC,EAAOwC,SAAUK,IAC9O,KAASP,EAAI,EAAGA,EAAIf,EAAMG,OAAQY,IAC1B5C,EAAOP,EAAWyB,IAAIW,EAAMe,IAC5BK,EAAUjD,EAAKC,SACnBgD,EAAQF,oBAAqB,EACzBG,EAAU3D,EAAaQ,MACvBC,KAAMA,EACNM,OAAQA,IACTmC,KAAK9D,EAAMW,EAAK8D,QAAS9D,IAC5B6D,EAASpD,KAAKmD,GACdL,EAAiB1C,IAAI8C,EAEzB3E,GAAM+E,QAAQF,GAAUG,OAAO3E,EAAMW,EAAKgD,YAAahD,KAE3D8D,QAAS,SAAUtC,GACf,GAAIxB,GAAON,IACXM,GAAK6C,eAAepC,KAAKe,EAAKd,OAElCsC,YAAa,WACT,GAAIhD,GAAON,KAAMC,EAAcK,EAAKL,YAAaM,EAAeN,EAAYO,cAAeC,EAAaR,EAAYQ,WAAY8C,IAAiBjD,EAAK6C,eAAeH,QAAU1C,EAAK6C,eAAeK,OAAO,EAAG,GAAG,EAC5MD,KACAhD,EAAaQ,MAAOC,KAAMuC,IAAgBE,KAAK9D,EAAMW,EAAKgD,YAAahD,GAAOX,EAAMW,EAAKgD,YAAahD,IACtGG,EAAWiD,OAAOH,OAI1BgB,EAAc1E,EAAQL,QACtBM,KAAM,SAAUC,GACZF,EAAQM,GAAGL,KAAKM,KAAKJ,KAAMD,IAE/BM,KAAM,WACF,GAAIC,GAAON,KAAMD,EAAUO,EAAKP,QAASE,EAAcK,EAAKL,YAAauE,EAAcvE,EAAYwE,iBACnGjF,GAAOgF,GACHE,IAAK3E,EAAQ2E,IACbC,MAAO5E,EAAQ4E,QAEnB1E,EAAYuB,MAAMC,gBAAgBhB,WAAWmE,MACzC3E,EAAY4E,iBACZL,OAIRM,EAAgBjF,EAAQL,QACxBM,KAAM,SAAUC,GACZF,EAAQM,GAAGL,KAAKM,KAAKJ,KAAMD,IAE/BM,KAAM,WACF,GAAIC,GAAON,KAAMD,EAAUO,EAAKP,QAASE,EAAcK,EAAKL,YAAa8E,GACjEJ,MAAO5E,EAAQ4E,MACfK,SAAUjF,EAAQiF,SAClBC,MAAOlF,EAAQkF,MAEvBhF,GAAYuB,MAAMC,gBAAgBhB,WAAWsE,OAAOA,MAGxDG,EAAoBrF,EAAQL,QAC5BM,KAAM,SAAUC,GACZF,EAAQM,GAAGL,KAAKM,KAAKJ,KAAMD,IAE/BM,KAAM,WACF,GAAIC,GAAON,KAAMD,EAAUO,EAAKP,QAASE,EAAcK,EAAKL,WAC5DA,GAAYkF,KAAKpF,EAAQkF,OACzBhF,EAAYmF,QAAO,MAGvBC,EAAoBxF,EAAQL,QAC5BM,KAAM,SAAUC,GACZF,EAAQM,GAAGL,KAAKM,KAAKJ,KAAMD,IAE/BM,KAAM,WACF,GAAIC,GAAON,KAAMC,EAAcK,EAAKL,YAAaqF,EAASrF,EAAYK,EAAKP,QAAQsC,KAC/EiD,GACAA,EAAOC,OAEPhG,OAAOiG,QAAQC,KAAKnG,EAAMoG,OAAO,mCAAoCpF,EAAKP,QAAQsC,UAI1FsD,EAAoB9F,EAAQL,QAC5BM,KAAM,SAAUC,GACZF,EAAQM,GAAGL,KAAKM,KAAKJ,KAAMD,IAE/BM,KAAM,WACF,GAAIC,GAAON,KAAMC,EAAcK,EAAKL,YAAa2F,EAAO3F,EAAYK,EAAKP,QAAQsC,MAAOwD,EAAYvF,EAAKwF,cACrGF,KACAA,EAAKG,SACDF,GACA5F,EAAY+F,QAAQC,KAAKJ,EAAU9F,QAAQmG,QAAQH,WAI/DD,aAAc,WACV,GAAIxF,GAAON,KAAMC,EAAcK,EAAKL,YAAaoC,EAAO/B,EAAKP,QAAQsC,IACrE,IAAKpC,EAAYkG,iBAGjB,MAAOlG,GAAYkG,iBAAiB9D,MAGxC+D,EAAexG,EAAMJ,QACrBM,KAAM,WACF,GAAIQ,GAAON,IACXM,GAAK+F,UACL/F,EAAKgG,UAETvF,KAAM,SAAUe,GACZ,GAAIxB,GAAON,KAAMuG,EAAOjH,EAAMiH,MAO9B,OANAjG,GAAKgG,MAAMvF,KAAKwF,GAChBjG,EAAK+F,OAAOE,IACRA,KAAMA,EACNzE,KAAMA,EACNrC,SAAUA,KAEPa,EAAK+F,OAAOE,GAAM9G,UAE7B+G,KAAM,WACF,GAAIlG,GAAON,KAAMyG,EAAMnG,EAAKoG,OAAOlD,OAAO,EAAG,GAAImD,EAAcrG,EAAK+F,OAAOI,EAC3E,OAAOE,IAEXC,QAAS,SAAUC,GACf,GAAIvG,GAAON,WACJM,GAAK+F,OAAOQ,EAAQN,MAC3BM,EAAQpH,SAASmH,QAAQC,EAAQ/E,OAErCgF,OAAQ,SAAUD,GACd,GAAIvG,GAAON,WACJM,GAAK+F,OAAOQ,EAAQN,MAC3BM,EAAQpH,SAASqH,OAAOD,EAAQ/E,OAEpC4E,KAAM,WACF,MAAO1G,MAAKsG,OAEhBS,MAAO,WACH,MAA8B,KAAvB/G,KAAK0G,OAAO1D,SAG3BxD,GAAOF,EAAM0H,IACT/G,aACIgH,mBAAoBpH,EACpBuG,aAAcA,EACdc,UACIhH,oBAAqBA,EACrBmB,cAAeA,EACfsB,cAAeA,EACfqB,YAAaA,EACbL,YAAaA,EACbY,YAAaA,EACbO,cAAeA,EACfI,kBAAmBA,EACnBG,kBAAmBA,EACnBM,kBAAmBA,OAIjCpG,OAAOD,MAAM6H,QACR5H,OAAOD,OACE,kBAAVH,SAAwBA,OAAOiI,IAAMjI,OAAS,SAAUkI,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAUpI,EAAGC,QACVA,OAAO,oBACH,iBACA,kBACDD,IACL,WAgiBE,MA/hBC,UAAUE,EAAGC,GAAb,GAmHOmI,GA+HAC,EAkHIC,EAnWJpI,EAAQC,OAAOD,MAAO0H,EAAK1H,EAAM0H,GAAIW,EAAarI,EAAMqI,WAAYnI,EAASJ,EAAEI,OAAQG,EAAQP,EAAEO,MAAO+G,EAAOpH,EAAMoH,KAAMkB,EAAW,WAAYC,EAAS,SAAUC,EAAS,SAAUC,EAAS,SAAUC,EAAO,OAAQC,EAAO,OAAQC,EAAU,UAAWC,EAAgB,gBAAiBC,EAAK,iCAAkCC,KAA4BC,EAAwB,KAC1XC,EAAwB,SAAUC,EAAeC,GACjDzB,EAAG/G,YAAYyI,eAAeF,GAAiBC,GAE/CE,EAAmB,SAAUH,GAC7B,MAAOxB,GAAG/G,YAAYyI,eAAeF,IAAkB,MAEvDI,EAAYjB,EAAWnI,QACvBM,KAAM,SAAU+I,EAAQC,EAAS/I,GAC7B,GAAIO,GAAON,IAGX,IAFAM,EAAKwI,QAAUA,EACfxI,EAAKP,QAAUA,GACX8I,EAGA,KAAUE,OAAM,2FAFhBzI,GAAKmB,gBAAkB,GAAIoH,GAAOC,EAAS/I,GAI/C4H,EAAWxH,GAAGL,KAAKM,KAAKE,IAE5B0I,YAAa,WACThJ,KAAKyB,gBAAgBwH,KAAK,cAAetJ,EAAMK,KAAKkJ,SAAUlJ,OAC9DA,KAAKyB,gBAAgBwH,KAAK,YAAatJ,EAAMK,KAAKmJ,OAAQnJ,QAE9DkJ,SAAU,SAAUE,GACZpJ,KAAKqJ,QAAQ,cAAeD,IAC5BA,EAAGE,kBAGXH,OAAQ,WACJnJ,KAAKqJ,QAAQ,cAEjBE,cAAe,SAAUxJ,EAASyJ,IACzBzJ,EAAQU,YAAc+I,IACvBzJ,EAAQU,WAAa+I,IAG7BC,iBAAkB,SAAUX,EAAS/D,GACjC,GAAIzE,GAAON,IACX+E,GAASA,GAAUzE,EAAKP,QAAQ2J,WAChCZ,EAAUA,GAAWxI,EAAKwI,QAC1BxI,EAAKqJ,UAAYb,EAAQc,gBACrB7E,OAAQA,EACR8E,KAAMlK,EAAMW,EAAKwJ,MAAOxJ,GACxByJ,cACIC,QACAC,UAEJC,YAAY,EACZC,OAAQ,sBACRC,KAAMzK,EAAMW,EAAK+J,MAAO/J,KACzBwB,KAAK,kBACRxB,EAAKqJ,UAAUW,WAAWC,QAAU,IACpCjK,EAAKkK,WAAa1B,EAAQ2B,qBACtB1F,OAAQA,EACR2F,KAAM/K,EAAMW,EAAKqK,QAASrK,GAC1BsK,UAAW,SAAUxB,GACjBA,EAAGyB,WAAWC,SAAS,8BAE3BC,UAAW,SAAU3B,GACjBA,EAAGyB,WAAWG,YAAY,gCAE/BlJ,KAAK,mBAEZuI,MAAO,SAAUjB,GACb,GAAI9I,GAAON,KAAMsB,EAAS8H,EAAG6B,aACxB3J,GAAOyB,GAAG,uBACPzC,EAAKmB,gBAAgByJ,YACrB5K,EAAKmB,gBAAgByJ,WAAWC,QAEpC7K,EAAKmB,gBAAgB2J,OAAO9J,IAE5BhB,EAAKmB,gBAAgByJ,YACrB5K,EAAKmB,gBAAgByJ,WAAWZ,WAAWe,UAGnDvB,MAAO,SAAUxI,GACb,GAAIhB,GAAON,KAAMgB,EAAOV,EAAKmB,gBAAgBC,SAASJ,GAASgK,EAAgBhL,EAAKmB,gBAAgB2J,QAGpG,OAFA9C,GAAwBhI,EAAKmB,gBAC7B4G,EAAwBiD,EACpBA,EAActI,OAAS,EAChB1D,EAAMoG,OAAO,uGAA4G,OAAQ4F,EAActI,OAAQ1C,EAAKP,QAAQwL,SAAS1I,OAEjLvD,EAAMoG,OAAO,mGAAwG1E,EAAKwK,YAAc,SAAW,OAAQxK,EAAKuB,OAE3KoI,QAAS,SAAUvB,GAAV,GAKIxF,GACDzB,EALJ7B,EAAON,KAAMsB,EAAShB,EAAKmB,gBAAgBC,SAAS0H,EAAGyB,YAAaY,EAAWnK,EAAOa,GAAIuJ,IAC9F,IAAKpK,EAAOkK,YAAZ,CAGA,IAAS5H,EAAI,EAAGA,EAAIyE,EAAsBrF,OAAQY,IAC1CzB,EAAKmG,EAAsB5G,SAAS2G,EAAsBzE,IAAIzB,GAClEuJ,EAAQ3K,KAAKoB,EAEjBnC,MAAKqJ,QAAQ,QACT/H,OAAQmK,EACR5I,MAAO6I,MAGf5I,YAAa,WACT,KAAUiG,OAAM,qBAEpB4C,QAAS,SAAUlL,GACfT,KAAKyB,gBAAgBmK,cAAcnL,IAEvCoL,QAAS,WACLvM,EAAMuM,QAAQ7L,KAAK8I,WAG3BtJ,GAAOF,EAAM0H,GAAG/G,aACZ6L,cAAelD,EACfF,kBACAH,sBAAuBA,EACvBI,iBAAkBA,IAElBnB,EAAWoB,EAAUpJ,QACrBM,KAAM,SAAUgJ,EAAS/I,EAASgM,GAC9B,GAAIzL,GAAON,KAAMwJ,EAAoBuC,EAAgBtL,WAAY8K,EAAWQ,EAAgBR,QAC5FxL,GAAUP,KAAWc,EAAK0L,eAAgBjM,GAAWwL,SAAUA,IAC/DjL,EAAKiJ,cAAcxJ,EAASyJ,GAC5BzJ,EAAQkM,aAAelM,EAAQkM,cAAgBtM,EAAMW,EAAK4L,cAAe5L,GACzEsI,EAAUzI,GAAGL,KAAKM,KAAKJ,KAAMgH,EAAGQ,SAAUsB,EAAS/I,GACnDO,EAAK6L,SAAW7L,EAAKmB,gBACrBnB,EAAK0I,cACD+C,EAAgBpC,aAAc,GAAUH,EAAkB4C,gBAC1D9L,EAAKmJ,oBAGbuC,gBACIK,OAAQ,OACRC,MACIC,UAAW,MACXC,KAAM,QAEVtB,WAAY5L,EAAMmN,QAAQC,SAAW,MAAQ,WAC7CC,SAAU,+QACVC,aAAc,oTACdlD,WAAY,mBACZmD,aAAa,GAEjB7D,YAAa,WACT,GAAI1I,GAAON,KAAMmM,EAAW7L,EAAK6L,QACjCA,GAASlD,KAAKlB,EAAQpI,EAAMW,EAAKwM,QAASxM,IAC1C6L,EAASrD,QAAQiE,GAAG,WAAa3E,EAAIzI,EAAMW,EAAK0M,UAAW1M,IAC3D6L,EAASrD,QAAQiE,GAAG,YAAc3E,EAAI,qCAAsCzI,EAAMW,EAAK2M,WAAY3M,IACnG6L,EAASrD,QAAQiE,GAAG7E,EAAUE,EAAI,eAAgBzI,EAAMW,EAAK4M,SAAU5M,IACvE6L,EAASrD,QAAQiE,GAAG7E,EAAUE,EAAIzI,EAAMW,EAAK6M,eAAgB7M,IAC7D6L,EAASlD,KAAK,OAAQ,SAAUG,GAAV,GACdgE,GAAShE,EAAGgE,OACZC,EAAQjE,EAAGpI,KAAKiF,KAAK,QACzBoH,GAAMN,GAAG,OAAQ,WACb,GAAIO,GAAUF,EAAOG,kBAAkBH,EAAOI,SAAS1E,SAAS2E,KAChEL,GAAOM,iBACFJ,GACDhN,EAAK+I,QAAQ,cAIzB8C,EAASlD,KAAK,SAAU,WACpB3I,EAAK+I,QAAQ,YAEjBT,EAAUzI,GAAG6I,YAAY5I,KAAKJ,OAElC8M,QAAS,WACL,GAAIxM,GAAON,KAAM2N,EAAYrN,EAAKwC,aAClCxC,GAAK+I,QAAQxB,GAAU+F,QAASD,KAEpCT,SAAU,SAAU9D,GAChB,GAAI9I,GAAON,IACPoJ,GAAGyE,UAAYvO,EAAMoH,KAAKoH,MAC1BxN,EAAK6L,SAASuB,iBACdpN,EAAK+I,QAAQ,YAGrB8D,eAAgB,SAAU/D,GACtB,GAAI9I,GAAON,KAAMsB,EAASlC,EAAEgK,EAAG9H,QAAQ2E,KAAK,mBACxC3E,GAAO0B,SAAW1B,EAAOyB,GAAG,iBAC5BzC,EAAK+I,QAAQlB,GACT7G,OAAQA,EACRuM,QAASzE,EAAGyE,WAIxBZ,WAAY,SAAU7D,GAClB,GAAI9I,GAAON,KAAM+N,EAAO3O,EAAEgK,EAAG9H,QAAQ0M,QAAQ,mBAC5B,KAAb5E,EAAG6E,OAAgBF,EAAKhL,GAAG,uBAC3BzC,EAAK6L,SAASjB,WAAWC,QACzB7K,EAAK6L,SAASf,OAAO2C,KAG7B7B,cAAe,SAAU9C,GACrB,GAAI9I,GAAON,IACPoJ,GAAGyE,UAAYnH,EAAKwH,OAAU9E,EAAG+E,qBACjC7N,EAAK8N,gBAAgBhF,IAG7BgF,gBAAiB,SAAUhF,GACvB,GAAI9I,GAAON,KAAMsB,EAASlC,EAAEgK,EAAG9H,QAASyM,EAAOzN,EAAK6L,SAASkC,SACzD/N,GAAKmB,gBAAgB+L,UAAYlM,EAAOyB,GAAG,SAC3CzB,EAAO+H,QAAQ,QACP/I,EAAKmB,gBAAgB+L,UAC7BlN,EAAKgO,aAAaP,GAEtB3E,EAAG+E,qBAAsB,GAE7BnB,UAAW,SAAU5D,GACjB,GAAI9I,GAAON,KAAM+N,EAAO3O,EAAEgK,EAAG9H,QAAQ0M,QAAQ,mBAC7C1N,GAAKgO,aAAaP,IAEtBO,aAAc,SAAUP,GAAV,GAKN/M,GAJAV,EAAON,IACP+N,GAAKhL,GAAG,kBAGR/B,EAAOV,EAAK6L,SAASzK,SAASqM,GAC9B/M,GACAV,EAAK+I,QAAQrB,GAAQuG,MAAOvN,MAGpCwN,UAAW,WACPxO,KAAKmM,SAAShL,OAElBQ,KAAM,SAAUL,GACZ,GAAIhB,GAAON,KAAMyO,EAAWnO,EAAK6L,SAASf,QAC1C9K,GAAK6L,SAASxK,KAAKL,GAAUmN,IAEjC3L,YAAa,WAAA,GAEAc,GACD5C,EAFJV,EAAON,KAAM6C,EAAQvC,EAAK6L,SAASf,SAAUuC,IACjD,KAAS/J,EAAI,EAAGA,EAAIf,EAAMG,OAAQY,IAC1B5C,EAAOV,EAAK6L,SAASzK,SAASmB,EAAMe,IACpC5C,GACA2M,EAAU5M,KAAKC,EAGvB,OAAO2M,IAEX9B,QAAS,WACL7L,KAAKmM,SAASrD,QAAQ4F,IAAItG,GAC1BQ,EAAUzI,GAAG0L,QAAQzL,KAAKJ,SAGlCgH,EAAG/G,YAAYsI,sBAAsB,OAAQf,GACzCC,EAAWmB,EAAUpJ,QACrBM,KAAM,SAAUgJ,EAAS/I,EAASgM,GAC9B,GAAIzL,GAAON,KAAMuL,EAAWQ,EAAgBR,QAC5CxL,GAAUP,KAAWc,EAAK0L,eAAgBjM,GAAWwL,SAAUA,IAC/D3C,EAAUzI,GAAGL,KAAKM,KAAKJ,KAAMgH,EAAGS,SAAUqB,EAAS/I,GACnDO,EAAKyB,SAAWzB,EAAKmB,gBACrBnB,EAAK0I,cACD+C,EAAgBpC,aAAc,GAAUoC,EAAgBK,gBACxD9L,EAAKmJ,oBAGbuC,gBACI2C,cAAe,OACfjF,WAAY,WAEhBkF,mBAAoB,SAAUxF,GAAV,GA6BRyF,GA5BJvO,EAAON,KAAM+B,EAAWzB,EAAKyB,SAAU+M,EAAS1F,EAAG0F,OAAQf,EAAO3E,EAAG2E,KAAMgB,EAAa,KAAMlM,EAAQuG,EAAGvG,MAAMkC,OAAO,SAAU/D,GAC5H,MAAOA,GAAKwK,cACbwD,IAAI,SAAUhO,GACb,MAAOxB,MAAWwB,EAAKC,UACnBkB,GAAInB,EAAKmB,IAAM7C,EAAMiH,OACrB0I,YAAajO,EAAKiO,YAClBpM,YAGRkL,KACAgB,EAAahN,EAASmN,UAAUnN,EAAStB,WAAWyB,IAAI6L,EAAK5L,IAAIN,KACjEE,EAASoN,UAAUJ,GAAY,IAE9BlM,EAAMG,SAGG,cAAV8L,GAA0BC,GAAyB,SAAXD,GACxCC,EAAW9I,KAAK,WAAWmJ,KAAK,SAAUC,EAAOrO,GAC7Ce,EAAS2B,OAAO1C,KAEpBe,EAASuN,OAAOzM,EAAOkM,GACnBzO,EAAKiP,eACLxN,EAASsM,QAAQU,GACjBhN,EAASyN,UAEI,UAAVV,EACP9O,KAAKY,QAAQiC,EAAM,GAAGV,IACL,cAAV2M,GACHD,EAAe9M,EAAStB,WAAWyB,IAAIW,EAAM,GAAGV,IAChD0M,EACAA,EAAanM,IAAI0G,EAAGzE,MAAO9B,EAAM,GAAGuG,EAAGzE,QAEvC5C,EAASuN,OAAOzM,EAAM,GAAIkM,IAEtBhN,EAAStB,WAAWqB,OAAOkB,QAEjB,SAAX8L,GAAqBA,IAAWzP,IAAc0P,KACrDhN,EAASc,QAAQuM,KAAK,SAAUC,EAAOrO,GACnCe,EAAS2B,OAAO1C,KAEpBe,EAASuN,OAAOzM,GACZvC,EAAKiP,eACLxN,EAASsM,QAAQtM,EAAS0N,aAAarQ,MACvC2C,EAASyN,UARbzN,EAASuN,OAAOzM,KAYxBjC,QAAS,SAAUuB,GACf,GAAwG4L,GAApGzN,EAAON,KAAM+B,EAAWzB,EAAKyB,SAAUtB,EAAasB,EAAStB,WAAYO,EAAOP,EAAWyB,IAAIC,EAC/FnB,KACA+M,EAAOhM,EAASmN,UAAUlO,EAAKa,KAC/BE,EAAS2B,OAAOqK,KAGxB/E,YAAa,WACT,GAAI1I,GAAON,IACXM,GAAKyB,SAASkH,KAAKpB,EAAQlI,EAAMW,EAAKoP,UAAWpP,IACjDA,EAAKyB,SAASkH,KAAKnB,EAAQnI,EAAMW,EAAKqP,QAASrP,IAC/CA,EAAKyB,SAAS+G,QAAQG,KAAKf,EAASvI,EAAMW,EAAK6M,eAAgB7M,KAEnE6M,eAAgB,SAAU/D,GACtB,GAAI9I,GAAON,KAAMsB,EAASlC,EAAEgK,EAAG9H,QAAQ2E,KAAK,oBAAoB+H,QAAQ,UACxE1N,GAAK+I,QAAQlB,GACT7G,OAAQA,EACRuM,QAASzE,EAAGyE,WAGpB8B,QAAS,SAAUvG,GACf,GAAI9I,GAAON,KAAM+B,EAAWzB,EAAKyB,SAAUwM,EAAQxM,EAASL,SAAS0H,EAAG2E,KACxE3E,GAAGE,iBACHhJ,EAAK+I,QAAQpB,GAAQ2H,QAASrB,EAAMpM,MAExCuN,UAAW,SAAUtG,GACjB,GAAI9I,GAAON,KAAM+N,EAAO3E,EAAG2E,KAAMQ,EAAQjO,EAAKyB,SAASL,SAASqM,GAAO8B,EAAOtB,EAAMpM,EACpFiH,GAAGE,iBACHhJ,EAAK+I,QAAQzB,GACTiI,KAAMA,EACNtB,MAAOA,EAAMtN,YAGrBoJ,MAAOjL,EAAE0Q,KACThN,YAAa,WACT,GAAIxC,GAAON,KAAM+P,EAAezP,EAAKyB,SAAS+G,QAAQ7C,KAAK,qBAAqB+H,QAAQ,WAAYhN,EAAOV,EAAKyB,SAASL,SAASqO,EAClI,OAAO/O,IAEX2K,QAAS,SAAUxJ,GACf,GAAI7B,GAAON,KAAM+B,EAAWzB,EAAKyB,SAAUwM,EAAQxM,EAAStB,WAAWyB,IAAIC,GAAK4L,EAAOQ,GAASxM,EAASmN,UAAUX,EAAM1M,IACrH0M,IAASR,IACThM,EAAS+G,QAAQ7C,KAAK,qBAAqB+E,YAAY,oBACvD+C,EAAK9H,KAAK,eAAe+E,YAAY,iBAAiBF,SAAS,sBAGvEkF,OAAQ,WACJhQ,KAAK+B,SAAStB,WAAWwP,UAGjCjJ,EAAG/G,YAAYsI,sBAAsB,OAAQd,GACzCnI,EAAM0H,GAAGU,OACLA,EAAOkB,EAAUpJ,QACjBM,KAAM,SAAUgJ,EAAS/I,EAASgM,GAC9B,GAAIzL,GAAON,KAAMwJ,EAAoBuC,EAAgBtL,WAAY8K,EAAWQ,EAAgBR,QAC5FxL,GAAUP,KAAWc,EAAK0L,eAAgBjM,GAAWwL,SAAUA,IAC/DjL,EAAKiJ,cAAcxJ,EAASyJ,GAC5BlJ,EAAK4P,cAAcnQ,EAASwL,GAC5BxL,EAAQkM,aAAelM,EAAQkM,cAAgBtM,EAAMW,EAAK4L,cAAe5L,GACzEsI,EAAUzI,GAAGL,KAAKM,KAAKJ,KAAMgH,EAAGU,KAAMoB,EAAS/I,GAC/CO,EAAK6P,KAAO7P,EAAKmB,gBACjBnB,EAAK0I,cACD+C,EAAgBpC,aAAc,GAAUH,EAAkB4C,gBAC1D9L,EAAKmJ,oBAGbuC,gBACId,WAAY5L,EAAMmN,QAAQC,SAAW,MAAQ,WAC7Cc,UACI4C,KAAM,SACNC,cAAc,GAElBC,UAAU,EACV5G,WAAY,2BACZmD,aAAa,GAEjBqD,cAAe,SAAUnQ,EAASwL,GACzBxL,EAAQwQ,UACTxQ,EAAQwQ,UAEA5L,MAAO,OACP6L,MAAOjF,EAASkF,WAAa,OAC7B9D,SAAU,SAAU3L,GAAV,GACF0P,GAAQ1P,EAAKwK,YAAyD,SAA3ClM,EAAMqR,aAAa3P,EAAK4P,WAAW,GAC9DjE,EAAW,wDAAkE+D,EAAO,yCAAwDpR,EAAMuR,WAAW7P,EAAKuB,KAAOvB,EAAK4P,WAAa,OAC/L,OAAOjE,MAIXhI,MAAO,UACP6L,MAAOjF,EAASuF,iBAChBpL,OAAQ,UAGRf,MAAO,OACP6L,MAAOjF,EAASwF,UAChBpE,SAAU,SAAU3L,GAChB,MAAIA,GAAKgQ,KAAO,EACL1R,EAAM2R,mBAAmBjQ,EAAKgQ,MAE9B,QAO/BhI,YAAa,WACT,GAAI1I,GAAON,KAAMmQ,EAAO7P,EAAK6P,IAC7BA,GAAKlH,KAAKlB,EAAQpI,EAAMW,EAAKwM,QAASxM,IACtC6P,EAAKe,MAAMnE,GAAG,WAAa3E,EAAIzI,EAAMW,EAAK0M,UAAW1M,IACrD6P,EAAKe,MAAMnE,GAAG,YAAc3E,EAAI,2BAA4BzI,EAAMW,EAAK2M,WAAY3M,IACnF6P,EAAKe,MAAMnE,GAAG7E,EAAUE,EAAI,mBAAoBzI,EAAMW,EAAK4M,SAAU5M,IACrE6P,EAAKe,MAAMnE,GAAG7E,EAAUE,EAAIzI,EAAMW,EAAK6M,eAAgB7M,IACvD6P,EAAKlH,KAAK,OAAQ,WACd3I,EAAK6Q,kBAAiB,KAE1BhB,EAAKlH,KAAK,SAAU,WAChB3I,EAAK+I,QAAQ,YAEjB8G,EAAKiB,QAAUhS,EAAE0Q,KACjBlH,EAAUzI,GAAG6I,YAAY5I,KAAKJ,OAElCkM,cAAe,SAAU9C,GACrB,GAAI9I,GAAON,KAAMqO,EAAU/N,EAAK6P,KAAK9B,UAAWN,EAAOM,EAAUA,EAAQL,QAAQ,gBAAkB,IAC/FD,IAAQ3E,EAAGyE,UAAYnH,EAAKwH,QAAU9E,EAAG+E,sBACzC7N,EAAKgO,aAAaP,GAClB3E,EAAG+E,qBAAsB,GAEzB/E,EAAGyE,UAAYnH,EAAK2K,KACpBjI,EAAG+E,qBAAsB,IAGjChB,eAAgB,SAAU/D,GACtB,GAAI9I,GAAON,KAAMsB,EAASlC,EAAEgK,EAAG9H,QAAQ2E,KAAK,oBAAoB+H,QAAQ,KACpE1M,GAAO0B,SAAW1B,EAAOyB,GAAG,qBAC5BzC,EAAK+I,QAAQlB,GACT7G,OAAQA,EACRuM,QAASzE,EAAGyE,WAIxBX,SAAU,SAAU9D,GAChB,GAAI9I,GAAON,KAAMmQ,EAAO7P,EAAK6P,IACxB/Q,GAAEgK,EAAG9H,QAAQ0M,QAAQ,oBAAoBhL,SAG1CoG,EAAGyE,UAAYvO,EAAMoH,KAAKwH,QAC1BoD,WAAW,WACP,GAAIC,GAAkBjR,EAAK6P,KAAKqB,gBAAkBpS,GAClDmS,GAAgBtL,KAAK,SAASoD,QAAQ,QACtC/I,EAAKoN,mBAETpN,EAAKmR,cAELrI,EAAGyE,UAAYvO,EAAMoH,KAAKoH,MAC1BqC,EAAKuB,gBACLpR,EAAK+I,QAAQ,aAGrB4D,WAAY,SAAU7D,GAClB,GAAI9I,GAAON,KAAM+N,EAAO3O,EAAEgK,EAAG9H,QAAQ0M,QAAQ,eAC5B,KAAb5E,EAAG6E,OAAe3N,EAAK6P,KAAK3C,WAC5B8D,WAAW,WACPhR,EAAKoN,mBAETpN,EAAKmR,cAEQ,IAAbrI,EAAG6E,OAAgBF,EAAKhL,GAAG,uBAC3BzC,EAAK6P,KAAKjF,WAAWC,QACrB7K,EAAK6P,KAAK/E,OAAO2C,KAGzB0D,WAAY,WACR,GAAmCE,GAA/BrR,EAAON,KAAMmQ,EAAO7P,EAAK6P,IACzBA,GAAK3C,WACLmE,EAAYxB,EAAKqB,eACZG,EAAU1L,KAAK,SAAS2L,OACzBzB,EAAKuB,iBAGbJ,WAAW,WACPhR,EAAK6Q,kBAAiB,MAG9BA,iBAAkB,SAAUU,GACxB,GAAIvR,GAAON,KAAMmQ,EAAO7P,EAAK6P,IAC7BA,GAAKe,MAAMjL,KAAK,SAASnC,WAAWgO,UAAUC,YAAY,cAAeF,IAE7EnE,eAAgB,WACZ,GAAiBiE,GAAbrR,EAAON,IACPM,GAAK6P,KAAK3C,WAAalN,EAAK6P,KAAK3C,SAASzN,QAAQiS,MAAMvE,QACxDkE,EAAYrR,EAAK6P,KAAKqB,eACtBlR,EAAK6P,KAAK8B,mBACV3R,EAAK6P,KAAK+B,YAAYP,GACtBrR,EAAK+I,QAAQ,YAGrByD,QAAS,WACL,GAAIxM,GAAON,KAAM2N,EAAYrN,EAAKwC,aAClCxC,GAAK+I,QAAQxB,GAAU+F,QAASD,KAEpCX,UAAW,SAAU5D,GACjB,GAAI9I,GAAON,KAAM+N,EAAO3O,EAAEgK,EAAG9H,QAAQ0M,QAAQ,eAC7C1N,GAAKgO,aAAaP,IAEtBO,aAAc,SAAUP,GAAV,GAKN/M,GAJAV,EAAON,IACP+N,GAAKhL,GAAG,sBAGR/B,EAAOV,EAAK6P,KAAKzO,SAASqM,GAC1B/M,GACAV,EAAK+I,QAAQrB,GAAQuG,MAAOvN,MAGpC8B,YAAa,WAAA,GAEAc,GADLtD,EAAON,KAAM6C,EAAQvC,EAAK6P,KAAK/E,SAAUuC,IAC7C,KAAS/J,EAAI,EAAGA,EAAIf,EAAMG,OAAQY,IAC9B+J,EAAU5M,KAAKT,EAAK6P,KAAKzO,SAASmB,EAAMe,IAE5C,OAAO+J,IAEXa,UAAW,WACPxO,KAAKmQ,KAAKgC,UAEdxQ,KAAM,SAAUL,GACZ,GAAIhB,GAAON,KAAMyO,EAAWnO,EAAK6P,KAAK/E,QACtC9K,GAAK6P,KAAKiC,QAAQ9Q,GAAUmN,IAEhC5C,QAAS,WACL7L,KAAKmQ,KAAKe,MAAMxC,IAAItG,GACpBpI,KAAKmQ,KAAKrH,QAAQ4F,IAAItG,GACtBQ,EAAUzI,GAAG0L,QAAQzL,KAAKJ,SAGlCgH,EAAG/G,YAAYsI,sBAAsB,OAAQb,KAEnDnI,OAAOD,MAAM6H,QACR5H,OAAOD,OACE,kBAAVH,SAAwBA,OAAOiI,IAAMjI,OAAS,SAAUkI,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAUpI,EAAGC,QACVA,OAAO,uBACH,gBACA,gBACDD,IACL,WAwUE,MAvUC,UAAUE,EAAGC,GAAb,GAiSOgT,GAhSA/S,EAAQC,OAAOD,MAAOE,EAASJ,EAAEI,OAAQG,EAAQP,EAAEO,MAAO2S,EAAUhT,EAAM0H,GAAGsL,QAASC,EAAOjT,EAAMkT,QAAQD,KAAME,EAAQ,QAASC,EAAS,SAAUC,EAAQ,QAASC,EAAS,SAAU7K,EAAS,SAAUK,EAAK,sBACjNyK,EAAqBP,EAAQ9S,QAC7BM,KAAM,SAAUgJ,EAAS/I,GACrB,GAAIO,GAAON,IACXM,GAAKwS,eAAe/S,GACpBuS,EAAQnS,GAAGL,KAAKM,KAAKE,EAAMwI,EAAS/I,GACpCO,EAAKyS,iBAETC,OAAQV,EAAQnS,GAAG6S,OAAOC,QAAQL,IAClCM,cACIC,cACI9Q,KAAM,SACN+Q,KAAM,aACN7Q,KAAM,eACNsE,QAAS,sBACTwM,MAAO,sBAEXC,QACIjR,KAAM,SACN+Q,KAAM,SACN7Q,KAAM,SACNsE,QAAS,oBACT9G,QAAS,6BACTsT,MAAO,sBAEXE,eACIlR,KAAM,cACN+Q,KAAM,iBACN7Q,KAAM,gBACNiR,UAEQjR,KAAM,mBACNmO,KAAM,cACN+C,WAAW,EACXC,MAAO,gBACP7M,QAAS,cACT9G,QAAS,mBACT0O,UAAU,IAGVlM,KAAM,oBACNmO,KAAM,eACN+C,WAAW,EACXC,MAAO,gBACP7M,QAAS,cACT9G,QAAS,uBAIrB4T,WACItR,KAAM,cACN+Q,KAAM,UACN7Q,KAAM,YACNsE,QAAS,cACT+M,cAEQrR,KAAM,YACN6Q,KAAM,OACNrT,QAAS,oBACT8G,QAAS,gBAGTtE,KAAM,YACN6Q,KAAM,OACNrT,QAAS,yBACT8G,QAAS,gBAGTtE,KAAM,YACN6Q,KAAM,OACNrT,QAAS,oBACT8G,QAAS,gBAGTtE,KAAM,mBACN6Q,KAAM,eACNrT,QAAS,0BACT8G,QAAS,gBAGTtE,KAAM,oBACN6Q,KAAM,gBACNrT,QAAS,2BACT8G,QAAS,iBAIrBgN,YACIxR,KAAM,cACN+Q,KAAM,cACN7Q,KAAM,aACNiR,UAEQjR,KAAM,WACNmO,KAAM,cACN+C,WAAW,EACXC,MAAO,aACP7M,QAAS,oBACT9G,QAAS,SAGTwC,KAAM,WACNmO,KAAM,OACN+C,WAAW,EACXC,MAAO,aACP7M,QAAS,oBACT9G,QAAS,UAIrB+T,QAAUzR,KAAM,UAChB0R,SACI1R,KAAM,2BACN+Q,KAAM,eACN7Q,KAAM,UACNyR,SAAU,QACVnN,QAAS,oBACT9G,QAAS,yBAEbkU,QACI5R,KAAM,oBACN+Q,KAAM,SACN7Q,KAAM,SACNsE,QAAS,gBACT6J,KAAM,SACNsD,SAAU,QACVjU,QAAS,kDAGjBgT,cAAe,WACX,GAAIzS,GAAON,IACXM,GAAK2I,KAAKyJ,EAAQ/S,EAAMW,EAAK4T,OAAQ5T,IACrCA,EAAK2I,KAAK0J,EAAOhT,EAAMW,EAAK4T,OAAQ5T,IACpCA,EAAK2I,KAAKwJ,EAAO9S,EAAMW,EAAK4T,OAAQ5T,IACpCA,EAAK2I,KAAKlB,EAAQpI,EAAMW,EAAK6T,QAAS7T,KAE1CwS,eAAgB,SAAU/S,GACtB,GAAIO,GAAON,KAAMoU,EAAQrU,EAAQ8C,MAAQ9C,EAAQ8C,MAAQwR,OAAO3N,KAAKpG,EAAK4S,aAC1E5S,GAAKP,QAAUA,EACfO,EAAKP,QAAQ8C,MAAQvC,EAAKgU,oBAAoBF,IAElDE,oBAAqB,SAAUF,GAC3B,GAAI9T,GAAON,KAAMuL,EAAWjL,EAAKP,QAAQwL,QACzC,IAAK6I,EAAMpR,OAGX,MAAOoR,GAAMpF,IAAI,SAAUuF,GACvB,GAA0FC,GAAaC,EAAnGC,EAAgBtV,EAAEuV,cAAcJ,IAAsC,IAA7BF,OAAO3N,KAAK6N,GAAMvR,QAAgBuR,EAAKhS,IAyBpF,OAxBAgS,GAAOG,EAAgBH,EAAKhS,KAAOgS,EACnCC,EAAcpV,EAAEuV,cAAcJ,GAAQA,EAAO/U,KAAWc,EAAK4S,aAAaqB,IAC1EE,EAAYD,EAAYnB,MAAQuB,KAAKC,MAAML,EAAYnB,UACvD/T,EAAMwV,WAAWN,GACbrS,GAAIqS,EAAYjS,KAAO,IAAMjD,EAAMiH,OACnChE,KAAMiS,EAAYjS,KAClB6Q,KAAM7H,EAASiJ,EAAYjS,MAC3BwS,YACIC,aAAczJ,EAASiJ,EAAYjS,MACnCiO,MAASjF,EAASiJ,EAAYjS,MAC9B0S,eAAgBT,EAAY3N,QAC5BqO,eAAgBV,EAAYzU,SAEhCiU,SAAUQ,EAAYR,WAED,gBAArBQ,EAAYnS,OACZmS,EAAYhB,QAAUgB,EAAYhB,QAAQxE,IAAIrP,EAAMW,EAAK6U,iBAAkB7U,KAEtD,gBAArBkU,EAAYnS,OACZmS,EAAYZ,YAAcY,EAAYZ,YAAY5E,IAAIrP,EAAMW,EAAK8U,gBAAiB9U,KAElFmU,EAAUY,QAAU/U,EAAKP,QAAQE,YAAYQ,WAAW2L,iBACxDoI,EAAYc,QAAS,GAElBd,GACRlU,IAEP6U,iBAAkB,SAAUI,GACxB,GAAIjV,GAAON,KAAMuL,EAAWjL,EAAKP,QAAQwL,QAIzC,OAHqB,eAAjBgK,EAAO7B,OAA0B6B,EAAOxV,UAAYO,EAAKP,QAAQE,YAAYF,QAAQyV,cACrFD,EAAO9G,UAAW,GAEfnP,EAAMwV,WAAWS,GACpBR,WAAYvV,KAAW+V,EAAOR,YAC1BC,aAAczJ,EAASgK,EAAOhT,MAC9BiO,MAASjF,EAASgK,EAAOhT,MACzB0S,eAAgBM,EAAO1O,QACvBqO,eAAgBK,EAAOxV,aAInCqV,gBAAiB,SAAUG,GACvB,GAAIjV,GAAON,KAAMuL,EAAWjL,EAAKP,QAAQwL,QACzC,OAAOjM,GAAMwV,WAAWS,GACpBnC,KAAM7H,EAASgK,EAAOhT,MACtBwS,WAAYvV,KAAW+V,EAAOR,YAC1BC,aAAczJ,EAASgK,EAAOhT,MAC9BiO,MAASjF,EAASgK,EAAOhT,MACzB0S,eAAgBM,EAAO1O,QACvBqO,eAAgBK,EAAOxV,aAInCmU,OAAQ,SAAU9K,GACd,GAAIvC,GAAUzH,EAAEgK,EAAG9H,QAAQQ,KAAK,WAAY/B,EAAUX,EAAEgK,EAAG9H,QAAQQ,KAAK,UACnE+E,IAGL7G,KAAK8O,QACDjI,QAASA,EACT9G,QAASA,KAGjBoU,QAAS,SAAU/K,GACf,GAAIvC,GAAUzH,EAAEgK,EAAG9H,QAAQQ,KAAK,WAAY/B,EAAUX,EAAEgK,EAAG9H,QAAQQ,KAAK,UACxE/B,GAAUP,KAAWO,GAAWkF,MAAO7F,EAAEgK,EAAG9H,QAAQsQ,QAC/C/K,GAGL7G,KAAK8O,QACDjI,QAASA,EACT9G,QAASA,KAGjB0V,cAAe,SAAUC,GAAV,GAEF9R,GADLtD,EAAON,KAAMD,EAAUO,EAAKP,QAAS4V,GAAQ,CACjD,KAAS/R,EAAI,EAAGA,EAAI7D,EAAQ8C,MAAMG,OAAQY,IACtC,GAAI7D,EAAQ8C,MAAMe,GAAGrB,MAAQmT,EAAU,CACnCC,GAAQ,CACR,OAGR,MAAO5V,GAAQ8C,MAAM6S,IAAaC,GAEtC7G,OAAQ,SAAU8G,GACd5V,KAAKqJ,QAAQuJ,EAAQgD,IAEzB/J,QAAS,WACD7L,KAAK6V,mBACL7V,KAAK6V,kBAAkBhK,UAE3ByG,EAAQnS,GAAG0L,QAAQzL,KAAKJ,SAG5B8V,EAAavD,EAAK/S,QAClBM,KAAM,SAAUC,EAASyS,GACrB,GAAIlS,GAAON,KAAM8I,EAAU1J,EAAE,2DAA8DiO,EAAQjO,EAAE,gDAAqD2W,EAAc3W,EAAE,sCAAyCsR,EAAOtR,EAAE,WAC5NkB,GAAKwI,QAAUA,EACfxI,EAAK+M,MAAQA,EACb/M,EAAKyV,YAAcA,EACnBzV,EAAKoQ,KAAOA,EACZpQ,EAAKP,QAAUA,EACfO,EAAKP,QAAQsC,KAAO,oBACpB/B,EAAKkS,QAAUA,EACflS,EAAKyU,aACLzU,EAAK0V,aACL1V,EAAK2V,aACL3V,EAAK4V,YACL5V,EAAK6V,kBACL7V,EAAK+M,MAAM+I,MACPC,YAAa/V,EAAKP,QAAQqT,KAC1B5C,MAAOlQ,EAAKP,QAAQqT,OAExB9S,EAAKyV,YAAYzG,OAAOoB,GACxBpQ,EAAKwI,QAAQwG,OAAOhP,EAAK+M,OAAOiC,OAAOyG,GACvCzV,EAAK0I,cACL1I,EAAKkS,QAAQqD,kBAAoBvV,GAErCyU,WAAY,WACJ/U,KAAKD,QAAQgV,YACb/U,KAAKqN,MAAM+I,KAAKpW,KAAKD,QAAQgV,aAGrCiB,WAAY,WACJhW,KAAKD,QAAQ2Q,MACb1Q,KAAK0Q,KAAK5F,SAAS,cAAgB9K,KAAKD,QAAQ2Q,OAGxD1H,YAAa,WACThJ,KAAKsW,cAAgB3W,EAAMK,KAAKuW,OAAQvW,MACxCA,KAAKqN,MAAMN,GAAG,QAAU3E,EAAIpI,KAAKsW,gBAErCC,OAAQ,SAAUnN,GACdpJ,KAAKwS,QAAQnJ,QAAQtB,GAAUzG,OAAQ8H,EAAG9H,UAE9CuK,QAAS,WACL7L,KAAK8I,QAAQ4F,IAAItG,KAGzB9I,GAAMkT,QAAQgE,kBAAkB,oBAAqBV,GACjDzD,EAA2BE,EAAK/S,QAChCM,KAAM,SAAUC,EAASyS,GACrB,GAAIlS,GAAON,KAAM8I,EAAU1J,EAAE,oDAAuDqX,EAAQrX,EAAE,UAAYW,EAAQqT,KAAO,YAAasD,EAAgBtX,EAAE,iBAAoBW,EAAQqT,KAAO,OAC3L9S,GAAKwI,QAAUA,EACfxI,EAAK+M,MAAQqJ,EACbpW,EAAKmW,MAAQA,EACbnW,EAAKP,QAAUA,EACfO,EAAKkS,QAAUA,EACflS,EAAKyU,aACLzU,EAAK2V,aACL3V,EAAK4V,YACL5V,EAAK6V,kBACL7V,EAAKwI,QAAQwG,OAAOhP,EAAKmW,OACzBnW,EAAKwI,QAAQwG,OAAOhP,EAAK+M,OACzB/M,EAAKqW,eAAiB,GAAIrX,GAAM0H,GAAG4P,OAAOtW,EAAK+M,OAC3CwJ,OAAQlX,EAAMW,EAAK6T,QAAS7T,GAC5BiL,UACIuL,QAAStE,EAAQzS,QAAQwL,SAASwL,eAClCC,UAAWxE,EAAQzS,QAAQwL,SAAS0L,oBAG5C3W,EAAKmW,MAAM1J,GAAG0F,EAAQrK,EAAIzI,EAAMW,EAAK4T,OAAQ5T,IAC7CA,EAAKkS,QAAQ0E,yBAA2B5W,GAE5C6T,QAAS,SAAU/K,GACfpJ,KAAKwS,QAAQnJ,QAAQtB,GAAUzG,OAAQ8H,EAAGgE,OAAOpH,QAAQmR,YAE7DjD,OAAQ,SAAU9K,GACdpJ,KAAK2W,eAAe5Q,SACpB/F,KAAKwS,QAAQnJ,QAAQtB,GAAUzG,OAAQlC,EAAEgK,EAAG9H,QAAQ6V,YAExDtL,QAAS,WACL7L,KAAK8I,QAAQ4F,IAAItG,MAGzB9I,EAAMkT,QAAQgE,kBAAkB,2BAA4BnE,GAC5D7S,EAAOF,EAAM0H,GAAG/G,aAAeqS,QAASO,KAC1CtT,OAAOD,MAAM6H,QACR5H,OAAOD,OACE,kBAAVH,SAAwBA,OAAOiI,IAAMjI,OAAS,SAAUkI,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAUpI,EAAGC,QACVA,OAAO,oBAAqB,cAAeD,IAC7C,WA+ME,MA9MC,UAAUE,EAAGC,GAAb,GA4DO+X,GA4DAC,EAvHA/X,EAAQC,OAAOD,MAAOE,EAASJ,EAAEI,OAAQsC,EAAOxC,EAAMwC,KAAMwV,EAAOxV,EAAKwV,KAAMC,EAAyBzV,EAAKyV,uBAAwBC,EAAa1V,EAAK0V,UAC1JhY,IAAO,EAAMF,EAAMwC,MACf2V,SACIxX,aACI6B,KAAM,SAAUA,GACZ,MAAOA,GAAKe,OAASf,OAEzBkQ,OACI7P,GAAI,OACJ8M,YAAa,iBACbyI,QACInV,MACIiL,UAAU,EACVnL,KAAM,SACNsV,aAAc,cAElB3G,MACIxD,UAAU,EACVnL,KAAM,UAEVwN,MACIrC,UAAU,EACVnL,KAAM,UAEVuO,WACIpD,UAAU,EACVnL,KAAM,UAEVmJ,aACIgC,UAAU,EACVmK,cAAc,EACdtV,KAAM,WAEVuV,gBACIpK,UAAU,EACVmK,cAAc,EACdtV,KAAM,WAEVwV,SACIxV,KAAM,OACNmL,UAAU,GAEdsK,YACIzV,KAAM,OACNmL,UAAU,GAEduK,UACI1V,KAAM,OACNmL,UAAU,GAEdwK,aACI3V,KAAM,OACNmL,UAAU,SAO9B4J,EAAYE,EAAKnY,QACjBW,KAAM,SAAUmF,GAAV,GAOMgT,GANJ3X,EAAON,KAAMwL,EAAcxL,KAAKwL,WACpC8L,GAAKnX,GAAGL,KAAKM,KAAKJ,KAAMiF,GACG,gBAAhBuG,KACPA,EAAclM,EAAM4Y,OAAO1M,IAE3BlM,EAAM6Y,WAAW3M,KACbyM,EAAoBzM,EAAYpL,KAAKE,EAAMA,GAE3CA,EAAKkL,cADLyM,GAAkD,IAA7BA,EAAkBjV,WAGlBiV,GAGzB3X,EAAKkL,aACLlL,EAAK8X,iBAGbA,cAAe,WAAA,GAEPtU,GAAUuU,EAAWC,EADrBhY,EAAON,IAELM,GAAKwD,mBAAoBxE,GAAMwC,KAAKuV,wBACtCvT,EAAWxD,EAAKwD,SAAW,GAAIxE,GAAMwC,KAAKuV,sBAAsB/W,EAAKiY,kBACrEF,EAAYvU,EAASuU,UACrBC,EAAeD,EAAUC,aACzBD,EAAUC,aAAe,SAAUxW,EAAMO,GAOrC,MANa,SAATA,GAA4B,WAATA,IACnBP,EAAKR,OAAShB,EAAK6B,IAEnBmW,IACAxW,EAAOwW,EAAalY,KAAKE,EAAMwB,EAAMO,IAElCP,GAEXgC,EAASqT,OAAS,WACd,MAAO7W,IAEXwD,EAASmF,KAAK,SAAU,SAAUuP,GAC9BA,EAAEzK,KAAOyK,EAAEzK,MAAQzN,EACnBA,EAAK+I,QAAQ,SAAUmP,KAE3B1U,EAASmF,KAAK,QAAS,SAAUuP,GAC7B,GAAIC,GAAanY,EAAK6W,QAClBsB,KACAD,EAAEzK,KAAOyK,EAAEzK,MAAQzN,EACnBmY,EAAWpP,QAAQ,QAASmP,MAGpClY,EAAKoY,yBAGbC,MAAO,WACH,MAAI3Y,MAAK+D,0BACE/D,MAAK+D,oBACL,GAEJ/D,KAAKmC,KAAOnC,KAAK4Y,cAG5BvB,EAAwBE,EAAuB/X,QAC/CM,KAAM,SAAUC,GACZ,GAAI8Y,GAAYzB,EAAUjY,QAAS2E,SAAU/D,GACzCA,GAAQgF,SAAWhF,EAAQ+Y,kBAC3B9Y,KAAK+Y,oBAAsBhZ,EAAQgF,OACnChF,EAAQgF,OAAS,MAErByS,EAAWrX,GAAGL,KAAKM,KAAKJ,KAAMZ,EAAEI,QAAO,MACnCwZ,QACIC,UAAWJ,EACX7G,MAAO6G,IAEZ9Y,IACHC,KAAKoM,eAAiBpM,KAAKqY,oBAAqB/Y,GAAMwC,KAAKoX,eAC3DlZ,KAAKmZ,yBAETC,OAAQ,SAAU/J,EAAO2C,GACrB,GAAIjD,GAAa/O,KAAKmX,QAQtB,OAPIpI,IAAcA,EAAWqJ,gBACrBpG,GAASA,EAAMxG,cACfuD,EAAW6I,gBAAiB,GAEhC7I,EAAWE,aAAc,EACzBF,EAAWqJ,iBAERZ,EAAWrX,GAAGiZ,OAAOhZ,KAAKJ,KAAMqP,EAAO2C,IAElDtO,OAAQ,SAAUqK,GACd,GAAoEsL,GAAhE/Y,EAAON,KAAM+O,EAAahB,EAAKgB,aAActO,EAAaH,CAW9D,OAVIyO,IAAcA,EAAWqJ,gBACzB3X,EAAasO,EAAWjL,UAE5BxD,EAAKgZ,gBAAgBvL,GACrBsL,EAAS7B,EAAWrX,GAAGuD,OAAOtD,KAAKK,EAAYsN,GAC3CgB,GAAetO,EAAWqB,SAAWrB,EAAWqB,OAAOkB,OACvD+L,EAAWE,aAAc,EAClBF,IAAe/O,KAAKuZ,gBAAgBxK,KAC3CA,EAAW6I,gBAAiB,GAEzByB,GAEXC,gBAAiB,SAAUvL,GACvB,GAAIzN,GAAON,KAAMS,EAAaH,CAC1ByN,GAAKgB,YAAchB,EAAKgB,cACxBhB,EAAOA,EAAKgB,aACZtO,EAAasN,EAAKjK,SAClBrD,EAAW+Y,cACXlZ,EAAKgZ,gBAAgBvL,IAErBtN,EAAW+Y,eAGnBD,gBAAiB,SAAUxL,GACvB,GAAIsL,EACJ,SAAKtL,EAAKjK,SAAShC,SAGnBuX,EAAStL,EAAKjK,SAAShC,OAAOiD,OAAO,SAAU/D,GAC3C,MAAOA,GAAKwK,gBAEP6N,EAAOrW,WAGxBqU,EAAsBoC,OAAS,SAAU1Z,GACrCA,EAAUA,GAAWA,EAAQgB,MAASe,KAAM/B,GAAYA,CACxD,IAAIU,GAAaV,MAAe+B,EAAOrB,EAAWqB,IAClD,OAAIA,IAAQA,EAAK4X,YACN5X,EAAK4X,aAEhBjZ,EAAWqB,KAAOA,EACXrB,YAAsB4W,GAAwB5W,EAAa,GAAI4W,GAAsB5W,KAEhGnB,EAAMqa,0BAA4B,SAAUC,GACxC,GAAInZ,GAAa4W,EAAsBoC,QACnC3X,KAAM8X,EACNZ,OAAQ1Z,EAAMwC,KAAK2V,QAAQxX,aAI/B,OAFAQ,GAAWoZ,QACXpZ,EAAWqZ,MAAMJ,YAAcjZ,EACxBA,EAAWqZ,OAEtBta,EAAOF,EAAMwC,MACTuV,sBAAuBA,EACvBD,UAAWA,KAEjB7X,OAAOD,MAAM6H,QACR5H,OAAOD,OACE,kBAAVH,SAAwBA,OAAOiI,IAAMjI,OAAS,SAAUkI,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAUpI,EAAGC,QACVA,OAAO,2BAA4B,cAAeD,IACpD,WA4FE,MA3FC,UAAUE,EAAGC,GAAb,GACOC,GAAQC,OAAOD,MAAOE,EAASJ,EAAEI,OAAQG,EAAQP,EAAEO,MAAOgN,EAAWrN,EAAMqN,SAAUoN,EAAcza,EAAM0H,GAAG+S,YAAanH,EAAS,SAClIoH,EAAyBD,EAAYva,QACrCM,KAAM,SAAUgJ,EAAS/I,GACrB,GAAIO,GAAON,IACX+Z,GAAY5Z,GAAGL,KAAKM,KAAKE,EAAMwI,EAAS/I,GACxCO,EAAK2Z,qBACL3Z,EAAK4Z,wBACL5Z,EAAK6Z,eACL7Z,EAAK2I,KAAK,SAAUtJ,EAAMW,EAAK8Z,UAAW9Z,IAC1CA,EAAK2I,KAAK,OAAQtJ,EAAMW,EAAK+Z,QAAS/Z,KAE1C2Z,mBAAoB,WAChBja,KAAKsa,UAAUC,OAAS5N,EAAS,uEAErCuN,sBAAuB,WACnB,GAAI5Z,GAAON,IACPM,GAAKP,QAAQqM,iBACb9L,EAAKka,kBAGbA,cACIC,QACIrH,KAAM,SACNsH,eAAgB,kBAChB7T,QAAS,iBAEb8T,UACIvH,KAAM,SACNsH,eAAgB,oBAChB7T,QAAS,kBAGjBmM,OAAQ+G,EAAY5Z,GAAG6S,OAAOC,QAAQL,IACtCuH,aAAc,WAAA,GACmCnZ,GAAM0T,EAEtC9Q,EAgBA6C,EAlBTnG,EAAON,KAAM6C,EAAQvC,EAAKP,QAAQ8C,KACtC,IAAIA,GAASA,EAAMG,OACf,IAASY,EAAI,EAAGA,EAAIf,EAAMG,OAAQY,IAC9B5C,EAAO6B,EAAMe,GACb8Q,EAAgBtV,EAAEuV,cAAc3T,IAAsC,IAA7BqT,OAAO3N,KAAK1F,GAAMgC,QAAgBhC,EAAKuB,KAC5EmS,IACA1T,EAAOA,EAAKuB,MAEZnD,EAAEuV,cAAc3T,IAChBV,EAAKsa,YAAY5Z,GACjBV,EAAKgP,OAAOtO,IACLV,EAAKka,aAAaxZ,KACzBA,EAAOV,EAAKka,aAAaxZ,GACzBV,EAAKsa,YAAY5Z,GACjBV,EAAKgP,OAAOtO,QAIpB,KAASyF,IAAOnG,GAAKka,aACjBxZ,EAAOV,EAAKka,aAAa/T,GACzBnG,EAAKsa,YAAY5Z,GACjBV,EAAKgP,OAAOtO,IAIxB4Z,YAAa,SAAU5Z,GACnB,GAAIV,GAAON,KAAMuL,EAAWjL,EAAKP,QAAQwL,QACzC/L,GAAOwB,GACHoS,KAAM7H,EAASvK,EAAKoS,MACpBsH,eAAgB1Z,EAAK0Z,gBAAkB,GACvCtE,MAAQnB,eAAgBjU,EAAK6F,YAGrCuT,UAAW,SAAUhR,GAAV,GACHvC,GAAUzH,EAAEgK,EAAGpI,MAAMc,KAAK,WAC1BR,EAASlC,EAAEgK,EAAG9H,OACbuF,IAGL7G,KAAK8O,QACDjI,QAASA,EACT9G,SAAWuB,OAAQA,MAG3B+Y,QAAS,SAAUjR,GACf,GAAIyR,GAAOzR,EAAGgE,OAAQvK,EAAQgY,EAAK9a,QAAQ8C,OACtCA,GAASzD,EAAE0b,cAAc9a,KAAKwa,eAC/BpR,EAAGE,kBAGXwF,OAAQ,SAAU8G,GACd5V,KAAKqJ,QAAQuJ,EAAQgD,KAG7BpW,GAAOF,EAAM0H,GAAG/G,aAAe8Z,YAAaC,KAC9Cza,OAAOD,MAAM6H,QACR5H,OAAOD,OACE,kBAAVH,SAAwBA,OAAOiI,IAAMjI,OAAS,SAAUkI,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAUpI,EAAGC,QACVA,OAAO,qBACH,uBACA,mBACA,sBACA,mBACA,0BACA,mBACA,eACA,eACA,mBACDD,IACL,WAs4BE,MA12BC,UAAUE,EAAGC,GAAb,GACO2H,GAAK1H,MAAM0H,GAAIxH,EAASJ,EAAEI,OAAQmV,EAAgBvV,EAAEuV,cAAetR,EAAUjE,EAAEiE,QAAS0X,EAAkB/T,EAAG+T,gBAAiBpb,EAAQP,EAAEO,MAAOgN,EAAWrN,MAAMqN,SAAUqO,EAAc1b,MAAM2b,aAAcrT,EAAW,WAAYC,EAAS,SAAUG,EAAO,OAAQkT,EAAQ,QAASnT,EAAS,SAAUoT,EAAS,SAAUC,EAAU,UAAWzI,EAAQ,QAAS0I,EAAO,OAAQpT,EAAO,OAAQqT,EAAc,cAAeC,EAAY,YAAaC,EAAO,OAAQC,EAAU,UAAWC,EAAU,UAAWvT,EAAgB,gBAAiBwT,EAAS,SAAUC,EAAY,OAAQC,EAAM,IAC7jBC,GACA9V,QAAS,yBACT+V,OAAQ,uBACRC,WAAY,2BACZC,iBAAkB,kCAClBC,QAAS,wBACTC,QAAS,wBACT3J,QAAS,wBACT4J,SAAU,yBACVC,WAAY,2BACZlX,KAAM,qBACNgL,KAAM,qBACNmM,KAAM,yBACNhJ,OAAQ,uBACRiJ,aAAc,8BACdC,SAAU,aACVC,mBAAoB,wDACpBC,cAAe,8BACfC,aAAc,yBACdC,mBAAoB,oCACpBC,gBAAiB,iCACjBhX,UAAW,2BAEXiX,GACAC,YAAa,iBACbC,SAAU,cACVC,SAAU,cACVC,SAAU,cACVC,UAAW,oBACXC,UAAW,oBACXxM,UAAW,cACXI,KAAM,cACN6G,QAAS,iBACTE,SAAU,mBAEVsF,GACAlN,KAAM,OACNmM,KAAM,QAENgB,EAA2B,0NAC3BC,EAAgC,42BAChCC,EAAkC,gNAClCC,EAAc1C,EAAgBvb,QAC9BM,KAAM,SAAUgJ,EAAS/I,GACrB,GAAIO,GAAON,IACX+a,GAAgB5a,GAAGL,KAAKM,KAAKE,EAAMwI,EAAS/I,GAC5CO,EAAKP,QAAUT,MAAMwV,cAAexU,EAAKP,QAASA,GAClDO,EAAKmE,mBACDE,MAAO,OACPD,IAAK,OAETpE,EAAKuE,kBACDF,MAAO,cACPD,IAAK,QAETpE,EAAKE,cAAgB,GAAIwG,GAAG/G,YAAYmG,aACxC9F,EAAKoZ,cACLpZ,EAAKod,WACLpd,EAAKqd,gBACLrd,EAAKsd,0BACLtd,EAAKud,mBACLvd,EAAKwd,oBACLxd,EAAKyd,iBACLzd,EAAK0d,iBACL1d,EAAK2d,oBACL3d,EAAK4d,aACL5d,EAAK8E,SACL9F,MAAM6e,OAAO7d,EAAMhB,MAAM0H,KAE7BjH,SACIwC,KAAM,cACN6b,OAAQ,IACRvY,WAAW,EACX2P,YAAa6H,EAAUf,KACvB9J,SAAW3M,WAAW,GACtBwY,eACA/K,UACAgL,UAAW,GACXC,SACAlC,cACA1S,WAAW,EACX6U,SACIlL,QAAUmL,MAAO,KACjBC,aACID,MAAO,IACPE,UAAU,GAEdC,eACIH,MAAO,IACPE,UAAU,GAEdE,cACIJ,MAAO,IACPE,UAAU,IAGlBG,aACIC,YACI,YACA,OACA,UACA,YAEJC,eAAgB1B,EAChB2B,mBAAoB1B,EACpB2B,sBAAuB1B,GAE3BjS,UACIiH,SACIW,aAAc,aACdG,OAAQ,SACRC,cAAe,iBACf4L,iBAAkB,2BAClBC,kBAAmB,4BACnBzL,UAAW,UACXlD,UAAW,OACXM,UAAW,YACXsO,UAAW,OACXC,kBAAmB,gBACnBxO,iBAAkB,eAClB3E,SAAU,YACVoT,SAAU,YACVtL,OAAQ,SACRF,QAAS,eACTgD,eAAgB,KAChBE,iBAAkB,MAClB0D,SAAU,SACVF,OAAQ,UAEZ8D,OACI9N,UAAW,OACXM,UAAW,YACXsO,UAAW,OACXC,kBAAmB;AACnBxO,iBAAkB,eAClBjO,MAAO,SAEX2b,SACIlL,QACI9C,MAAO,eACPrF,MAAO,aACP3I,KAAM,QAEVkc,aACIlO,MAAO,UACP0L,QAAS,kEACTsD,OAAQ,OACRnU,OAAQ,OACRoU,MAAO,SAEXb,eACIpO,MAAO,UACP0L,QAAS,4HACTsD,OAAQ,SACRnU,OAAQ,SACRoU,MAAO,SAEXZ,cACIrO,MAAO,SACP0L,QAAS,kEACTsD,OAAQ,SACRnU,OAAQ,SACRoU,MAAO,UAGfX,aACIY,eAAgB,mBAChB9O,UAAW,OACXI,KAAM,OACN6G,QAAS,eACTC,WAAY,mBACZC,SAAU,gBACVC,YAAa,oBACbnV,MAAO,WAInBmQ,QACIpL,EACAC,EACAG,EACAsT,EACAC,EACAL,EACAM,EACAC,EACAC,GAEJhC,YAAa,WACT,GAAsKjZ,GAAlKH,EAAON,KAAMD,EAAUO,EAAKP,QAASyJ,EAAoBzJ,EAAQU,eAAkBkf,EAAgBrf,EAAKuE,iBAAkB+a,EAAgBtf,EAAKmE,iBAC7I+E,aAA6BlK,OAAMwC,KAAKuV,sBAyB1C5W,EAAa+I,GAvBT/I,EADA4C,EAAQmG,IAEJ1H,KAAM0H,EACNqW,UAAU,EACVjb,MACI+a,EACAC,IAIKpgB,GAAO,EAAMgK,GACtBqW,UAAU,EACVjb,MACI+a,EACAC,KAIRpW,GAAqBmL,EAAcnL,EAAkBwP,QACrDvY,EAAWuY,OAASxP,EAAkBwP,OAC/BrE,EAAcrV,MAAMwC,KAAK2V,QAAQxX,eACxCQ,EAAWuY,OAAS1Z,MAAMwC,KAAK2V,QAAQxX,cAK3CK,EAAKG,YAAcH,EAAKwf,eACxBxf,EAAKG,WAAWsf,OAAO7E,EAAO5a,EAAKwf,eACnCxf,EAAKG,WAAWsf,OAAOhY,EAAQzH,EAAK0f,kBAEpC1f,EAAKwf,cAAgBngB,EAAMW,EAAK2f,OAAQ3f,GACxCA,EAAK0f,eAAiBrgB,EAAMW,EAAK6T,QAAS7T,IAE9CA,EAAKG,WAAanB,MAAMwC,KAAKuV,sBAAsBoC,OAAOhZ,GAAYwI,KAAKiS,EAAO5a,EAAKwf,eAAe7W,KAAKlB,EAAQzH,EAAK0f,iBAE5HC,OAAQ,SAAU7W,GACTpJ,KAAKqJ,QAAQ6R,EAAO9R,IACrB7J,OAAOiG,QAAQC,KAAK,qCAAuC2D,EAAG8W,IAAIC,OAAS,MAAQ/W,EAAG8W,IAAIE,aAGlG1C,SAAU,WACN,GAAIpd,GAAON,KAAMD,EAAUO,EAAKP,QAAS0e,EAAQ1e,EAAQ0e,MAAOL,EAASre,EAAQqe,MACjF9d,GAAK0F,QAAU1F,EAAKwI,QAAQgC,SAASgR,EAAkB9V,SACnDyY,GACAne,EAAK0F,QAAQyY,MAAMA,GAEnBL,GACA9d,EAAK0F,QAAQoY,OAAOA,GAExB9d,EAAK+f,eAAiB/gB,MAAMghB,SAAS,WACjChgB,EAAK8E,QAAO,MAGpBuY,cAAe,WACX,GAAIrd,GAAON,KAAMD,EAAUO,EAAKP,OAC5BA,GAAQyS,UACRlS,EAAKyb,OAAS3c,EAAE,WAAW0L,SAASgR,EAAkBC,QACtDzb,EAAKyb,OAAOzM,OAAOhP,EAAKigB,eAAezX,UAE3CxI,EAAK0F,QAAQsJ,OAAOhP,EAAKyb,SAE7B6B,wBAAyB,WACrB,GAAItd,GAAON,KAAM2R,EAAYvS,EAAE,WAAW0L,SAASgR,EAAkBG,iBACrE3b,GAAK2b,iBAAmBtK,EACxBrR,EAAK0F,QAAQsJ,OAAOhP,EAAK2b,mBAE7B4B,iBAAkB,WACd,GAAIvd,GAAON,KAAMD,EAAUO,EAAKP,QAASygB,EAAchhB,KAAWO,EAAQse,aAClEpe,YAAaK,EACbiL,SAAUxL,EAAQwL,SAASiH,QAC3BlR,OAAQhB,EAAK2b,iBACblX,OAAQ,aACR+J,OAAQxO,EAAKmgB,eAAexX,KAAK3I,GACjC8L,eAAgB9L,EAAKG,WAAW2L,gBAEpCrM,GAAQse,eAAgB,IAG5B/d,EAAK+d,YAAc,GAAIrX,GAAG/G,YAAY8Z,YAAY,YAAayG,GAC/DlgB,EAAK+d,YAAYpV,KAAKjB,EAAMrI,EAAMW,EAAKogB,YAAapgB,MAExDwd,kBAAmB,WACf,GAAIxd,GAAON,IACXM,GAAK0b,WAAa5c,EAAE,WAAW0L,SAASgR,EAAkBE,YAC1D1b,EAAK0b,WAAW1M,OAAOhP,EAAKqgB,gBAAgB7X,SAC5CxI,EAAK2b,iBAAiB3M,OAAOhP,EAAK0b,aAEtC+B,eAAgB,WACZ,GAAIzd,GAAON,KAAMD,EAAUO,EAAKP,QAASyS,EAAUlS,EAAKkS,OACxDlS,GAAK4b,QAAU9c,EAAE,WAAW0L,SAASgR,EAAkBI,SACnDnc,EAAQsc,YACR/b,EAAK4b,QAAQ5M,OAAOhP,EAAKsgB,kBAAkB9X,SAE/CxI,EAAK4b,QAAQ5M,OAAOhP,EAAKugB,aACpBrO,GAAYA,EAAQiD,cAAcjD,EAAQU,aAAaI,OAAO/Q,OAC/DjC,EAAK4b,QAAQ5M,OAAOhP,EAAKwgB,cAAc9a,QAAQ+a,QAEnDzgB,EAAK2b,iBAAiB3M,OAAOhP,EAAK4b,UAEtC8B,eAAgB,WACZ,GAAI1d,GAAON,KAAMghB,EAAgB1gB,EAAKP,QAAQ+e,WACzCkC,KAGL1gB,EAAK6b,QAAU/c,EAAE,WAAW0L,SAASgR,EAAkBK,SACvD7b,EAAK2gB,iBAAmB7hB,EAAE,WAAW0L,SAASgR,EAAkBmF,kBAChE3gB,EAAK6b,QAAQ7M,OAAOhP,EAAK2gB,kBACzB3gB,EAAK4gB,yBACL5gB,EAAK2b,iBAAiB3M,OAAOhP,EAAK6b,QAAQ4E,UAE9CG,uBAAwB,WACpB,GAAuKC,GAAnK7gB,EAAON,KAAMD,EAAUO,EAAKP,QAASqhB,EAAsBrhB,EAAQwL,SAASuT,YAAauC,EAAqBthB,EAAQ+e,YAAawC,EAAYhhB,EAAKwC,aACxJ,OAAKwe,IAQLH,EAAuC,IAArBG,EAAUte,OAAeqe,EAAmBpC,mBAAqBoC,EAAmBnC,sBACtGiC,EAAkBxU,EAASwU,IACvBI,OAAQzE,EACRvR,SAAU6V,EACVE,UAAWA,EACXvC,WAAYsC,EAAmBtC,aAEnCze,EAAK2gB,iBAAiBO,KAAKL,GAP3BA,IAPIA,EAAkBxU,EAAS0U,EAAmBrC,iBAC1CuC,OAAQzE,EACRvR,SAAU6V,IAEd9gB,EAAK2gB,iBAAiBO,KAAKL,GAC3B,IAWRZ,aAAc,WACV,GAAIjgB,GAAON,KAAMD,EAAUO,EAAKP,QAAS0hB,EAAiBriB,EAAE,WAAW0L,SAASgR,EAAkBtJ,SAAUkP,EAAiBliB,KAAWO,EAAQyS,SACxIvS,YAAaD,KACbuL,SAAUxL,EAAQwL,SAASiH,QAC3B1D,OAAQxO,EAAKmgB,eAAexX,KAAK3I,IAGzC,OADAA,GAAKkS,QAAU,GAAIxL,GAAG/G,YAAYqS,QAAQmP,EAAgBC,IAG9Df,cAAe,WACX,GAAIrgB,GAAON,KAAM2hB,EAAkBviB,EAAE,WAAW0L,SAASgR,EAAkBM,UAAWrc,EAAUO,EAAKP,QAAQwe,MAAM3C,GAAY7P,EAAkBvM,GAAO,MAChJiB,WAAYH,EAAKP,QAAQU,WACzB8K,SAAUjL,EAAKP,QAAQwL,SAASgT,MAChC5U,UAAWrJ,EAAKP,QAAQ4J,UACxByC,eAAgB9L,EAAKG,WAAW2L,gBAIxC,OAFA9L,GAAKyB,SAAW,GAAIiF,GAAG/G,YAAYyI,eAAekT,GAAW+F,EAAiB5hB,EAASgM,GACvFzL,EAAKyB,SAASkH,KAAKrB,EAAUjI,EAAMW,EAAKoP,UAAWpP,IAAO2I,KAAKhB,EAAMtI,EAAMW,EAAKshB,MAAOthB,IAAO2I,KAAKuS,EAAM7b,EAAMW,EAAKuhB,MAAOvhB,IAAO2I,KAAKd,EAAexI,EAAMW,EAAK6M,eAAgB7M,IAC1KA,EAAKyB,UAEhB8f,MAAO,SAAUzY,GACb,GAAI9I,GAAON,MACNM,EAAK+I,QAAQmS,EAAMpS,IAAOA,EAAGvG,MAAMif,QAAQ1Y,EAAG9H,QAAU,GACzDhB,EAAK2C,UACDZ,KAAM,OACNf,OAAQ8H,EAAG9H,SACZkB,KAAK,WACJlC,EAAKmgB,gBACD5Z,QAAS,cACT9G,QAASqJ,MAEdlI,KAAK,WACJZ,EAAKmgB,gBACD5Z,QAAS,cACT9G,QAASqJ,OAKzB+D,eAAgB,SAAU/D,GACtB,GAAI9I,GAAON,KAAM6N,EAAUzE,EAAGyE,QAASnH,EAAOpH,MAAMoH,IAChDmH,KAAYnH,EAAKqb,QACjBzhB,EAAKmgB,gBACD5Z,QAAS,gBACT9G,SAAWuB,OAAQ8H,EAAG9H,UAG1BuM,IAAYnH,EAAK2K,IACjB/Q,EAAKmgB,gBACD5Z,QAAS,gBACT9G,SAAWuB,OAAQ8H,EAAG9H,WAIlC2B,SAAU,SAAUlD,GAAV,GACFO,GAAON,KAAMuL,EAAWjL,EAAKP,QAAQwL,SAASiT,QAAQze,EAAQsC,KAAO,WACrE2f,EAAU5iB,EAAE,eAAe6iB,aAAaziB,MACxCgR,MAAOjF,EAASiF,MAChB0L,QAAS3Q,EAAS2Q,QAClB3Q,SAAUA,GACXjL,EAAKP,QAAQye,QAAQze,EAAQsC,KAAO,aAAaP,KAAK,eAKzD,OAJAkgB,GAAQ/Y,KAAKjB,EAAMrI,EAAMW,EAAKogB,YAAapgB,IAC3C0hB,EAAQ/Y,KAAKoS,EAAM1b,EAAMW,EAAK4hB,cAAe5hB,EAAMP,EAAQuB,SAC3D0gB,EAAQzc,OACRyc,EAAQhc,QAAQgF,YAAY,aACrBgX,EAAQ3I,QAEnBjX,QAAS,SAAUrC,GAAV,GACDO,GAAON,KAAMuL,EAAWvL,KAAKD,QAAQwL,SAASiT,QAAQze,EAAQsC,KAAO,UACrE8f,EAAS/iB,EAAE,eAAegjB,YAAY5iB,MACtCgR,MAAOjF,EAASiF,MAChB0L,QAAS3Q,EAAS2Q,QAClB3Q,SAAUA,EACVtG,MAAOlF,EAAQuC,cAChBtC,KAAKD,QAAQye,QAAQze,EAAQsC,KAAO,YAAYP,KAAK,cAKxD,OAJAqgB,GAAOlZ,KAAKjB,EAAMrI,EAAMW,EAAKogB,YAAapgB,IAC1C6hB,EAAOlZ,KAAK0J,EAAOhT,EAAMW,EAAK4hB,cAAe5hB,EAAMP,EAAQuB,SAC3D6gB,EAAO5c,OACP4c,EAAOnc,QAAQgF,YAAY,YACpBmX,EAAO9I,QAElBqH,YAAa,WACT,GAAIpgB,GAAON,KAAMqiB,EAAgBjjB,EAAEkjB,SAASD,eAAgBld,EAAO7E,EAAK6E,OAAQpD,EAAWzB,EAAKyB,SAASN,eACzG,KAAInB,EAAK+d,cAAe/d,EAAK+d,YAAYkE,MAAMC,UAI/C,MADAliB,GAAKyB,SAASwN,cAAe,EACzBxN,EAASsM,WAAatM,EAASsM,UAAUpI,KAAK,oBAAoBjD,QAAUqf,EAAcI,SAAS3G,EAAkBM,WACrH9b,EAAKyB,SAASwN,cAAe,EAC7BpK,EAAKud,cAAgBL,EACrB,IAEJld,EAAKud,cAAgBL,EAAcI,SAAS3G,EAAkBxb,EAAKqiB,YAAcN,EAAgB,KAAjGld,IAEJ+c,cAAe,SAAU5gB,GACrB,GAAIhB,GAAON,KAAMmF,EAAO7E,EAAK6E,MACxB7D,KAGD6D,EAAKud,cACLvd,EAAKud,cAAclT,QACZlO,EAAO0M,SAAW1M,EAAO0M,QAAQ,mBAAmBhL,QAC3D1B,EAAO0M,QAAQ,mBAAmBwB,UAG1CqR,UAAW,WACP,GAAIvgB,GAAON,KAAM4iB,EAAcxjB,EAAE,WAAW0L,SAASgR,EAAkB3W,MAAOqQ,EAAclV,EAAKP,QAAQyV,WAGzG,OAFAlV,GAAKsiB,YAAcA,EACnBtiB,EAAKsiB,YAAYtT,OAAOhP,EAAK6E,KAAKqQ,IAC3BoN,GAEXhC,gBAAiB,WACb,GAAItgB,GAAON,KAAMD,EAAUO,EAAKP,QAAS8iB,EAAoBzjB,EAAE,WAAW0L,SAASgR,EAAkBO,YAAayG,EAAoBtjB,MAC9HqD,QACQR,KAAM,WACN+Q,KAAM,KAEdyD,OAAQlX,EAAMW,EAAKyiB,kBAAmBziB,IACvCP,EAAQsc,WAEf,OADA/b,GAAK+b,WAAa,GAAIrV,GAAGgc,WAAWH,EAAmBC,IAG3DC,kBAAmB,SAAU3Z,GACzB,GAAImF,GAAQnF,EAAGgE,OAAOvK,QAAQkC,OAAO,SAAU/D,GAC3C,MAAOA,GAAK6O,OAASzG,EAAGnE,MAAMge,UAAU,KACzCC,OACHljB,MAAK0P,WAAYG,KAAMtB,EAAQA,EAAMpM,GAAK,MAE9C8b,kBAAmB,WACf,GAgBgCkF,GAhB5B7iB,EAAON,KAAMD,EAAUO,EAAKP,QAASqjB,EAAiBrjB,EAAQwL,SAASiT,QAAQlL,OAAQ+P,EAAgBjkB,EAAE,WAAYkkB,EAAgB9jB,MACjIgR,MAAO4S,EAAe5S,MACtB+S,OAAO,EACPf,SAAS,EACT/D,MAAO,IACP+E,UAEQpQ,KAAMgQ,EAAejY,MACrB2D,OAAQnP,EAAMW,EAAKmjB,sBAAuBnjB,KAG1C8S,KAAMgQ,EAAe5gB,KACrBkhB,SAAS,IAGjBnY,SAAU6X,GACXrjB,EAAQye,QAAQlL,OACvB,IAAKhT,EAAKqjB,oBASV,MANAR,GAAiB7iB,EAAKwgB,cACtBxgB,EAAKic,aAAe,GAAIvV,GAAG4c,OAAOP,EAAeC,GACjDhjB,EAAKic,aAAavW,QAAQ8E,SAASgR,EAAkBS,cACrDjc,EAAKic,aAAazT,QAAQwG,OAAO6T,EAAend,SAChD1F,EAAKic,aAAatT,KAAKjB,EAAMrI,EAAMW,EAAKujB,sBAAuBvjB,EAAM,KACrEA,EAAKic,aAAatT,KAAK0J,EAAOhT,EAAMW,EAAKujB,sBAAuBvjB,EAAMA,EAAKsiB,cACpEtiB,EAAKic,cAEhBoH,kBAAmB,WACf,GAAIrjB,GAAON,KAAMD,EAAUO,EAAKP,QAAS+jB,GAAa,CAItD,QAHK/jB,EAAQue,WAAave,EAAQuT,OAAOyQ,OAAShkB,EAAQuT,OAAOyQ,MAAMC,UAAYjkB,EAAQuT,UAAW,IAClGwQ,GAAa,GAEVA,GAEXhD,YAAa,WACT,GAAIxgB,GAAON,KAAMD,EAAUO,EAAKP,QAASkkB,EAAgB7kB,EAAE,oCAAwC0L,SAASgR,EAAkBxI,QAAS4Q,EAAgB1kB,GAAO,GACtJukB,OACII,YAAY,EACZH,QAASjkB,EAAQue,WAErB8F,SAAU9jB,EAAKsiB,aAChB7iB,EAAQuT,OAIf,OAHAhT,GAAKgT,OAAS,GAAItM,GAAGqd,OAAOJ,EAAc,GAAIC,GAC9C5jB,EAAKgT,OAAOrK,KAAKkS,EAAQxb,EAAMW,EAAKgkB,yBAA0BhkB,IAC9DA,EAAKgT,OAAOrK,KAAKmS,EAASzb,EAAMW,EAAKikB,SAAUjkB,IACxCA,EAAKgT,QAEhBgR,yBAA0B,SAAUlb,GAChCA,EAAGtH,KAAOtC,EAAO4J,EAAGtH,MAAQ+N,KAAM7P,KAAK6P,UAE3C0U,SAAU,WACNvkB,KAAKwB,MAAMC,gBAAgBhB,WAAWwP,QAE1CwT,sBAAuB,WACnB,GAAInjB,GAAON,KAAMsT,EAAShT,EAAKgT,MAC3BA,IACAA,EAAOkR,iBAGfX,sBAAuB,SAAUY,GAC7B,GAAInkB,GAAON,KAAMsT,EAAShT,EAAKgT,MAC3BA,IACAA,EAAOoR,YAAaN,SAAUK,KAGtCvb,SAAU,SAAUE,GACZpJ,KAAKqJ,QAAQiS,GACTqJ,OAAQ,OACR7V,OAAQ1F,EAAG0F,OACXjM,MAAOuG,EAAGvG,MACVwM,MAAOjG,EAAGiG,SAEdjG,EAAGE,kBAGXH,OAAQ,WACAnJ,KAAKD,QAAQ+e,aACb9e,KAAKkhB,yBAETlhB,KAAKqJ,QAAQkS,IAEjBqJ,yBAA0B,SAAUC,GAChC,GAAIrI,GAAWpd,EAAE,WAAW0L,SAASgR,EAAkBU,UAAU1R,SAASgR,EAAkBW,oBAAoB3R,SAAS+Z,GAAWnU,EAAOtR,EAAE,YAAY0L,SAASgR,EAAkBa,aAKpL,OAJAH,GAASlN,OAAOoB,GAChB8L,EAASsI,MAAM,WACX1lB,EAAEY,MAAM+R,YAAY+J,EAAkBY,iBAEnCF,GAEXuI,yBAA0B,WACtB,GAA+PC,GAAqBC,EAAhR3kB,EAAON,KAAMgG,EAAU1F,EAAK0F,QAASwW,EAAWlc,EAAKskB,yBAAyB9I,EAAkBc,oBAAqBsI,EAAiBlf,EAAQC,KAAK4V,EAAMC,EAAkBI,SAAUiJ,EAAoBnf,EAAQC,KAAK4V,EAAMC,EAAkBE,WAClPQ,GAAS4I,YAAYD,GACrB7kB,EAAK6F,iBAAiB6V,WAAa1b,EAAK0F,QAAQC,KAAKuW,GAAU6I,MAAMC,gBACjEpf,OAAQ2V,EAAMC,EAAkBc,mBAChC2I,MAAO,WACHP,EAAsBE,EAAezG,QACrCwG,EAAyBE,EAAkB1G,SAE/CrZ,OAAQ,SAAUoT,GACd,GAAIgN,GAAQhN,EAAEiN,EAAEC,YACZpmB,OAAMmN,QAAQkZ,MAAM3f,KACpBwf,OAEAP,EAAyBO,MAAcR,EAAsBQ,MAGjEL,EAAkB1G,MAAMwG,EAAyBO,MAEtDI,qBAEPC,sBAAuB,WACnB,GAAsPb,GAAqBc,EAAvQxlB,EAAON,KAAMgG,EAAU1F,EAAK0F,QAASwW,EAAWlc,EAAKskB,yBAAyB9I,EAAkBe,iBAAkBqI,EAAiBlf,EAAQC,KAAK4V,EAAMC,EAAkBI,SAAU6J,EAAiB/f,EAAQC,KAAK4V,EAAMC,EAAkBK,QACvO7b,GAAKP,QAAQ+e,cAGlBtC,EAASwJ,aAAaD,GAAgBhF,OACtCzgB,EAAK6F,iBAAiBgW,QAAUnW,EAAQC,KAAKuW,GAAU6I,MAAMC,gBACzDpf,OAAQ2V,EAAMC,EAAkBe,gBAChC0I,MAAO,WACHP,EAAsBE,EAAezG,QACrCqH,EAAsBC,EAAetH,SAEzCrZ,OAAQ,SAAUoT,GACd,GAAIgN,GAAQhN,EAAEiN,EAAEC,YACZpmB,OAAMmN,QAAQkZ,MAAM3f,KACpBwf,OAEAM,EAAsBN,MAAcR,EAAsBQ,MAG9DO,EAAetH,MAAMqH,EAAsBN,MAEhDI,sBAEP1H,WAAY,WACR,GAAI5d,GAAON,KAAMD,EAAUO,EAAKP,OAChCO,GAAK6F,oBACApG,EAAQ8F,YAGbvF,EAAK0F,QAAQ8E,SAASgR,EAAkBjW,WACxCvF,EAAKykB,2BACLzkB,EAAKulB,0BAET1gB,KAAM,SAAU9C,GACZ,GAAI/B,GAAON,KAAM8I,EAAU1J,EAAE,eAAgBW,EAAUO,EAAKP,QAAQwe,MAAMlc,GAAO0J,EAAkBvM,GAAO,MAClGiB,WAAYH,EAAKI,iBAAmBJ,EAAKG,WACzC8K,SAAUjL,EAAKP,QAAQwL,SAASgT,MAChC5U,UAAWrJ,EAAKP,QAAQ4J,WAEhC,IAAItH,IAAShD,EACT,MAAOiB,GAAKkB,KAEhB,KAAKwF,EAAG/G,YAAYyI,eAAerG,GAC/B,KAAU0G,OAAMzJ,MAAMoG,OAAO,4CAA6CrD,GAE1E/B,GAAKkB,OAASlB,EAAKkB,MAAMqK,UACzBvL,EAAKkB,MAAMqK,UACXvL,EAAKsiB,YAAY7b,SAErBzG,EAAKqiB,UAAYtgB,EACjB/B,EAAKkB,MAAQ,GAAIwF,GAAG/G,YAAYyI,eAAerG,GAAMyG,EAAS/I,EAASgM,GACvEzL,EAAKkB,MAAMyH,KAAKpB,EAAQlI,EAAMW,EAAKwM,QAASxM,IAC5CA,EAAKkB,MAAMyH,KAAKjB,EAAMrI,EAAMW,EAAK2lB,MAAO3lB,IACxCA,EAAKkB,MAAMyH,KAAKqS,EAAa3b,EAAMW,EAAK4I,SAAU5I,IAClDA,EAAKkB,MAAMyH,KAAKsS,EAAW5b,EAAMW,EAAK6I,OAAQ7I,IAC9CA,EAAKkB,MAAMyH,KAAKuS,EAAM7b,EAAMW,EAAKuhB,MAAOvhB,IACxCA,EAAKkB,MAAMyH,KAAKd,EAAexI,EAAMW,EAAK6M,eAAgB7M,IAC1DA,EAAKkB,MAAMyH,KAAK0S,EAAQhc,EAAMW,EAAK4lB,QAAS5lB,IAC5CA,EAAKkB,MAAMsH,QAAQgC,SAASgR,EAAkBzZ,IAC9C/B,EAAKsiB,YAAY5X,YAAYqJ,OAAO3N,KAAKM,EAAG/G,YAAYyI,gBAAgBsG,IAAI,SAAUmX,GAClF,MAAOrK,GAAkB3W,KAAO,IAAMghB,IACvCC,KAAK,MAAMtb,SAASgR,EAAkB3W,KAAO,IAAM9C,GACtD/B,EAAKsiB,YAAYtT,OAAOhP,EAAKkB,MAAMsH,UAEvC2X,eAAgB,SAAU7K,GACtB,GAAIyQ,GAAczQ,EAAK/O,QAASyf,EAAiB9mB,GAASS,YAAaD,MAAQ2U,EAAciB,EAAK7V,SAAW6V,EAAK7V,SAAYkF,MAAO2Q,EAAK7V,UAAY8G,EAAU,GAAIG,GAAG/G,YAAYiH,SAASmf,GAAaC,EACzM,KAAKtmB,KAAKqJ,QAAQoS,EAAS7F,GACvB,MAAO/O,GAAQxG,QAGvBqP,UAAW,SAAUtG,GACjB,GAAI9I,GAAON,KAAM6P,EAAOzG,EAAGyG,IACtBvP,GAAK+I,QAAQzB,GAAYiI,KAAMA,KAChCvP,EAAKimB,SAAS1W,IAGtB+R,MAAO,SAAUxY,GACb,GAAImF,GAAQvO,KAAKS,WAAWyB,IAAIkH,EAAGwG,QACnCrB,GAAMiY,QAEV1Z,QAAS,SAAU1D,GACXpJ,KAAKD,QAAQ+e,aACb9e,KAAKkhB,yBAETlhB,KAAKqJ,QAAQxB,GAAU+F,QAASxE,EAAGwE,WAEvCqY,MAAO,SAAU7c,GACb,GAAI9I,GAAON,KAAMuO,EAAQnF,EAAGmF,KAC5BjO,GAAK+I,QAAQrB,GAAQuG,MAAOA,IACxBA,EAAM/C,aACNlL,EAAKoP,WAAYG,KAAMtB,EAAMpM,MAGrC+jB,QAAS,WACL,GAAI5lB,GAAON,KAAMO,EAAeD,EAAKE,cAAeqG,EAAUtG,EAAaiG,MAC3EjG,GAAauG,OAAOD,GACpBvG,EAAK+I,QAAQqS,GACTyE,OAAQ,SACRrR,OAAQ,aACRhN,KAAM+E,EAAQ/E,QAGtBqS,QAAS,SAAU/K,GAAV,GAeOvC,GAdRvG,EAAON,KAAMO,EAAeD,EAAKE,cAAeqD,EAAmBuF,EAAG2E,KAAO3E,EAAG2E,KAAKjK,SAAWxD,EAAKG,UACrGH,GAAK+I,QAAQiS,GACTqJ,OAAQ,OACR7V,OAAQ1F,EAAG0F,OACXjM,MAAOuG,EAAGvG,MACVwM,MAAOjG,EAAGiG,UAIlB/O,EAAKyB,SAAS6M,mBAAmBxF,GACf,WAAdA,EAAG0F,QAAqC,eAAd1F,EAAG0F,QAAyC,QAAd1F,EAAG0F,SACvDvO,EAAawG,QACblD,EAAiB4iB,QAEb5f,EAAUtG,EAAaiG,OAC3B3C,EAAiB4iB,OAAOhjB,KAAK,SAAUijB,GACnCnmB,EAAaqG,QAAQC,GACrBvG,EAAK+I,QAAQqS,GACTyE,OAAQ,UACRrR,OAAQ1F,EAAG0F,OACXhN,KAAM+E,EAAQ/E,KACd6kB,SAAUD,MAEfxlB,KAAK,SAAUwlB,GACdnmB,EAAauG,OAAOD,GACpBvG,EAAK+I,QAAQqS,GACTyE,OAAQ,OACRrR,OAAQ1F,EAAG0F,OACXhN,KAAM+E,EAAQ/E,KACd6kB,SAAUD,QAKR,WAAdtd,EAAG0F,QAAuBxO,EAAKI,iBAAmBJ,EAAKI,gBAAgByW,UAAY/N,EAAGvG,MAAM,KAAOvC,EAAKI,gBAAgByW,UACxH7W,EAAKsmB,kBAAkBxd,EAAGvG,MAAM,IAEnB,cAAbuG,EAAG0F,QAA0BxO,EAAKI,iBAAmBJ,EAAKI,gBAAgByW,UAAY7W,EAAKuP,OAAOiS,QAAQ1Y,EAAGvG,MAAM,GAAGV,KAAO,GAC7H7B,EAAKsmB,kBAAkBxd,EAAGvG,MAAM,IAElB,eAAduG,EAAG0F,QACH1F,EAAGvG,MAAM,GAAGgkB,QAAO,KAG3BD,kBAAmB,SAAU5lB,GAAV,GACXV,GAAON,KACPmX,EAASnW,EAAK+N,aACd+X,EAAiB3P,EAASA,EAAOhV,GAAK,EAC1C7B,GAAKoP,WAAYG,KAAMiX,KAE3BC,qBAAsB,SAAUxY,GAE5B,IADA,GAAIjO,GAAON,KAAMqc,EAAa/b,EAAK+b,WAAYxZ,KACxC0L,GACH1L,EAAM9B,MACFoB,GAAIoM,EAAMpM,GACViR,KAAM7E,EAAMhM,KACZsN,KAAMtB,EAAMsB,OAEhBtB,EAAQA,EAAMQ,YAAcR,EAAMQ,YAEtClM,GAAM9B,MACFsB,KAAM,WACNF,GAAI,GACJiR,KAAM,KAEViJ,EAAWxZ,MAAMA,EAAMmkB,YAE3BC,kBAAmB,WACf,GAAI3mB,GAAON,KAAMgG,EAAU1F,EAAK0F,QAASkhB,EAAerL,EAAMC,EAAkB3L,KAAMgX,EAAmBtL,EAAMC,EAAkBQ,KAAML,EAAmBJ,EAAMC,EAAkBG,iBAAkBmL,EAAcphB,EAAQoY,SAAUiJ,EAAgB,EAAGC,EAAmB,CACtQhnB,GAAKkS,UACL6U,EAAgBrM,EAAY1a,EAAKkS,QAAQxM,UAEzC1F,EAAK+b,aACLiL,EAAmBtM,EAAY1a,EAAK+b,WAAWrW,UAEvB,SAAxB1F,EAAKP,QAAQqe,SACbpY,EAAQC,KAAMihB,GAAyB9I,OAAOgJ,GAAeC,EAAgBC,EAAmB,IAChGthB,EAAQC,KAAKkhB,GAAkBhQ,SAASiH,OAAOgJ,GAAeC,EAAgBC,EAAmB,IACjGthB,EAAQC,KAAKgW,GAAkBmC,OAAOgJ,EAAcC,KAG5DE,QAAS,WACLvnB,KAAKinB,oBACL3nB,MAAM8F,OAAOpF,KAAK8I,QAAQhF,aAE9B8H,cAAe,SAAUnL,GACrB,GAAIH,GAAON,IACXM,GAAKP,QAAQU,WAAaA,EAC1BH,EAAKoZ,cACDpZ,EAAKkS,UACLlS,EAAKkS,QAAQ3G,UACbvL,EAAKyb,OAAOhV,QACZzG,EAAKyb,OAAOzM,OAAOhP,EAAKigB,eAAezX,UAEvCxI,EAAKyB,WACLzB,EAAKyB,SAAS8J,UACdvL,EAAK0b,WAAWjV,QAChBzG,EAAK0b,WAAW1M,OAAOhP,EAAKqgB,gBAAgB7X,UAE5CxI,EAAKkB,OACLlB,EAAK6E,KAAK7E,EAAKqiB,WAAariB,EAAKP,QAAQyV,aAE7ClV,EAAKud,oBAETlS,QAAS,WACL,GAAIrL,GAAON,KAAMS,EAAaH,EAAKI,iBAAmBJ,EAAKG,UAC3DA,GAAWwP,QAEfuX,QAAS,WACL,MAAOloB,OAAMmoB,WAAWznB,KAAKgG,UAEjClD,YAAa,WAAA,GAKL9B,GAJAV,EAAON,KAAM6C,EAAQvC,EAAKkB,MAAMsB,cAAef,EAAWzB,EAAKyB,QACnE,OAAIc,IAASA,EAAMG,OACRH,GAEP7B,EAAOe,EAASe,cAChB9B,GACQV,EAAKG,WAAWyB,IAAIlB,EAAKmB,KADrC,IAIJ0N,KAAM,WACF,MAAO7P,MAAK0nB,OAAS,IAEzBnB,SAAU,SAAU1W,GAChB,GAAIvP,GAAON,KAAMS,EAAaH,EAAKG,WAAY8N,EAAQ9N,EAAWyB,IAAI2N,EAAK8X,QAAQ,MAAO,KAAMxiB,EAAO7E,EAAKkB,MAAOO,EAAWzB,EAAKyB,SAAUsa,EAAa/b,EAAK+b,WAAYuL,EAAkB,KAAT/X,GAAwB,MAATA,CACnM,KAAKtB,IAAUqZ,EAEX,MADAroB,QAAOiG,QAAQC,KAAK,iEAAmEoK,EAAO,qFAC9F,CAGJ,IADAvP,EAAKonB,MAAQ7X,GACTvP,EAAK+I,QAAQiS,GACTqJ,OAAQ,aACR7V,OAAQ,SACRjM,OAAQ0L,KAHhB,CAUA,GAHI8N,GACA/b,EAAKymB,qBAAqBxY,GAE1BqZ,EAWA,MAVAnnB,GAAWmE,MACPtE,EAAKuE,iBACLvE,EAAKmE,oBAETnE,EAAKI,gBAAkBD,EACvB0E,EAAKwG,QAAQrL,EAAKI,iBAClBqB,EAASA,SAASqJ,OAAOhM,KACrBkB,EAAKP,QAAQ+e,aACbxe,EAAK4gB,yBAET,CAEA3S,GAAMsY,SAAWtY,EAAMsY,UACvBtY,EAAMiY,OAENrhB,IACA7E,EAAKI,gBAAkB6N,EAAMzK,SAC7BxD,EAAKI,gBAAgBmnB,OACjBvnB,EAAKuE,iBACLvE,EAAKmE,mBAETU,EAAKwG,QAAQrL,EAAKI,kBAElBqB,GACAA,EAAS4J,QAAQ4C,EAAMpM,IAEvB7B,EAAKP,QAAQ+e,aACbxe,EAAK4gB,2BAGbre,MAAO,WACH,GAAIvC,GAAON,IACX,OAAOM,GAAKyB,SAASN,gBAAgBoB,QAAQ1B,IAAIb,EAAKkB,MAAMC,gBAAgBoB,UAEhFgJ,QAAS,WACL,GAAIvL,GAAON,IACX+a,GAAgB5a,GAAG0L,QAAQzL,KAAKE,GAChCA,EAAKG,WAAWsf,OAAO7E,EAAO5a,EAAKwf,eAAeC,OAAOhY,EAAQzH,EAAK0f,gBAClE1f,EAAK6F,iBAAiB6V,aACtB1b,EAAK6F,iBAAiB6V,WAAWnQ,UACjCvL,EAAK6F,iBAAiB6V,WAAa,MAEnC1b,EAAK6F,iBAAiBgW,UACtB7b,EAAK6F,iBAAiBgW,QAAQtQ,UAC9BvL,EAAK6F,iBAAiBgW,QAAU,MAEhC7b,EAAKic,eACLjc,EAAKic,aAAa1Q,UAClBvL,EAAKic,aAAe,MAEpBjc,EAAKgT,SACLhT,EAAKgT,OAAOzH,UACZvL,EAAKgT,OAAS,MAEdhT,EAAK+d,cACL/d,EAAK+d,YAAYxS,UACjBvL,EAAK+d,YAAc,MAEvB/e,MAAMwoB,aAAaxnB,EAAK+f,gBACxB/f,EAAKG,WAAa,KAClBH,EAAKI,gBAAkB,KACvBpB,MAAMuM,QAAQvL,EAAKwI,WAG3B9B,GAAG+gB,OAAOtK,IACZle,OAAOD,MAAM6H,QACR5H,OAAOD,OACE,kBAAVH,SAAwBA,OAAOiI,IAAMjI,OAAS,SAAUkI,EAAIC,EAAIC,IACrEA,GAAMD","file":"kendo.filemanager.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('filemanager/commands', ['kendo.core'], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, extend = $.extend, deferred = $.Deferred, proxy = $.proxy, Class = kendo.Class;\n var Command = Class.extend({\n init: function (options) {\n this.options = options;\n this.filemanager = options.filemanager;\n }\n });\n var CreateFolderCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var that = this, filemanager = that.filemanager, commandStack = filemanager._commandStack, dataSource = filemanager._viewDataSource || filemanager.dataSource, removeProxy = proxy(that._remove, that);\n that._item = dataSource._createNewModel();\n commandStack.push({ item: that._item.toJSON() }).fail(removeProxy);\n dataSource.add(that._item);\n },\n _remove: function () {\n var that = this, filemanager = that.filemanager, dataSource = filemanager._viewDataSource || filemanager.dataSource;\n dataSource.pushDestroy(that._item);\n }\n });\n var RenameCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var that = this, target = that.options.target, filemanager = that.filemanager, commandStack = filemanager._commandStack, viewItem = filemanager._view.widgetComponent.dataItem(target);\n if (target && viewItem) {\n commandStack.push({\n target: target,\n item: viewItem\n });\n that.filemanager._view.edit(target);\n } else {\n that._renameTreeViewItem(target);\n }\n },\n _renameTreeViewItem: function (target) {\n var that = this, filemanager = that.filemanager, commandStack = filemanager._commandStack, uid = target.data('uid'), item = that.filemanager.treeView.widgetComponent.dataSource.getByUid(uid), realItem = that.filemanager.dataSource.get(item.id);\n that.filemanager._prompt({\n type: 'rename',\n defaultInput: realItem.name,\n target: target\n }).done(function (newName) {\n commandStack.push({\n target: target,\n item: realItem\n });\n realItem.set('name', newName);\n });\n }\n });\n var DeleteCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var that = this, target = that.options.target, filemanager = that.filemanager, items = filemanager.getSelected(), viewItem = that.filemanager._view.widgetComponent.dataItem(target), itemsToRemove;\n if (target && target.is('.k-state-selected') && items && items.length) {\n itemsToRemove = items;\n } else if (target && viewItem) {\n itemsToRemove = viewItem;\n } else if (target) {\n var uid = target.data('uid');\n var item = that.filemanager.treeView.widgetComponent.dataSource.getByUid(uid);\n var realItem = that.filemanager.dataSource.get(item.id);\n itemsToRemove = realItem;\n }\n filemanager._confirm({\n type: 'delete',\n target: target\n }).done(function () {\n that.removeItems(itemsToRemove);\n });\n },\n removeItems: function (items) {\n var that = this;\n that._itemsToRemove = Array.isArray(items) ? items : [items];\n that._removeItem();\n },\n _removeItem: function () {\n var that = this, filemanager = that.filemanager, commandStack = filemanager._commandStack, dataSource = filemanager.dataSource, itemToRemove = !!that._itemsToRemove.length && that._itemsToRemove.splice(0, 1)[0];\n if (itemToRemove) {\n commandStack.push({ item: itemToRemove }).then(proxy(that._removeItem, that), proxy(that._removeItem, that));\n dataSource.remove(itemToRemove);\n }\n }\n });\n var CopyCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var that = this, filemanager = that.filemanager, dataSource = filemanager.dataSource, commandStack = filemanager._commandStack, items = that.options.items, target = dataSource.get(that.options.target), targetDataSource = target.children;\n for (var i = 0; i < items.length; i++) {\n var item = dataSource.get(items[i]).toJSON();\n item.fileManagerNewItem = true;\n commandStack.push({\n item: item,\n target: target\n });\n targetDataSource.add(item);\n }\n }\n });\n var MoveCommand = Command.extend({\n init: function (options) {\n var that = this;\n Command.fn.init.call(that, options);\n that._itemsToRemove = [];\n },\n exec: function () {\n var that = this, filemanager = that.filemanager, commandStack = filemanager._commandStack, dataSource = filemanager.dataSource, items = that.options.items, target = dataSource.get(that.options.target), targetDataSource = target.children, promises = [];\n for (var i = 0; i < items.length; i++) {\n var item = dataSource.get(items[i]);\n var cloning = item.toJSON();\n cloning.fileManagerNewItem = true;\n var promise = commandStack.push({\n item: item,\n target: target\n }).then(proxy(that._delete, that));\n promises.push(promise);\n targetDataSource.add(cloning);\n }\n kendo.whenAll(promises).always(proxy(that._removeItem, that));\n },\n _delete: function (data) {\n var that = this;\n that._itemsToRemove.push(data.item);\n },\n _removeItem: function () {\n var that = this, filemanager = that.filemanager, commandStack = filemanager._commandStack, dataSource = filemanager.dataSource, itemToRemove = !!that._itemsToRemove.length && that._itemsToRemove.splice(0, 1)[0];\n if (itemToRemove) {\n commandStack.push({ item: itemToRemove }).then(proxy(that._removeItem, that), proxy(that._removeItem, that));\n dataSource.remove(itemToRemove);\n }\n }\n });\n var SortCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var that = this, options = that.options, filemanager = that.filemanager, sortOptions = filemanager.defaultSortOption;\n extend(sortOptions, {\n dir: options.dir,\n field: options.field\n });\n filemanager._view.widgetComponent.dataSource.sort([\n filemanager.folderSortOption,\n sortOptions\n ]);\n }\n });\n var SearchCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var that = this, options = that.options, filemanager = that.filemanager, filter = {\n field: options.field,\n operator: options.operator,\n value: options.value\n };\n filemanager._view.widgetComponent.dataSource.filter(filter);\n }\n });\n var ChangeViewCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var that = this, options = that.options, filemanager = that.filemanager;\n filemanager.view(options.value);\n filemanager.resize(true);\n }\n });\n var OpenDialogCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var that = this, filemanager = that.filemanager, dialog = filemanager[that.options.type];\n if (dialog) {\n dialog.open();\n } else {\n window.console.warn(kendo.format('The {0} dialog is not available!', that.options.type));\n }\n }\n });\n var TogglePaneCommand = Command.extend({\n init: function (options) {\n Command.fn.init.call(this, options);\n },\n exec: function () {\n var that = this, filemanager = that.filemanager, pane = filemanager[that.options.type], resizable = that.getResizable();\n if (pane) {\n pane.toggle();\n if (resizable) {\n filemanager.wrapper.find(resizable.options.handle).toggle();\n }\n }\n },\n getResizable: function () {\n var that = this, filemanager = that.filemanager, type = that.options.type;\n if (!filemanager._resizeDraggable) {\n return;\n }\n return filemanager._resizeDraggable[type];\n }\n });\n var CommandStack = Class.extend({\n init: function () {\n var that = this;\n that._stack = {};\n that._keys = [];\n },\n push: function (data) {\n var that = this, guid = kendo.guid();\n that._keys.push(guid);\n that._stack[guid] = {\n guid: guid,\n data: data,\n deferred: deferred()\n };\n return that._stack[guid].deferred;\n },\n next: function () {\n var that = this, key = that.keys().splice(0, 1), nextCommand = that._stack[key];\n return nextCommand;\n },\n resolve: function (command) {\n var that = this;\n delete that._stack[command.guid];\n command.deferred.resolve(command.data);\n },\n reject: function (command) {\n var that = this;\n delete that._stack[command.guid];\n command.deferred.reject(command.data);\n },\n keys: function () {\n return this._keys;\n },\n empty: function () {\n return this.keys().length === 0;\n }\n });\n extend(kendo.ui, {\n filemanager: {\n FileManagerCommand: Command,\n CommandStack: CommandStack,\n commands: {\n CreateFolderCommand: CreateFolderCommand,\n RenameCommand: RenameCommand,\n DeleteCommand: DeleteCommand,\n MoveCommand: MoveCommand,\n CopyCommand: CopyCommand,\n SortCommand: SortCommand,\n SearchCommand: SearchCommand,\n ChangeViewCommand: ChangeViewCommand,\n OpenDialogCommand: OpenDialogCommand,\n TogglePaneCommand: TogglePaneCommand\n }\n }\n });\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('filemanager/view', [\n 'kendo.listview',\n 'kendo.treeview'\n ], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, Observable = kendo.Observable, extend = $.extend, proxy = $.proxy, keys = kendo.keys, NAVIGATE = 'navigate', SELECT = 'select', EXPAND = 'expand', CHANGE = 'change', OPEN = 'open', LOAD = 'load', KEYDOWN = 'keydown', KEYDOWNACTION = 'keydownAction', NS = '.kendoFileManagerViewComponent', fileManagerDraggables = [], fileManagerDragOrigin = null;\n var registerViewComponent = function (componentName, component) {\n ui.filemanager.ViewComponents[componentName] = component;\n };\n var getViewComponent = function (componentName) {\n return ui.filemanager.ViewComponents[componentName] || null;\n };\n var Component = Observable.extend({\n init: function (widget, element, options) {\n var that = this;\n that.element = element;\n that.options = options;\n if (widget) {\n that.widgetComponent = new widget(element, options);\n } else {\n throw new Error('The widget for the ViewComponent is not available! Please add the corresponding scripts!');\n }\n Observable.fn.init.call(that);\n },\n _bindEvents: function () {\n this.widgetComponent.bind('dataBinding', proxy(this._binding, this));\n this.widgetComponent.bind('dataBound', proxy(this._bound, this));\n },\n _binding: function (ev) {\n if (this.trigger('dataBinding', ev)) {\n ev.preventDefault();\n }\n },\n _bound: function () {\n this.trigger('dataBound');\n },\n _setDSOptions: function (options, dataSourceOptions) {\n if (!options.dataSource && dataSourceOptions) {\n options.dataSource = dataSourceOptions;\n }\n },\n _initDragAndDrop: function (element, filter) {\n var that = this;\n filter = filter || that.options.dropFilter;\n element = element || that.element;\n that.draggable = element.kendoDraggable({\n filter: filter,\n hint: proxy(that._hint, that),\n cursorOffset: {\n top: -10,\n left: -50\n },\n holdToDrag: true,\n ignore: 'input, .k-focusable',\n hold: proxy(that._hold, that)\n }).data('kendoDraggable');\n that.draggable.userEvents.minHold = 150;\n that.droptarget = element.kendoDropTargetArea({\n filter: filter,\n drop: proxy(that._onDrop, that),\n dragenter: function (ev) {\n ev.dropTarget.addClass('k-filemanager-drop-target');\n },\n dragleave: function (ev) {\n ev.dropTarget.removeClass('k-filemanager-drop-target');\n }\n }).data('kendoDraggable');\n },\n _hold: function (ev) {\n var that = this, target = ev.currentTarget;\n if (!target.is('.k-state-selected')) {\n if (that.widgetComponent.selectable) {\n that.widgetComponent.selectable.clear();\n }\n that.widgetComponent.select(target);\n }\n if (that.widgetComponent.selectable) {\n that.widgetComponent.selectable.userEvents.cancel();\n }\n },\n _hint: function (target) {\n var that = this, item = that.widgetComponent.dataItem(target), selectedItems = that.widgetComponent.select();\n fileManagerDragOrigin = that.widgetComponent;\n fileManagerDraggables = selectedItems;\n if (selectedItems.length > 1) {\n return kendo.format('
{1} {2}
', 'file', selectedItems.length, that.options.messages.items);\n }\n return kendo.format('
{1}
', item.isDirectory ? 'folder' : 'file', item.name);\n },\n _onDrop: function (ev) {\n var that = this, target = that.widgetComponent.dataItem(ev.dropTarget), targetId = target.id, itemIds = [];\n if (!target.isDirectory) {\n return;\n }\n for (var i = 0; i < fileManagerDraggables.length; i++) {\n var id = fileManagerDragOrigin.dataItem(fileManagerDraggables[i]).id;\n itemIds.push(id);\n }\n this.trigger('drop', {\n target: targetId,\n items: itemIds\n });\n },\n getSelected: function () {\n throw new Error('Not Implemented!');\n },\n refresh: function (dataSource) {\n this.widgetComponent.setDataSource(dataSource);\n },\n destroy: function () {\n kendo.destroy(this.element);\n }\n });\n extend(kendo.ui.filemanager, {\n ViewComponent: Component,\n ViewComponents: {},\n registerViewComponent: registerViewComponent,\n getViewComponent: getViewComponent\n });\n var ListView = Component.extend({\n init: function (element, options, explicitOptions) {\n var that = this, dataSourceOptions = explicitOptions.dataSource, messages = explicitOptions.messages;\n options = extend({}, that.defaultOptions, options, { messages: messages });\n that._setDSOptions(options, dataSourceOptions);\n options.kendoKeydown = options.kendoKeydown || proxy(that._kendoKeydown, that);\n Component.fn.init.call(this, ui.ListView, element, options);\n that.listView = that.widgetComponent;\n that._bindEvents();\n if (explicitOptions.draggable !== false && !dataSourceOptions.isLocalBinding) {\n that._initDragAndDrop();\n }\n },\n defaultOptions: {\n layout: 'flex',\n flex: {\n direction: 'row',\n wrap: 'wrap'\n },\n selectable: kendo.support.mobileOS ? 'row' : 'multiple',\n template: '
' + '
' + '
#:name##:extension#
' + '
',\n editTemplate: '
' + '
' + '
' + '
',\n dropFilter: '.k-listview-item',\n navigatable: true\n },\n _bindEvents: function () {\n var that = this, listView = that.listView;\n listView.bind(CHANGE, proxy(that._select, that));\n listView.element.on('dblclick' + NS, proxy(that._dblClick, that));\n listView.element.on('mousedown' + NS, '.k-listview-item:not(.k-edit-item)', proxy(that._mousedown, that));\n listView.element.on(KEYDOWN + NS, '.k-edit-item', proxy(that._keydown, that));\n listView.element.on(KEYDOWN + NS, proxy(that._keydownAction, that));\n listView.bind('edit', function (ev) {\n var sender = ev.sender;\n var input = ev.item.find('input');\n input.on('blur', function () {\n var isDirty = sender._modelFromElement(sender.editable.element).dirty;\n sender._closeEditable();\n if (!isDirty) {\n that.trigger('cancel');\n }\n });\n });\n listView.bind('cancel', function () {\n that.trigger('cancel');\n });\n Component.fn._bindEvents.call(this);\n },\n _select: function () {\n var that = this, dataItems = that.getSelected();\n that.trigger(SELECT, { entries: dataItems });\n },\n _keydown: function (ev) {\n var that = this;\n if (ev.keyCode === kendo.keys.ESC) {\n that.listView._closeEditable();\n that.trigger('cancel');\n }\n },\n _keydownAction: function (ev) {\n var that = this, target = $(ev.target).find('.k-state-focused');\n if (target.length && !target.is('.k-edit-item')) {\n that.trigger(KEYDOWNACTION, {\n target: target,\n keyCode: ev.keyCode\n });\n }\n },\n _mousedown: function (ev) {\n var that = this, node = $(ev.target).closest('.k-listview-item');\n if (ev.which === 3 && !node.is('.k-state-selected')) {\n that.listView.selectable.clear();\n that.listView.select(node);\n }\n },\n _kendoKeydown: function (ev) {\n var that = this;\n if (ev.keyCode === keys.ENTER && !ev.preventKendoKeydown) {\n that._handleEnterKey(ev);\n }\n },\n _handleEnterKey: function (ev) {\n var that = this, target = $(ev.target), node = that.listView.current();\n if (that.widgetComponent.editable && target.is('input')) {\n target.trigger('blur');\n } else if (!that.widgetComponent.editable) {\n that._triggerOpen(node);\n }\n ev.preventKendoKeydown = true;\n },\n _dblClick: function (ev) {\n var that = this, node = $(ev.target).closest('.k-listview-item');\n that._triggerOpen(node);\n },\n _triggerOpen: function (node) {\n var that = this;\n if (node.is('.k-edit-item')) {\n return;\n }\n var item = that.listView.dataItem(node);\n if (item) {\n that.trigger(OPEN, { entry: item });\n }\n },\n addFolder: function () {\n this.listView.add();\n },\n edit: function (target) {\n var that = this, selected = that.listView.select();\n that.listView.edit(target || selected);\n },\n getSelected: function () {\n var that = this, items = that.listView.select(), dataItems = [];\n for (var i = 0; i < items.length; i++) {\n var item = that.listView.dataItem(items[i]);\n if (item) {\n dataItems.push(item);\n }\n }\n return dataItems;\n },\n destroy: function () {\n this.listView.element.off(NS);\n Component.fn.destroy.call(this);\n }\n });\n ui.filemanager.registerViewComponent('list', ListView);\n var TreeView = Component.extend({\n init: function (element, options, explicitOptions) {\n var that = this, messages = explicitOptions.messages;\n options = extend({}, that.defaultOptions, options, { messages: messages });\n Component.fn.init.call(this, ui.TreeView, element, options);\n that.treeView = that.widgetComponent;\n that._bindEvents();\n if (explicitOptions.draggable !== false && !explicitOptions.isLocalBinding) {\n that._initDragAndDrop();\n }\n },\n defaultOptions: {\n dataTextField: 'name',\n dropFilter: '.k-item'\n },\n _refreshDataSource: function (ev) {\n var that = this, treeView = that.treeView, action = ev.action, node = ev.node, parentNode = null, items = ev.items.filter(function (item) {\n return item.isDirectory;\n }).map(function (item) {\n return extend({}, item.toJSON(), {\n id: item.id || kendo.guid(),\n hasChildren: item.hasChildren,\n items: []\n });\n });\n if (node) {\n parentNode = treeView.findByUid(treeView.dataSource.get(node.id).uid);\n treeView._progress(parentNode, false);\n }\n if (!items.length) {\n return;\n }\n if (action == 'itemloaded' || parentNode && action === 'sync') {\n parentNode.find('.k-item').each(function (index, item) {\n treeView.remove(item);\n });\n treeView.append(items, parentNode);\n if (that._shouldFocus) {\n treeView.current(parentNode);\n treeView.focus();\n }\n } else if (action == 'remove') {\n this._remove(items[0].id);\n } else if (action == 'itemchange') {\n var existingItem = treeView.dataSource.get(items[0].id);\n if (existingItem) {\n existingItem.set(ev.field, items[0][ev.field]);\n } else {\n treeView.append(items[0], parentNode);\n }\n } else if (!treeView.dataSource.data().length) {\n treeView.append(items);\n } else if (action === 'sync' || action === undefined && !parentNode) {\n treeView.items().each(function (index, item) {\n treeView.remove(item);\n });\n treeView.append(items);\n if (that._shouldFocus) {\n treeView.current(treeView._nextVisible($()));\n treeView.focus();\n }\n }\n },\n _remove: function (id) {\n var that = this, treeView = that.treeView, dataSource = treeView.dataSource, item = dataSource.get(id), node;\n if (item) {\n node = treeView.findByUid(item.uid);\n treeView.remove(node);\n }\n },\n _bindEvents: function () {\n var that = this;\n that.treeView.bind(SELECT, proxy(that._navigate, that));\n that.treeView.bind(EXPAND, proxy(that._expand, that));\n that.treeView.element.bind(KEYDOWN, proxy(that._keydownAction, that));\n },\n _keydownAction: function (ev) {\n var that = this, target = $(ev.target).find('.k-state-focused').closest('.k-item');\n that.trigger(KEYDOWNACTION, {\n target: target,\n keyCode: ev.keyCode\n });\n },\n _expand: function (ev) {\n var that = this, treeView = that.treeView, entry = treeView.dataItem(ev.node);\n ev.preventDefault();\n that.trigger(LOAD, { entryId: entry.id });\n },\n _navigate: function (ev) {\n var that = this, node = ev.node, entry = that.treeView.dataItem(node), path = entry.id;\n ev.preventDefault();\n that.trigger(NAVIGATE, {\n path: path,\n entry: entry.toJSON()\n });\n },\n _hold: $.noop,\n getSelected: function () {\n var that = this, selectedItem = that.treeView.element.find('.k-state-selected').closest('.k-item'), item = that.treeView.dataItem(selectedItem);\n return item;\n },\n refresh: function (id) {\n var that = this, treeView = that.treeView, entry = treeView.dataSource.get(id), node = entry && treeView.findByUid(entry.uid);\n if (entry && node) {\n treeView.element.find('.k-state-selected').removeClass('k-state-selected');\n node.find('> div .k-in').removeClass('k-state-hover').addClass('k-state-selected');\n }\n },\n reload: function () {\n this.treeView.dataSource.read();\n }\n });\n ui.filemanager.registerViewComponent('tree', TreeView);\n if (kendo.ui.Grid) {\n var Grid = Component.extend({\n init: function (element, options, explicitOptions) {\n var that = this, dataSourceOptions = explicitOptions.dataSource, messages = explicitOptions.messages;\n options = extend({}, that.defaultOptions, options, { messages: messages });\n that._setDSOptions(options, dataSourceOptions);\n that._setupColumns(options, messages);\n options.kendoKeydown = options.kendoKeydown || proxy(that._kendoKeydown, that);\n Component.fn.init.call(this, ui.Grid, element, options);\n that.grid = that.widgetComponent;\n that._bindEvents();\n if (explicitOptions.draggable !== false && !dataSourceOptions.isLocalBinding) {\n that._initDragAndDrop();\n }\n },\n defaultOptions: {\n selectable: kendo.support.mobileOS ? 'row' : 'multiple',\n editable: {\n mode: 'inline',\n confirmation: false\n },\n sortable: true,\n dropFilter: 'tr:not(.k-grid-edit-row)',\n navigatable: true\n },\n _setupColumns: function (options, messages) {\n if (!options.columns) {\n options.columns = [\n {\n field: 'name',\n title: messages.nameField || 'Name',\n template: function (item) {\n var icon = !item.isDirectory ? kendo.getFileGroup(item.extension, true) : 'folder';\n var template = '
' + '' + '
' + '
' + kendo.htmlEncode(item.name + item.extension) + '
';\n return template;\n }\n },\n {\n field: 'created',\n title: messages.dateCreatedField,\n format: '{0:G}'\n },\n {\n field: 'size',\n title: messages.sizeField,\n template: function (item) {\n if (item.size > 0) {\n return kendo.getFileSizeMessage(item.size);\n } else {\n return '';\n }\n }\n }\n ];\n }\n },\n _bindEvents: function () {\n var that = this, grid = that.grid;\n grid.bind(CHANGE, proxy(that._select, that));\n grid.table.on('dblclick' + NS, proxy(that._dblClick, that));\n grid.table.on('mousedown' + NS, 'tr:not(.k-grid-edit-row)', proxy(that._mousedown, that));\n grid.table.on(KEYDOWN + NS, '.k-grid-edit-row', proxy(that._keydown, that));\n grid.table.on(KEYDOWN + NS, proxy(that._keydownAction, that));\n grid.bind('edit', function () {\n that._toggleFocusable(true);\n });\n grid.bind('cancel', function () {\n that.trigger('cancel');\n });\n grid.saveRow = $.noop;\n Component.fn._bindEvents.call(this);\n },\n _kendoKeydown: function (ev) {\n var that = this, current = that.grid.current(), node = current ? current.closest('tr[data-uid]') : null;\n if (node && ev.keyCode === keys.ENTER && !ev.preventKendoKeydown) {\n that._triggerOpen(node);\n ev.preventKendoKeydown = true;\n }\n if (ev.keyCode === keys.F2) {\n ev.preventKendoKeydown = true;\n }\n },\n _keydownAction: function (ev) {\n var that = this, target = $(ev.target).find('.k-state-focused').closest('tr');\n if (target.length && !target.is('.k-grid-edit-row')) {\n that.trigger(KEYDOWNACTION, {\n target: target,\n keyCode: ev.keyCode\n });\n }\n },\n _keydown: function (ev) {\n var that = this, grid = that.grid;\n if (!$(ev.target).closest('.k-grid-edit-row').length) {\n return;\n }\n if (ev.keyCode === kendo.keys.ENTER) {\n setTimeout(function () {\n var editorContainer = that.grid._editContainer || $();\n editorContainer.find('input').trigger('blur');\n that._closeEditable();\n });\n that._tryCancel();\n }\n if (ev.keyCode === kendo.keys.ESC) {\n grid.cancelChanges();\n that.trigger('cancel');\n }\n },\n _mousedown: function (ev) {\n var that = this, node = $(ev.target).closest('tr[data-uid]');\n if (ev.which === 1 && that.grid.editable) {\n setTimeout(function () {\n that._closeEditable();\n });\n that._tryCancel();\n }\n if (ev.which === 3 && !node.is('.k-state-selected')) {\n that.grid.selectable.clear();\n that.grid.select(node);\n }\n },\n _tryCancel: function () {\n var that = this, grid = that.grid, container;\n if (grid.editable) {\n container = grid._editContainer;\n if (!container.find('input').val()) {\n grid.cancelChanges();\n }\n }\n setTimeout(function () {\n that._toggleFocusable(false);\n });\n },\n _toggleFocusable: function (state) {\n var that = this, grid = that.grid;\n grid.table.find('tr,td').children().addBack().toggleClass('k-focusable', state);\n },\n _closeEditable: function () {\n var that = this, container;\n if (that.grid.editable && !that.grid.editable.options.model.dirty) {\n container = that.grid._editContainer;\n that.grid._destroyEditable();\n that.grid._displayRow(container);\n that.trigger('cancel');\n }\n },\n _select: function () {\n var that = this, dataItems = that.getSelected();\n that.trigger(SELECT, { entries: dataItems });\n },\n _dblClick: function (ev) {\n var that = this, node = $(ev.target).closest('tr[data-uid]');\n that._triggerOpen(node);\n },\n _triggerOpen: function (node) {\n var that = this;\n if (node.is('.k-grid-edit-row')) {\n return;\n }\n var item = that.grid.dataItem(node);\n if (item) {\n that.trigger(OPEN, { entry: item });\n }\n },\n getSelected: function () {\n var that = this, items = that.grid.select(), dataItems = [];\n for (var i = 0; i < items.length; i++) {\n dataItems.push(that.grid.dataItem(items[i]));\n }\n return dataItems;\n },\n addFolder: function () {\n this.grid.addRow();\n },\n edit: function (target) {\n var that = this, selected = that.grid.select();\n that.grid.editRow(target || selected);\n },\n destroy: function () {\n this.grid.table.off(NS);\n this.grid.element.off(NS);\n Component.fn.destroy.call(this);\n }\n });\n ui.filemanager.registerViewComponent('grid', Grid);\n }\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('filemanager/toolbar', [\n 'kendo.toolbar',\n 'kendo.switch'\n ], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, extend = $.extend, proxy = $.proxy, ToolBar = kendo.ui.ToolBar, Item = kendo.toolbar.Item, CLICK = 'click', TOGGLE = 'toggle', CLOSE = 'close', ACTION = 'action', CHANGE = 'change', NS = '.fileManagerToolbar';\n var FileManagerToolBar = ToolBar.extend({\n init: function (element, options) {\n var that = this;\n that._extendOptions(options);\n ToolBar.fn.init.call(that, element, options);\n that._attachEvents();\n },\n events: ToolBar.fn.events.concat([ACTION]),\n defaultTools: {\n createFolder: {\n type: 'button',\n text: 'New Folder',\n name: 'createFolder',\n command: 'CreateFolderCommand',\n rules: '{ \"remote\": true }'\n },\n upload: {\n type: 'button',\n text: 'Upload',\n name: 'upload',\n command: 'OpenDialogCommand',\n options: '{ \"type\": \"uploadDialog\" }',\n rules: '{ \"remote\": true }'\n },\n sortDirection: {\n type: 'buttonGroup',\n text: 'Sort Direction',\n name: 'sortDirection',\n buttons: [\n {\n name: 'sortDirectionAsc',\n icon: 'sort-asc-sm',\n togglable: true,\n group: 'sortDirection',\n command: 'SortCommand',\n options: '{ \"dir\": \"asc\" }',\n selected: true\n },\n {\n name: 'sortDirectionDesc',\n icon: 'sort-desc-sm',\n togglable: true,\n group: 'sortDirection',\n command: 'SortCommand',\n options: '{ \"dir\": \"desc\" }'\n }\n ]\n },\n sortField: {\n type: 'splitButton',\n text: 'Sort By',\n name: 'sortField',\n command: 'SortCommand',\n menuButtons: [\n {\n name: 'nameField',\n text: 'Name',\n options: '{\"field\": \"name\"}',\n command: 'SortCommand'\n },\n {\n name: 'typeField',\n text: 'Type',\n options: '{\"field\": \"extension\"}',\n command: 'SortCommand'\n },\n {\n name: 'sizeField',\n text: 'Size',\n options: '{\"field\": \"size\"}',\n command: 'SortCommand'\n },\n {\n name: 'dateCreatedField',\n text: 'Date created',\n options: '{\"field\": \"createdUtc\"}',\n command: 'SortCommand'\n },\n {\n name: 'dateModifiedField',\n text: 'Date modified',\n options: '{\"field\": \"modifiedUtc\"}',\n command: 'SortCommand'\n }\n ]\n },\n changeView: {\n type: 'buttonGroup',\n text: 'Change View',\n name: 'changeView',\n buttons: [\n {\n name: 'gridView',\n icon: 'grid-layout',\n togglable: true,\n group: 'changeView',\n command: 'ChangeViewCommand',\n options: 'grid'\n },\n {\n name: 'listView',\n icon: 'grid',\n togglable: true,\n group: 'changeView',\n command: 'ChangeViewCommand',\n options: 'list'\n }\n ]\n },\n spacer: { type: 'spacer' },\n details: {\n type: 'fileManagerDetailsToggle',\n text: 'View Details',\n name: 'details',\n overflow: 'never',\n command: 'TogglePaneCommand',\n options: '{ \"type\": \"preview\" }'\n },\n search: {\n type: 'fileManagerSearch',\n text: 'Search',\n name: 'search',\n command: 'SearchCommand',\n icon: 'search',\n overflow: 'never',\n options: '{ \"field\": \"name\", \"operator\": \"startswith\" }'\n }\n },\n _attachEvents: function () {\n var that = this;\n that.bind(TOGGLE, proxy(that._click, that));\n that.bind(CLOSE, proxy(that._click, that));\n that.bind(CLICK, proxy(that._click, that));\n that.bind(CHANGE, proxy(that._change, that));\n },\n _extendOptions: function (options) {\n var that = this, tools = options.items ? options.items : Object.keys(that.defaultTools);\n that.options = options;\n that.options.items = that._extendToolsOptions(tools);\n },\n _extendToolsOptions: function (tools) {\n var that = this, messages = that.options.messages;\n if (!tools.length) {\n return;\n }\n return tools.map(function (tool) {\n var isBuiltInTool = $.isPlainObject(tool) && Object.keys(tool).length === 1 && tool.name, toolOptions, toolRules;\n tool = isBuiltInTool ? tool.name : tool;\n toolOptions = $.isPlainObject(tool) ? tool : extend({}, that.defaultTools[tool]);\n toolRules = toolOptions.rules ? JSON.parse(toolOptions.rules) : {};\n kendo.deepExtend(toolOptions, {\n id: toolOptions.name + '-' + kendo.guid(),\n name: toolOptions.name,\n text: messages[toolOptions.name],\n attributes: {\n 'aria-label': messages[toolOptions.name],\n 'title': messages[toolOptions.name],\n 'data-command': toolOptions.command,\n 'data-options': toolOptions.options\n },\n overflow: toolOptions.overflow\n });\n if (toolOptions.type === 'buttonGroup') {\n toolOptions.buttons = toolOptions.buttons.map(proxy(that._mapButtonGroups, that));\n }\n if (toolOptions.type === 'splitButton') {\n toolOptions.menuButtons = toolOptions.menuButtons.map(proxy(that._mapMenuButtons, that));\n }\n if (toolRules.remote && that.options.filemanager.dataSource.isLocalBinding) {\n toolOptions.hidden = true;\n }\n return toolOptions;\n }, that);\n },\n _mapButtonGroups: function (button) {\n var that = this, messages = that.options.messages;\n if (button.group === 'changeView' && button.options === that.options.filemanager.options.initialView) {\n button.selected = true;\n }\n return kendo.deepExtend(button, {\n attributes: extend({}, button.attributes, {\n 'aria-label': messages[button.name],\n 'title': messages[button.name],\n 'data-command': button.command,\n 'data-options': button.options\n })\n });\n },\n _mapMenuButtons: function (button) {\n var that = this, messages = that.options.messages;\n return kendo.deepExtend(button, {\n text: messages[button.name],\n attributes: extend({}, button.attributes, {\n 'aria-label': messages[button.name],\n 'title': messages[button.name],\n 'data-command': button.command,\n 'data-options': button.options\n })\n });\n },\n _click: function (ev) {\n var command = $(ev.target).data('command'), options = $(ev.target).data('options');\n if (!command) {\n return;\n }\n this.action({\n command: command,\n options: options\n });\n },\n _change: function (ev) {\n var command = $(ev.target).data('command'), options = $(ev.target).data('options');\n options = extend({}, options, { value: $(ev.target).val() });\n if (!command) {\n return;\n }\n this.action({\n command: command,\n options: options\n });\n },\n isToolEnabled: function (toolName) {\n var that = this, options = that.options, found = false;\n for (var i = 0; i < options.items.length; i++) {\n if (options.items[i].name == toolName) {\n found = true;\n break;\n }\n }\n return options.items[toolName] || found;\n },\n action: function (args) {\n this.trigger(ACTION, args);\n },\n destroy: function () {\n if (this.fileManagerSearch) {\n this.fileManagerSearch.destroy();\n }\n ToolBar.fn.destroy.call(this);\n }\n });\n var SearchTool = Item.extend({\n init: function (options, toolbar) {\n var that = this, element = $('
'), input = $(''), iconWrapper = $(''), icon = $('');\n that.element = element;\n that.input = input;\n that.iconWrapper = iconWrapper;\n that.icon = icon;\n that.options = options;\n that.options.type = 'fileManagerSearch';\n that.toolbar = toolbar;\n that.attributes();\n that.renderIcon();\n that.addUidAttr();\n that.addIdAttr();\n that.addOverflowAttr();\n that.input.attr({\n placeholder: that.options.text,\n title: that.options.text\n });\n that.iconWrapper.append(icon);\n that.element.append(that.input).append(iconWrapper);\n that._bindEvents();\n that.toolbar.fileManagerSearch = that;\n },\n attributes: function () {\n if (this.options.attributes) {\n this.input.attr(this.options.attributes);\n }\n },\n renderIcon: function () {\n if (this.options.icon) {\n this.icon.addClass('k-icon k-i-' + this.options.icon);\n }\n },\n _bindEvents: function () {\n this._inputHandler = proxy(this._input, this);\n this.input.on('input' + NS, this._inputHandler);\n },\n _input: function (ev) {\n this.toolbar.trigger(CHANGE, { target: ev.target });\n },\n destroy: function () {\n this.element.off(NS);\n }\n });\n kendo.toolbar.registerComponent('fileManagerSearch', SearchTool);\n var FileManagerDetailsToggle = Item.extend({\n init: function (options, toolbar) {\n var that = this, element = $('
'), label = $(''), switchElement = $('');\n that.element = element;\n that.input = switchElement;\n that.label = label;\n that.options = options;\n that.toolbar = toolbar;\n that.attributes();\n that.addUidAttr();\n that.addIdAttr();\n that.addOverflowAttr();\n that.element.append(that.label);\n that.element.append(that.input);\n that.switchInstance = new kendo.ui.Switch(that.input, {\n change: proxy(that._change, that),\n messages: {\n checked: toolbar.options.messages.detailsChecked,\n unchecked: toolbar.options.messages.detailsUnchecked\n }\n });\n that.label.on(CLICK + NS, proxy(that._click, that));\n that.toolbar.fileManagerDetailsToggle = that;\n },\n _change: function (ev) {\n this.toolbar.trigger(CHANGE, { target: ev.sender.wrapper.parent() });\n },\n _click: function (ev) {\n this.switchInstance.toggle();\n this.toolbar.trigger(CHANGE, { target: $(ev.target).parent() });\n },\n destroy: function () {\n this.element.off(NS);\n }\n });\n kendo.toolbar.registerComponent('fileManagerDetailsToggle', FileManagerDetailsToggle);\n extend(kendo.ui.filemanager, { ToolBar: FileManagerToolBar });\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('filemanager/data', ['kendo.data'], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, extend = $.extend, data = kendo.data, Node = data.Node, HierarchicalDataSource = data.HierarchicalDataSource, DataSource = data.DataSource;\n extend(true, kendo.data, {\n schemas: {\n 'filemanager': {\n data: function (data) {\n return data.items || data || [];\n },\n model: {\n id: 'path',\n hasChildren: 'hasDirectories',\n fields: {\n name: {\n editable: true,\n type: 'string',\n defaultValue: 'New Folder'\n },\n size: {\n editable: false,\n type: 'number'\n },\n path: {\n editable: false,\n type: 'string'\n },\n extension: {\n editable: false,\n type: 'string'\n },\n isDirectory: {\n editable: false,\n defaultValue: true,\n type: 'boolean'\n },\n hasDirectories: {\n editable: false,\n defaultValue: false,\n type: 'boolean'\n },\n created: {\n type: 'date',\n editable: false\n },\n createdUtc: {\n type: 'date',\n editable: false\n },\n modified: {\n type: 'date',\n editable: false\n },\n modifiedUtc: {\n type: 'date',\n editable: false\n }\n }\n }\n }\n }\n });\n var FileEntry = Node.define({\n init: function (value) {\n var that = this, isDirectory = this.isDirectory;\n Node.fn.init.call(this, value);\n if (typeof isDirectory === 'string') {\n isDirectory = kendo.getter(isDirectory);\n }\n if (kendo.isFunction(isDirectory)) {\n var isDirectoryObject = isDirectory.call(that, that);\n if (isDirectoryObject && isDirectoryObject.length === 0) {\n that.isDirectory = false;\n } else {\n that.isDirectory = !!isDirectoryObject;\n }\n }\n if (that.isDirectory) {\n that._initChildren();\n }\n },\n _initChildren: function () {\n var that = this;\n var children, transport, parameterMap;\n if (!(that.children instanceof kendo.data.FileManagerDataSource)) {\n children = that.children = new kendo.data.FileManagerDataSource(that._childrenOptions);\n transport = children.transport;\n parameterMap = transport.parameterMap;\n transport.parameterMap = function (data, type) {\n if (type === 'read' || type === 'create') {\n data.target = that.id;\n }\n if (parameterMap) {\n data = parameterMap.call(that, data, type);\n }\n return data;\n };\n children.parent = function () {\n return that;\n };\n children.bind('change', function (e) {\n e.node = e.node || that;\n that.trigger('change', e);\n });\n children.bind('error', function (e) {\n var collection = that.parent();\n if (collection) {\n e.node = e.node || that;\n collection.trigger('error', e);\n }\n });\n that._updateChildrenField();\n }\n },\n isNew: function () {\n if (this.fileManagerNewItem) {\n delete this.fileManagerNewItem;\n return true;\n }\n return this.id === this._defaultId;\n }\n });\n var FileManagerDataSource = HierarchicalDataSource.extend({\n init: function (options) {\n var fileEntry = FileEntry.define({ children: options });\n if (options.filter && !options.serverFiltering) {\n this._hierarchicalFilter = options.filter;\n options.filter = null;\n }\n DataSource.fn.init.call(this, $.extend(true, {}, {\n schema: {\n modelBase: fileEntry,\n model: fileEntry\n }\n }, options));\n this.isLocalBinding = this.transport instanceof kendo.data.LocalTransport;\n this._attachBubbleHandlers();\n },\n insert: function (index, model) {\n var parentNode = this.parent();\n if (parentNode && parentNode._initChildren) {\n if (model && model.isDirectory) {\n parentNode.hasDirectories = true;\n }\n parentNode.hasChildren = true;\n parentNode._initChildren();\n }\n return DataSource.fn.insert.call(this, index, model);\n },\n remove: function (node) {\n var that = this, parentNode = node.parentNode(), dataSource = that, result;\n if (parentNode && parentNode._initChildren) {\n dataSource = parentNode.children;\n }\n that._cleanDestroyed(node);\n result = DataSource.fn.remove.call(dataSource, node);\n if (parentNode && (dataSource.data() && !dataSource.data().length)) {\n parentNode.hasChildren = false;\n } else if (parentNode && !this._hasDirectories(parentNode)) {\n parentNode.hasDirectories = false;\n }\n return result;\n },\n _cleanDestroyed: function (node) {\n var that = this, dataSource = that;\n if (node.parentNode && node.parentNode()) {\n node = node.parentNode();\n dataSource = node.children;\n dataSource._destroyed = [];\n that._cleanDestroyed(node);\n } else {\n dataSource._destroyed = [];\n }\n },\n _hasDirectories: function (node) {\n var result;\n if (!node.children.data()) {\n return false;\n }\n result = node.children.data().filter(function (item) {\n return item.isDirectory;\n });\n return !!result.length;\n }\n });\n FileManagerDataSource.create = function (options) {\n options = options && options.push ? { data: options } : options;\n var dataSource = options || {}, data = dataSource.data;\n if (data && data._dataSource) {\n return data._dataSource;\n }\n dataSource.data = data;\n return dataSource instanceof FileManagerDataSource ? dataSource : new FileManagerDataSource(dataSource);\n };\n kendo.observableFileManagerData = function (array) {\n var dataSource = FileManagerDataSource.create({\n data: array,\n schema: kendo.data.schemas.filemanager\n });\n dataSource.fetch();\n dataSource._data._dataSource = dataSource;\n return dataSource._data;\n };\n extend(kendo.data, {\n FileManagerDataSource: FileManagerDataSource,\n FileEntry: FileEntry\n });\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('filemanager/contextmenu', ['kendo.menu'], f);\n}(function () {\n (function ($, undefined) {\n var kendo = window.kendo, extend = $.extend, proxy = $.proxy, template = kendo.template, ContextMenu = kendo.ui.ContextMenu, ACTION = 'action';\n var FileManagerContextMenu = ContextMenu.extend({\n init: function (element, options) {\n var that = this;\n ContextMenu.fn.init.call(that, element, options);\n that._overrideTemplates();\n that._restrictDefaultItems();\n that._extendItems();\n that.bind('select', proxy(that._onSelect, that));\n that.bind('open', proxy(that._onOpen, that));\n },\n _overrideTemplates: function () {\n this.templates.sprite = template('#if(spriteCssClass) {##}#');\n },\n _restrictDefaultItems: function () {\n var that = this;\n if (that.options.isLocalBinding) {\n that.defaultItems = {};\n }\n },\n defaultItems: {\n 'rename': {\n text: 'Rename',\n spriteCssClass: 'k-icon k-i-edit',\n command: 'RenameCommand'\n },\n 'delete': {\n text: 'Delete',\n spriteCssClass: 'k-icon k-i-delete',\n command: 'DeleteCommand'\n }\n },\n events: ContextMenu.fn.events.concat([ACTION]),\n _extendItems: function () {\n var that = this, items = that.options.items, item, isBuiltInTool;\n if (items && items.length) {\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n isBuiltInTool = $.isPlainObject(item) && Object.keys(item).length === 1 && item.name;\n if (isBuiltInTool) {\n item = item.name;\n }\n if ($.isPlainObject(item)) {\n that._extendItem(item);\n that.append(item);\n } else if (that.defaultItems[item]) {\n item = that.defaultItems[item];\n that._extendItem(item);\n that.append(item);\n }\n }\n } else {\n for (var key in that.defaultItems) {\n item = that.defaultItems[key];\n that._extendItem(item);\n that.append(item);\n }\n }\n },\n _extendItem: function (item) {\n var that = this, messages = that.options.messages;\n extend(item, {\n text: messages[item.text],\n spriteCssClass: item.spriteCssClass || '',\n attr: { 'data-command': item.command }\n });\n },\n _onSelect: function (ev) {\n var command = $(ev.item).data('command');\n var target = $(ev.target);\n if (!command) {\n return;\n }\n this.action({\n command: command,\n options: { target: target }\n });\n },\n _onOpen: function (ev) {\n var menu = ev.sender, items = menu.options.items;\n if (!items && $.isEmptyObject(this.defaultItems)) {\n ev.preventDefault();\n }\n },\n action: function (args) {\n this.trigger(ACTION, args);\n }\n });\n extend(kendo.ui.filemanager, { ContextMenu: FileManagerContextMenu });\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.filemanager', [\n 'filemanager/commands',\n 'filemanager/view',\n 'filemanager/toolbar',\n 'filemanager/data',\n 'filemanager/contextmenu',\n 'kendo.breadcrumb',\n 'kendo.upload',\n 'kendo.dialog',\n 'kendo.resizable'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'filemanager',\n name: 'FileManager',\n category: 'web',\n description: 'The FileManager widget displays offers file management functionality.',\n depends: [\n 'core',\n 'data',\n 'listview',\n 'toolbar',\n 'breadcrumb',\n 'menu',\n 'treeview',\n 'upload',\n 'dialog',\n 'switch',\n 'resizable',\n 'selectable',\n 'editable'\n ],\n features: [{\n id: 'filemanager-grid-view',\n name: 'GridView',\n description: 'Support for GridView',\n depends: ['grid']\n }]\n };\n (function ($, undefined) {\n var ui = kendo.ui, extend = $.extend, isPlainObject = $.isPlainObject, isArray = $.isArray, DataBoundWidget = ui.DataBoundWidget, proxy = $.proxy, template = kendo.template, outerHeight = kendo._outerHeight, NAVIGATE = 'navigate', SELECT = 'select', OPEN = 'open', ERROR = 'error', CHANGE = 'change', UPLOAD = 'upload', SUCCESS = 'success', CLOSE = 'close', HIDE = 'hide', LOAD = 'load', DATABINDING = 'dataBinding', DATABOUND = 'dataBound', DROP = 'drop', EXECUTE = 'execute', COMMAND = 'command', KEYDOWNACTION = 'keydownAction', CANCEL = 'cancel', TREE_TYPE = 'tree', DOT = '.';\n var fileManagerStyles = {\n wrapper: 'k-widget k-filemanager',\n header: 'k-filemanager-header',\n navigation: 'k-filemanager-navigation',\n contentContainer: 'k-filemanager-content-container',\n content: 'k-filemanager-content',\n preview: 'k-filemanager-preview',\n toolbar: 'k-filemanager-toolbar',\n treeview: 'k-filemanager-treeview',\n breadcrumb: 'k-filemanager-breadcrumb',\n view: 'k-filemanager-view',\n grid: 'k-filemanager-grid',\n list: 'k-filemanager-listview',\n upload: 'k-filemanager-upload',\n uploadDialog: 'k-filemanager-upload-dialog',\n splitBar: 'k-splitbar',\n splitBarHorizontal: 'k-splitbar-horizontal k-splitbar-draggable-horizontal',\n splitBarHover: 'k-splitbar-horizontal-hover',\n splitBarIcon: 'k-icon k-resize-handle',\n splitBarNavigation: 'k-filemanager-splitbar-navigation',\n splitBarPreview: 'k-filemanager-splitbar-preview',\n resizable: 'k-filemanager-resizable'\n };\n var fileManagerTemplateStyles = {\n filePreview: 'k-file-preview',\n fileInfo: 'k-file-info',\n fileName: 'k-file-name',\n fileMeta: 'k-file-meta',\n metaLabel: 'k-file-meta-label',\n metaValue: 'k-file-meta-value',\n extension: 'k-file-type',\n size: 'k-file-size',\n created: 'k-file-created',\n modified: 'k-file-modified'\n };\n var viewTypes = {\n grid: 'grid',\n list: 'list'\n };\n var NO_FILE_PREVIEW_TEMPLATE = '' + '
' + '
' + '' + '
' + '#: messages.noFileSelected #' + '
';\n var SINGLE_FILES_PREVIEW_TEMPLATE = '' + '
' + '
' + '' + '
' + '#:selection[0].name#' + '#if(metaFields){#' + '
' + '#for(var i = 0; i < metaFields.length; i+=1){#' + '#var field = metaFields[i]#' + '
#:messages[field]#:
' + '
' + '#if(field == \"size\"){#' + ' #:kendo.getFileSizeMessage(selection[0][field])#' + '#} else if(selection[0][field] instanceof Date) {#' + ' #:kendo.toString(selection[0][field], \"G\")#' + '#} else if(field == \"extension\") {#' + ' #: !selection[0].isDirectory ? kendo.getFileGroup(selection[0].extension) : \"folder\"#' + '#} else {#' + ' #:selection[0][field]#' + '#}#' + '
' + '
' + '# } #' + '
' + '#}#' + '
';\n var MULTIPLE_FILES_PREVIEW_TEMPLATE = '' + '
' + '
' + '' + '
' + '' + '#:selection.length# ' + '#:messages.items#' + '' + '
';\n var FileManager = DataBoundWidget.extend({\n init: function (element, options) {\n var that = this;\n DataBoundWidget.fn.init.call(that, element, options);\n that.options = kendo.deepExtend({}, that.options, options);\n that.defaultSortOption = {\n field: 'name',\n dir: 'asc'\n };\n that.folderSortOption = {\n field: 'isDirectory',\n dir: 'desc'\n };\n that._commandStack = new ui.filemanager.CommandStack();\n that._dataSource();\n that._wrapper();\n that._renderHeader();\n that._renderContentContainer();\n that._initContextMenu();\n that._renderNavigation();\n that._renderContent();\n that._renderPreview();\n that._initUploadDialog();\n that._resizable();\n that.resize();\n kendo.notify(that, kendo.ui);\n },\n options: {\n name: 'FileManager',\n height: 500,\n resizable: true,\n initialView: viewTypes.list,\n toolbar: { resizable: true },\n contextMenu: {},\n upload: {},\n uploadUrl: '',\n views: {},\n breadcrumb: {},\n draggable: true,\n dialogs: {\n upload: { width: 530 },\n moveConfirm: {\n width: 350,\n closable: true\n },\n deleteConfirm: {\n width: 360,\n closable: true\n },\n renamePrompt: {\n width: 350,\n closable: true\n }\n },\n previewPane: {\n metaFields: [\n 'extension',\n 'size',\n 'created',\n 'modified'\n ],\n noFileTemplate: NO_FILE_PREVIEW_TEMPLATE,\n singleFileTemplate: SINGLE_FILES_PREVIEW_TEMPLATE,\n multipleFilesTemplate: MULTIPLE_FILES_PREVIEW_TEMPLATE\n },\n messages: {\n toolbar: {\n createFolder: 'New Folder',\n upload: 'Upload',\n sortDirection: 'Sort Direction',\n sortDirectionAsc: 'Sort Direction Ascending',\n sortDirectionDesc: 'Sort Direction Descending',\n sortField: 'Sort By',\n nameField: 'Name',\n sizeField: 'File Size',\n typeField: 'Type',\n dateModifiedField: 'Date Modified',\n dateCreatedField: 'Date Created',\n listView: 'List View',\n gridView: 'Grid View',\n search: 'Search',\n details: 'View Details',\n detailsChecked: 'On',\n detailsUnchecked: 'Off',\n 'delete': 'Delete',\n rename: 'Rename'\n },\n views: {\n nameField: 'Name',\n sizeField: 'File Size',\n typeField: 'Type',\n dateModifiedField: 'Date Modified',\n dateCreatedField: 'Date Created',\n items: 'items'\n },\n dialogs: {\n upload: {\n title: 'Upload Files',\n clear: 'Clear List',\n done: 'Done'\n },\n moveConfirm: {\n title: 'Confirm',\n content: '

Do you want to move or copy?

',\n okText: 'Copy',\n cancel: 'Move',\n close: 'close'\n },\n deleteConfirm: {\n title: 'Confirm',\n content: '

Are you sure you want to delete the selected file(s)?
You cannot undo this action.

',\n okText: 'Delete',\n cancel: 'Cancel',\n close: 'close'\n },\n renamePrompt: {\n title: 'Prompt',\n content: '

Enter new name for the file.

',\n okText: 'Rename',\n cancel: 'Cancel',\n close: 'close'\n }\n },\n previewPane: {\n noFileSelected: 'No File Selected',\n extension: 'Type',\n size: 'Size',\n created: 'Date Created',\n createdUtc: 'Date Created UTC',\n modified: 'Date Modified',\n modifiedUtc: 'Date Modified UTC',\n items: 'items'\n }\n }\n },\n events: [\n NAVIGATE,\n SELECT,\n OPEN,\n DATABINDING,\n DATABOUND,\n ERROR,\n DROP,\n EXECUTE,\n COMMAND\n ],\n _dataSource: function () {\n var that = this, options = that.options, dataSourceOptions = options.dataSource || {}, typeSortOrder = that.folderSortOption, nameSortOrder = that.defaultSortOption, dataSource;\n if (!(dataSourceOptions instanceof kendo.data.FileManagerDataSource)) {\n if (isArray(dataSourceOptions)) {\n dataSource = {\n data: dataSourceOptions,\n autoSync: false,\n sort: [\n typeSortOrder,\n nameSortOrder\n ]\n };\n } else {\n dataSource = extend(true, dataSourceOptions, {\n autoSync: false,\n sort: [\n typeSortOrder,\n nameSortOrder\n ]\n });\n }\n if (dataSourceOptions && isPlainObject(dataSourceOptions.schema)) {\n dataSource.schema = dataSourceOptions.schema;\n } else if (isPlainObject(kendo.data.schemas.filemanager)) {\n dataSource.schema = kendo.data.schemas.filemanager;\n }\n } else {\n dataSource = dataSourceOptions;\n }\n if (that.dataSource && that._errorHandler) {\n that.dataSource.unbind(ERROR, that._errorHandler);\n that.dataSource.unbind(CHANGE, that._changeHandler);\n } else {\n that._errorHandler = proxy(that._error, that);\n that._changeHandler = proxy(that._change, that);\n }\n that.dataSource = kendo.data.FileManagerDataSource.create(dataSource).bind(ERROR, that._errorHandler).bind(CHANGE, that._changeHandler);\n },\n _error: function (ev) {\n if (!this.trigger(ERROR, ev)) {\n window.console.warn('Error! The requested URL returned ' + ev.xhr.status + ' - ' + ev.xhr.statusText);\n }\n },\n _wrapper: function () {\n var that = this, options = that.options, width = options.width, height = options.height;\n that.wrapper = that.element.addClass(fileManagerStyles.wrapper);\n if (width) {\n that.wrapper.width(width);\n }\n if (height) {\n that.wrapper.height(height);\n }\n that._resizeHandler = kendo.onResize(function () {\n that.resize(true);\n });\n },\n _renderHeader: function () {\n var that = this, options = that.options;\n if (options.toolbar) {\n that.header = $('
').addClass(fileManagerStyles.header);\n that.header.append(that._initToolbar().element);\n }\n that.wrapper.append(that.header);\n },\n _renderContentContainer: function () {\n var that = this, container = $('
').addClass(fileManagerStyles.contentContainer);\n that.contentContainer = container;\n that.wrapper.append(that.contentContainer);\n },\n _initContextMenu: function () {\n var that = this, options = that.options, menuOptions = extend({}, options.contextMenu, {\n filemanager: that,\n messages: options.messages.toolbar,\n target: that.contentContainer,\n filter: '[data-uid]',\n action: that.executeCommand.bind(that),\n isLocalBinding: that.dataSource.isLocalBinding\n });\n if (options.contextMenu === false) {\n return;\n }\n that.contextMenu = new ui.filemanager.ContextMenu('
    ', menuOptions);\n that.contextMenu.bind(OPEN, proxy(that._cacheFocus, that));\n },\n _renderNavigation: function () {\n var that = this;\n that.navigation = $('
    ').addClass(fileManagerStyles.navigation);\n that.navigation.append(that._initTreeView().element);\n that.contentContainer.append(that.navigation);\n },\n _renderContent: function () {\n var that = this, options = that.options, toolbar = that.toolbar;\n that.content = $('
    ').addClass(fileManagerStyles.content);\n if (options.breadcrumb) {\n that.content.append(that._initBreadcrumb().element);\n }\n that.content.append(that._initView());\n if (!toolbar || !toolbar.isToolEnabled(toolbar.defaultTools.upload.name)) {\n that.content.append(that._initUpload().wrapper.hide());\n }\n that.contentContainer.append(that.content);\n },\n _renderPreview: function () {\n var that = this, enablePreview = that.options.previewPane;\n if (!enablePreview) {\n return;\n }\n that.preview = $('
    ').addClass(fileManagerStyles.preview);\n that.previewContainer = $('
    ').addClass(fileManagerStyles.previewContainer);\n that.preview.append(that.previewContainer);\n that._setPreviewPaneContent();\n that.contentContainer.append(that.preview.hide());\n },\n _setPreviewPaneContent: function () {\n var that = this, options = that.options, previewPaneMessages = options.messages.previewPane, previewPaneOptions = options.previewPane, selection = that.getSelected(), previewTemplate;\n if (!selection) {\n previewTemplate = template(previewPaneOptions.noFileTemplate)({\n styles: fileManagerTemplateStyles,\n messages: previewPaneMessages\n });\n that.previewContainer.html(previewTemplate);\n return;\n }\n previewTemplate = selection.length === 1 ? previewPaneOptions.singleFileTemplate : previewPaneOptions.multipleFilesTemplate;\n previewTemplate = template(previewTemplate)({\n styles: fileManagerTemplateStyles,\n messages: previewPaneMessages,\n selection: selection,\n metaFields: previewPaneOptions.metaFields\n });\n that.previewContainer.html(previewTemplate);\n },\n _initToolbar: function () {\n var that = this, options = that.options, toolbarElement = $('
    ').addClass(fileManagerStyles.toolbar), toolbarOptions = extend({}, options.toolbar, {\n filemanager: this,\n messages: options.messages.toolbar,\n action: that.executeCommand.bind(that)\n });\n that.toolbar = new ui.filemanager.ToolBar(toolbarElement, toolbarOptions);\n return that.toolbar;\n },\n _initTreeView: function () {\n var that = this, treeViewElement = $('
    ').addClass(fileManagerStyles.treeview), options = that.options.views[TREE_TYPE], explicitOptions = extend(true, {}, {\n dataSource: that.options.dataSource,\n messages: that.options.messages.views,\n draggable: that.options.draggable,\n isLocalBinding: that.dataSource.isLocalBinding\n });\n that.treeView = new ui.filemanager.ViewComponents[TREE_TYPE](treeViewElement, options, explicitOptions);\n that.treeView.bind(NAVIGATE, proxy(that._navigate, that)).bind(LOAD, proxy(that._load, that)).bind(DROP, proxy(that._drop, that)).bind(KEYDOWNACTION, proxy(that._keydownAction, that));\n return that.treeView;\n },\n _drop: function (ev) {\n var that = this;\n if (!that.trigger(DROP, ev) && ev.items.indexOf(ev.target) < 0) {\n that._confirm({\n type: 'move',\n target: ev.target\n }).done(function () {\n that.executeCommand({\n command: 'CopyCommand',\n options: ev\n });\n }).fail(function () {\n that.executeCommand({\n command: 'MoveCommand',\n options: ev\n });\n });\n }\n },\n _keydownAction: function (ev) {\n var that = this, keyCode = ev.keyCode, keys = kendo.keys;\n if (keyCode === keys.DELETE) {\n that.executeCommand({\n command: 'DeleteCommand',\n options: { target: ev.target }\n });\n }\n if (keyCode === keys.F2) {\n that.executeCommand({\n command: 'RenameCommand',\n options: { target: ev.target }\n });\n }\n },\n _confirm: function (options) {\n var that = this, messages = that.options.messages.dialogs[options.type + 'Confirm'];\n var confirm = $('
    ').kendoConfirm(extend({}, {\n title: messages.title,\n content: messages.content,\n messages: messages\n }, that.options.dialogs[options.type + 'Confirm'])).data('kendoConfirm');\n confirm.bind(OPEN, proxy(that._cacheFocus, that));\n confirm.bind(HIDE, proxy(that._restoreFocus, that, options.target));\n confirm.open();\n confirm.wrapper.removeClass('k-confirm');\n return confirm.result;\n },\n _prompt: function (options) {\n var that = this, messages = this.options.messages.dialogs[options.type + 'Prompt'];\n var prompt = $('
    ').kendoPrompt(extend({}, {\n title: messages.title,\n content: messages.content,\n messages: messages,\n value: options.defaultInput\n }, this.options.dialogs[options.type + 'Prompt'])).data('kendoPrompt');\n prompt.bind(OPEN, proxy(that._cacheFocus, that));\n prompt.bind(CLOSE, proxy(that._restoreFocus, that, options.target));\n prompt.open();\n prompt.wrapper.removeClass('k-prompt');\n return prompt.result;\n },\n _cacheFocus: function () {\n var that = this, activeElement = $(document.activeElement), view = that.view(), treeView = that.treeView.widgetComponent;\n if (that.contextMenu && that.contextMenu.popup.visible()) {\n return;\n }\n that.treeView._shouldFocus = false;\n if (treeView.current() && treeView.current().find('.k-state-focused').length || activeElement.hasClass(fileManagerStyles.treeview)) {\n that.treeView._shouldFocus = true;\n view._focusElement = activeElement;\n return;\n }\n view._focusElement = activeElement.hasClass(fileManagerStyles[that._viewType]) ? activeElement : null;\n },\n _restoreFocus: function (target) {\n var that = this, view = that.view();\n if (!target) {\n return;\n }\n if (view._focusElement) {\n view._focusElement.focus();\n } else if (target.closest && target.closest(':kendoFocusable').length) {\n target.closest(':kendoFocusable').focus();\n }\n },\n _initView: function () {\n var that = this, viewWrapper = $('
    ').addClass(fileManagerStyles.view), initialView = that.options.initialView;\n that.viewWrapper = viewWrapper;\n that.viewWrapper.append(that.view(initialView));\n return viewWrapper;\n },\n _initBreadcrumb: function () {\n var that = this, options = that.options, breadcrumbElement = $('