<Grid>
   <Cfg id="Gantt" SuppressCfg="1"/> <!-- Base settings, suppresses saving configuration to cookies -->
   <Cfg NumberId="1" IdChars="0123456789"/> <!-- Controls generation of new row ids -->
   <Cfg NoFormatEscape="1"/> <!-- You can use HTML code in formatting, set here because ValueSeparator and RangeSeparator contain HTML code -->
   <Cfg Sort="id"/> <!-- Default sort is by ID -->
   <Cfg Group="N1"/> <!-- The grid is grouped by Task by default -->
   <Cfg GroupRestoreSort="1"/> <!-- Restores original sorting after ungroup -->
   <Cfg Undo="1"/> <!-- Permits undo / redo changes by Ctrl+Z / Ctrl + Y -->
   <Cfg ChildParts="0"/> <!-- Switches off child parts, here is not needed -->
   <Cfg ScrollLeftLap="0"/> <!-- Permits saving left scroll to cookies -->
   <Cfg DefaultDate="5/1/2008"/> <!-- Default date in calendar for empty date -->
   <Cfg MenuColumnsCount="2"/> <!-- Displays column names in menu in two columns -->
   <Cfg MidWidth="325" MinRightWidth="200" MinLeftWidth="200"/> <!-- Sizes and scrolls for column sections -->
   <Cfg Style="Standard"/> <!-- Presets Standard CSS style -->
   <Cfg ResizingMain="3"/> <!-- Users can resize grid by right bottom edge -->
   <Cfg CalendarsRepeatType="Enum" CalendarsRepeatEnum="||Weekly|Daily" CalendarsRepeatEnumKeys="||w|d"/> <!-- Settings for Calendar list dialog, the Repeat column -->
   <Cfg CalendarsValueType="Enum" CalendarsValueEnum="|Not work|Exception|Lunch|Weekend|Holiday|Reserved1|Reserved2" CalendarsValueEnumKeys="||0|1|2|3|4|5" CalendarsValueCaption="Type"/> <!-- Settings for Calendar list dialog, the Value column -->
   <Def>
      <D Name="R" CDef=""/> <!-- The standard rows cannot have children -->
      <D Name="Group" Calculated="1" CalcOrder="N2HtmlPostfix,S,E,U,C,F,G,P"/> <!-- Grouping row is calculated to show summary for its children -->
      <D Name="Group" Expanded="1" /> <!-- Grouping row shows its children by default -->
      <D Name="Group" EditCols="Main"/> <!-- When user changes value in main column (N1 - Task), the value is copied also to the children -->
      <D Name="Group" SFormula="ganttstart()"/> <!-- Gets the first start date from its children, including milestones -->
      <D Name="Group" EFormula="ganttend()"/> <!-- Gets the last end date from its children, including milestones -->
      <D Name="Group" UFormula="E&amp;&amp;S?Grid.DiffGanttDate(E,S):''"/> <!-- Gets the last end date from its children, including milestones -->
      <D Name="Group" CFormula="ganttpercent()"/> <!-- Calculates average task completion from its children -->
      <D Name="Group" FFormula="sumrange()" FCanEdit="0"/> <!-- Merges all date ranges from its children -->
      <D Name="Group" PFormula="sum()"/> <!-- Sums prices -->
      <D Name="Group" CDef="R"/> <!-- Grouping rows can contain standard rows as children -->
      <D Name="Group" DButton="" RButton=""/> <!-- No dependencies and resources can be changed in group row -->
      <D Name="Group" GGanttClass="GanttG" GGanttIcons="1"/> <!-- Gantt setting specific for Group rows, changes colors and adds side icons -->
      <D Name="Group" GGanttSummary="1"/> <!-- Row works as Gantt Summary, when moved, it moves its child tasks too -->
      <D Name="Group" GGanttEdit="Main"/> <!-- Only main the bar can be edited to move all the summary children -->
      <D Name="Group" SCanEdit="1"/> <!-- Lets users to edit start date to move the Gantt Summary and its children -->
      <D Name="Group" GroupMain="N1"/> <!-- Tree will be shown in Task column -->
      <D Name="Group" CMaxChars="100"/> <!-- Ensures setting returned value when grouped by Complete column -->
      <D Name="Group" ParentCDef="Group"/> <!-- When grouped by any column, new rows added to root will be these groups -->
      <D Name="Group" CanFilter="2"/> <!-- Hides the group when all its tasks are hidden by filter -->
      <D Name="Group" idVisible="0"/> <!-- Hides the automatically generated id -->
      <D Name="Group" CanSelect="0"/> <!-- Hides the panel Select icon -->
      <D Name="Group" AggChildren="1"/> <!-- Aggregates children of task instead of itself, used when calculating the summary fixed row -->
      <D Name="Group" N2HtmlPostfixFormula="' &lt;span style=&quot;color:green;&quot;>('+count(4)+')&lt;/span>'"/> <!-- Shows the count of children as green suffix -->

      <D Name="GroupTask" GroupCols="|N1|C,N1" Group="1" Def="Group" GroupMain="N2"/> <!-- When grouping by Task, shows tree in Section column -->
      <D Name="GroupTask" ParentCDef="GroupTask"/> <!-- When grouped by task, new rows added to root will be of these groups -->
   </Def>
   <LeftCols>
      <C Name="id" Type="Int" Width="20" WidthPad="17" CanEdit="0"/> <!-- id / row number column -->
      <C Name="N1" Width="70" Type="Text"/> <!-- Task column -->
      <C Name="N2" Width="80" Type="Text"/> <!-- Section column -->
   </LeftCols>
   <Cols>
      <C Name="S" Width="80" DefaultDate="5/1/2008 9:00" Type="Date" Format="MMM dd, '&lt;span style=&quot;color:blue&quot;>'HH'&lt;/span>'" EditFormat="MM/dd/yy HH"/> <!-- Start date column -->
      <C Name="E" Width="80" DefaultDate="5/1/2008 18:00" Type="Date" Format="MMM dd, '&lt;span style=&quot;color:blue&quot;>'HH'&lt;/span>'" EditFormat="MM/dd/yy HH" CanEmpty="1"/> <!-- End date column -->
      <C Name="U" Width="31" Type="Text" Align="Right" MenuName="Duration"/> <!-- Duration column -->
      <C Name="C" Width="37" Type="Float" EditMask="^\d*[\d\.\,]?\d*$" Format="##.##\%;;0\%" MenuName="Complete"/> <!-- Complete column -->
      <C Name="D" Width="50" Type="Text" Range="1" MenuName="Descendants"/><!-- Descendants, ids of next tasks -->
      <C Name="A" Width="50" Type="Text" Range="1" MenuName="Ancestors"/><!-- Ancestors, ids of previous tasks -->
      <C Name="L" Width="40" Type="Float" CanEmpty="1" CanEdit="0" MenuName="Slack"/> <!-- Slack for critical path, automatically filled -->
      <C Name="T" Width="70" Type="Select" OnClickSideDefaults = "Grid.ShowGanttCalendars(Row,Col)" OnEnter = "Grid.ShowGanttCalendars(Row,Col)"/> <!-- Custom calendar / excluded dates -->
      <C Name="F" Width="150" Type="Date" DefaultDate="5/1/2008 9:00~5/1/2008 18:00" Range="1" Button="" Format="MMM dd, '&lt;span style=&quot;color:blue&quot;>'HH'&lt;/span>'"/> <!-- Real flow column -->
      <C Name="FI" Visible="0" Width="70" MenuName="Real flow info"/> <!-- Real flow info column -->
      <C Name="R" Width="110" Type="Text"/> <!-- Resources column -->
      <C Name="P" Width="55" Type="Float" Format=",0.00" Formula="Grid.GetGanttPrice(Row,'G')"/> <!-- Task price column -->
      <C Name="M" Visible="0" Width="75" Type="Date" Range="1" Button="" Format="MMM dd, '&lt;span style=&quot;color:blue&quot;>'HH'&lt;/span>'"/> <!-- Flag column -->
      <C Name="I" Visible="0" Width="60" Type="Text" Range="1"/> <!-- Flag info column -->
      <C Name="S1" Visible="0" Width="80" Type="Date" Format="MMM dd, '&lt;span style=&quot;color:blue&quot;>'HH'&lt;/span>'" EditFormat="MM/dd/yy HH"/> <!-- Min Start date column -->
      <C Name="S2" Visible="0" Width="80" Type="Date" Format="MMM dd, '&lt;span style=&quot;color:blue&quot;>'HH'&lt;/span>'" EditFormat="MM/dd/yy HH"/> <!-- Max Start date column -->
      <C Name="E1" Visible="0" Width="80" Type="Date" Format="MMM dd, '&lt;span style=&quot;color:blue&quot;>'HH'&lt;/span>'" EditFormat="MM/dd/yy HH"/> <!-- Min End date column -->
      <C Name="E2" Visible="0" Width="80" Type="Date" Format="MMM dd, '&lt;span style=&quot;color:blue&quot;>'HH'&lt;/span>'" EditFormat="MM/dd/yy HH"/> <!-- Max End date column -->
      <C Name="NI" Visible="0" Width="120"/> <!-- Main task info column -->
   </Cols>
   <RightCols>
      <!-- Gantt chart column -->
      <!-- Defines all Gantt chart setting -->
      <C Name="G" Type="Gantt" MenuName="Gantt chart"/> <!-- Basic setting, type and name in columns menu -->
      <C Name="G" GanttStart="S" GanttEnd="E" GanttDuration="U" GanttComplete="C" GanttResources="R" GanttText="NI"/> <!-- Defines source columns for Main tasks -->
      <C Name="G" GanttMinStart="S1" GanttMaxStart="S2" GanttMinEnd="E1" GanttMaxEnd="E2"/> <!-- Start and end date constraints -->
      <C Name="G" GanttSlack="L"/> <!-- Where will be filled information for critical path -->
      <C Name="G" GanttFlow="F" GanttFlowText="FI"/> <!-- Defined source columns for Flow -->
      <C Name="G" GanttFlags="M" GanttFlagTexts="I"/> <!-- Defined source columns for Flags -->
      <C Name="G" GanttDescendants="D" GanttAncestors="A"/> <!-- Defines source columns for Dependencies -->
      <C Name="G" GanttLeft="2" GanttRight="0"/> <!-- At least two units will be let empty on left side (no Exclude applied here) -->
      <C Name="G" GanttMin="1/1/1990" GanttMax="1/1/2040"/> <!-- Limit dates for input and display -->
      <C Name="G" MinWidth="450"/> <!-- Minimal width of the column will be 450 pixels -->
      <C Name="G" GanttDataUnits="h" /> <!-- All lengths in input data XML (like Dependency lags) are in hours -->
      <C Name="G" GanttDataModifiers="m:1/60,h:1,d:8,w:40"/> <!-- Modifiers that can be used in Dependency lag values to multiply the value to get hour count -->
      <C Name="G" GanttEndLast="0"/> <!-- All the end dates are set exactly and not as the last unit -->
      <C Name="G" GanttStrict="1"/> <!-- Forces first tasks to start on base date and all other to start immediately when possible -->
      <C Name="G" GanttCorrectDependencies="2" /> <!-- Ask to correct dependencies after main task move or resize or dependency change -->
      <C Name="G" GanttCorrectDependenciesFixed="1"/> <!-- Cannot move the changed task when automatically correcting dependencies -->
      <C Name="G" GanttCheckExclude="2" /> <!-- Ask to move task if it starts on holiday after resize or move -->
      <C Name="G" GanttBase="5/14/2008 9:00"/> <!-- Base project date, all the project should start after this date -->
      <C Name="G" GanttBaseProof="1"/> <!-- The tasks cannot be moved or created before GanttBase -->
      <C Name="G" GanttBackground="M#1/1/2008#5"/> <!-- Highlights these dates in chart (month ends), some zoom levels change this setting -->
      <C Name="G" GanttResourcesAssign="4"/> <!-- Shows resources menu with float number inputs -->
      <C Name="G" GanttResourcesExtra="3"/> <!-- Both extra price per task and per resource are permitted -->
      <C Name="G" GanttFormat="$&lt;span style='color:#77F'>*P*&lt;/span> *R*"/> <!-- Formats the text next to main task -->
      <C Name="G" GanttMainTip="*id*. *N1*, *N2* &lt;span style='color:#F77'>(main bar)&lt;/span>&lt;div style='padding-top:5px;padding-bottom:5px;font-weight:bold;'>*Start* - *End*&lt;/div>*Duration* hours, *C* completed&lt;div style='padding-top:5px;'>&lt;b>*L*&lt;/b> hours reserve&lt;/div>&lt;div style='padding-top:5px;'>*Text*&lt;/div>"/> <!-- Specifies tooltip shown for main bar only-->
      <C Name="G" GanttMilestoneTip="*id*. *N1*, *N2* &lt;span style='color:#F77'>(milestone)&lt;/span>&lt;div style='padding-top:5px;font-weight:bold;'>*Start*&lt;/div>&lt;div style='padding-top:5px;'>&lt;b>*L*&lt;/b> hours reserve&lt;/div>&lt;div style='padding-top:5px;'>*Text*&lt;/div>"/> <!-- Specifies tooltip shown for milestone only-->
      <C Name="G" GanttFlowTip="*id*. *N1*, *N2* &lt;span style='color:#F77'>(*Index*. flow bar)&lt;/span>&lt;div style='padding-top:5px;padding-bottom:5px;font-weight:bold;'>*Start* - *End*&lt;/div>*Duration* hours&lt;div style='padding-top:5px;'>*Text*&lt;/div>"/> <!-- Specifies tooltip shown for flow bar only-->
      <C Name="G" GanttFlagsTip="*Start* - *Text*"/> <!-- Specifies tooltip shown for flag only-->

      <C Name="G" GanttCalendar="T"/> <!-- Column with custom calendars -->
      <C Name="G" GanttExclude = "Special"/> <!-- Global calendar - the excluded dates are not used for Gantt calculations and behaves like they don't exist at all -->
      <C Name="G" GanttHideExclude="0"/> <!-- By default are the Excluded dates in global calendar shown in chart, it can be changed by a user -->
      <C Name="G" GanttAvailabilityExclude="0"/> <!-- The resources chart is not rounded to the excluded dates -->

      <C Name="G" GanttZoom="weeks and days"/> <!-- Predefine zoom level name -->
   </RightCols>

   <!-- Gantt Zoom defines zoom levels definition -->
   <!-- The individual levels predefine various Gantt zoom settings -->
   <!-- GanttUnits and GanttWidth specify the zooming size, to GanttUnits are all the dates rounded for display and drag -->
   <!-- GanttChartRound specifies rounding of first and last date in the chart -->
   <!-- Some zoom levels changes GanttBackground to mark different units -->
   <!-- GanttHeader1 specifies the dates shown in the first line in Gantt header -->
   <!-- GanttHeader2 and possibly also 3,4,5 specify next lines in Gantt header -->
   <!-- The ...Ex values are chosen when Exclude is hidden, they are appropriate only for the actual Exclude dates (days and hours) -->
   <Zoom>
      <Z Name="years and halves" GanttUnits="M6" GanttChartRound="y" GanttWidth="18" GanttWidthEx="76" GanttBackground=";y#1/1/2008" 
         GanttHeader1="y#yyyy" GanttHeader2="M6#MMMMMM"/>
      <Z Name="years and quarters" GanttUnits="M3" GanttChartRound="y" GanttWidth="24" GanttWidthEx="101" GanttBackground=";y#1/1/2008" 
         GanttHeader1="y#yyyy" GanttHeader2="M3#MMMMM"/>
      <Z Name="halves and months" GanttUnits="M" GanttChartRound="y" GanttWidth="18" GanttWidthEx="76" GanttBackground=";M6#1/1/2008" 
         GanttHeader1="M6#MMMMMM. yyyy" GanttHeader2="M#MM"/>
      <Z Name="quarters and months" GanttUnits="M" GanttChartRound="M6" GanttWidth="28" GanttWidthEx="118" GanttBackground=";M3#1/1/2008" 
         GanttHeader1="M3#MMMMM. yyyy" GanttHeader2="M#MMM"/>
      <Z Name="months and weeks" GanttUnits="d" GanttChartRound="M" GanttWidth="3" GanttWidthEx="12.6" GanttBackground=";M#1/1/2008" 
         GanttHeader1="M#MMM yyyy" GanttHeader2="w#d."/>
      <Z Name="months and days" GanttUnits="d" GanttChartRound="M" GanttWidth="8" GanttWidthEx="33.6"
         GanttHeader1="M#MMMM yyyy" GanttHeader2="d#'&lt;div style=&quot;font:8px Arial;&quot;>'DDDDDD'&lt;br/>'DDDDDDD'&lt;/div>'" GanttHeaderHeight2="20"/>
      <Z Name="weeks and days" GanttUnits="d" GanttChartRound="w" GanttWidth="18" GanttWidthEx="76"
         GanttHeader1="w#'&lt;span style=&quot;color:red;font-size:8px;&quot;>week 'ddddddd'&lt;/span>' MMMM yyyy" GanttHeader2="d#%d" GanttHeader3="d#ddddd"/>
      <Z Name="days and quarters" GanttUnits="h" GanttChartRound="w" GanttWidth="3" GanttWidthEx="9"
         GanttHeader1="d#dd MMM yyyy" GanttHeader2="d#dddd" GanttHeader3="h6#HH" GanttHeaderRound3="1"/>
      <Z Name="days and hours" GanttUnits="h" GanttChartRound="d" GanttWidth="8" GanttWidthEx="24"
         GanttHeader1="d#dddd dddddd MMMM yyyy" GanttHeader2="h#'&lt;div style=&quot;font:8px Arial;&quot;>'HHHH'&lt;br/>'HHHHH'&lt;/div>'" GanttHeader2Ex="h#HH" GanttHeaderHeight2="20"/>
      <Z Name="halves and hours" GanttUnits="h" GanttChartRound="d" GanttWidth="19" GanttWidthEx="25"
         GanttHeader1="h12#dddd dddddd MMMM yyyy tt" GanttHeader1Ex="d#dddd dddddd MMMM yyyy" GanttHeader2="h#HH"/>
      <Z Name="hours and quarters" GanttUnits="h" GanttChartRound="d" GanttWidth="60" GanttBackground="w#1/5/2008~1/7/2008; h#00:00" 
         GanttHeader1="h3#dddd dddddd MMMM yyyy" GanttHeader2="h#HH 'hour'" GanttHeader3="m15#mm"/>
      <Z Name="hours and 5 minutes" GanttUnits="m5" GanttChartRound="h" GanttWidth="18" GanttBackground="w#1/5/2008~1/7/2008; h#00:00" 
         GanttHeader1="h#dddd dddddd MMMM yyyy" GanttHeader2="h#HH 'hour'" GanttHeader3="m5#mm"/>
      <Z Name="hours and minutes" GanttUnits="m" GanttChartRound="h" GanttWidth="8" GanttBackground="m15#00:00; h#00:00"
         GanttHeader1="h#dddd dddddd MMMM yyyy, '&lt;span style=&quot;color:red;&quot;>'HH 'hour&lt;/span>'"
         GanttHeader2="m#'&lt;div style=&quot;font:8px Arial;&quot;>'mmmm'&lt;br/>'mmmmm'&lt;/div>'" GanttHeaderHeight2="20"/>
      <Z Name="halves and minutes" GanttUnits="m" GanttChartRound="h" GanttWidth="12" GanttBackground="m15#00:00; h#00:00"
         GanttHeader1="m30#dddd dddddd MMMM yyyy, '&lt;span style=&quot;color:red;&quot;>'HH:mm '&lt;/span>'"
         GanttHeader2="m#'&lt;div style=&quot;font:8px Arial;&quot;>'mmmm'&lt;br/>'mmmmm'&lt;/div>'" GanttHeaderHeight2="20"/>
      <Z Name="quarters and minutes" GanttUnits="m" GanttChartRound="h" GanttWidth="18" GanttBackground="m15#00:00; h#00:00"
         GanttHeader1="m15#dddd dddddd MMMM yyyy, '&lt;span style=&quot;color:red;&quot;>'HH:mm '&lt;/span>'" GanttHeader2='m#mm'/>
      <Z Name="5 minutes and minutes" GanttUnits="m" GanttChartRound="m15" GanttWidth="36" GanttBackground="m5#00:00; h#00:00"
         GanttHeader1="m5#dddd d MMM yyyy, '&lt;span style=&quot;color:red;&quot;>'HH:mm'&lt;/span>'" GanttHeader2="m#mm"/>
      <Z Name="minutes and 15 seconds" GanttUnits="s15" GanttChartRound="m15" GanttWidth="18" GanttBackground="m#00:00; h#00:00"
         GanttHeader1="m2#dddd d MMM yyyy" GanttHeader2="m#HH:mm" GanttHeader3="s15#ss" />
      <Z Name="minutes and 5 seconds" GanttUnits="s5" GanttChartRound="m15" GanttWidth="18" GanttBackground="m#00:00; h#00:00"
         GanttHeader1="m#dddd dddddd MMMM yyyy" GanttHeader2="m#HH:mm" GanttHeader3="s5#ss"/>
      <Z Name="minutes and seconds" GanttUnits="s" GanttChartRound="m5" GanttWidth="8" GanttBackground="s15#00:00; m#00:00"
         GanttHeader1="m#dddd dddddd MMMM yyyy, '&lt;span style=&quot;color:red;&quot;>'HH:mm 'minute&lt;/span>'"
         GanttHeader2="s#'&lt;div style=&quot;font:8px Arial;&quot;>'ssss'&lt;br/>'sssss'&lt;/div>'" GanttHeaderHeight2="20"/>
      <Z Name="halves and seconds" GanttUnits="s" GanttChartRound="m5" GanttWidth="12" GanttBackground="s15#00:00; m#00:00"
         GanttHeader1="s30#dddd d MMM yyyy, '&lt;span style=&quot;color:red;&quot;>'HH:mm 'minute&lt;/span>'"
         GanttHeader2="s#'&lt;div style=&quot;font:8px Arial;&quot;>'ssss'&lt;br/>'sssss'&lt;/div>'" GanttHeaderHeight2="20"/>
      <Z Name="quarters and seconds" GanttUnits="s" GanttChartRound="m" GanttWidth="18" GanttBackground="s15#00:00; m#00:00"
         GanttHeader1="s15#dddd dddddd MMMM yyyy, '&lt;span style=&quot;color:red;&quot;>'HH:mm:ss'&lt;/span>'" GanttHeader2="s#ss"/>
      <Z Name="5 seconds and seconds" GanttUnits="s" GanttChartRound="s15" GanttWidth="36" GanttBackground="s5#00:00; m#00:00"
         GanttHeader1="s5#dddd d MMM yyyy, '&lt;span style=&quot;color:red;&quot;>'HH:mm'&lt;/span>'" GanttHeader2="s#ss"/>
      <Z Name="seconds and 100 ms" GanttUnits="ms100" GanttChartRound="s2" GanttWidth="9" GanttBackground="s#00:00; m#00:00"
         GanttHeader1="s2#dddd dddddd MMMM yyyy" GanttHeader2="s#HH:mm:ss" GanttHeader3="ms100#%f"/>
      <Z Name="seconds and 100 ms 2" GanttUnits="ms100" GanttChartRound="s" GanttWidth="60" GanttBackground="s#00:00; m#00:00"
         GanttHeader1="s#dddd dddddd MMMM yyyy" GanttHeader2="ms100#HH:mm:ss.'&lt;span style=&quot;color:red;&quot;>'f'&lt;/span>'" />
      <Z Name="100 ms and 10 ms" GanttUnits="ms10" GanttChartRound="ms100" GanttWidth="10" GanttBackground="ms100#00:00; s#00:00"
         GanttHeader1="ms100#ddd d MMM yyyy" GanttHeader2="ms100#HH:mm:ss.'&lt;span style=&quot;color:red;&quot;>'f'&lt;/span>'" GanttHeader3="ms10#ffff"/>
      <Z Name="100 ms and 10 ms 2" GanttUnits="ms10" GanttChartRound="ms100" GanttWidth="65" GanttBackground="ms100#00:00; s#00:00"
         GanttHeader1="ms100#dddd dddddd MMMM yyyy"  GanttHeader2="ms10#HH:mm:ss.'&lt;span style=&quot;color:red;&quot;>'ff'&lt;/span>'"/>
      <Z Name="10 ms and ms" GanttUnits="ms" GanttChartRound="ms10" GanttWidth="11" GanttBackground="ms10#00:00; ms100#00:00"
         GanttHeader1="ms10#ddd d MMM yyyy" GanttHeader2="ms10#HH:mm:ss.'&lt;span style=&quot;color:red;&quot;>'ff'&lt;/span>'" GanttHeader3="ms#fffff"/>
      <Z Name="10 ms and ms 2" GanttUnits="ms" GanttChartRound="ms10" GanttWidth="70" GanttBackground="ms10#00:00; ms100#00:00"
         GanttHeader1='ms10#dddd dddddd MMMM yyyy' GanttHeader2="ms#HH:mm:ss.'&lt;span style=&quot;color:red;&quot;>'fff'&lt;/span>'"/>
      <Z Name="10 ms and ms 3" GanttUnits="ms" GanttChartRound="ms10" GanttWidth="180" GanttBackground="ms10#00:00; ms100#00:00"
         GanttHeader1='ms#dddd dddddd MMMM yyyy' GanttHeader2="ms#HH:mm:ss.'&lt;span style=&quot;color:red;&quot;>'fff'&lt;/span>'"/>
   </Zoom>

   <!-- Defines all calendars (excluded dates) available in grid -->
   <Calendars>
      <E Name="Standard" Exclude="d#18:00~9:00; d#13:00~14:00#1; w#1/5/2008~1/7/2008#2;"/>
      <E Name="24 hours" Exclude=""/>
      <E Name="Night shift" Exclude="d#8:00~23:00; d#3:00~4:00#1; w#1/5/2008 8:00~1/7/2008 8:00#2;"/>
      <E Name="Special"  Exclude="d#18:00~9:00; d#13:00~14:00#1; w#1/5/2008~1/7/2008#2; 5/28/2008~5/29/2008#3"/>
   </Calendars>

   <!-- Column captions -->
   <Header id="ID" N1="Task" N2="Section" S="Start" E="End" C="Com&lt;br>plete" U="Dura&lt;br>tion" NI="Information" P="Price"
          S1="Min start" S2="Max start" E1="Min end" E2="Max end" L="Slack&lt;br>(critical path)" T="Calendar"
          F="Real flow" FI="Real flow&lt;br>information" D="Descen&lt;br>dants" A="Ances&lt;br>tors"
          M="Flags" I="Flag Info" R="Resources" G="Gantt" GNoColor="0" NoEscape="1"/>
   <Header SortIcons="2"/> <!-- Hides unused sort icons -->   

   <Solid>

      <!-- Defines the first top toolbar with combos to choose grouping, zoom and calendars -->
      <Group id="Group" Space="0" Panel="0" Cells="List,Zoom,Ex,HidEx,Cal"
        
         ListLeft="5"
         ListHtmlPrefix='&lt;b>Group by &lt;span style="color:blue;">' ListHtmlPostfix='&lt;/span>&lt;/b>'
  			List='|none|Task|Complete Task|Complete|Start|End'
         Cols='||N1|C,N1|C|S|E'
			ListWidth='108'
			
         ZoomType='SelectGanttZoom'
         ZoomHtmlPrefix='&lt;b>Zoom to &lt;span style="color:blue;">' ZoomHtmlPostfix='&lt;/span>&lt;/b>'
         ZoomLeft='5'
         ZoomWidth='170'
       
         ExLabel="&lt;b style='color:blue;'>Holidays&lt;/b>" ExWidth="50" ExLeft="5"
         ExType="Select" ExOnClickSideDefaults = "Grid.ShowGanttCalendars(Row,Col)"
         ExFormula="Grid.Cols.G.GanttExclude" 
         ExOnChange="Grid.ChangeExclude(Value);" ExUndo="1"
         ExTip="Global calendar for the whole project"

         HidExType='Bool' HidExNoColor='1' HidExLeft='5' HidExCanFocus='0'
         HidExLabelRight='Hide holidays'
         HidExFormula='Grid.Cols.G.GanttHideExclude'
         HidExOnChange='Grid.SetHideExclude(Value)'
         HidExCanEditFormula='gantthasexclude()!=0'
         HidTip='Hides dates excluded by the global calendar'

         CalType='Bool' CalNoColor='1' CalLeft='5' CalCanFocus='0' CalCanEdit='1'
         CalLabelRight='Custom calendars'
         CalFormula='Grid.Cols.G.GanttCalendar'
         CalOnChange='Grid.ChangeExclude(Value?"T":"","GanttCalendar"); if(Value) Grid.ShowCol("T"); else Grid.HideCol("T");'
         CalTip='Permits custom calendars for individual tasks'
         />

      <!-- Defines the second top toolbar with Baseline, Finish date, critical path and dependency violation checking -->
      <Topbar2 id='Project' Space='0' Panel='0' Cells='Base,Finish,Crit,Dep'
            
         BaseType='Date' BaseCanEdit='1' BaseWidth='100' BaseUndo='1' BaseLeft='5'
         BaseLabel='Baseline'
         BaseFormat="ddd M/d/yyyy, '&lt;span style=&quot;color:blue&quot;>'HH'&lt;/span>'"
         BaseEditFormat='M/d/yyyy HH'
         BaseFormula='Grid.GetGanttBase()'
         BaseOnChange='Grid.SetGanttBase(Value,2);'
         BaseHtmlPrefixFormula='Grid.Cols.G.GanttBase===""?"&lt;span style=&apos;color:gray;&apos;>":"&lt;span>"'
         BaseHtmlPostfix='&lt;/span>'
         BaseTip='Starting date of the whole project.&lt;br>No task should start before it.&lt;br>It is also used when correcting dependencies.'
              
         FinishType='Date' FinishCanEdit='1' FinishWidth='100' FinishUndo='1' FinishLeft='5'
         FinishLabel='Finish date'
         FinishFormat="ddd M/d/yyyy, '&lt;span style=&quot;color:blue&quot;>'HH'&lt;/span>&amp;nbsp;'"
         FinishEditFormat='M/d/yyyy HH'
         FinishFormula='Grid.GetGanttFinish()'
         FinishOnChange='Grid.SetGanttFinish(Value);'
         FinishHtmlPrefixFormula='Grid.Cols.G.GanttFinish===""?"&lt;span style=&apos;color:gray;&apos;>":"&lt;span>"'
         FinishHtmlPostfix='&lt;/span>'
         FinishTip='Finish date of the whole project.&lt;br>If grayed, it is calculated from the last task.&lt;br>It is used to calculate critical path.'     

         CritType='Bool' CritNoColor='1' CritCanEdit='1' CritLeft='5' CritCanFocus='0'
         CritLabelRight='Show &lt;b style="color:blue;">critical path&lt;/b> only'
         CritOnChange='Grid.SetFilter("Crit",Value?"L!==&apos;&apos; &amp;&amp; L&lt;=Grid.Cols.G.GanttMinSlack &amp;&amp; C!=100":"")'
              
         DepType='Select'
         DepDefaults='|Ignore problems|Auto correct problems|Alert and confirm problems'
         DepFormula='Grid.GetDefaultsValue(Row,Col,Grid.Cols.G.GanttCorrectDependencies)'
         DepOnChange='var v=Grid.GetDefaultsIndex(Row,Col,Value);Grid.Cols.G.GanttCorrectDependencies=v;Grid.Cols.G.GanttCheckExclude=v;Grid.SaveCfg();'
         DepTip='If the dependent tasks will be updated after some task move or resize'
         DepWidth='130'
         DepLeft='5'
         />

      <!-- Defines the first bottom toolbar with resources filters and charts -->
      <Toolbar1 Space='4' Cells='Resources,Use,Avail,Free,Err,Empty,Dep' Panel='0'
         ResourcesType='SelectGanttResources'
         ResourcesHtmlPrefix='&lt;b>Show &lt;span style="color:blue;">' ResourcesHtmlPostfix='&lt;/span>&lt;/b>'
         ResourcesEmptyValue='all resources'
         ResourcesLeft='5'
         ResourcesWidth='120'

         UseType='Bool' UseNoColor='1' UseCanEdit='1' UseLeft='5' UseCanFocus='0'
         UseLabelRight='Used resources' Use='1'
         UseOnChange='
            Grid.Def.Resource.GGanttAvailability = (Row.Avail?",N2#3":"") + (Row.Use?",N2#1":"") + (Row.Use&amp;&amp;Row.Avail?",N2#8":"") + (Row.Free?",N2#5":"") + (Row.Err?",N2#6":"");
            if(!Row.Avail&amp;&amp;!Row.Free&amp;&amp;!Row.Err) { 
               var F = Grid.GetRows(Grid.Foot); Grid.StartUpdate();
               for(var i=0;i&lt;F.length;i++) if(Value) Grid.ShowRow(F[i]); else Grid.HideRow(F[i]); 
               Grid.EndUpdate();
               }
            else Grid.RefreshGantt();
            '
         AvailType='Bool' AvailNoColor='1' AvailCanEdit='1' AvailLeft='5' AvailCanFocus='0'
         AvailLabelRight='Available resources' Avail='1'
         AvailOnChange='
            Grid.Def.Resource.GGanttAvailability = (Row.Avail?",N2#3":"") + (Row.Use?",N2#1":"") + (Row.Use&amp;&amp;Row.Avail?",N2#8":"") + (Row.Free?",N2#5":"") + (Row.Err?",N2#6":"");
            if(!Row.Use&amp;&amp;!Row.Free&amp;&amp;!Row.Err) { 
               var F = Grid.GetRows(Grid.Foot); Grid.StartUpdate();
               for(var i=0;i&lt;F.length;i++) if(Value) Grid.ShowRow(F[i]); else Grid.HideRow(F[i]); 
               Grid.EndUpdate();
               }
            else Grid.RefreshGantt();
            '
         FreeType='Bool' FreeNoColor='1' FreeCanEdit='1' FreeLeft='5' FreeCanFocus='0'
         FreeLabelRight='Free resources' Free='0'
         FreeOnChange='
            Grid.Def.Resource.GGanttAvailability = (Row.Avail?",N2#3":"") + (Row.Use?",N2#1":"") + (Row.Use&amp;&amp;Row.Avail?",N2#8":"") + (Row.Free?",N2#5":"") + (Row.Err?",N2#6":"");
            if(!Row.Use&amp;&amp;!Row.Avail&amp;&amp;!Row.Err) { 
               var F = Grid.GetRows(Grid.Foot); Grid.StartUpdate();
               for(var i=0;i&lt;F.length;i++) if(Value) Grid.ShowRow(F[i]); else Grid.HideRow(F[i]); 
               Grid.EndUpdate();
               }
            else Grid.RefreshGantt();
            '
         ErrType='Bool' ErrNoColor='1' ErrCanEdit='1' ErrCanFocus='0' ErrLeft='5'
         ErrLabelRight='Resources errors' Err='0'
         ErrOnChange='
            Grid.Def.Resource.GGanttAvailability = (Row.Avail?",N2#3":"") + (Row.Use?",N2#1":"") + (Row.Use&amp;&amp;Row.Avail?",N2#8":"") + (Row.Free?",N2#5":"") + (Row.Err?",N2#6":"");
            if(!Row.Use&amp;&amp;!Row.Avail&amp;&amp;!Row.Free) { 
               var F = Grid.GetRows(Grid.Foot); Grid.StartUpdate();
               for(var i=0;i&lt;F.length;i++) if(Value) Grid.ShowRow(F[i]); else Grid.HideRow(F[i]); 
               Grid.EndUpdate();
               }
            else Grid.RefreshGantt();
            '

         EmptyRelWidth="1" EmptyType="Html"
         DepFormula="ganttdependencyerrors(null,1)" DepOnClick="CorrectAllDependencies" DepTip="Click to correct the dependencies" 
         
         />

   </Solid>
   
   <!-- Summary row for all tasks -->
   <Foot>
      <I id='-1' Def='Group' N1='Summary' N2='Summary' GGanttEdit=''/> 
   </Foot>
   
   <!-- Resources definition -->
   <Resources>
      <R Name="Sales" Price="20" Type="1" Availability="3"/>
      <R Name="Support" Price="30" Type="1" Availability="5"/>
      <R Name="Management" Price="37" Type="1" Availability="w#1/4/2011~1/7/2011#1"/>
      <R Name="Development" Price="40" Type="1" Availability="20;5/26/2008~6/7/2008#-8"/>
      <R Name="Material" Price="1" Type="2" Availability="15;w#5/20/2008~6/4/2008#20"/>
   </Resources>
   
   <!-- Resources usage sub table -->
   <Def>
      <!-- Default row for resources -->
      <D Name='Resource' idVisible='0' CanEdit='0' CanDelete="" CanSelect="0" Calculated="1"
         
         GGanttAvailability="N2#3,N2#1,N2#8" GGanttAvailabilityFormat="0.#"
         GGanttStart="" GGanttEnd="" GGanttEdit="" GGanttComplete="" GGanttAncestors="" GGanttDescendants=""
         
         N1="Resource"

         SType="Float" SFormat="0.00" SEditMask="^\d*[\d\.\,]?\d*$" SEditFormat="" SCanEdit="1"
         SFormula="Grid.Resources[Row.N2]?Grid.Resources[Row.N2].Price:0" 
         SOnChange="Grid.Resources[Row.N2].Price = Value; Grid.Calculate(1)"

         EType="Text" EFormat="" ECanEdit="0"
         EFormula="Grid.Resources[Row.N2]?Grid.Resources[Row.N2].Availability:0"
         EOnChange="Grid.Resources[Row.N2].Availability = Value;"
         EButton="Dates" 
         EDatesRepeatType="Enum" EDatesRepeatEnum="||Weekly|Daily" EDatesRepeatEnumKeys="||w|d"
         EDatesValueType="Float" EDatesValueFormat="0.00" EDatesValueCaption="Count"
         UType="Float" UFormat="0.##" UFormula="ganttresourcepeak(Row.N2)"
         CType="Enum" CEnum="|wrk|mat" CEnumKeys="|1|2" CCanEdit="1"
         CFormula="Grid.Resources[Row.N2] ? Grid.Resources[Row.N2].Type : 1"
         COnChange="Grid.Resources[Row.N2].Type = Value; Grid.Calculate(1)"
         DType="Float" DFormat="0.00" DFormula="ganttresourceunits(Row.N2)"
         AType="Float" AFormat="0.00" AFormula="D*S"
         
         PVisible="0" TButton=""
         /> 
   </Def>
   <Foot>
      <Header id='-2' idVisible='0' SortIcons='0' CanPrint='1'
              N1='Type' N2='Resource' G='Resources usage' GOnClick='ZoomIn' GNoColor='0'
              S='Unit price' E='Availability' U='Peak' C='Type' D='Total' A='Price'
              S1='' S2='' E1='' E2='' NI='' T='' F='' FI='' R='' P='' M='' I='' L=''
              /> <!-- Header of sub table with column captions -->
      <I id="-3" Def="Resource" N2="Support"/>
      <I id="-4" Def="Resource" N2="Sales"/>
      <I id="-5" Def="Resource" N2="Management"/>
      <I id="-6" Def="Resource" N2="Development"/>
      <I id="-7" Def="Resource" N2="Material" Height="40"/>
   </Foot>
   <!-- End of resources usage sub table -->
 
   <Lang>
      <!-- Colors the separators to be better visible, there must be also set Cfg NoFormatEscape for it -->
      <Format
         ValueSeparatorHtml="&lt;b style='color:red;'>; &lt;/b>"
         RangeSeparatorHtml="&lt;b style='color:red;'> ~ &lt;/b>"
         />
   </Lang>

   <!-- Defines the second toolbar as standard TreeGrid toolbar -->
   <Toolbar Kind="Toolbar2"/>
</Grid>
