<Grid>
   <Cfg id="Files" SuppressCfg="1" MaxHeight="1" MaxHeightReserved="10" MinTagHeight="400"/>
   <Cfg SaveAttrs="Controls,M"/> <!-- Saves Merge checkbox to cookies -->
   <Cfg Group="P" GroupMain="N" GroupRestoreSort="1"/> <!-- Predefined grouping is by Path, the tree will be shown in Name, sorting when grouping will  be preserved -->
   <Cfg Sort="N,E,P" /> <!-- Predefined sorting is Name, Ext, Path -->
   <Cfg FilterEmpty="1"/>  <!-- Empty directories are hidden when filtering -->
   <Cfg Undo="1"/> <!-- Undo / Redo is permitted (it is cleared when groups/ungroups -->
   <Cfg NoFormatEscape="1"/> <!-- Format attribute can contain HTML code -->
   <Cfg IdNames="P,E,N" AppendId="1" IdChars="0123456789" NumberId="1"/> <!-- The file is uniquely identified by Path$Ext$Name, for not unique adds number from 1 to Name (the last in id) -->
   <Cfg PasteFocused="6" PasteSelected="0" CopyPasteRows="1" CopyPasteInternal="1" CopyPasteTree="3"/> <!-- Copies rows whole as ids, pastes them always as new before focused -->
   <Cfg SaveOrder="1"/> <!-- Uploads changes in the exact order they happened -->
   <Cfg OverScroll='1'/> <!-- Permits horizontal scroll of parent scrolling tag when grid cannot be horizontally scrolled -->

   <Actions OnClickButtonAdd="AddRowEnd"/> <!-- Toolbar Add button always adds new file to the end -->
   <Actions OnClickPanelCopy="Row.Def.Group ? AddChild : CopyRow"/> <!-- Panel Copy button adds new file to the directory or copies the file above -->
   <Actions OnRightClick="Focus,ShowRightMenu(Grid,Row),1"/> <!-- Shows the examples's right menu with actions like delete or copy -->
   
   <Panel Copy="1" Width="110"/> <!-- Shows the Panel Copy button, the Delete and Select buttons are shown by defaults -->
   <Panel PanelSelectTip="Select file" PanelCopyTip="Copy file" PanelDeleteTip="Delete file"/> <!-- Sets tooltips for Panel buttons for files, directories are preset in <D Name='Dir'/> -->
   
   <!-- Shows the button 'Show' only for some extension that can be displayed -->
   <Panel Formula="GetRowPanel(Grid,Row,Col)"/>
   <Panel OnClickPanelEdit="EditFile(Row)" OnClickPanelShow="DisplayFile(Row)"/>
   
   <Cols>
      <C Name="P" Width="100"/> <!-- Path of directories -->
      <C Name="P" GroupChar="/" /> <!-- Creates group for every part separated by the '/' -->
      <C Name="P" GroupEmpty="0" /> <!-- Empty directory means no grouping -->
      <C Name="P" Format="||||\/|g|&lt;span style='color:red;'>/&lt;/span>"/> <!-- Colors every '/' in red -->
      
      <C Name="N" Width="70" /> <!-- File name columns -->
      <C Name="N" GroupWidth="170" /> <!-- Sets the column wider when shows grouping tree -->
      <C Name="N" EmptyValue="&lt;span style='color:gray;font-style:italic'>empty file&lt;/span>" /> <!-- For empty file name it shows gray text 'empty file' -->
      <C Name="N" HtmlPrefix="&lt;span style='color:blue;'>" HtmlPostfix="&lt;/span>" /> <!-- Colors the file name in blue -->
      
      <C Name="E" Width="55" /> <!-- File extension column -->
      <C Name="E" HtmlPrefix="&lt;span style='color:#080;'>" HtmlPostfix="&lt;/span>" /> <!-- Colors the file extenstion in green -->
   </Cols>
   <Header id="ID" N="Name" E="Ext" P="Path"/> <!-- Column names shown in grid -->
   <Def>
      <D Name="R" PMerge="P,N,E" PMergeType="4"
         PMergeFormat="P&lt;span style='color:red;'>/&lt;/span>N&lt;span style='color:red;font-weight:bold;'>.&lt;/span>E"
         PMergeEditFormat="P/N.E"
         /> <!-- Prepares Merge settings for not grouped grid, Spanned='1' and PSpan='3' will be set by Merge/Group functions -->
      <D Name="R" NMerge="N,E" NMergeType="4"
         NMergeFormat="N&lt;span style='color:red;font-weight:bold;'>.&lt;/span>E"
         NMergeEditFormat="N.E"
         /> <!-- Prepares Merge settings for grouped grid, Spanned='1' and NSpan='2' will be set by Merge/Group functions -->
      <D Name="R" N="New file" E="txt" /> <!-- Name of newly created files -->
      <D Name="R" Panel="Select,Delete,Copy,Edit,Show" PanelEditWidth="19" PanelEmptyWidth="19" 
         PanelEdit="data:image/gif;base64,R0lGODlhEgAQAPcAAAAAAFpDGHy+dmWCqGuHrFKEw16KxVyKxl+Mxl+NyGmW0W+b1HSd1HWh13ei2Hyh0Hqk2X2l3H6o3YJmLohhK756GqZmJKqJQ76JS4DBeoTDfsOMR8mFQcWYScyWWNCdRtqXSd6aTNiaVN2dUcmZZd6gUNilWMyob9ejY9SiatW2etW5due+d+TJVfXfW/XcXvXcX+3KbefLd+3QeO7Tee3UffffY/bdbPDTefHUe/LWevfhWvfiW/jiXbm3p7i9rYCp3YKq35K034Ss4Ieu4Yiv4oyx44yy5I+05ZC15pO355W24ZS355a66Zi66Zq8652+656/7InGgo7Jh5PLi5jOkJ3QlKHTmKXVnL7Bpr/EsJ/A7bnF1KbD6anE6KrG6ajF76zH6KzG6azH6q7J6a7J6qzH8LDJ6bDJ6rLL6rPM6rfO6rrQ677S69uxhdG3kNnFp+fAi+3VgfnHlPnJke/SrOfWsfbTrvDStPXmsfnjstjQytfS0Nji8PfrwfzgxP32wv32xP33x+rw9+3y+O7z+frw5P/y4P/z5fD0+vH2+vT3+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAASABAAAAjkAP8JHEiwoEEzW6A8aaIkyZEiQ4BEWEIQzKKLGDNedEAwyiIsV6xUoTJFioYMAhYtIPhkEaOXMGMuUkDQyaIuOHPi/GHCzQeCTG4y8gIzTB4WeBDV8TAQiaIvYsaIIXMmixw9ce78STHQiKIyjNC89FMj0I0YKEgQJJIojZq3WmgIgsFDRwkCBIMUWsOIjR0Zgl7syBFiTwKCEgqxYeNjBSAbPXCA4NLnAEEIhdrAUfGmhYsZIwwx6oOAYANCgy4cElGhwwY+fWIbICiEgYIJc+hwsDCggO8CDwz+C0ABwwnhAgMCADs=" 
         PanelShow="data:image/gif;base64,R0lGODlhEgAQAPcAAAAAAA4SGQ8TGw8UGxAVHWST3myY33GY2Xec2miW4XCb43Od4XOd5Xeg5Huh4nqk53yi4n2k536m5Xyl6LaKbLqCYLuFYbiFZcOGYMyPaMGWesCZf9Gbed+jfOGWZuOabOWme5uhsqadm6uhm7Ogj7+rl6GltKaos5Ww34ar54Sq6YSq6o6x6Y6x65G07JW27Zq355i47Ju67p6765277qG54aK/76TA76nE76vE8LHH77LJ8b7R8MCdgcWqlcWrm8iqld2qhdKxndW4n92xlNy7n9C5odm6pNm+peSsg+m0jeOxkOezkeO8nO64key6lOm7m/Cxhue9oea/pdbKvd/KsezAnefApeXLrerBou7Do+jIrebJsebLtOfLtubOuOnJtenPtuXQvOzRt+jTuuzTu+7VvvHIqsXK1trTz8nU6M/b79Ha6dzk8ubTwOfSxOTVxubWxefVy+XXyObazurTwOzUwuvZzu/ZyuHZ0+bf1uzc0uze0+zf1+Tg3eng1+ji3O3j2+7m4Ovo4+3p5e7p5u3p5+rq6uzs7O3t7e7u7u/v7/Dw8PT09Pf39/n5+fv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAASABAAAAjTAP8JHEiwoMGDCAsOmiPmSxcuXvggTESHjJkwSIYUOaMli6CCh9yUMUJixAkTIUT0eOIEz8BEccaUQIPjBo0XLVToOJIkSiCBerBQgbTDhgwCA1ZMUAHpDQgOAqsAcgQpRwwXAgI8YBABkqM9GQT6UdToEQ8WKSQ0UJBgxqNGiogIhPOHUaM2MBwsMFAAwppGjOR0EEhoSx1Bi9jUQHAAhRpGhcB4EDIwTxMrdvoYSsQZ0R0mHjYUTOMjiBIoV6ZIWfIBw4+EQChcsFBBQ8LbuHMHBAA7" 
         PanelPanelEditTip="Edit file" PanelPanelShowTip="Show file"
         /> <!-- -->
      <D Name="Dir" Group="1" NoUpload="1" Spanned="1" PSpan="1" NSpan="2" Expanded="1" CanFilter="2" NHtmlPrefix="" NHtmlPostfix="" E=""/> <!-- Directory definition -->
      <D Name="Dir" Panel="Select,Delete,Copy" PanelFormula="" PanelPanelSelectTip="Select directory" PanelPanelCopyTip="Insert new file into the directory" PanelPanelDeleteTip="Delete directory"/> <!-- Tooltips for panel buttons in directory -->
      
      <D Name="C" LocaleCompare="1" CaseSensitive="0"/> <!-- Filtering and sorting is done case insensitive and according to browser's locale -->
   </Def>
   <Head><Filter Spanned="0" N="" NEmptyValue="" Panel="" E=""/></Head> <!-- Defines filter row in header -->
   <Solid>
      <!-- Defines the two checkboxes on top, Group and Merge -->
      <Group id="Controls" Cells="G,M,R" Space="0" Panel="0" CanFocus="0"
         
         GLeft="5" GCanEdit="1"
         GType="Bool"
         GLabel="Group by path"
         GFormula="Grid.Group?1:0"
         GOnChange="Group(Value)"
         
         MLeft="5" MCanEdit="1"
         MType="Bool" M="1"
         MLabel="Merge name"
         MFormula="Grid.Def.R.Spanned?1:0"
         MOnChange="Merge(Value)"
             
         RLeft="5" RCanEdit="1"
         RType="Bool" R="0"
         RLabel="Read only"
         RFormula="Grid.Editing?0:1"
         ROnChange="Grid.Editing = Value ? 0 : 1;"
         />
   </Solid>
   <Toolbar Cells="Save,Reload,Print,Export,Undo,Redo,Add,ExpandAll,CollapseAll,Cfg" AddTip="Add new file to the end" /> <!-- Specifies the toolbar buttons set -->
</Grid>