examples: added example for service, gui and console app from Michael Van Canneyt

git-svn-id: trunk@11792 -
This commit is contained in:
mattias 2007-08-11 21:09:34 +00:00
parent ff1ef707c1
commit 2d37c4a089
21 changed files with 6274 additions and 0 deletions

20
.gitattributes vendored
View File

@ -1115,6 +1115,26 @@ examples/bitbutton.lpi svneol=native#text/plain
examples/bitbutton.pp svneol=native#text/pascal
examples/checkbox.lpi svneol=native#text/plain
examples/checkbox.pp svneol=native#text/pascal
examples/cleandir/README.TXT svneol=native#text/plain
examples/cleandir/cleandir.lpi svneol=native#text/plain
examples/cleandir/cleandir.lpr svneol=native#text/plain
examples/cleandir/cleandirs.lpi svneol=native#text/plain
examples/cleandir/cleandirs.lpr svneol=native#text/plain
examples/cleandir/confcleandirs.lpi svneol=native#text/plain
examples/cleandir/confcleandirs.lpr svneol=native#text/plain
examples/cleandir/dircleaner.pp svneol=native#text/plain
examples/cleandir/frmlog.lfm svneol=native#text/plain
examples/cleandir/frmlog.lrs svneol=native#text/plain
examples/cleandir/frmlog.pp svneol=native#text/plain
examples/cleandir/frmmain.lfm svneol=native#text/plain
examples/cleandir/frmmain.lrs svneol=native#text/plain
examples/cleandir/frmmain.pp svneol=native#text/plain
examples/cleandir/svccleandirs.lfm svneol=native#text/plain
examples/cleandir/svccleandirs.lrs svneol=native#text/plain
examples/cleandir/svccleandirs.pp svneol=native#text/plain
examples/cleandir/svcmap.lfm svneol=native#text/plain
examples/cleandir/svcmap.lrs svneol=native#text/plain
examples/cleandir/svcmap.pp svneol=native#text/plain
examples/codepageconverter/codepages.ini svneol=native#text/plain
examples/codepageconverter/filefind/filefind.lrs svneol=native#text/pascal
examples/codepageconverter/filefind/filefind.pas svneol=native#text/pascal

View File

@ -0,0 +1,107 @@
This is the cleandirs demonstration program for Lazarus.
It demonstrates 3 things:
1. How to use services and the TEventLog component (cleandirs)
2. How to use RTTI controls (confcleandirs)
3. How to write a TCustomApplication descendent (cleandir)
These are actually 3 programs:
cleandir:
=========
A command-line tool. It will clean all directories according to
the configuration file given. If no configuration file is specified,
it will look for one in the standard user-specific and global locations.
cleandirs:
==========
a service application (daemon) that can be installed and run as a service.
It performs the same action as the cleandir program, at a given time of
the day. It cleans only standard directories specified in the configuration
file.
confcleandirs:
==============
A GUI program that can be created to create a configuration file
for the cleandirs and cleandir program. it can be used to (test)
run the algorithm as well, and shows the log in a window.
The configuration works as follows:
Directories:
------------
Directories that should be cleaned.
Each directory can be enabled or disabled.
If the recurse flag is set, subdirectories will be checked as well.
Locations:
----------
Locations where files should be moved to.
The tool can create subdirectories of the given location, using
file extension, year, month, day, date, hour min and time:
for instance extension, year, month will create a subdirectory
doc/2007/10
if a file with extension .doc is moved to this location in october of 2007.
Actions:
--------
A set of actions to be performed on the files:
Location:
File will be copied to the location.
This is the name of one of the locations defined above.
Extensions:
A space separated list of extensions to apply the action on.
The extensions should not have the initial dot character.
e.g.:
zip gz z bz2 rar
will match all archives
Casesensitive:
Are extensions case-sensitive ?
Delete:
File will be deleted after it was succesfully copied.
Compress:
File will be compressed (like gzip).
MincompressSize:
File will only be compressed if it's size is larger than the value indicated here.
Global options:
---------------
LogOnly:
Only log the actions, do not actually execute them.
(this can only be set in code, it is set automatically when testing)
Log All Files:
Check if you want the tool to show all files it encounters while
checking the directories
All Actions:
By default, only the first matching action is executed. If this
option is set, then all actions that match the file are executed.
If one of the actions has the "Delete" flag set, the file will be
deleted only after all actions were tried.
Stop On Error:
No further files will be treated.
Default is to continue with the next file in case of error.
The service can be installed on windows with
cleandirs --install --config=c:\path\to\config\file.cfg
it can then be controlled from the service manager.
Running on linux happens wih
cleandirs -r -c path/to/config/file.cfg
If no config file is specified, a file named CleanDirs.cfg (case sensitive)
is searched
- in /etc or in ~/.config/ for unix
- in c:\documents and settings\username\local settings\
or next to the application binary in Windows.
Enjoy !
Michael.

View File

@ -0,0 +1,49 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<PathDelim Value="/"/>
<Version Value="5"/>
<General>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=""/>
<Title Value="cleandisk"/>
</General>
<VersionInfo>
<ProjectVersion Value=""/>
</VersionInfo>
<PublishOptions>
<Version Value="2"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<Units Count="2">
<Unit0>
<Filename Value="cleandir.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="cleandir"/>
</Unit0>
<Unit1>
<Filename Value="dircleaner.pp"/>
<IsPartOfProject Value="True"/>
<UnitName Value="dircleaner"/>
</Unit1>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
</CONFIG>

View File

@ -0,0 +1,200 @@
{ Directory cleaner - command-line interface
Copyright (C) 2007 Michael Van Canneyt michael@freepascal.org
This source is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.
This code is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
A copy of the GNU General Public License is available on the World Wide Web
at <http://www.gnu.org/copyleft/gpl.html>. You can also obtain it by writing
to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA.
}
program cleandir;
{$mode objfpc}{$H+}
uses
Classes,
SysUtils,
CustApp,
dircleaner;
ResourceString
SErrNoConfig = 'No configuration file found.';
SErrInvalidConfig = 'Configuration file "%s" does not exist.';
SErrNoDirectories = 'No directories to clean';
SUsage0 = 'Usage: %s [options] directory1 ... directoryN';
SUsage1 = 'Where options is one or more of:';
SUsageh = '-h --help This help message';
SUsagec = '-c --config=file Filename for configuration data';
SUsagev = '-v --verbose Log more messages';
SUsagel = '-l --logonly Only log actions, do not execute commands';
SUsageq = '-q --quiet Do not log actions (disables -l)';
SUsages = '-s --stoponerror Stop at the first error.';
SUsager = '-r --recurse Recurse directories specified on command-line';
SUsaged = '-d --standarddirs Clean standard dirs from configuration file';
Type
{ TCleanDirs }
TRunMode = (rmHelp,rmExecute);
TCleanDir = Class (TCustomApplication)
private
FCleaner: TCleanDirs;
Function ProcessCommandLine : TRunMode;
Public
Constructor Create(AOwner : TComponent); override;
Procedure DoRun; override;
Procedure Usage;
Procedure OnLog(Msg : String);
Property Cleaner : TCleanDirs Read FCleaner;
end;
{ TCleanDir }
Var
Application : TCleanDir;
function TCleanDir.ProcessCommandLine: TRunMode;
Const
OptCount = 8;
Opts : Array[1..OptCount] of string =
('help','config','verbose','logonly','quiet',
'stoponerror','recurse','standarddirs');
OptChars = 'hcvlqsrd';
Var
FN : String;
OptL,Dirs : TStrings;
I : integer;
begin
Result:=rmHelp;
If HasOption('h','help') then
Exit;
Dirs:=TStringList.Create;
try
OptL:=TStringList.Create;
try
For I:=1 to OptCount do
OptL.Add(Opts[i]);
FN:=CheckOptions(OptChars,OptL,Nil,Dirs);
finally
OptL.Free;
end;
If (FN<>'') then
begin
Writeln(StdErr,FN);
Exit;
end;
FN:='';
If HasOption('c','config') then
begin
FN:=Self.GetOptionValue('c','config');
If Not FileExists(FN) then
begin
Writeln(StdErr,format(SErrInvalidConfig,[FN]));
Exit;
end;
end
else
begin
FN:=GetAppConfigFile(false,false);
If Not FileExists(FN) then
begin
FN:=GetAppConfigFile(True,false);
If Not FileExists(FN) then
FN:='';
end;
If (FN='') then
begin
Writeln(StdErr,SErrNoConfig);
Exit;
end;
end;
FCleaner.LoadFromFile(FN);
If Not HasOption('q','quiet') then
begin
FCleaner.OnLog:=@Self.OnLog;
FCleaner.LogAllFiles:=HasOption('v','verbose');
FCleaner.LogOnly:=HasOption('l','logonly');
end;
If Hasoption('s','stoponerror') then
FCleaner.StopOnError:=True;
if Not HasOption('d','standarddirs') then
FCleaner.Directories.Clear;
If (Dirs.Count>0) then
begin
For I:=0 to Dirs.Count-1 do
With FCleaner.Directories.AddDirectory do
begin
Path:=Dirs[i];
Enabled:=True;
Recurse:=HasOption('r','recurse');
end;
end;
If (FCleaner.Directories.Count=0) then
Writeln(StdErr,SErrNoDirectories)
else
Result:=rmExecute;
Finally
Dirs.Free;
end;
end;
constructor TCleanDir.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FCleaner:=TCleanDirs.Create(Self);
StopOnException:=True;
end;
procedure TCleanDir.DoRun;
begin
Case ProcessCommandLine of
rmHelp : Usage;
rmExecute : FCleaner.Execute;
end;
Terminate;
end;
procedure TCleanDir.Usage;
begin
Writeln(Format(SUsage0,[ExtractFileName(paramstr(0))]));
Writeln(SUsage1);
Writeln(SUsagec);
Writeln(SUsaged);
Writeln(SUsageh);
Writeln(SUsagel);
Writeln(SUsageq);
Writeln(SUsager);
Writeln(SUsages);
Writeln(SUsagev);
end;
procedure TCleanDir.OnLog(Msg: String);
begin
Writeln(Msg);
end;
begin
OnGetApplicationName:=@CleanDirApp;
Application:=TCleandir.Create(nil);
Application.Title:='cleandisk';
Application.Run;
Application.Free;
end.

View File

@ -0,0 +1,79 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<PathDelim Value="/"/>
<Version Value="5"/>
<General>
<Flags>
<MainUnitHasCreateFormStatements Value="False"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<AutoCreateForms Value="False"/>
<IconPath Value="./"/>
<TargetFileExt Value=""/>
<Title Value="Directory Cleaning service"/>
</General>
<VersionInfo>
<ProjectVersion Value=""/>
</VersionInfo>
<PublishOptions>
<Version Value="2"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="3">
<Item1>
<PackageName Value="LCL"/>
</Item1>
<Item2>
<PackageName Value="LazDaemon"/>
</Item2>
<Item3>
<PackageName Value="FCL"/>
</Item3>
</RequiredPackages>
<Units Count="4">
<Unit0>
<Filename Value="cleandirs.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="cleandirs"/>
</Unit0>
<Unit1>
<Filename Value="/home/michael/source/lazarus/diskclean/svcmap.pp"/>
<ComponentName Value="CleanDirServiceMapper"/>
<IsPartOfProject Value="True"/>
<ResourceFilename Value="/home/michael/source/lazarus/diskclean/svcmap.lrs"/>
<UnitName Value="svcmap"/>
</Unit1>
<Unit2>
<Filename Value="svccleandirs.pp"/>
<ComponentName Value="CleanDirsDaemon"/>
<IsPartOfProject Value="True"/>
<ResourceFilename Value="svccleandirs.lrs"/>
<UnitName Value="svccleandirs"/>
</Unit2>
<Unit3>
<Filename Value="dircleaner.pp"/>
<IsPartOfProject Value="True"/>
<UnitName Value="dircleaner"/>
</Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Other>
<CustomOptions Value="-dUseCThreads"/>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
</CONFIG>

View File

@ -0,0 +1,37 @@
{ Directory cleaning service
Copyright (C) 2007 Michael Van Canneyt michael@freepascal.org
This source is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.
This code is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
A copy of the GNU General Public License is available on the World Wide Web
at <http://www.gnu.org/copyleft/gpl.html>. You can also obtain it by writing
to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA.
}
Program cleandirs;
Uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
lazdaemon,
daemonapp,
sysutils
{ add your units here }, svcmap, svccleandirs, dircleaner;
begin
OnGetApplicationName:=@CleanDirApp;
Application.Title:='Directory Cleaning service';
Application.Initialize;
Application.Run;
end.

View File

@ -0,0 +1,84 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<PathDelim Value="/"/>
<Version Value="5"/>
<General>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<AutoCreateForms Value="False"/>
<IconPath Value="./"/>
<TargetFileExt Value=""/>
<Title Value="Configure directory cleaner"/>
<UseXPManifest Value="True"/>
</General>
<VersionInfo>
<UseVersionInfo Value="True"/>
<CurrentVersionNr Value="1"/>
<ProjectVersion Value=""/>
<LegalCopyright Value="GPL"/>
</VersionInfo>
<PublishOptions>
<Version Value="2"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="RunTimeTypeInfoControls"/>
<MinVersion Minor="1" Valid="True"/>
</Item1>
<Item2>
<PackageName Value="LCL"/>
</Item2>
</RequiredPackages>
<Units Count="4">
<Unit0>
<Filename Value="confcleandirs.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="confcleandirs"/>
</Unit0>
<Unit1>
<Filename Value="diskclean.pp"/>
<IsPartOfProject Value="True"/>
<UnitName Value="diskclean"/>
</Unit1>
<Unit2>
<Filename Value="frmmain.pp"/>
<ComponentName Value="MainForm"/>
<IsPartOfProject Value="True"/>
<ResourceFilename Value="frmmain.lrs"/>
<UnitName Value="frmmain"/>
</Unit2>
<Unit3>
<Filename Value="frmlog.pp"/>
<ComponentName Value="LogForm"/>
<IsPartOfProject Value="True"/>
<ResourceFilename Value="frmlog.lrs"/>
<UnitName Value="frmlog"/>
</Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
</CONFIG>

View File

@ -0,0 +1,24 @@
program confcleandirs;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms
{ add your units here },
sysutils,
dircleaner, frmmain, frmlog;
{$ifdef win32}
{$R manifest.res}
{$R confcleandirs.res}
{$endif}
begin
Application.Title:='Configure directory cleaner';
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,61 @@
object LogForm: TLogForm
Left = 426
Height = 351
Top = 183
Width = 460
HorzScrollBar.Page = 459
VertScrollBar.Page = 350
ActiveControl = BClose
Caption = 'Output of execution'
ClientHeight = 351
ClientWidth = 460
OnShow = FormShow
object Label1: TLabel
Left = 8
Height = 16
Top = 8
Width = 312
AutoSize = False
Caption = 'Actions:'
ParentColor = False
end
object BClose: TButton
Left = 373
Height = 25
Top = 318
Width = 75
Anchors = [akRight, akBottom]
BorderSpacing.InnerBorder = 4
Caption = '&Cancel'
OnClick = BCloseClick
TabOrder = 0
end
object LBLog: TListBox
Left = 8
Height = 280
Top = 32
Width = 440
Anchors = [akTop, akLeft, akRight, akBottom]
TabOrder = 1
TopIndex = -1
end
object BSave: TButton
Left = 8
Height = 25
Top = 318
Width = 75
Anchors = [akLeft, akBottom]
BorderSpacing.InnerBorder = 4
Caption = '&Save'
OnClick = BSaveClick
TabOrder = 2
end
object SDlog: TSaveDialog
Title = 'Save file as'
Filter = 'Log files|*.log|Text files|*.txt|All files|*.*'
FilterIndex = 0
Options = [ofPathMustExist, ofEnableSizing, ofViewDetail]
left = 96
top = 320
end
end

View File

@ -0,0 +1,20 @@
LazarusResources.Add('TLogForm','FORMDATA',[
'TPF0'#8'TLogForm'#7'LogForm'#4'Left'#3#170#1#6'Height'#3'_'#1#3'Top'#3#183#0
+#5'Width'#3#204#1#18'HorzScrollBar.Page'#3#203#1#18'VertScrollBar.Page'#3'^'
+#1#13'ActiveControl'#7#6'BClose'#7'Caption'#6#19'Output of execution'#12'Cli'
+'entHeight'#3'_'#1#11'ClientWidth'#3#204#1#6'OnShow'#7#8'FormShow'#0#6'TLabe'
+'l'#6'Label1'#4'Left'#2#8#6'Height'#2#16#3'Top'#2#8#5'Width'#3'8'#1#8'AutoSi'
+'ze'#8#7'Caption'#6#8'Actions:'#11'ParentColor'#8#0#0#7'TButton'#6'BClose'#4
+'Left'#3'u'#1#6'Height'#2#25#3'Top'#3'>'#1#5'Width'#2'K'#7'Anchors'#11#7'akR'
+'ight'#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4#7'Caption'#6#7'&Cance'
+'l'#7'OnClick'#7#11'BCloseClick'#8'TabOrder'#2#0#0#0#8'TListBox'#5'LBLog'#4
+'Left'#2#8#6'Height'#3#24#1#3'Top'#2' '#5'Width'#3#184#1#7'Anchors'#11#5'akT'
+'op'#6'akLeft'#7'akRight'#8'akBottom'#0#8'TabOrder'#2#1#8'TopIndex'#2#255#0#0
+#7'TButton'#5'BSave'#4'Left'#2#8#6'Height'#2#25#3'Top'#3'>'#1#5'Width'#2'K'#7
+'Anchors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4#7'Cap'
+'tion'#6#5'&Save'#7'OnClick'#7#10'BSaveClick'#8'TabOrder'#2#2#0#0#11'TSaveDi'
+'alog'#5'SDlog'#5'Title'#6#12'Save file as'#6'Filter'#6'.Log files|*.log|Tex'
+'t files|*.txt|All files|*.*'#11'FilterIndex'#2#0#7'Options'#11#15'ofPathMus'
+'tExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#2'`'#3'top'#3'@'#1#0#0
+#0
]);

118
examples/cleandir/frmlog.pp Normal file
View File

@ -0,0 +1,118 @@
{ Directory cleaning component logging window
Copyright (C) 2007 Michael Van Canneyt michael@freepascal.org
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version with the following modification:
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent modules,and
to copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the terms
and conditions of the license of that module. An independent module is a
module which is not derived from or based on this library. If you modify
this library, you may extend this exception to your version of the library,
but you are not obligated to do so. If you do not wish to do so, delete this
exception statement from your version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
for more details.
You should have received a copy of the GNU Library General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
}
unit frmlog;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, dircleaner;
type
{ TLogForm }
TLogForm = class(TForm)
BClose: TButton;
BSave: TButton;
Label1: TLabel;
LBLog: TListBox;
SDlog: TSaveDialog;
procedure BCloseClick(Sender: TObject);
procedure BSaveClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
FCleaner: TCleanDirs;
FRunning : Boolean;
procedure SetCleaner(const AValue: TCleanDirs);
{ private declarations }
public
{ public declarations }
Procedure OnLog(Msg : String);
Property Cleaner : TCleanDirs Read FCleaner Write SetCleaner;
end;
var
LogForm: TLogForm;
implementation
resourcestring
SClose = '&Close';
{ TLogForm }
procedure TLogForm.BSaveClick(Sender: TObject);
begin
If SDLog.execute then
LBLog.Items.SaveToFile(SDLog.FileName);
end;
procedure TLogForm.BCloseClick(Sender: TObject);
begin
if FRunning then
FCleaner.Cancel
else
Close;
end;
procedure TLogForm.FormShow(Sender: TObject);
begin
FRunning:=True;
Try
FCleaner.execute;
BClose.Caption:=SClose;
Finally
FRunning:=False;
end;
end;
procedure TLogForm.SetCleaner(const AValue: TCleanDirs);
begin
if FCleaner=AValue then exit;
FCleaner:=AValue;
If Assigned(FCleaner) then
FCleaner.OnLog:=@Self.OnLog;
end;
procedure TLogForm.OnLog(Msg: String);
begin
LBLog.Items.Add(Msg);
Application.ProcessMessages;
end;
initialization
{$I frmlog.lrs}
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,953 @@
LazarusResources.Add('TMainForm','FORMDATA',[
'TPF0'#9'TMainForm'#8'MainForm'#4'Left'#3'{'#2#6'Height'#3#176#1#3'Top'#3'R'#1
+#5'Width'#3';'#2#18'HorzScrollBar.Page'#3':'#2#18'VertScrollBar.Page'#3#149#1
+#13'ActiveControl'#7#8'EDailyAt'#7'Caption'#6#27'Configure Directory Cleaner'
+#12'ClientHeight'#3#150#1#11'ClientWidth'#3';'#2#4'Menu'#7#6'MMMain'#12'OnCl'
+'oseQuery'#7#14'FormCloseQuery'#6'OnShow'#7#8'FormShow'#0#8'TToolBar'#6'TBMa'
+'in'#6'Height'#2#26#5'Width'#3';'#2#7'Caption'#6#6'TBMain'#6'Images'#7#6'ILM'
+'ain'#8'TabOrder'#2#0#0#11'TToolButton'#6'TBQuit'#4'Left'#2#1#3'Top'#2#2#6'A'
+'ction'#7#5'AQuit'#0#0#11'TToolButton'#11'ToolButton2'#4'Left'#2#24#3'Top'#2
+#2#5'Width'#2#23#7'Caption'#6#11'ToolButton2'#5'Style'#7#12'tbsSeparator'#0#0
+#11'TToolButton'#5'TBNew'#4'Left'#2'/'#3'Top'#2#2#6'Action'#7#4'ANew'#0#0#11
+'TToolButton'#6'TBOpen'#4'Left'#2'F'#3'Top'#2#2#6'Action'#7#5'AOpen'#0#0#11
+'TToolButton'#6'TBSave'#4'Left'#2']'#3'Top'#2#2#6'Action'#7#5'ASave'#0#0#11
+'TToolButton'#11'ToolButton1'#4'Left'#2't'#3'Top'#2#2#5'Width'#2#23#7'Captio'
+'n'#6#11'ToolButton1'#5'Style'#7#12'tbsSeparator'#0#0#11'TToolButton'#9'TBNe'
+'wItem'#4'Left'#3#139#0#3'Top'#2#2#6'Action'#7#8'ANewItem'#0#0#11'TToolButto'
+'n'#12'TBDeleteItem'#4'Left'#3#162#0#3'Top'#2#2#6'Action'#7#11'ADeleteItem'#0
+#0#0#12'TPageControl'#8'PCConfig'#6'Height'#3'|'#1#3'Top'#2#26#5'Width'#3';'
+#2#10'ActivePage'#7#12'TSScheduling'#5'Align'#7#8'alClient'#8'TabIndex'#2#3#8
+'TabOrder'#2#1#8'OnChange'#7#14'PCConfigChange'#13'OnPageChanged'#7#14'PCCon'
+'figChange'#0#9'TTabSheet'#9'TSOptions'#7'Caption'#6#7'Options'#12'ClientHei'
+'ght'#3'|'#1#11'ClientWidth'#3';'#2#0#9'TListView'#13'LVDirectories'#6'Heigh'
+'t'#3#214#0#3'Top'#2'2'#5'Width'#3';'#2#5'Align'#7#8'alClient'#7'Columns'#14
+#1#7'Caption'#6#7'Enabled'#0#1#7'Caption'#6#7'Recurse'#0#1#7'Caption'#6#4'Na'
+'me'#5'Width'#2'x'#0#1#7'Caption'#6#4'Path'#0#0#8'ReadOnly'#9#9'RowSelect'#9
+#8'TabOrder'#2#0#9'ViewStyle'#7#8'vsReport'#12'OnSelectItem'#7#23'LVDirector'
+'iesSelectItem'#0#0#6'TPanel'#12'PDirectories'#6'Height'#2't'#3'Top'#3#8#1#5
+'Width'#3';'#2#5'Align'#7#8'alBottom'#10'BevelOuter'#7#9'bvLowered'#12'Clien'
+'tHeight'#2't'#11'ClientWidth'#3';'#2#8'TabOrder'#2#1#0#6'TLabel'#6'Label1'#4
+'Left'#2#4#6'Height'#2#21#3'Top'#2#10#5'Width'#2'P'#9'Alignment'#7#14'taRigh'
+'tJustify'#8'AutoSize'#8#7'Caption'#6#5'&Name'#12'FocusControl'#7#8'EDirName'
+#6'Layout'#7#8'tlCenter'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2
+#4#6'Height'#2#19#3'Top'#2','#5'Width'#2'P'#9'Alignment'#7#14'taRightJustify'
+#8'AutoSize'#8#7'Caption'#6#5'&Path'#12'FocusControl'#7#8'EDirPath'#6'Layout'
+#7#8'tlCenter'#11'ParentColor'#8#0#0#12'TSpeedButton'#9'SBDirPath'#4'Left'#3
+#21#2#6'Height'#2#22#3'Top'#2')'#5'Width'#2#23#7'Anchors'#11#5'akTop'#7'akRi'
+'ght'#0#5'Color'#7#9'clBtnFace'#10'Glyph.Data'#10'e'#12#0#0'a'#12#0#0'/* XPM'
+' */'#10'static char *graphic[] = {'#10'"16 16 159 2",'#10'".. c None",'#10
+'"., c #636C75",'#10'".- c #575F68",'#10'".* c #5B636C",'#10'".a c #3A3F45",'
+#10'".b c #808C98",'#10'".c c #838F9C",'#10'".d c #474D54",'#10'".e c #747F8'
+'A",'#10'".f c #32373B",'#10'".g c #565E66",'#10'".h c #6F7885",'#10'".i c #'
+'393F48",'#10'".j c #717D8B",'#10'".k c #404A56",'#10'".l c #748392",'#10'".'
+'m c #40474F",'#10'".n c #34393E",'#10'".o c #4D545B",'#10'".p c #90A0B0",'
+#10'".q c #515D69",'#10'".r c #657486",'#10'".s c #4E5863",'#10'".t c #8898A'
+'A",'#10'".u c #4A515A",'#10'".v c #111316",'#10'".w c #586169",'#10'".x c #'
+'484F56",'#10'".y c #2C2F32",'#10'".z c #2D3034",'#10'".A c #3C4246",'#10'".'
+'B c #33383D",'#10'".C c #08090A",'#10'".D c #D9B434",'#10'".E c #E1C25E",'
+#10'".F c #E2C360",'#10'".G c #E2C35F",'#10'".H c #DBB63C",'#10'".I c #AFB9C'
+'4",'#10'".J c #8D9AA7",'#10'".K c #404547",'#10'".L c #555B63",'#10'".M c #'
+'A4AFBB",'#10'".N c #8B98A6",'#10'".O c #212427",'#10'".P c #DAB336",'#10'".'
+'Q c #FEFEFD",'#10'".R c #FFFFFE",'#10'".S c #FFFEFE",'#10'".T c #FFFEFD",'
+#10'".U c #FBF7EA",'#10'".V c #5F6871",'#10'".W c #ABB6C1",'#10'".X c #66707'
+'9",'#10'".Y c #54544A",'#10'".Z c #A6955C",'#10'".0 c #5D666E",'#10'".1 c #'
+'A5B1BD",'#10'".2 c #6A747E",'#10'".3 c #1B1D20",'#10'".4 c #DAAF35",'#10'".'
+'5 c #FEFCF7",'#10'".6 c #F8E48E",'#10'".7 c #F5DE91",'#10'".8 c #F5E09F",'
+#10'".9 c #F6E1AC",'#10'".@ c #FEFBEF",'#10'".# c #545B63",'#10'".; c #5E677'
+'0",'#10'".: c #3B4044",'#10'".= c #ACAAA3",'#10'".+ c #4E555C",'#10'".% c #'
+'7F8A96",'#10'".$ c #131416",'#10'".( c #DAAA36",'#10'".) c #FDFAF1",'#10'".'
+'[ c #F5DE94",'#10'".] c #F4DC93",'#10'",. c #F2D581",'#10'",, c #E9C060",'
+#10'",- c #E1AE4F",'#10'",* c #DA9435",'#10'",a c #111315",'#10'",b c #03040'
+'4",'#10'",c c #DAAB35",'#10'",d c #FBF6E8",'#10'",e c #EAC57E",'#10'",f c #'
+'E3AE5B",'#10'",g c #E1A851",'#10'",h c #E4AF60",'#10'",i c #FDFAEB",'#10'",'
+'j c #FEFAEC",'#10'",k c #FCF5E5",'#10'",l c #FCF6E5",'#10'",m c #FCF5E4",'
+#10'",n c #DAA637",'#10'",o c #FFFDF8",'#10'",p c #FFFDF6",'#10'",q c #FFFCF'
+'5",'#10'",r c #FEFAE8",'#10'",s c #FAECAF",'#10'",t c #F8E387",'#10'",u c #'
,'F7E07D",'#10'",v c #F6DD72",'#10'",w c #F5DB68",'#10'",x c #FDF9E9",'#10'",'
+'y c #DAA136",'#10'",z c #FEFCF6",'#10'",A c #FCF2C8",'#10'",B c #FBEFB9",'
+#10'",C c #FAECAC",'#10'",D c #F8E48C",'#10'",E c #F8E38A",'#10'",F c #F7E18'
+'2",'#10'",G c #F7DF79",'#10'",H c #F6DD6D",'#10'",I c #F5DA61",'#10'",J c #'
+'F4D757",'#10'",K c #FDF8E7",'#10'",L c #DA9A36",'#10'",M c #FDFAF2",'#10'",'
+'N c #FAEDB3",'#10'",O c #F9E9A4",'#10'",P c #F8E695",'#10'",Q c #F7E285",'
+#10'",R c #F7E181",'#10'",S c #F7E07A",'#10'",T c #F6DD6F",'#10'",U c #F5DA6'
+'2",'#10'",V c #F3D654",'#10'",W c #F2D347",'#10'",X c #FDF9E8",'#10'",Y c #'
+'FEFAEF",'#10'",Z c #F9E9A1",'#10'",0 c #F8E591",'#10'",1 c #F6DE72",'#10'",'
+'2 c #F5DA63",'#10'",3 c #F4D754",'#10'",4 c #F3D347",'#10'",5 c #F2D039",'
+#10'",6 c #F1CD2E",'#10'",7 c #F0CB26",'#10'",8 c #FBF2CA",'#10'",9 c #D98E3'
+'3",'#10'",@ c #FAF0DC",'#10'",# c #F4DDA7",'#10'",; c #F4DB9E",'#10'",: c #'
+'F3DA96",'#10'",= c #F3D88E",'#10'",+ c #F3D786",'#10'",% c #F2D47F",'#10'",'
+'$ c #F2D379",'#10'",( c #F1D272",'#10'",) c #F1D06C",'#10'",[ c #F1CF69",'
+#10'",] c #F8EAC2",'#10'"-. c #D8882D",'#10'"-, c #D8872D",'#10'"-- c #D8862'
+'C",'#10'"...................,.-...*.a....",'#10'".................b.c.a...d'
+'.e.f..",'#10'".................g.h.i.j.k.l.m..",'#10'"...............n.o.p.'
+'q.r.s.t.u.v",'#10'"...............g.w.x.y...z.A.B.C",'#10'".D.E.F.F.F.G.H.,'
+'.I.J.K...L.M.N.O",'#10'".P.Q.R.S.T.R.U.V.W.X.Y.Z.0.1.2.3",'#10'".4.5.6.7.8.'
+'9.@.#.J.;.:.=.+.%.g.$",'#10'".(.).[.],.,,,-,*,*,*,*,*,*,*,a,b",'#10'",c,d,e'
+',f,g,h,i,j,k,l,m,m.R,*....",'#10'",n.R,o,p,q,r,s.6,t,u,v,w,x,*....",'#10'",'
+'y,z,A,B,C,D,E,F,G,H,I,J,K,*....",'#10'",L,M,N,O,P,Q,R,S,T,U,V,W,X,*....",'
+#10'",*,Y,Z,0,R,1,2,3,4,5,6,7,8,*....",'#10'",9,@,#,;,:,=,+,%,$,(,),[,],9...'
+'.",'#10'"..-.-,-.-.-.-.-.-.-.-.-,-.--...."}'#10#9'NumGlyphs'#2#0#7'OnClick'
+#7#14'SBDirPathClick'#0#0#11'TTICheckBox'#12'CBDirEnabled'#4'Left'#2'^'#6'He'
+'ight'#2#22#3'Top'#2'H'#5'Width'#2'F'#7'Caption'#6#8'&Enabled'#19'Link.TIPro'
+'pertyName'#6#7'Enabled'#13'OnEditingDone'#7#16'DirectoryChanged'#8'TabOrder'
+#2#0#0#0#11'TTICheckBox'#12'CBDirRecurse'#4'Left'#2'^'#6'Height'#2#22#3'Top'
+#2'`'#5'Width'#2'F'#7'Caption'#6#8'&Recurse'#19'Link.TIPropertyName'#6#7'Rec'
+'urse'#13'OnEditingDone'#7#16'DirectoryChanged'#8'TabOrder'#2#1#0#0#7'TTIEdi'
+'t'#8'EDirName'#4'Left'#2'^'#6'Height'#2#23#3'Top'#2#8#5'Width'#3#200#0#19'L'
+'ink.TIPropertyName'#6#4'Name'#13'OnEditingDone'#7#16'DirectoryChanged'#8'Ta'
+'bOrder'#2#2#0#0#7'TTIEdit'#8'EDirPath'#4'Left'#2'^'#6'Height'#2#23#3'Top'#2
+'('#5'Width'#3#181#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#19'Link.T'
+'IPropertyName'#6#4'Path'#13'OnEditingDone'#7#16'DirectoryChanged'#8'TabOrde'
+'r'#2#3#0#0#0#6'TPanel'#8'POptions'#6'Height'#2'2'#5'Width'#3';'#2#5'Align'#7
+#5'alTop'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'2'#11'ClientWidth'#3
+';'#2#8'TabOrder'#2#2#0#6'TLabel'#6'Label3'#6'Height'#2#24#3'Top'#2#26#5'Wid'
+'th'#3';'#2#5'Align'#7#8'alBottom'#9'Alignment'#7#8'taCenter'#8'AutoSize'#8#7
+'Caption'#6#21'Directories to clean:'#6'Layout'#7#8'tlCenter'#11'ParentColor'
+#8#0#0#11'TTICheckBox'#13'CBStopOnError'#4'Left'#2#14#6'Height'#2#20#3'Top'#2
+#2#5'Width'#2'g'#7'Caption'#6#14'Stop on errors'#19'Link.TIPropertyName'#6#11
+'StopOnError'#8'OnChange'#7#14'OptionsChanged'#8'TabOrder'#2#0#0#0#11'TTIChe'
+'ckBox'#16'CBAllFileActions'#4'Left'#3#190#0#6'Height'#2#20#3'Top'#2#2#5'Wid'
+'th'#3#184#0#7'Caption'#6#28'Execute all matching actions'#19'Link.TIPropert'
+'yName'#6#14'AllFileActions'#8'OnChange'#7#14'OptionsChanged'#8'TabOrder'#2#1
+#0#0#11'TTICheckBox'#13'CBLogAllFiles'#4'Left'#3#150#1#6'Height'#2#20#3'Top'
+#2#2#5'Width'#2'X'#7'Caption'#6#13'Log all files'#19'Link.TIPropertyName'#6
+#11'LogAllFiles'#8'OnChange'#7#14'OptionsChanged'#8'TabOrder'#2#2#0#0#0#0#9
+'TTabSheet'#11'TSLocations'#7'Caption'#6#9'Locations'#12'ClientHeight'#3'|'#1
+#11'ClientWidth'#3';'#2#0#6'TPanel'#9'PLocation'#6'Height'#3#188#0#3'Top'#3
+#192#0#5'Width'#3';'#2#5'Align'#7#8'alBottom'#10'BevelOuter'#7#9'bvLowered'
+#12'ClientHeight'#3#188#0#11'ClientWidth'#3';'#2#8'TabOrder'#2#0#0#6'TLabel'
+#14'LELocationName'#4'Left'#2#4#6'Height'#2#21#3'Top'#2#13#5'Width'#2'L'#9'A'
+'lignment'#7#14'taRightJustify'#8'AutoSize'#8#7'Caption'#6#5'&Name'#6'Layout'
+#7#8'tlCenter'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#2#4#6'Heigh'
+'t'#2#23#3'Top'#2'0'#5'Width'#2'L'#9'Alignment'#7#14'taRightJustify'#8'AutoS'
+'ize'#8#7'Caption'#6#5'&Path'#6'Layout'#7#8'tlCenter'#11'ParentColor'#8#0#0
+#12'TSpeedButton'#14'SBLocationPath'#4'Left'#3#12#2#6'Height'#2#22#3'Top'#2
+'1'#5'Width'#2#23#7'Anchors'#11#5'akTop'#7'akRight'#0#5'Color'#7#9'clBtnFace'
+#10'Glyph.Data'#10'e'#12#0#0'a'#12#0#0'/* XPM */'#10'static char *graphic[] '
+'= {'#10'"16 16 159 2",'#10'".. c None",'#10'"., c #636C75",'#10'".- c #575F'
+'68",'#10'".* c #5B636C",'#10'".a c #3A3F45",'#10'".b c #808C98",'#10'".c c '
+'#838F9C",'#10'".d c #474D54",'#10'".e c #747F8A",'#10'".f c #32373B",'#10'"'
,'.g c #565E66",'#10'".h c #6F7885",'#10'".i c #393F48",'#10'".j c #717D8B",'
+#10'".k c #404A56",'#10'".l c #748392",'#10'".m c #40474F",'#10'".n c #34393'
+'E",'#10'".o c #4D545B",'#10'".p c #90A0B0",'#10'".q c #515D69",'#10'".r c #'
+'657486",'#10'".s c #4E5863",'#10'".t c #8898AA",'#10'".u c #4A515A",'#10'".'
+'v c #111316",'#10'".w c #586169",'#10'".x c #484F56",'#10'".y c #2C2F32",'
+#10'".z c #2D3034",'#10'".A c #3C4246",'#10'".B c #33383D",'#10'".C c #08090'
+'A",'#10'".D c #D9B434",'#10'".E c #E1C25E",'#10'".F c #E2C360",'#10'".G c #'
+'E2C35F",'#10'".H c #DBB63C",'#10'".I c #AFB9C4",'#10'".J c #8D9AA7",'#10'".'
+'K c #404547",'#10'".L c #555B63",'#10'".M c #A4AFBB",'#10'".N c #8B98A6",'
+#10'".O c #212427",'#10'".P c #DAB336",'#10'".Q c #FEFEFD",'#10'".R c #FFFFF'
+'E",'#10'".S c #FFFEFE",'#10'".T c #FFFEFD",'#10'".U c #FBF7EA",'#10'".V c #'
+'5F6871",'#10'".W c #ABB6C1",'#10'".X c #667079",'#10'".Y c #54544A",'#10'".'
+'Z c #A6955C",'#10'".0 c #5D666E",'#10'".1 c #A5B1BD",'#10'".2 c #6A747E",'
+#10'".3 c #1B1D20",'#10'".4 c #DAAF35",'#10'".5 c #FEFCF7",'#10'".6 c #F8E48'
+'E",'#10'".7 c #F5DE91",'#10'".8 c #F5E09F",'#10'".9 c #F6E1AC",'#10'".@ c #'
+'FEFBEF",'#10'".# c #545B63",'#10'".; c #5E6770",'#10'".: c #3B4044",'#10'".'
+'= c #ACAAA3",'#10'".+ c #4E555C",'#10'".% c #7F8A96",'#10'".$ c #131416",'
+#10'".( c #DAAA36",'#10'".) c #FDFAF1",'#10'".[ c #F5DE94",'#10'".] c #F4DC9'
+'3",'#10'",. c #F2D581",'#10'",, c #E9C060",'#10'",- c #E1AE4F",'#10'",* c #'
+'DA9435",'#10'",a c #111315",'#10'",b c #030404",'#10'",c c #DAAB35",'#10'",'
+'d c #FBF6E8",'#10'",e c #EAC57E",'#10'",f c #E3AE5B",'#10'",g c #E1A851",'
+#10'",h c #E4AF60",'#10'",i c #FDFAEB",'#10'",j c #FEFAEC",'#10'",k c #FCF5E'
+'5",'#10'",l c #FCF6E5",'#10'",m c #FCF5E4",'#10'",n c #DAA637",'#10'",o c #'
+'FFFDF8",'#10'",p c #FFFDF6",'#10'",q c #FFFCF5",'#10'",r c #FEFAE8",'#10'",'
+'s c #FAECAF",'#10'",t c #F8E387",'#10'",u c #F7E07D",'#10'",v c #F6DD72",'
+#10'",w c #F5DB68",'#10'",x c #FDF9E9",'#10'",y c #DAA136",'#10'",z c #FEFCF'
+'6",'#10'",A c #FCF2C8",'#10'",B c #FBEFB9",'#10'",C c #FAECAC",'#10'",D c #'
+'F8E48C",'#10'",E c #F8E38A",'#10'",F c #F7E182",'#10'",G c #F7DF79",'#10'",'
+'H c #F6DD6D",'#10'",I c #F5DA61",'#10'",J c #F4D757",'#10'",K c #FDF8E7",'
+#10'",L c #DA9A36",'#10'",M c #FDFAF2",'#10'",N c #FAEDB3",'#10'",O c #F9E9A'
+'4",'#10'",P c #F8E695",'#10'",Q c #F7E285",'#10'",R c #F7E181",'#10'",S c #'
+'F7E07A",'#10'",T c #F6DD6F",'#10'",U c #F5DA62",'#10'",V c #F3D654",'#10'",'
+'W c #F2D347",'#10'",X c #FDF9E8",'#10'",Y c #FEFAEF",'#10'",Z c #F9E9A1",'
+#10'",0 c #F8E591",'#10'",1 c #F6DE72",'#10'",2 c #F5DA63",'#10'",3 c #F4D75'
+'4",'#10'",4 c #F3D347",'#10'",5 c #F2D039",'#10'",6 c #F1CD2E",'#10'",7 c #'
+'F0CB26",'#10'",8 c #FBF2CA",'#10'",9 c #D98E33",'#10'",@ c #FAF0DC",'#10'",'
+'# c #F4DDA7",'#10'",; c #F4DB9E",'#10'",: c #F3DA96",'#10'",= c #F3D88E",'
+#10'",+ c #F3D786",'#10'",% c #F2D47F",'#10'",$ c #F2D379",'#10'",( c #F1D27'
+'2",'#10'",) c #F1D06C",'#10'",[ c #F1CF69",'#10'",] c #F8EAC2",'#10'"-. c #'
+'D8882D",'#10'"-, c #D8872D",'#10'"-- c #D8862C",'#10'"...................,.'
+'-...*.a....",'#10'".................b.c.a...d.e.f..",'#10'"................'
+'.g.h.i.j.k.l.m..",'#10'"...............n.o.p.q.r.s.t.u.v",'#10'"...........'
+'....g.w.x.y...z.A.B.C",'#10'".D.E.F.F.F.G.H.,.I.J.K...L.M.N.O",'#10'".P.Q.R'
+'.S.T.R.U.V.W.X.Y.Z.0.1.2.3",'#10'".4.5.6.7.8.9.@.#.J.;.:.=.+.%.g.$",'#10'".'
+'(.).[.],.,,,-,*,*,*,*,*,*,*,a,b",'#10'",c,d,e,f,g,h,i,j,k,l,m,m.R,*....",'
+#10'",n.R,o,p,q,r,s.6,t,u,v,w,x,*....",'#10'",y,z,A,B,C,D,E,F,G,H,I,J,K,*...'
+'.",'#10'",L,M,N,O,P,Q,R,S,T,U,V,W,X,*....",'#10'",*,Y,Z,0,R,1,2,3,4,5,6,7,8'
+',*....",'#10'",9,@,#,;,:,=,+,%,$,(,),[,],9....",'#10'"..-.-,-.-.-.-.-.-.-.-'
+'.-,-.--...."}'#10#9'NumGlyphs'#2#0#7'OnClick'#7#19'SBLocationPathClick'#0#0
+#7'TTIEdit'#16'ELocationBaseDir'#4'Left'#2'V'#6'Height'#2#23#3'Top'#2'0'#5'W'
+'idth'#3#176#1#19'Link.TIPropertyName'#6#8'BasePath'#13'OnEditingDone'#7#15
+'LocationChanged'#8'TabOrder'#2#1#0#0#7'TTIEdit'#13'ELocationName'#4'Left'#2
+'V'#6'Height'#2#23#3'Top'#2#13#5'Width'#3#184#0#19'Link.TIPropertyName'#6#4
+'Name'#13'OnEditingDone'#7#15'LocationChanged'#8'TabOrder'#2#0#0#0#13'TTIChe'
+'ckGroup'#17'CGLocationSubdirs'#4'Left'#2'V'#6'Height'#2'd'#3'Top'#2'P'#5'Wi'
+'dth'#3'X'#1#7'Caption'#6#26'Create subdirectories from'#12'ColumnLayout'#7
+#24'clVerticalThenHorizontal'#7'Columns'#2#2#19'Link.TIPropertyName'#6#7'Sub'
+'Dirs'#23'Link.AliasValuesStrings'#1#6#21'sdExtension=Extension'#6#11'sdYear'
+'=Year'#6#13'sdMonth=Month'#6#9'sdDay=Day'#6#11'sdDate=Date'#6#11'sdHour=Hou'
+'r'#6#9'sdMin=Min'#6#11'sdTime=Time'#0#13'OnEditingDone'#7#15'LocationChange'
+'d'#0#0#0#9'TListView'#11'LVLocations'#6'Height'#3#192#0#5'Width'#3';'#2#5'A'
+'lign'#7#8'alClient'#7'Columns'#14#1#7'Caption'#6#4'Name'#5'Width'#2'x'#0#1#7
+'Caption'#6#4'Path'#5'Width'#3#200#0#0#1#7'Caption'#6#7'Subdirs'#0#0#8'ReadO'
+'nly'#9#9'RowSelect'#9#8'TabOrder'#2#1#9'ViewStyle'#7#8'vsReport'#12'OnSelec'
,'tItem'#7#21'LVLocationsSelectItem'#0#0#0#9'TTabSheet'#13'TSFileActions'#7'C'
+'aption'#6#7'Actions'#12'ClientHeight'#3'|'#1#11'ClientWidth'#3';'#2#0#9'TLi'
+'stView'#13'LVFileActions'#6'Height'#3#216#0#5'Width'#3';'#2#5'Align'#7#8'al'
+'Client'#7'Columns'#14#1#7'Caption'#6#4'Name'#5'Width'#2'd'#0#1#7'Caption'#6
+#10'Extensions'#5'Width'#2'd'#0#1#7'Caption'#6#8'Location'#0#1#7'Caption'#6#6
+'Delete'#0#1#7'Caption'#6#8'Compress'#0#1#7'Caption'#6#15'MinCompressSize'#0
+#1#7'Caption'#6#14'Case sensitive'#0#0#8'ReadOnly'#9#9'RowSelect'#9#8'TabOrd'
+'er'#2#0#9'ViewStyle'#7#8'vsReport'#12'OnSelectItem'#7#23'LVFileActionsSelec'
+'tItem'#0#0#6'TPanel'#11'PFileAction'#6'Height'#3#164#0#3'Top'#3#216#0#5'Wid'
+'th'#3';'#2#5'Align'#7#8'alBottom'#10'BevelOuter'#7#9'bvLowered'#12'ClientHe'
+'ight'#3#164#0#11'ClientWidth'#3';'#2#8'TabOrder'#2#1#0#6'TLabel'#28'LSEFile'
+'ActionMinCompressSize'#4'Left'#3#214#0#6'Height'#2#20#3'Top'#3#131#0#5'Widt'
+'h'#2'U'#9'Alignment'#7#14'taRightJustify'#8'AutoSize'#8#7'Caption'#6#13'&Mi'
+'nimum size'#12'FocusControl'#7#27'SEFileActionMinCompressSize'#6'Layout'#7#8
+'tlCenter'#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4'Left'#2#15#6'Height'#2
+#23#3'Top'#2#8#5'Width'#2'F'#9'Alignment'#7#14'taRightJustify'#8'AutoSize'#8
+#7'Caption'#6#5'&Name'#6'Layout'#7#8'tlCenter'#11'ParentColor'#8#0#0#6'TLabe'
+'l'#6'Label6'#4'Left'#2#15#6'Height'#2#23#3'Top'#2'('#5'Width'#2'F'#9'Alignm'
+'ent'#7#14'taRightJustify'#8'AutoSize'#8#7'Caption'#6#11'&Extensions'#6'Layo'
+'ut'#7#8'tlCenter'#11'ParentColor'#8#0#0#6'TLabel'#6'Label7'#4'Left'#2#13#6
+'Height'#2#25#3'Top'#2'H'#5'Width'#2'H'#9'Alignment'#7#14'taRightJustify'#8
+'AutoSize'#8#7'Caption'#6#8'Location'#6'Layout'#7#8'tlCenter'#11'ParentColor'
+#8#0#0#7'TTIEdit'#15'EFileActionName'#4'Left'#2'\'#6'Height'#2#23#3'Top'#2#8
+#5'Width'#3#178#0#19'Link.TIPropertyName'#6#4'Name'#13'OnEditingDone'#7#13'A'
+'ctionChanged'#8'TabOrder'#2#0#0#0#7'TTIEdit'#21'EFileActionExtensions'#4'Le'
+'ft'#2'\'#6'Height'#2#23#3'Top'#2'('#5'Width'#3#178#0#19'Link.TIPropertyName'
+#6#10'Extensions'#13'OnEditingDone'#7#13'ActionChanged'#8'TabOrder'#2#1#0#0
+#11'TTICheckBox'#18'CBFileActionDelete'#4'Left'#2'\'#6'Height'#2#22#3'Top'#2
+'h'#5'Width'#2'<'#7'Caption'#6#7'&Delete'#19'Link.TIPropertyName'#6#6'Delete'
+#13'OnEditingDone'#7#13'ActionChanged'#8'TabOrder'#2#2#0#0#11'TTICheckBox'#20
+'CBFileActionCompress'#4'Left'#2'\'#6'Height'#2#22#3'Top'#3#131#0#5'Width'#2
+'O'#7'Caption'#6#9'&Compress'#19'Link.TIPropertyName'#6#8'Compress'#8'OnChan'
+'ge'#7#26'CBFileActionCompressChange'#8'TabOrder'#2#3#0#0#11'TTISpinEdit'#27
+'SEFileActionMinCompressSize'#4'Left'#3'.'#1#6'Height'#2#23#3'Top'#3#128#0#5
+'Width'#2'2'#18'Link.TIElementName'#6#15'MinCompressSize'#8'MaxValue'#3#16
+''''#13'OnEditingDone'#7#13'ActionChanged'#8'TabOrder'#2#4#13'UseRTTIMinMax'
+#8#0#0#11'TTIComboBox'#24'CBFileActionLocationName'#4'Left'#2'\'#6'Height'#2
+#25#3'Top'#2'H'#5'Width'#2'd'#12'AutoDropDown'#9#19'Link.TIPropertyName'#6#12
+'LocationName'#9'MaxLength'#2#0#13'OnEditingDone'#7#13'ActionChanged'#6'Sort'
+'ed'#9#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#5#0#0#0#0#9'TTabSheet'#12
+'TSScheduling'#7'Caption'#6#10'Scheduling'#12'ClientHeight'#3'^'#1#11'Client'
+'Width'#3'7'#2#0#6'TLabel'#9'LEDailyAt'#4'Left'#2#14#6'Height'#2#23#3'Top'#3
+#130#0#5'Width'#2'8'#9'Alignment'#7#14'taRightJustify'#8'AutoSize'#8#7'Capti'
+'on'#6#8'Daily at'#6'Layout'#7#8'tlCenter'#11'ParentColor'#8#0#0#6'TLabel'#11
+'LSEHourlyAt'#4'Left'#2#14#6'Height'#2#23#3'Top'#3#170#0#5'Width'#2'8'#9'Ali'
+'gnment'#7#14'taRightJustify'#8'AutoSize'#8#7'Caption'#6#9'Hourly at'#6'Layo'
+'ut'#7#8'tlCenter'#11'ParentColor'#8#0#0#13'TTIRadioGroup'#14'RGScheduleMode'
+#4'Left'#2#14#6'Height'#2'l'#3'Top'#2#10#5'Width'#3#168#0#7'Caption'#6#16'Sc'
+'hedule service'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBott'
+'omSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildRes'
+'ize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'Chil'
+'dSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertica'
+'l'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopTo'
+'Bottom'#27'ChildSizing.ControlsPerLine'#2#1#19'Link.TIPropertyName'#6#12'Sc'
+'heduleMode'#23'Link.AliasValuesStrings'#1#6#13'smDaily=Daily'#6#15'smHourly'
+'=Hourly'#0#13'OnEditingDone'#7#19'ScheduleModeChanged'#0#0#7'TTIEdit'#8'EDa'
+'ilyAt'#4'Left'#2'V'#6'Height'#2#23#3'Top'#3#130#0#5'Width'#2'P'#19'Link.TIP'
+'ropertyName'#6#7'DailyAt'#13'OnEditingDone'#7#14'OptionsChanged'#8'TabOrder'
+#2#1#0#0#11'TTISpinEdit'#10'SEHourlyAt'#4'Left'#2'V'#6'Height'#2#23#3'Top'#3
+#170#0#5'Width'#2'2'#19'Link.TIPropertyName'#6#8'HourlyAt'#8'MaxValue'#2';'
+#13'OnEditingDone'#7#14'OptionsChanged'#8'TabOrder'#2#2#0#0#13'TTICheckGroup'
+#14'CGScheduleDays'#4'Left'#3#198#0#6'Height'#2'l'#3'Top'#2#10#5'Width'#3'8'
+#1#7'Caption'#6#27'Days of week to run service'#12'ColumnLayout'#7#24'clVert'
+'icalThenHorizontal'#7'Columns'#2#2#19'Link.TIPropertyName'#6#12'ScheduleDay'
,'s'#23'Link.AliasValuesStrings'#1#6#15'sdMonday=Monday'#6#17'sdTuesday=Tuesd'
+'ay'#6#21'sdWednesday=Wednesday'#6#19'sdThursday=Thursday'#6#15'sdFriday=Fri'
+'day'#6#19'sdSaturday=Saturday'#6#15'sdSunday=Sunday'#0#13'OnEditingDone'#7
+#14'OptionsChanged'#0#0#0#0#9'TMainMenu'#6'MMMain'#6'Images'#7#6'ILMain'#4'l'
+'eft'#2'P'#3'top'#2'@'#0#9'TMenuItem'#5'MFile'#7'Caption'#6#5'&File'#0#9'TMe'
+'nuItem'#4'MNew'#6'Action'#7#4'ANew'#11'Bitmap.Data'#10#229#12#0#0#225#12#0#0
+'/* XPM */'#10'static char *graphic[] = {'#10'"16 16 167 2",'#10'".. c None"'
+','#10'"., c #4D8BC8",'#10'".- c #4F8CC8",'#10'".* c #4F8DC8",'#10'".a c #4F'
+'8CC9",'#10'".b c #4F8BC7",'#10'".c c #4B89C5",'#10'".d c #3B76C4",'#10'".e '
+'c #4985C4",'#10'".f c #ECF2F7",'#10'".g c #EEF4F8",'#10'".h c #EDF4F8",'#10
+'".i c #EDF3F8",'#10'".j c #ECF2F8",'#10'".k c #D7E6F2",'#10'".l c #7DB2E2",'
+#10'".m c #6594DB",'#10'".n c #4B88C5",'#10'".o c #F2F6FA",'#10'".p c #C7E0F'
+'A",'#10'".q c #C9E1FB",'#10'".r c #C9E2FB",'#10'".s c #C8E0FB",'#10'".t c #'
+'C5DFF9",'#10'".u c #C1DBF8",'#10'".v c #B8D6F4",'#10'".w c #F8FBFF",'#10'".'
+'x c #B4D8F6",'#10'".y c #7DB0E1",'#10'".z c #6492DB",'#10'".A c #4C89C6",'
+#10'".B c #F1F5F9",'#10'".C c #CDE3FC",'#10'".D c #CEE3FB",'#10'".E c #CDE3F'
+'B",'#10'".F c #CBE2FB",'#10'".G c #C8E0F9",'#10'".H c #C2DCF8",'#10'".I c #'
+'BAD6F5",'#10'".J c #F8FBFD",'#10'".K c #CDE6FC",'#10'".L c #C9E5FA",'#10'".'
+'M c #84B6E2",'#10'".N c #4279BF",'#10'".O c #4B89C6",'#10'".P c #CFE3FC",'
+#10'".Q c #D0E4FB",'#10'".R c #CFE4FC",'#10'".S c #CAE1FA",'#10'".T c #C4DDF'
+'9",'#10'".U c #BCD9F6",'#10'".V c #DFE9F4",'#10'".W c #F3F7FB",'#10'".X c #'
+'E9EFF5",'#10'".Y c #457EC2",'#10'".Z c #F0F4F9",'#10'".0 c #D3E6FC",'#10'".'
+'1 c #D4E6FC",'#10'".2 c #D3E7FD",'#10'".3 c #D1E4FC",'#10'".4 c #C8E0FA",'
+#10'".5 c #BBD6F5",'#10'".6 c #B5D4F3",'#10'".7 c #B3D2F1",'#10'".8 c #F0F4F'
+'8",'#10'".9 c #4682C4",'#10'".@ c #4A88C6",'#10'".# c #EFF4F9",'#10'".; c #'
+'D7E7FE",'#10'".: c #D6E7FD",'#10'".= c #D5E7FD",'#10'".+ c #D4E6FD",'#10'".'
+'% c #D2E6FC",'#10'".$ c #CCE1FB",'#10'".( c #C7DFFA",'#10'".) c #BDDAF6",'
+#10'".[ c #BBD8F6",'#10'".] c #EFF4FA",'#10'",. c #4683C6",'#10'",, c #4988C'
+'6",'#10'",- c #EDF4F9",'#10'",* c #D8E8FE",'#10'",a c #D7E8FE",'#10'",b c #'
+'D6E7FE",'#10'",c c #D3E5FD",'#10'",d c #C3DDF9",'#10'",e c #EDF4FA",'#10'",'
+'f c #4582C6",'#10'",g c #4784C6",'#10'",h c #ECF3F9",'#10'",i c #D6E8FE",'
+#10'",j c #CCE3FB",'#10'",k c #C6DFFA",'#10'",l c #EAF2FA",'#10'",m c #4280C'
+'6",'#10'",n c #4582C5",'#10'",o c #EBF2F8",'#10'",p c #D5E6FD",'#10'",q c #'
+'CDE2FC",'#10'",r c #CBE1FB",'#10'",s c #F2F7FB",'#10'",t c #3F7CC5",'#10'",'
+'u c #4280C5",'#10'",v c #E8F1F8",'#10'",w c #D5E5FE",'#10'",x c #D3E5FC",'
+#10'",y c #CEE2FC",'#10'",z c #CCE2FC",'#10'",A c #C9E0FB",'#10'",B c #C8E1F'
+'B",'#10'",C c #F7FAFD",'#10'",D c #3B76C1",'#10'",E c #407CC4",'#10'",F c #'
+'E6F0F7",'#10'",G c #55B4F8",'#10'",H c #56B4F7",'#10'",I c #54B5F7",'#10'",'
+'J c #53B4F8",'#10'",K c #53B2F8",'#10'",L c #52B3F7",'#10'",M c #51B2F7",'
+#10'",N c #4FB2F7",'#10'",O c #F5F9FC",'#10'",P c #366FBF",'#10'",Q c #3C78C'
+'1",'#10'",R c #E3EDF7",'#10'",S c #6EC2FD",'#10'",T c #A0D8FF",'#10'",U c #'
+'9ED7FF",'#10'",V c #9BD6FF",'#10'",W c #98D7FF",'#10'",X c #96D6FF",'#10'",'
+'Y c #95D6FF",'#10'",Z c #94D5FF",'#10'",0 c #93D4FF",'#10'",1 c #65BEFB",'
+#10'",2 c #F4F7FB",'#10'",3 c #3167BB",'#10'",4 c #3871BF",'#10'",5 c #DFEBF'
+'5",'#10'",6 c #68BFFD",'#10'",7 c #67BDFC",'#10'",8 c #64BEFC",'#10'",9 c #'
+'62BDFC",'#10'",@ c #63BDFB",'#10'",# c #61BCFB",'#10'",; c #60BEFC",'#10'",'
+': c #62BCFC",'#10'",= c #2D64B9",'#10'",+ c #3369BC",'#10'",% c #EAF1F8",'
+#10'",$ c #DFECF7",'#10'",( c #DEEBF6",'#10'",) c #DEEAF6",'#10'",[ c #DCEAF'
+'6",'#10'",] c #EBF3FA",'#10'"-. c #F3F7FC",'#10'"-, c #F4F8FC",'#10'"-- c #'
+'FDFEFE",'#10'"-* c #2A60B7",'#10'"-a c #3065BA",'#10'"-b c #3166BB",'#10'"-'
+'c c #3066BA",'#10'"-d c #2F65BA",'#10'"-e c #2E65B9",'#10'"-f c #2E64B9",'
+#10'"-g c #2C62B7",'#10'".....,.-.-.-.-.*.a.b.c.d........",'#10'"...e.f.g.h.'
+'i.i.i.j.f.k.l.m......",'#10'"...n.o.p.q.r.s.t.u.v.w.x.y.z....",'#10'"...A.B'
+'.C.D.E.F.G.H.I.J.K.L.M.N..",'#10'"...O.B.P.Q.R.C.S.T.U.V.f.W.X.Y..",'#10'".'
+'..O.Z.0.1.2.3.E.4.H.5.6.7.8.9..",'#10'"...@.#.;.:.=.+.%.$.(.H.).[.],...",'
+#10'"..,,,-,*,*,a,b,c.3.$.p,d.H,e,f..",'#10'"..,g,h,i,a.:.:.=,c.Q,j.(,k,l,m.'
+'.",'#10'"..,n,o,b.:.:.:,p,c.3,q,r.q,s,t..",'#10'"..,u,v,w,c,c,x,x.3,y,z,A,B'
+',C,D..",'#10'"..,E,F,G,H,I,J,K,L,L,M,N,N,O,P..",'#10'"..,Q,R,S,T,U,V,W,X,Y,'
+'Z,0,1,2,3..",'#10'"..,4,5,6,7,1,8,8,9,@,#,;,:.J,=..",'#10'"..,+,%,$,(,),[,['
+',],],l-.-,---*..",'#10'"....-a-b-c-c-c-a-d-e-e-f-f-g...."}'#10#7'OnClick'#7
+#11'ANewExecute'#0#0#9'TMenuItem'#6'MIOpen'#6'Action'#7#5'AOpen'#11'Bitmap.D'
+'ata'#10'e'#13#0#0'a'#13#0#0'/* XPM */'#10'static char *graphic[] = {'#10'"1'
+'6 16 175 2",'#10'".. c None",'#10'"., c #9DC3EA",'#10'".- c #96BFE6",'#10'"'
+'.* c #92BBE4",'#10'".a c #6CA0D1",'#10'".b c #6D9ED0",'#10'".c c #5F96CC",'
,#10'".d c #96BEE5",'#10'".e c #FEFFFF",'#10'".f c #E9F3FD",'#10'".g c #EAF3F'
+'D",'#10'".h c #E8F2FC",'#10'".i c #E3EFFA",'#10'".j c #E7F2FA",'#10'".k c #'
+'88BBEA",'#10'".l c #5585CF",'#10'".m c #93BBE4",'#10'".n c #EDF5FE",'#10'".'
+'o c #C5DEFC",'#10'".p c #C7E0FB",'#10'".q c #C2DCF9",'#10'".r c #B4D3F5",'
+#10'".s c #F3F9FE",'#10'".t c #C4E2FA",'#10'".u c #93C1EC",'#10'".v c #487DC'
+'3",'#10'".w c #F0F6FE",'#10'".x c #CDE2FC",'#10'".y c #CDE3FC",'#10'".z c #'
+'C8DFFA",'#10'".A c #BCD9F7",'#10'".B c #DDE9F5",'#10'".C c #EBF3FA",'#10'".'
+'D c #F3F8FB",'#10'".E c #5383CA",'#10'".F c #F1F7FE",'#10'".G c #D2E5FC",'
+#10'".H c #D1E4FC",'#10'".I c #CCE2FB",'#10'".J c #C4DDF9",'#10'".K c #BBD7F'
+'6",'#10'".L c #AFD1F3",'#10'".M c #E4EFFA",'#10'".N c #5887CC",'#10'".O c #'
+'D9B434",'#10'".P c #E1C25E",'#10'".Q c #E2C360",'#10'".R c #E2C35F",'#10'".'
+'S c #91BBE4",'#10'".T c #F2F7FF",'#10'".U c #D5E7FE",'#10'".V c #D1E5FD",'
+#10'".W c #CAE0FA",'#10'".X c #C4DEF9",'#10'".Y c #E7F2FD",'#10'".Z c #5787C'
+'C",'#10'".0 c #DAB336",'#10'".1 c #FEFEFD",'#10'".2 c #FFFFFE",'#10'".3 c #'
+'FFFEFE",'#10'".4 c #FFFEFD",'#10'".5 c #91BAE4",'#10'".6 c #F0F7FF",'#10'".'
+'7 c #D5E7FF",'#10'".8 c #D6E7FD",'#10'".9 c #D4E6FD",'#10'".@ c #D0E4FC",'
+#10'".# c #CBE3FB",'#10'".; c #C2DCFA",'#10'".: c #E8F3FE",'#10'".= c #5686C'
+'C",'#10'".+ c #DAAF35",'#10'".% c #FEFCF7",'#10'".$ c #F8E48E",'#10'".( c #'
+'F5DE91",'#10'".) c #F5E09F",'#10'".[ c #F6E1AC",'#10'".] c #5284CA",'#10'",'
+'. c #F1F7FF",'#10'",, c #D9E9FF",'#10'",- c #DBEAFF",'#10'",* c #D7E7FF",'
+#10'",a c #D2E5FF",'#10'",b c #CBE2FF",'#10'",c c #5585CB",'#10'",d c #DAAA3'
+'6",'#10'",e c #FDFAF1",'#10'",f c #F5DE94",'#10'",g c #F4DC93",'#10'",h c #'
+'E9BC64",'#10'",i c #DA9435",'#10'",j c #EFF6FB",'#10'",k c #5583CC",'#10'",'
+'l c #DAAB35",'#10'",m c #FBF6E8",'#10'",n c #E7BC70",'#10'",o c #E2AA55",'
+#10'",p c #E0A54D",'#10'",q c #EBC991",'#10'",r c #EFF3FA",'#10'",s c #FDFEF'
+'D",'#10'",t c #FCFDFF",'#10'",u c #FCFDFE",'#10'",v c #FBFCFE",'#10'",w c #'
+'FDFEFE",'#10'",x c #E8F2EF",'#10'",y c #5681CE",'#10'",z c #DAA637",'#10'",'
+'A c #FFFDF8",'#10'",B c #FFFDF6",'#10'",C c #FFFCF5",'#10'",D c #FEFCF3",'
+#10'",E c #F4E49A",'#10'",F c #F7E69A",'#10'",G c #F6E69B",'#10'",H c #F5E59'
+'D",'#10'",I c #F5E59E",'#10'",J c #F4E59F",'#10'",K c #F8F3DA",'#10'",L c #'
+'EEF4FD",'#10'",M c #5480CA",'#10'",N c #DAA136",'#10'",O c #FEFCF6",'#10'",'
+'P c #F8E594",'#10'",Q c #F8E593",'#10'",R c #F8E591",'#10'",S c #E9DB93",'
+#10'",T c #E3D793",'#10'",U c #DCD293",'#10'",V c #D7CE90",'#10'",W c #CFC88'
+'C",'#10'",X c #C6C186",'#10'",Y c #D6D8C9",'#10'",Z c #4474C5",'#10'",0 c #'
+'537FCA",'#10'",1 c #DA9A36",'#10'",2 c #FDFAF2",'#10'",3 c #F8E694",'#10'",'
+'4 c #F8E592",'#10'",5 c #F8E590",'#10'",6 c #F8E38B",'#10'",7 c #F7E286",'
+#10'",8 c #F7E17F",'#10'",9 c #F6DE77",'#10'",@ c #F6DC6C",'#10'",# c #F4D95'
+'E",'#10'",; c #F3D54F",'#10'",: c #FBF2CC",'#10'",= c #FEFAEF",'#10'",+ c #'
+'F8E48F",'#10'",% c #F8E389",'#10'",$ c #F7E182",'#10'",( c #F7DF7A",'#10'",'
+') c #F6DE71",'#10'",[ c #F5DB67",'#10'",] c #F4D85B",'#10'"-. c #F3D44D",'
+#10'"-, c #F2D140",'#10'"-- c #FBF2CA",'#10'"-* c #D98E33",'#10'"-a c #FAF0D'
+'C",'#10'"-b c #F6E198",'#10'"-c c #F6E095",'#10'"-d c #F6DF92",'#10'"-e c #'
+'F5DE8E",'#10'"-f c #F5DC89",'#10'"-g c #F4DA85",'#10'"-h c #F4D980",'#10'"-'
+'i c #F3D77A",'#10'"-j c #F3D574",'#10'"-k c #F2D370",'#10'"-l c #F8EAC2",'
+#10'"-m c #D8862C",'#10'"-n c #D8882D",'#10'"-o c #D8872D",'#10'"...........'
+'..,.-.*.*.a.b.c......",'#10'".............d.e.f.g.h.i.j.k.l..",'#10'"......'
+'.......m.n.o.p.q.r.s.t.u.v",'#10'".............*.w.x.y.z.A.B.C.D.E",'#10'".'
+'............*.F.G.H.I.J.K.L.M.N",'#10'".O.P.Q.Q.Q.R.S.T.U.U.V.W.X.A.Y.Z",'
+#10'".0.1.2.3.4.2.5.6.7.8.9.@.#.;.:.=",'#10'".+.%.$.(.).[.],.,,,-,,,*,a,b,.,'
+'c",'#10'",d,e,f,g,h,i,i,i,i,i,i,i,i,i,j,k",'#10'",l,m,n,o,p,q,r,s,t,t,u,v,w'
+',i,x,y",'#10'",z.2,A,B,C,D,E,F,G,H,I,J,K,i,L,M",'#10'",N,O,P,Q,Q,R,S,T,U,V,'
+'W,X,Y,i,Z,0",'#10'",1,2,3,4,5,6,7,8,9,@,#,;,:,i....",'#10'",i,=,Q,+,%,$,(,)'
+',[,]-.-,--,i....",'#10'"-*-a-b-c-d-e-f-g-h-i-j-k-l,i....",'#10'"-m-n-o-n-n-'
+'n-n-n-n-n-n-o-n-m...."}'#10#7'OnClick'#7#12'AOpenExecute'#0#0#9'TMenuItem'#6
+'MISave'#6'Action'#7#5'ASave'#11'Bitmap.Data'#10#5#12#0#0#1#12#0#0'/* XPM */'
+#10'static char *graphic[] = {'#10'"16 16 153 2",'#10'".. c None",'#10'"., c'
+' #366BBC",'#10'".- c #366BBB",'#10'".* c #366ABB",'#10'".a c #396CBC",'#10
+'".b c #3B6EBD",'#10'".c c #3A6DBB",'#10'".d c #386BBB",'#10'".e c #3E70BB",'
+#10'".f c #D1E0F6",'#10'".g c #D1E0F7",'#10'".h c #F8FBFE",'#10'".i c #F7FBF'
+'E",'#10'".j c #F6F9FD",'#10'".k c #F0F5FC",'#10'".l c #EAF0FA",'#10'".m c #'
+'EDF2FB",'#10'".n c #F7FAFD",'#10'".o c #EBF1FB",'#10'".p c #DFE9F8",'#10'".'
+'q c #BDD0EC",'#10'".r c #5E89C9",'#10'".s c #D1DFF6",'#10'".t c #80AAE9",'
+#10'".u c #F6FAFE",'#10'".v c #F6FAFD",'#10'".w c #648CC8",'#10'".x c #EEF3F'
+'B",'#10'".y c #EAF1FB",'#10'".z c #F2F6FC",'#10'".A c #F1F6FC",'#10'".B c #'
,'E2ECF9",'#10'".C c #DBE7F8",'#10'".D c #BAD0EE",'#10'".E c #D0DFF6",'#10'".'
+'F c #7EA8E8",'#10'".G c #E9F1FA",'#10'".H c #EEF4FB",'#10'".I c #E8F0FA",'
+#10'".J c #DDE8F8",'#10'".K c #DBE6F7",'#10'".L c #7AA3E1",'#10'".M c #C3D5E'
+'F",'#10'".N c #3569B7",'#10'".O c #CCDDF5",'#10'".P c #7EA8E7",'#10'".Q c #'
+'668DC9",'#10'".R c #E9F0FA",'#10'".S c #F3F8FD",'#10'".T c #F8FAFE",'#10'".'
+'U c #EFF4FC",'#10'".V c #DFE9F9",'#10'".W c #DBE7F7",'#10'".X c #D9E5F7",'
+#10'".Y c #78A2E0",'#10'".Z c #A9C2E7",'#10'".0 c #3568B6",'#10'".1 c #C9DCF'
+'4",'#10'".2 c #7DA7E7",'#10'".3 c #E1ECF9",'#10'".4 c #E3EDF9",'#10'".5 c #'
+'EEF4FC",'#10'".6 c #F3F7FD",'#10'".7 c #E5EDFA",'#10'".8 c #D8E5F6",'#10'".'
+'9 c #77A0DE",'#10'".@ c #A4BEE4",'#10'".# c #3467B4",'#10'".; c #C7D9F4",'
+#10'".: c #7DA6E6",'#10'".= c #658DC9",'#10'".+ c #678EC9",'#10'".% c #6C92C'
+'B",'#10'".$ c #6D92CB",'#10'".( c #6990CA",'#10'".) c #658CC8",'#10'".[ c #'
+'749CDA",'#10'".] c #9FBAE1",'#10'",. c #3466B3",'#10'",, c #C5D8F2",'#10'",'
+'- c #7BA4E3",'#10'",* c #7AA3E3",'#10'",a c #7AA4E3",'#10'",b c #7BA4E2",'
+#10'",c c #7BA3E2",'#10'",d c #7BA3E1",'#10'",e c #79A2E1",'#10'",f c #77A0D'
+'F",'#10'",g c #769FDE",'#10'",h c #749EDD",'#10'",i c #729CDB",'#10'",j c #'
+'749DDC",'#10'",k c #9AB5DD",'#10'",l c #3465B1",'#10'",m c #C2D5F2",'#10'",'
+'n c #78A1E0",'#10'",o c #759EDE",'#10'",p c #739BDA",'#10'",q c #739BD9",'
+#10'",r c #95B0DA",'#10'",s c #3364AF",'#10'",t c #BED2F0",'#10'",u c #7AA3E'
+'2",'#10'",v c #779FDE",'#10'",w c #769FDD",'#10'",x c #729BD9",'#10'",y c #'
+'7199D8",'#10'",z c #7099D6",'#10'",A c #8EABD5",'#10'",B c #3363AD",'#10'",'
+'C c #366ABA",'#10'",D c #BBD0EF",'#10'",E c #7AA2E2",'#10'",F c #6D96D3",'
+#10'",G c #8AA7D2",'#10'",H c #3262AB",'#10'",I c #B8CEEF",'#10'",J c #F7FAF'
+'E",'#10'",K c #88C062",'#10'",L c #6A93CF",'#10'",M c #84A3CE",'#10'",N c #'
+'3261AA",'#10'",O c #386CBB",'#10'",P c #B6CCEE",'#10'",Q c #7AA2E1",'#10'",'
+'R c #C2DCBF",'#10'",S c #6890CD",'#10'",T c #819ECC",'#10'",U c #3261A8",'
+#10'",V c #376BBA",'#10'",W c #B3CAED",'#10'",X c #7AA2E0",'#10'",Y c #658DC'
+'A",'#10'",Z c #7C9BC9",'#10'",0 c #3160A7",'#10'",1 c #356ABA",'#10'",2 c #'
+'ADC6EB",'#10'",3 c #ADC5EA",'#10'",4 c #7C9AC8",'#10'",5 c #7998C7",'#10'",'
+'6 c #3569B9",'#10'",7 c #3569B8",'#10'",8 c #3568B7",'#10'",9 c #3568B5",'
+#10'",@ c #3466B2",'#10'",# c #3365B0",'#10'",; c #3364AE",'#10'",: c #3263A'
+'C",'#10'",= c #3262AA",'#10'",+ c #3261A9",'#10'",% c #3160A8",'#10'",$ c #'
+'3160A6",'#10'",( c #3161A8",'#10'"...,.,.,.,.-.-.*.*.a.b.c.d.e....",'#10'".'
+',.f.g.h.i.j.k.l.m.j.n.o.p.q.r..",'#10'".,.s.t.u.v.w.x.y.z.h.A.B.C.D.q.e",'
+#10'".,.E.F.A.A.w.G.H.n.j.I.J.K.L.M.N",'#10'".,.O.P.I.I.Q.R.S.T.U.V.W.X.Y.Z.'
+'0",'#10'".-.1.2.3.3.4.5.n.6.7.W.X.8.9.@.#",'#10'".-.;.:.w.=.+.%.$.(.).w.w.w'
+'.[.],.",'#10'".*,,,-,*,a,b,c,d,e,f,g,h,i,j,k,l",'#10'".*,m,*,*,c,c,b,e,n.9,'
+'o,j,p,q,r,s",'#10'".*,t,u,u.L,c,d,n,v,w,j,x,y,z,A,B",'#10'",C,D,E.h.h.h.h.h'
+'.h.h.h.h.h,F,G,H",'#10'".d,I,e,J,K,K,K,K,K,K,K,K.j,L,M,N",'#10'",O,P,Q,J,R,'
+'R,R,R,R,R,R,R.j,S,T,U",'#10'",V,W,X,J,K,K,K,K,K,K,K,K.j,Y,Z,0",'#10'",1,2,3'
+'.h.h.h.h.h.h.h.h.h.h,4,5,0",'#10'",C,6,7,8,9.#,@,#,;,:,=,+,%,0,$,("}'#10#7
+'OnClick'#7#12'ASaveExecute'#0#0#9'TMenuItem'#8'MISaveAs'#6'Action'#7#7'ASav'
+'eAs'#7'OnClick'#7#14'ASaveAsExecute'#0#0#9'TMenuItem'#6'MISep1'#7'Caption'#6
+#1'-'#0#0#9'TMenuItem'#6'MIQuit'#6'Action'#7#5'AQuit'#11'Bitmap.Data'#10#149
+#13#0#0#145#13#0#0'/* XPM */'#10'static char *graphic[] = {'#10'"16 16 178 2'
+'",'#10'".. c None",'#10'"., c #D49C6D",'#10'".- c #D29A6A",'#10'".* c #CF97'
+'66",'#10'".a c #D69E70",'#10'".b c #DAB185",'#10'".c c #B9915A",'#10'".d c '
+'#CB9360",'#10'".e c #808080",'#10'".f c #7E7E7E",'#10'".g c #7C7C7C",'#10'"'
+'.h c #7A7A7A",'#10'".i c #777777",'#10'".j c #757575",'#10'".k c #727272",'
+#10'".l c #D49E71",'#10'".m c #D69E6F",'#10'".n c #DCB287",'#10'".o c #E8D3A'
+'B",'#10'".p c #E6D0A9",'#10'".q c #B89058",'#10'".r c #C68E59",'#10'".s c #'
+'7D7D7D",'#10'".t c #999999",'#10'".u c #9A9A9A",'#10'".v c #9B9B9B",'#10'".'
+'w c #D39D6F",'#10'".x c #E7D1AA",'#10'".y c #E7D1AB",'#10'".z c #E1C798",'
+#10'".A c #DEC291",'#10'".B c #B78F56",'#10'".C c #C18952",'#10'".D c #59915'
+'2",'#10'".E c #999A99",'#10'".F c #9C9C9C",'#10'".G c #D09A6C",'#10'".H c #'
+'E5CEA7",'#10'".I c #DFC18F",'#10'".J c #DCBD89",'#10'".K c #DCBD8B",'#10'".'
+'L c #B68D53",'#10'".M c #BC844B",'#10'".N c #458A3D",'#10'".O c #4F8A49",'
+#10'".P c #9D9D9D",'#10'".Q c #CC9666",'#10'".R c #E3CBA2",'#10'".S c #DAB98'
+'3",'#10'".T c #DAB984",'#10'".U c #B58B51",'#10'".V c #B67E43",'#10'".W c #'
+'4D9444",'#10'".X c #4B9142",'#10'".Y c #488D3F",'#10'".Z c #45893D",'#10'".'
+'0 c #65A45D",'#10'".1 c #61A05A",'#10'".2 c #4B8345",'#10'".3 c #9E9E9E",'
+#10'".4 c #C99260",'#10'".5 c #E2C79E",'#10'".6 c #DAB883",'#10'".7 c #D7B47'
+'D",'#10'".8 c #D7B37E",'#10'".9 c #B4894F",'#10'".@ c #B1793B",'#10'".# c #'
+'4A9041",'#10'".; c #9FD294",'#10'".: c #9AD091",'#10'".= c #96CD8D",'#10'".'
,'+ c #92CB89",'#10'".% c #8DC884",'#10'".$ c #589851",'#10'".( c #467C41",'
+#10'".) c #9F9F9F",'#10'".[ c #C48E5A",'#10'".] c #E0C398",'#10'",. c #D7B37'
+'C",'#10'",, c #D6AF74",'#10'",- c #EDC45E",'#10'",* c #B3884B",'#10'",a c #'
+'AB7334",'#10'",b c #468B3E",'#10'",c c #99CE8F",'#10'",d c #87C67D",'#10'",'
+'e c #81C378",'#10'",f c #7CC073",'#10'",g c #7CC074",'#10'",h c #81C279",'
+#10'",i c #4F9049",'#10'",j c #577F54",'#10'",k c #BF8954",'#10'",l c #DDBF9'
+'4",'#10'",m c #D4AD75",'#10'",n c #E1B863",'#10'",o c #FFD44B",'#10'",p c #'
+'B88B42",'#10'",q c #A66E2C",'#10'",r c #42873B",'#10'",s c #88C680",'#10'",'
+'t c #83C37B",'#10'",u c #7FC177",'#10'",v c #4D8F47",'#10'",w c #3F743B",'
+#10'",x c #A1A1A1",'#10'",y c #BA844C",'#10'",z c #DBBB8D",'#10'",A c #D1A86'
+'E",'#10'",B c #D1A666",'#10'",C c #DFB45F",'#10'",D c #B18547",'#10'",E c #'
+'A16925",'#10'",F c #3E8237",'#10'",G c #3B7E34",'#10'",H c #377931",'#10'",'
+'I c #34752E",'#10'",J c #509149",'#10'",K c #4C8F46",'#10'",L c #3D7339",'
+#10'",M c #A2A2A2",'#10'",N c #B47E45",'#10'",O c #D9B788",'#10'",P c #CFA36'
+'7",'#10'",Q c #CC9E61",'#10'",R c #CC9F63",'#10'",S c #B18345",'#10'",T c #'
+'9C641F",'#10'",U c #606060",'#10'",V c #A0A0A0",'#10'",W c #41763D",'#10'",'
+'X c #397136",'#10'",Y c #A3A3A3",'#10'",Z c #B0793D",'#10'",0 c #D7B382",'
+#10'",1 c #CC9F62",'#10'",2 c #C99A5A",'#10'",3 c #CA9B5E",'#10'",4 c #AF814'
+'3",'#10'",5 c #986019",'#10'",6 c #5C5C5C",'#10'",7 c #40733C",'#10'",8 c #'
+'A1A1A0",'#10'",9 c #A4A4A4",'#10'",@ c #AA7436",'#10'",# c #D4AF7D",'#10'",'
+'; c #C99A5B",'#10'",: c #C79554",'#10'",= c #C89658",'#10'",+ c #AE8041",'
+#10'",% c #945C13",'#10'",$ c #585858",'#10'",( c #A5A5A5",'#10'",) c #A56F2'
+'F",'#10'",[ c #D2AB78",'#10'",] c #D3AB78",'#10'"-. c #D1A773",'#10'"-, c #'
+'CDA069",'#10'"-- c #AE7F40",'#10'"-* c #91590F",'#10'"-a c #717171",'#10'"-'
+'b c #545454",'#10'"-c c #515151",'#10'"-d c #4F4F4F",'#10'"-e c #4C4C4C",'
+#10'"-f c #4A4A4A",'#10'"-g c #474747",'#10'"-h c #454545",'#10'"-i c #9D672'
+'5",'#10'"-j c #A87432",'#10'"-k c #AF7C3D",'#10'"-l c #B58447",'#10'"-m c #'
+'BA8A4E",'#10'"-n c #AD7E3E",'#10'"-o c #8F570C",'#10'"-p c #925A10",'#10'"-'
+'q c #90580D",'#10'"-r c #925C13",'#10'"...........................,.-.*",'
+#10'".......................a.,.b.c.d",'#10'".....e.f.g.h.i.j.k.l.m.n.o.p.q.'
+'r",'#10'".....s.t.t.u.u.v.v.w.x.y.z.A.B.C",'#10'".....h.t.D.E.v.F.F.G.H.I.J'
+'.K.L.M",'#10'".....i.u.N.O.F.P.P.Q.R.J.S.T.U.V",'#10'".W.X.Y.Z.0.1.2.3.3.4.'
+'5.6.7.8.9.@",'#10'".#.;.:.=.+.%.$.(.).[.],.,,,-,*,a",'#10'",b,c,d,e,f,g,h,i'
+',j,k,l,m,n,o,p,q",'#10'",r.+.%,s,t,u,v,w,x,y,z,A,B,C,D,E",'#10'",F,G,H,I,J,'
+'K,L,x,M,N,O,P,Q,R,S,T",'#10'"....,U,V,W,X,M,M,Y,Z,0,1,2,3,4,5",'#10'"....,6'
+',x,7,8,Y,Y,9,@,#,;,:,=,+,%",'#10'"....,$,M,M,Y,9,9,(,),[,]-.-,---*",'#10'".'
+'t-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o",'#10'"........................-p-q-r-o"}'
+#10#7'OnClick'#7#12'AQuitExecute'#0#0#0#9'TMenuItem'#6'MItems'#7'Caption'#6#6
+'&Items'#0#9'TMenuItem'#9'MINewItem'#6'Action'#7#8'ANewItem'#11'Bitmap.Data'
+#10':'#5#0#0'6'#5#0#0'BM6'#5#0#0#0#0#0#0'6'#4#0#0'('#0#0#0#16#0#0#0#16#0#0#0
+#1#0#8#0#0#0#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0
+#128#0#0#0#128#128#0#128#0#0#0#128#0#128#0#128#128#0#0#192#192#192#0#192#220
+#192#0#240#202#166#0#0' @'#0#0' `'#0#0' '#128#0#0' '#160#0#0' '#192#0#0' '
+#224#0#0'@'#0#0#0'@ '#0#0'@@'#0#0'@`'#0#0'@'#128#0#0'@'#160#0#0'@'#192#0#0'@'
+#224#0#0'`'#0#0#0'` '#0#0'`@'#0#0'``'#0#0'`'#128#0#0'`'#160#0#0'`'#192#0#0'`'
+#224#0#0#128#0#0#0#128' '#0#0#128'@'#0#0#128'`'#0#0#128#128#0#0#128#160#0#0
+#128#192#0#0#128#224#0#0#160#0#0#0#160' '#0#0#160'@'#0#0#160'`'#0#0#160#128#0
+#0#160#160#0#0#160#192#0#0#160#224#0#0#192#0#0#0#192' '#0#0#192'@'#0#0#192'`'
+#0#0#192#128#0#0#192#160#0#0#192#192#0#0#192#224#0#0#224#0#0#0#224' '#0#0#224
+'@'#0#0#224'`'#0#0#224#128#0#0#224#160#0#0#224#192#0#0#224#224#0'@'#0#0#0'@'
+#0' '#0'@'#0'@'#0'@'#0'`'#0'@'#0#128#0'@'#0#160#0'@'#0#192#0'@'#0#224#0'@ '#0
+#0'@ '#0'@ @'#0'@ `'#0'@ '#128#0'@ '#160#0'@ '#192#0'@ '#224#0'@@'#0#0'@@ '
+#0'@@@'#0'@@`'#0'@@'#128#0'@@'#160#0'@@'#192#0'@@'#224#0'@`'#0#0'@` '#0'@`@'
+#0'@``'#0'@`'#128#0'@`'#160#0'@`'#192#0'@`'#224#0'@'#128#0#0'@'#128' '#0'@'
+#128'@'#0'@'#128'`'#0'@'#128#128#0'@'#128#160#0'@'#128#192#0'@'#128#224#0'@'
+#160#0#0'@'#160' '#0'@'#160'@'#0'@'#160'`'#0'@'#160#128#0'@'#160#160#0'@'#160
+#192#0'@'#160#224#0'@'#192#0#0'@'#192' '#0'@'#192'@'#0'@'#192'`'#0'@'#192#128
+#0'@'#192#160#0'@'#192#192#0'@'#192#224#0'@'#224#0#0'@'#224' '#0'@'#224'@'#0
+'@'#224'`'#0'@'#224#128#0'@'#224#160#0'@'#224#192#0'@'#224#224#0#128#0#0#0
+#128#0' '#0#128#0'@'#0#128#0'`'#0#128#0#128#0#128#0#160#0#128#0#192#0#128#0
+#224#0#128' '#0#0#128' '#0#128' @'#0#128' `'#0#128' '#128#0#128' '#160#0#128
+' '#192#0#128' '#224#0#128'@'#0#0#128'@ '#0#128'@@'#0#128'@`'#0#128'@'#128#0
+#128'@'#160#0#128'@'#192#0#128'@'#224#0#128'`'#0#0#128'` '#0#128'`@'#0#128'`'
+'`'#0#128'`'#128#0#128'`'#160#0#128'`'#192#0#128'`'#224#0#128#128#0#0#128#128
,' '#0#128#128'@'#0#128#128'`'#0#128#128#128#0#128#128#160#0#128#128#192#0#128
+#128#224#0#128#160#0#0#128#160' '#0#128#160'@'#0#128#160'`'#0#128#160#128#0
+#128#160#160#0#128#160#192#0#128#160#224#0#128#192#0#0#128#192' '#0#128#192
+'@'#0#128#192'`'#0#128#192#128#0#128#192#160#0#128#192#192#0#128#192#224#0
+#128#224#0#0#128#224' '#0#128#224'@'#0#128#224'`'#0#128#224#128#0#128#224#160
+#0#128#224#192#0#128#224#224#0#192#0#0#0#192#0' '#0#192#0'@'#0#192#0'`'#0#192
+#0#128#0#192#0#160#0#192#0#192#0#192#0#224#0#192' '#0#0#192' '#0#192' @'#0
+#192' `'#0#192' '#128#0#192' '#160#0#192' '#192#0#192' '#224#0#192'@'#0#0#192
+'@ '#0#192'@@'#0#192'@`'#0#192'@'#128#0#192'@'#160#0#192'@'#192#0#192'@'#224
+#0#192'`'#0#0#192'` '#0#192'`@'#0#192'``'#0#192'`'#128#0#192'`'#160#0#192'`'
+#192#0#192'`'#224#0#192#128#0#0#192#128' '#0#192#128'@'#0#192#128'`'#0#192
+#128#128#0#192#128#160#0#192#128#192#0#192#128#224#0#192#160#0#0#192#160' '#0
+#192#160'@'#0#192#160'`'#0#192#160#128#0#192#160#160#0#192#160#192#0#192#160
+#224#0#192#192#0#0#192#192' '#0#192#192'@'#0#192#192'`'#0#192#192#128#0#192
+#192#160#0#240#251#255#0#164#160#160#0#128#128#128#0#0#0#255#0#0#255#0#0#0
+#255#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0#246#246#246#246
+#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246
+#24#24#24#0#246#246#246#246#246#246#246#246#246#246#246#24#24#2#24#0#16#246
+#246#246#246#246#246#246#246#246#24#2#2'(('#24#24#0#246#246#246#246#246#246
+#246#2#2'((0('#2#24#24#0#246#246#246#246#246#246#0#2'(0'#186'0('#2#24#0#246
+#246#246#246#246#246#251'(0'#186#250'((('#2#24#246#246#246#0#246#246#0'0'#186
+#0#186#186'((('#2#246#246#246#251#0#246#251'('#0#251#186#186#186#186'(('#246
+#246#246#246#251#0#0#0#251#186#186#186#186#186#186'x'#246#246#246#0#246#251
+#251#251'x'#0#0#0'y'#185#185#246#246#246#246#251#246#251#251#251#185#251#251
+#251#250'y'#246#246#246#246#246#246#0#251#251#251#0#246#185#185#246#246#246
+#246#246#246#246#0#251#246#0#246#251#0#246#246#246#246#246#246#246#246#246
+#251#246#246#251#246#246#251#246#246#246#246#246#246#246#246#246#246#246#246
+#246#246#246#246#246#246#246#246#246#246#246#246#7'OnClick'#7#15'ANewItemExe'
+'cute'#0#0#9'TMenuItem'#12'MIDeleteItem'#6'Action'#7#11'ADeleteItem'#11'Bitm'
+'ap.Data'#10':'#5#0#0'6'#5#0#0'BM6'#5#0#0#0#0#0#0'6'#4#0#0'('#0#0#0#16#0#0#0
+#16#0#0#0#1#0#8#0#0#0#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#128#0#0#128#0#0#0#128#128#0#128#0#0#0#128#0#128#0#128#128#0#0#192#192#192#0
+#192#220#192#0#240#202#166#0#0' @'#0#0' `'#0#0' '#128#0#0' '#160#0#0' '#192#0
+#0' '#224#0#0'@'#0#0#0'@ '#0#0'@@'#0#0'@`'#0#0'@'#128#0#0'@'#160#0#0'@'#192#0
+#0'@'#224#0#0'`'#0#0#0'` '#0#0'`@'#0#0'``'#0#0'`'#128#0#0'`'#160#0#0'`'#192#0
+#0'`'#224#0#0#128#0#0#0#128' '#0#0#128'@'#0#0#128'`'#0#0#128#128#0#0#128#160
+#0#0#128#192#0#0#128#224#0#0#160#0#0#0#160' '#0#0#160'@'#0#0#160'`'#0#0#160
+#128#0#0#160#160#0#0#160#192#0#0#160#224#0#0#192#0#0#0#192' '#0#0#192'@'#0#0
+#192'`'#0#0#192#128#0#0#192#160#0#0#192#192#0#0#192#224#0#0#224#0#0#0#224' '
+#0#0#224'@'#0#0#224'`'#0#0#224#128#0#0#224#160#0#0#224#192#0#0#224#224#0'@'#0
+#0#0'@'#0' '#0'@'#0'@'#0'@'#0'`'#0'@'#0#128#0'@'#0#160#0'@'#0#192#0'@'#0#224
+#0'@ '#0#0'@ '#0'@ @'#0'@ `'#0'@ '#128#0'@ '#160#0'@ '#192#0'@ '#224#0'@@'#0
+#0'@@ '#0'@@@'#0'@@`'#0'@@'#128#0'@@'#160#0'@@'#192#0'@@'#224#0'@`'#0#0'@` '
+#0'@`@'#0'@``'#0'@`'#128#0'@`'#160#0'@`'#192#0'@`'#224#0'@'#128#0#0'@'#128' '
+#0'@'#128'@'#0'@'#128'`'#0'@'#128#128#0'@'#128#160#0'@'#128#192#0'@'#128#224
+#0'@'#160#0#0'@'#160' '#0'@'#160'@'#0'@'#160'`'#0'@'#160#128#0'@'#160#160#0
+'@'#160#192#0'@'#160#224#0'@'#192#0#0'@'#192' '#0'@'#192'@'#0'@'#192'`'#0'@'
+#192#128#0'@'#192#160#0'@'#192#192#0'@'#192#224#0'@'#224#0#0'@'#224' '#0'@'
+#224'@'#0'@'#224'`'#0'@'#224#128#0'@'#224#160#0'@'#224#192#0'@'#224#224#0#128
+#0#0#0#128#0' '#0#128#0'@'#0#128#0'`'#0#128#0#128#0#128#0#160#0#128#0#192#0
+#128#0#224#0#128' '#0#0#128' '#0#128' @'#0#128' `'#0#128' '#128#0#128' '#160
+#0#128' '#192#0#128' '#224#0#128'@'#0#0#128'@ '#0#128'@@'#0#128'@`'#0#128'@'
+#128#0#128'@'#160#0#128'@'#192#0#128'@'#224#0#128'`'#0#0#128'` '#0#128'`@'#0
+#128'``'#0#128'`'#128#0#128'`'#160#0#128'`'#192#0#128'`'#224#0#128#128#0#0
+#128#128' '#0#128#128'@'#0#128#128'`'#0#128#128#128#0#128#128#160#0#128#128
+#192#0#128#128#224#0#128#160#0#0#128#160' '#0#128#160'@'#0#128#160'`'#0#128
+#160#128#0#128#160#160#0#128#160#192#0#128#160#224#0#128#192#0#0#128#192' '#0
+#128#192'@'#0#128#192'`'#0#128#192#128#0#128#192#160#0#128#192#192#0#128#192
+#224#0#128#224#0#0#128#224' '#0#128#224'@'#0#128#224'`'#0#128#224#128#0#128
+#224#160#0#128#224#192#0#128#224#224#0#192#0#0#0#192#0' '#0#192#0'@'#0#192#0
+'`'#0#192#0#128#0#192#0#160#0#192#0#192#0#192#0#224#0#192' '#0#0#192' '#0
+#192' @'#0#192' `'#0#192' '#128#0#192' '#160#0#192' '#192#0#192' '#224#0#192
+'@'#0#0#192'@ '#0#192'@@'#0#192'@`'#0#192'@'#128#0#192'@'#160#0#192'@'#192#0
+#192'@'#224#0#192'`'#0#0#192'` '#0#192'`@'#0#192'``'#0#192'`'#128#0#192'`'
,#160#0#192'`'#192#0#192'`'#224#0#192#128#0#0#192#128' '#0#192#128'@'#0#192
+#128'`'#0#192#128#128#0#192#128#160#0#192#128#192#0#192#128#224#0#192#160#0#0
+#192#160' '#0#192#160'@'#0#192#160'`'#0#192#160#128#0#192#160#160#0#192#160
+#192#0#192#160#224#0#192#192#0#0#192#192' '#0#192#192'@'#0#192#192'`'#0#192
+#192#128#0#192#192#160#0#240#251#255#0#164#160#160#0#128#128#128#0#0#0#255#0
+#0#255#0#0#0#255#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0#246
+#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#249#249
+#1#10#0#246#246#246#0#249#249#0#246#246#246#246#246#249#249#249#1#0#246#0#13
+#249#0#246#246#246#246#246#246#246#249#249#249#1#0#249#249'S'#246#246#246#246
+#246#246#246#246#246'\'#249#249#249#249'T'#246#246#246#246#246#246#246#246
+#246'\'#0#249#249#249#249#0'R'#246#246#246#246#246#246#246']'#0#249#249#18'f'
+#249#249#0'I'#246#246#246#246#246#246#0#249#249'g'#191'g^'#249#249#0#246#246
+#246#246#246#0#249#249'g'#191'off^'#249#249#246#246#246#246#246#249#249'g'
+#191'g'#191#191'f^f'#249#246#246#246#246#246#246']]o'#191#191#191#191#191'^f'
+#246#246#246#246#246#246'o'#191#191#191#191#191#191#191#191'o'#246#246#246
+#246#246#246#246'oowwwwww'#246#246#246#246#246#246#246#246#246'wwooow'#246
+#246#246#246#246#246#246#246#246#246#246#246'ww'#246#246#246#246#246#246#246
+#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#7'OnClick'#7
+#18'ADeleteItemExecute'#0#0#0#9'TMenuItem'#4'MRun'#7'Caption'#6#4'&Run'#0#9
+'TMenuItem'#6'MITest'#6'Action'#7#5'ATest'#7'OnClick'#7#12'ATestExecute'#0#0
+#9'TMenuItem'#5'MIRun'#6'Action'#7#8'AExecute'#7'OnClick'#7#12'ATestExecute'
+#0#0#0#0#11'TActionList'#6'ALMain'#6'Images'#7#6'ILMain'#4'left'#2'P'#3'top'
+#2'`'#0#7'TAction'#4'ANew'#8'Category'#6#4'File'#7'Caption'#6#4'&New'#18'Dis'
+'ableIfNoHandler'#9#10'ImageIndex'#2#0#9'OnExecute'#7#11'ANewExecute'#8'Shor'
+'tCut'#3'N@'#0#0#7'TAction'#5'AOpen'#8'Category'#6#4'File'#7'Caption'#6#5'&O'
+'pen'#18'DisableIfNoHandler'#9#10'ImageIndex'#2#1#9'OnExecute'#7#12'AOpenExe'
+'cute'#8'ShortCut'#3'O@'#0#0#7'TAction'#5'ASave'#8'Category'#6#4'File'#7'Cap'
+'tion'#6#5'&Save'#18'DisableIfNoHandler'#9#10'ImageIndex'#2#2#9'OnExecute'#7
+#12'ASaveExecute'#8'OnUpdate'#7#11'ASaveUpdate'#8'ShortCut'#3'S@'#0#0#7'TAct'
+'ion'#7'ASaveAs'#8'Category'#6#4'File'#7'Caption'#6#8'Save &as'#18'DisableIf'
+'NoHandler'#9#9'OnExecute'#7#14'ASaveAsExecute'#0#0#7'TAction'#5'AQuit'#8'Ca'
+'tegory'#6#4'File'#7'Caption'#6#5'&Quit'#18'DisableIfNoHandler'#9#10'ImageIn'
+'dex'#2#3#9'OnExecute'#7#12'AQuitExecute'#8'ShortCut'#3'Q@'#0#0#7'TAction'#8
+'ANewItem'#8'Category'#6#5'Items'#7'Caption'#6#4'&New'#18'DisableIfNoHandler'
+#9#10'ImageIndex'#2#4#9'OnExecute'#7#15'ANewItemExecute'#8'ShortCut'#3'A@'#0
+#0#7'TAction'#11'ADeleteItem'#8'Category'#6#5'Items'#7'Caption'#6#7'&Delete'
+#18'DisableIfNoHandler'#9#10'ImageIndex'#2#5#9'OnExecute'#7#18'ADeleteItemEx'
+'ecute'#8'OnUpdate'#7#17'ADeleteItemUpdate'#8'ShortCut'#3'D@'#0#0#7'TAction'
+#5'ATest'#8'Category'#6#7'Execute'#7'Caption'#6#19'&Test configuration'#18'D'
+'isableIfNoHandler'#9#9'OnExecute'#7#12'ATestExecute'#8'ShortCut'#3'T@'#0#0#7
+'TAction'#8'AExecute'#8'Category'#6#7'Execute'#7'Caption'#6#23'&Run with con'
+'figuration'#18'DisableIfNoHandler'#9#9'OnExecute'#7#12'ATestExecute'#8'OnUp'
+'date'#7#14'AExecuteUpdate'#8'ShortCut'#3'E@'#0#0#0#11'TSaveDialog'#8'SDConf'
+'ig'#5'Title'#6#26'Save configuration file as'#6'Filter'#6'''Configuration f'
+'iles|*.cfg|All files|*.*'#11'FilterIndex'#2#0#7'Options'#11#17'ofOverwriteP'
+'rompt'#15'ofPathMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#2
+'x'#3'top'#2'@'#0#0#11'TOpenDialog'#8'ODConfig'#5'Title'#6' Open existing co'
+'nfiguration file'#6'Filter'#6'''Configuration files|*.cfg|All files|*.*'#11
+'FilterIndex'#2#0#7'Options'#11#15'ofFileMustExist'#14'ofEnableSizing'#12'of'
+'ViewDetail'#0#4'left'#2'x'#3'top'#2'`'#0#0#10'TImageList'#6'ILMain'#4'left'
+#2'*'#3'top'#2'B'#6'Bitmap'#10'f>'#0#0'li'#6#0#0#0#16#0#0#0#16#0#0#0#225#12#0
+#0'/* XPM */'#10'static char *graphic[] = {'#10'"16 16 167 2",'#10'".. c Non'
+'e",'#10'"., c #4D8BC8",'#10'".- c #4F8CC8",'#10'".* c #4F8DC8",'#10'".a c #'
+'4F8CC9",'#10'".b c #4F8BC7",'#10'".c c #4B89C5",'#10'".d c #3B76C4",'#10'".'
+'e c #4985C4",'#10'".f c #ECF2F7",'#10'".g c #EEF4F8",'#10'".h c #EDF4F8",'
+#10'".i c #EDF3F8",'#10'".j c #ECF2F8",'#10'".k c #D7E6F2",'#10'".l c #7DB2E'
+'2",'#10'".m c #6594DB",'#10'".n c #4B88C5",'#10'".o c #F2F6FA",'#10'".p c #'
+'C7E0FA",'#10'".q c #C9E1FB",'#10'".r c #C9E2FB",'#10'".s c #C8E0FB",'#10'".'
+'t c #C5DFF9",'#10'".u c #C1DBF8",'#10'".v c #B8D6F4",'#10'".w c #F8FBFF",'
+#10'".x c #B4D8F6",'#10'".y c #7DB0E1",'#10'".z c #6492DB",'#10'".A c #4C89C'
+'6",'#10'".B c #F1F5F9",'#10'".C c #CDE3FC",'#10'".D c #CEE3FB",'#10'".E c #'
+'CDE3FB",'#10'".F c #CBE2FB",'#10'".G c #C8E0F9",'#10'".H c #C2DCF8",'#10'".'
+'I c #BAD6F5",'#10'".J c #F8FBFD",'#10'".K c #CDE6FC",'#10'".L c #C9E5FA",'
+#10'".M c #84B6E2",'#10'".N c #4279BF",'#10'".O c #4B89C6",'#10'".P c #CFE3F'
,'C",'#10'".Q c #D0E4FB",'#10'".R c #CFE4FC",'#10'".S c #CAE1FA",'#10'".T c #'
+'C4DDF9",'#10'".U c #BCD9F6",'#10'".V c #DFE9F4",'#10'".W c #F3F7FB",'#10'".'
+'X c #E9EFF5",'#10'".Y c #457EC2",'#10'".Z c #F0F4F9",'#10'".0 c #D3E6FC",'
+#10'".1 c #D4E6FC",'#10'".2 c #D3E7FD",'#10'".3 c #D1E4FC",'#10'".4 c #C8E0F'
+'A",'#10'".5 c #BBD6F5",'#10'".6 c #B5D4F3",'#10'".7 c #B3D2F1",'#10'".8 c #'
+'F0F4F8",'#10'".9 c #4682C4",'#10'".@ c #4A88C6",'#10'".# c #EFF4F9",'#10'".'
+'; c #D7E7FE",'#10'".: c #D6E7FD",'#10'".= c #D5E7FD",'#10'".+ c #D4E6FD",'
+#10'".% c #D2E6FC",'#10'".$ c #CCE1FB",'#10'".( c #C7DFFA",'#10'".) c #BDDAF'
+'6",'#10'".[ c #BBD8F6",'#10'".] c #EFF4FA",'#10'",. c #4683C6",'#10'",, c #'
+'4988C6",'#10'",- c #EDF4F9",'#10'",* c #D8E8FE",'#10'",a c #D7E8FE",'#10'",'
+'b c #D6E7FE",'#10'",c c #D3E5FD",'#10'",d c #C3DDF9",'#10'",e c #EDF4FA",'
+#10'",f c #4582C6",'#10'",g c #4784C6",'#10'",h c #ECF3F9",'#10'",i c #D6E8F'
+'E",'#10'",j c #CCE3FB",'#10'",k c #C6DFFA",'#10'",l c #EAF2FA",'#10'",m c #'
+'4280C6",'#10'",n c #4582C5",'#10'",o c #EBF2F8",'#10'",p c #D5E6FD",'#10'",'
+'q c #CDE2FC",'#10'",r c #CBE1FB",'#10'",s c #F2F7FB",'#10'",t c #3F7CC5",'
+#10'",u c #4280C5",'#10'",v c #E8F1F8",'#10'",w c #D5E5FE",'#10'",x c #D3E5F'
+'C",'#10'",y c #CEE2FC",'#10'",z c #CCE2FC",'#10'",A c #C9E0FB",'#10'",B c #'
+'C8E1FB",'#10'",C c #F7FAFD",'#10'",D c #3B76C1",'#10'",E c #407CC4",'#10'",'
+'F c #E6F0F7",'#10'",G c #55B4F8",'#10'",H c #56B4F7",'#10'",I c #54B5F7",'
+#10'",J c #53B4F8",'#10'",K c #53B2F8",'#10'",L c #52B3F7",'#10'",M c #51B2F'
+'7",'#10'",N c #4FB2F7",'#10'",O c #F5F9FC",'#10'",P c #366FBF",'#10'",Q c #'
+'3C78C1",'#10'",R c #E3EDF7",'#10'",S c #6EC2FD",'#10'",T c #A0D8FF",'#10'",'
+'U c #9ED7FF",'#10'",V c #9BD6FF",'#10'",W c #98D7FF",'#10'",X c #96D6FF",'
+#10'",Y c #95D6FF",'#10'",Z c #94D5FF",'#10'",0 c #93D4FF",'#10'",1 c #65BEF'
+'B",'#10'",2 c #F4F7FB",'#10'",3 c #3167BB",'#10'",4 c #3871BF",'#10'",5 c #'
+'DFEBF5",'#10'",6 c #68BFFD",'#10'",7 c #67BDFC",'#10'",8 c #64BEFC",'#10'",'
+'9 c #62BDFC",'#10'",@ c #63BDFB",'#10'",# c #61BCFB",'#10'",; c #60BEFC",'
+#10'",: c #62BCFC",'#10'",= c #2D64B9",'#10'",+ c #3369BC",'#10'",% c #EAF1F'
+'8",'#10'",$ c #DFECF7",'#10'",( c #DEEBF6",'#10'",) c #DEEAF6",'#10'",[ c #'
+'DCEAF6",'#10'",] c #EBF3FA",'#10'"-. c #F3F7FC",'#10'"-, c #F4F8FC",'#10'"-'
+'- c #FDFEFE",'#10'"-* c #2A60B7",'#10'"-a c #3065BA",'#10'"-b c #3166BB",'
+#10'"-c c #3066BA",'#10'"-d c #2F65BA",'#10'"-e c #2E65B9",'#10'"-f c #2E64B'
+'9",'#10'"-g c #2C62B7",'#10'".....,.-.-.-.-.*.a.b.c.d........",'#10'"...e.f'
+'.g.h.i.i.i.j.f.k.l.m......",'#10'"...n.o.p.q.r.s.t.u.v.w.x.y.z....",'#10'".'
+'..A.B.C.D.E.F.G.H.I.J.K.L.M.N..",'#10'"...O.B.P.Q.R.C.S.T.U.V.f.W.X.Y..",'
+#10'"...O.Z.0.1.2.3.E.4.H.5.6.7.8.9..",'#10'"...@.#.;.:.=.+.%.$.(.H.).[.],..'
+'.",'#10'"..,,,-,*,*,a,b,c.3.$.p,d.H,e,f..",'#10'"..,g,h,i,a.:.:.=,c.Q,j.(,k'
+',l,m..",'#10'"..,n,o,b.:.:.:,p,c.3,q,r.q,s,t..",'#10'"..,u,v,w,c,c,x,x.3,y,'
+'z,A,B,C,D..",'#10'"..,E,F,G,H,I,J,K,L,L,M,N,N,O,P..",'#10'"..,Q,R,S,T,U,V,W'
+',X,Y,Z,0,1,2,3..",'#10'"..,4,5,6,7,1,8,8,9,@,#,;,:.J,=..",'#10'"..,+,%,$,(,'
+'),[,[,],],l-.-,---*..",'#10'"....-a-b-c-c-c-a-d-e-e-f-f-g...."}'#10'a'#13#0
+#0'/* XPM */'#10'static char *graphic[] = {'#10'"16 16 175 2",'#10'".. c Non'
+'e",'#10'"., c #9DC3EA",'#10'".- c #96BFE6",'#10'".* c #92BBE4",'#10'".a c #'
+'6CA0D1",'#10'".b c #6D9ED0",'#10'".c c #5F96CC",'#10'".d c #96BEE5",'#10'".'
+'e c #FEFFFF",'#10'".f c #E9F3FD",'#10'".g c #EAF3FD",'#10'".h c #E8F2FC",'
+#10'".i c #E3EFFA",'#10'".j c #E7F2FA",'#10'".k c #88BBEA",'#10'".l c #5585C'
+'F",'#10'".m c #93BBE4",'#10'".n c #EDF5FE",'#10'".o c #C5DEFC",'#10'".p c #'
+'C7E0FB",'#10'".q c #C2DCF9",'#10'".r c #B4D3F5",'#10'".s c #F3F9FE",'#10'".'
+'t c #C4E2FA",'#10'".u c #93C1EC",'#10'".v c #487DC3",'#10'".w c #F0F6FE",'
+#10'".x c #CDE2FC",'#10'".y c #CDE3FC",'#10'".z c #C8DFFA",'#10'".A c #BCD9F'
+'7",'#10'".B c #DDE9F5",'#10'".C c #EBF3FA",'#10'".D c #F3F8FB",'#10'".E c #'
+'5383CA",'#10'".F c #F1F7FE",'#10'".G c #D2E5FC",'#10'".H c #D1E4FC",'#10'".'
+'I c #CCE2FB",'#10'".J c #C4DDF9",'#10'".K c #BBD7F6",'#10'".L c #AFD1F3",'
+#10'".M c #E4EFFA",'#10'".N c #5887CC",'#10'".O c #D9B434",'#10'".P c #E1C25'
+'E",'#10'".Q c #E2C360",'#10'".R c #E2C35F",'#10'".S c #91BBE4",'#10'".T c #'
+'F2F7FF",'#10'".U c #D5E7FE",'#10'".V c #D1E5FD",'#10'".W c #CAE0FA",'#10'".'
+'X c #C4DEF9",'#10'".Y c #E7F2FD",'#10'".Z c #5787CC",'#10'".0 c #DAB336",'
+#10'".1 c #FEFEFD",'#10'".2 c #FFFFFE",'#10'".3 c #FFFEFE",'#10'".4 c #FFFEF'
+'D",'#10'".5 c #91BAE4",'#10'".6 c #F0F7FF",'#10'".7 c #D5E7FF",'#10'".8 c #'
+'D6E7FD",'#10'".9 c #D4E6FD",'#10'".@ c #D0E4FC",'#10'".# c #CBE3FB",'#10'".'
+'; c #C2DCFA",'#10'".: c #E8F3FE",'#10'".= c #5686CC",'#10'".+ c #DAAF35",'
+#10'".% c #FEFCF7",'#10'".$ c #F8E48E",'#10'".( c #F5DE91",'#10'".) c #F5E09'
+'F",'#10'".[ c #F6E1AC",'#10'".] c #5284CA",'#10'",. c #F1F7FF",'#10'",, c #'
+'D9E9FF",'#10'",- c #DBEAFF",'#10'",* c #D7E7FF",'#10'",a c #D2E5FF",'#10'",'
,'b c #CBE2FF",'#10'",c c #5585CB",'#10'",d c #DAAA36",'#10'",e c #FDFAF1",'
+#10'",f c #F5DE94",'#10'",g c #F4DC93",'#10'",h c #E9BC64",'#10'",i c #DA943'
+'5",'#10'",j c #EFF6FB",'#10'",k c #5583CC",'#10'",l c #DAAB35",'#10'",m c #'
+'FBF6E8",'#10'",n c #E7BC70",'#10'",o c #E2AA55",'#10'",p c #E0A54D",'#10'",'
+'q c #EBC991",'#10'",r c #EFF3FA",'#10'",s c #FDFEFD",'#10'",t c #FCFDFF",'
+#10'",u c #FCFDFE",'#10'",v c #FBFCFE",'#10'",w c #FDFEFE",'#10'",x c #E8F2E'
+'F",'#10'",y c #5681CE",'#10'",z c #DAA637",'#10'",A c #FFFDF8",'#10'",B c #'
+'FFFDF6",'#10'",C c #FFFCF5",'#10'",D c #FEFCF3",'#10'",E c #F4E49A",'#10'",'
+'F c #F7E69A",'#10'",G c #F6E69B",'#10'",H c #F5E59D",'#10'",I c #F5E59E",'
+#10'",J c #F4E59F",'#10'",K c #F8F3DA",'#10'",L c #EEF4FD",'#10'",M c #5480C'
+'A",'#10'",N c #DAA136",'#10'",O c #FEFCF6",'#10'",P c #F8E594",'#10'",Q c #'
+'F8E593",'#10'",R c #F8E591",'#10'",S c #E9DB93",'#10'",T c #E3D793",'#10'",'
+'U c #DCD293",'#10'",V c #D7CE90",'#10'",W c #CFC88C",'#10'",X c #C6C186",'
+#10'",Y c #D6D8C9",'#10'",Z c #4474C5",'#10'",0 c #537FCA",'#10'",1 c #DA9A3'
+'6",'#10'",2 c #FDFAF2",'#10'",3 c #F8E694",'#10'",4 c #F8E592",'#10'",5 c #'
+'F8E590",'#10'",6 c #F8E38B",'#10'",7 c #F7E286",'#10'",8 c #F7E17F",'#10'",'
+'9 c #F6DE77",'#10'",@ c #F6DC6C",'#10'",# c #F4D95E",'#10'",; c #F3D54F",'
+#10'",: c #FBF2CC",'#10'",= c #FEFAEF",'#10'",+ c #F8E48F",'#10'",% c #F8E38'
+'9",'#10'",$ c #F7E182",'#10'",( c #F7DF7A",'#10'",) c #F6DE71",'#10'",[ c #'
+'F5DB67",'#10'",] c #F4D85B",'#10'"-. c #F3D44D",'#10'"-, c #F2D140",'#10'"-'
+'- c #FBF2CA",'#10'"-* c #D98E33",'#10'"-a c #FAF0DC",'#10'"-b c #F6E198",'
+#10'"-c c #F6E095",'#10'"-d c #F6DF92",'#10'"-e c #F5DE8E",'#10'"-f c #F5DC8'
+'9",'#10'"-g c #F4DA85",'#10'"-h c #F4D980",'#10'"-i c #F3D77A",'#10'"-j c #'
+'F3D574",'#10'"-k c #F2D370",'#10'"-l c #F8EAC2",'#10'"-m c #D8862C",'#10'"-'
+'n c #D8882D",'#10'"-o c #D8872D",'#10'".............,.-.*.*.a.b.c......",'
+#10'".............d.e.f.g.h.i.j.k.l..",'#10'".............m.n.o.p.q.r.s.t.u.'
+'v",'#10'".............*.w.x.y.z.A.B.C.D.E",'#10'".............*.F.G.H.I.J.K'
+'.L.M.N",'#10'".O.P.Q.Q.Q.R.S.T.U.U.V.W.X.A.Y.Z",'#10'".0.1.2.3.4.2.5.6.7.8.'
+'9.@.#.;.:.=",'#10'".+.%.$.(.).[.],.,,,-,,,*,a,b,.,c",'#10'",d,e,f,g,h,i,i,i'
+',i,i,i,i,i,i,j,k",'#10'",l,m,n,o,p,q,r,s,t,t,u,v,w,i,x,y",'#10'",z.2,A,B,C,'
+'D,E,F,G,H,I,J,K,i,L,M",'#10'",N,O,P,Q,Q,R,S,T,U,V,W,X,Y,i,Z,0",'#10'",1,2,3'
+',4,5,6,7,8,9,@,#,;,:,i....",'#10'",i,=,Q,+,%,$,(,),[,]-.-,--,i....",'#10'"-'
+'*-a-b-c-d-e-f-g-h-i-j-k-l,i....",'#10'"-m-n-o-n-n-n-n-n-n-n-n-o-n-m...."}'
+#10#1#12#0#0'/* XPM */'#10'static char *graphic[] = {'#10'"16 16 153 2",'#10
+'".. c None",'#10'"., c #366BBC",'#10'".- c #366BBB",'#10'".* c #366ABB",'#10
+'".a c #396CBC",'#10'".b c #3B6EBD",'#10'".c c #3A6DBB",'#10'".d c #386BBB",'
+#10'".e c #3E70BB",'#10'".f c #D1E0F6",'#10'".g c #D1E0F7",'#10'".h c #F8FBF'
+'E",'#10'".i c #F7FBFE",'#10'".j c #F6F9FD",'#10'".k c #F0F5FC",'#10'".l c #'
+'EAF0FA",'#10'".m c #EDF2FB",'#10'".n c #F7FAFD",'#10'".o c #EBF1FB",'#10'".'
+'p c #DFE9F8",'#10'".q c #BDD0EC",'#10'".r c #5E89C9",'#10'".s c #D1DFF6",'
+#10'".t c #80AAE9",'#10'".u c #F6FAFE",'#10'".v c #F6FAFD",'#10'".w c #648CC'
+'8",'#10'".x c #EEF3FB",'#10'".y c #EAF1FB",'#10'".z c #F2F6FC",'#10'".A c #'
+'F1F6FC",'#10'".B c #E2ECF9",'#10'".C c #DBE7F8",'#10'".D c #BAD0EE",'#10'".'
+'E c #D0DFF6",'#10'".F c #7EA8E8",'#10'".G c #E9F1FA",'#10'".H c #EEF4FB",'
+#10'".I c #E8F0FA",'#10'".J c #DDE8F8",'#10'".K c #DBE6F7",'#10'".L c #7AA3E'
+'1",'#10'".M c #C3D5EF",'#10'".N c #3569B7",'#10'".O c #CCDDF5",'#10'".P c #'
+'7EA8E7",'#10'".Q c #668DC9",'#10'".R c #E9F0FA",'#10'".S c #F3F8FD",'#10'".'
+'T c #F8FAFE",'#10'".U c #EFF4FC",'#10'".V c #DFE9F9",'#10'".W c #DBE7F7",'
+#10'".X c #D9E5F7",'#10'".Y c #78A2E0",'#10'".Z c #A9C2E7",'#10'".0 c #3568B'
+'6",'#10'".1 c #C9DCF4",'#10'".2 c #7DA7E7",'#10'".3 c #E1ECF9",'#10'".4 c #'
+'E3EDF9",'#10'".5 c #EEF4FC",'#10'".6 c #F3F7FD",'#10'".7 c #E5EDFA",'#10'".'
+'8 c #D8E5F6",'#10'".9 c #77A0DE",'#10'".@ c #A4BEE4",'#10'".# c #3467B4",'
+#10'".; c #C7D9F4",'#10'".: c #7DA6E6",'#10'".= c #658DC9",'#10'".+ c #678EC'
+'9",'#10'".% c #6C92CB",'#10'".$ c #6D92CB",'#10'".( c #6990CA",'#10'".) c #'
+'658CC8",'#10'".[ c #749CDA",'#10'".] c #9FBAE1",'#10'",. c #3466B3",'#10'",'
+', c #C5D8F2",'#10'",- c #7BA4E3",'#10'",* c #7AA3E3",'#10'",a c #7AA4E3",'
+#10'",b c #7BA4E2",'#10'",c c #7BA3E2",'#10'",d c #7BA3E1",'#10'",e c #79A2E'
+'1",'#10'",f c #77A0DF",'#10'",g c #769FDE",'#10'",h c #749EDD",'#10'",i c #'
+'729CDB",'#10'",j c #749DDC",'#10'",k c #9AB5DD",'#10'",l c #3465B1",'#10'",'
+'m c #C2D5F2",'#10'",n c #78A1E0",'#10'",o c #759EDE",'#10'",p c #739BDA",'
+#10'",q c #739BD9",'#10'",r c #95B0DA",'#10'",s c #3364AF",'#10'",t c #BED2F'
+'0",'#10'",u c #7AA3E2",'#10'",v c #779FDE",'#10'",w c #769FDD",'#10'",x c #'
+'729BD9",'#10'",y c #7199D8",'#10'",z c #7099D6",'#10'",A c #8EABD5",'#10'",'
+'B c #3363AD",'#10'",C c #366ABA",'#10'",D c #BBD0EF",'#10'",E c #7AA2E2",'
,#10'",F c #6D96D3",'#10'",G c #8AA7D2",'#10'",H c #3262AB",'#10'",I c #B8CEE'
+'F",'#10'",J c #F7FAFE",'#10'",K c #88C062",'#10'",L c #6A93CF",'#10'",M c #'
+'84A3CE",'#10'",N c #3261AA",'#10'",O c #386CBB",'#10'",P c #B6CCEE",'#10'",'
+'Q c #7AA2E1",'#10'",R c #C2DCBF",'#10'",S c #6890CD",'#10'",T c #819ECC",'
+#10'",U c #3261A8",'#10'",V c #376BBA",'#10'",W c #B3CAED",'#10'",X c #7AA2E'
+'0",'#10'",Y c #658DCA",'#10'",Z c #7C9BC9",'#10'",0 c #3160A7",'#10'",1 c #'
+'356ABA",'#10'",2 c #ADC6EB",'#10'",3 c #ADC5EA",'#10'",4 c #7C9AC8",'#10'",'
+'5 c #7998C7",'#10'",6 c #3569B9",'#10'",7 c #3569B8",'#10'",8 c #3568B7",'
+#10'",9 c #3568B5",'#10'",@ c #3466B2",'#10'",# c #3365B0",'#10'",; c #3364A'
+'E",'#10'",: c #3263AC",'#10'",= c #3262AA",'#10'",+ c #3261A9",'#10'",% c #'
+'3160A8",'#10'",$ c #3160A6",'#10'",( c #3161A8",'#10'"...,.,.,.,.-.-.*.*.a.'
+'b.c.d.e....",'#10'".,.f.g.h.i.j.k.l.m.j.n.o.p.q.r..",'#10'".,.s.t.u.v.w.x.y'
+'.z.h.A.B.C.D.q.e",'#10'".,.E.F.A.A.w.G.H.n.j.I.J.K.L.M.N",'#10'".,.O.P.I.I.'
+'Q.R.S.T.U.V.W.X.Y.Z.0",'#10'".-.1.2.3.3.4.5.n.6.7.W.X.8.9.@.#",'#10'".-.;.:'
+'.w.=.+.%.$.(.).w.w.w.[.],.",'#10'".*,,,-,*,a,b,c,d,e,f,g,h,i,j,k,l",'#10'".'
+'*,m,*,*,c,c,b,e,n.9,o,j,p,q,r,s",'#10'".*,t,u,u.L,c,d,n,v,w,j,x,y,z,A,B",'
+#10'",C,D,E.h.h.h.h.h.h.h.h.h.h,F,G,H",'#10'".d,I,e,J,K,K,K,K,K,K,K,K.j,L,M,'
+'N",'#10'",O,P,Q,J,R,R,R,R,R,R,R,R.j,S,T,U",'#10'",V,W,X,J,K,K,K,K,K,K,K,K.j'
+',Y,Z,0",'#10'",1,2,3.h.h.h.h.h.h.h.h.h.h,4,5,0",'#10'",C,6,7,8,9.#,@,#,;,:,'
+'=,+,%,0,$,("}'#10#145#13#0#0'/* XPM */'#10'static char *graphic[] = {'#10'"'
+'16 16 178 2",'#10'".. c None",'#10'"., c #D49C6D",'#10'".- c #D29A6A",'#10
+'".* c #CF9766",'#10'".a c #D69E70",'#10'".b c #DAB185",'#10'".c c #B9915A",'
+#10'".d c #CB9360",'#10'".e c #808080",'#10'".f c #7E7E7E",'#10'".g c #7C7C7'
+'C",'#10'".h c #7A7A7A",'#10'".i c #777777",'#10'".j c #757575",'#10'".k c #'
+'727272",'#10'".l c #D49E71",'#10'".m c #D69E6F",'#10'".n c #DCB287",'#10'".'
+'o c #E8D3AB",'#10'".p c #E6D0A9",'#10'".q c #B89058",'#10'".r c #C68E59",'
+#10'".s c #7D7D7D",'#10'".t c #999999",'#10'".u c #9A9A9A",'#10'".v c #9B9B9'
+'B",'#10'".w c #D39D6F",'#10'".x c #E7D1AA",'#10'".y c #E7D1AB",'#10'".z c #'
+'E1C798",'#10'".A c #DEC291",'#10'".B c #B78F56",'#10'".C c #C18952",'#10'".'
+'D c #599152",'#10'".E c #999A99",'#10'".F c #9C9C9C",'#10'".G c #D09A6C",'
+#10'".H c #E5CEA7",'#10'".I c #DFC18F",'#10'".J c #DCBD89",'#10'".K c #DCBD8'
+'B",'#10'".L c #B68D53",'#10'".M c #BC844B",'#10'".N c #458A3D",'#10'".O c #'
+'4F8A49",'#10'".P c #9D9D9D",'#10'".Q c #CC9666",'#10'".R c #E3CBA2",'#10'".'
+'S c #DAB983",'#10'".T c #DAB984",'#10'".U c #B58B51",'#10'".V c #B67E43",'
+#10'".W c #4D9444",'#10'".X c #4B9142",'#10'".Y c #488D3F",'#10'".Z c #45893'
+'D",'#10'".0 c #65A45D",'#10'".1 c #61A05A",'#10'".2 c #4B8345",'#10'".3 c #'
+'9E9E9E",'#10'".4 c #C99260",'#10'".5 c #E2C79E",'#10'".6 c #DAB883",'#10'".'
+'7 c #D7B47D",'#10'".8 c #D7B37E",'#10'".9 c #B4894F",'#10'".@ c #B1793B",'
+#10'".# c #4A9041",'#10'".; c #9FD294",'#10'".: c #9AD091",'#10'".= c #96CD8'
+'D",'#10'".+ c #92CB89",'#10'".% c #8DC884",'#10'".$ c #589851",'#10'".( c #'
+'467C41",'#10'".) c #9F9F9F",'#10'".[ c #C48E5A",'#10'".] c #E0C398",'#10'",'
+'. c #D7B37C",'#10'",, c #D6AF74",'#10'",- c #EDC45E",'#10'",* c #B3884B",'
+#10'",a c #AB7334",'#10'",b c #468B3E",'#10'",c c #99CE8F",'#10'",d c #87C67'
+'D",'#10'",e c #81C378",'#10'",f c #7CC073",'#10'",g c #7CC074",'#10'",h c #'
+'81C279",'#10'",i c #4F9049",'#10'",j c #577F54",'#10'",k c #BF8954",'#10'",'
+'l c #DDBF94",'#10'",m c #D4AD75",'#10'",n c #E1B863",'#10'",o c #FFD44B",'
+#10'",p c #B88B42",'#10'",q c #A66E2C",'#10'",r c #42873B",'#10'",s c #88C68'
+'0",'#10'",t c #83C37B",'#10'",u c #7FC177",'#10'",v c #4D8F47",'#10'",w c #'
+'3F743B",'#10'",x c #A1A1A1",'#10'",y c #BA844C",'#10'",z c #DBBB8D",'#10'",'
+'A c #D1A86E",'#10'",B c #D1A666",'#10'",C c #DFB45F",'#10'",D c #B18547",'
+#10'",E c #A16925",'#10'",F c #3E8237",'#10'",G c #3B7E34",'#10'",H c #37793'
+'1",'#10'",I c #34752E",'#10'",J c #509149",'#10'",K c #4C8F46",'#10'",L c #'
+'3D7339",'#10'",M c #A2A2A2",'#10'",N c #B47E45",'#10'",O c #D9B788",'#10'",'
+'P c #CFA367",'#10'",Q c #CC9E61",'#10'",R c #CC9F63",'#10'",S c #B18345",'
+#10'",T c #9C641F",'#10'",U c #606060",'#10'",V c #A0A0A0",'#10'",W c #41763'
+'D",'#10'",X c #397136",'#10'",Y c #A3A3A3",'#10'",Z c #B0793D",'#10'",0 c #'
+'D7B382",'#10'",1 c #CC9F62",'#10'",2 c #C99A5A",'#10'",3 c #CA9B5E",'#10'",'
+'4 c #AF8143",'#10'",5 c #986019",'#10'",6 c #5C5C5C",'#10'",7 c #40733C",'
+#10'",8 c #A1A1A0",'#10'",9 c #A4A4A4",'#10'",@ c #AA7436",'#10'",# c #D4AF7'
+'D",'#10'",; c #C99A5B",'#10'",: c #C79554",'#10'",= c #C89658",'#10'",+ c #'
+'AE8041",'#10'",% c #945C13",'#10'",$ c #585858",'#10'",( c #A5A5A5",'#10'",'
+') c #A56F2F",'#10'",[ c #D2AB78",'#10'",] c #D3AB78",'#10'"-. c #D1A773",'
+#10'"-, c #CDA069",'#10'"-- c #AE7F40",'#10'"-* c #91590F",'#10'"-a c #71717'
+'1",'#10'"-b c #545454",'#10'"-c c #515151",'#10'"-d c #4F4F4F",'#10'"-e c #'
,'4C4C4C",'#10'"-f c #4A4A4A",'#10'"-g c #474747",'#10'"-h c #454545",'#10'"-'
+'i c #9D6725",'#10'"-j c #A87432",'#10'"-k c #AF7C3D",'#10'"-l c #B58447",'
+#10'"-m c #BA8A4E",'#10'"-n c #AD7E3E",'#10'"-o c #8F570C",'#10'"-p c #925A1'
+'0",'#10'"-q c #90580D",'#10'"-r c #925C13",'#10'"..........................'
+'.,.-.*",'#10'".......................a.,.b.c.d",'#10'".....e.f.g.h.i.j.k.l.'
+'m.n.o.p.q.r",'#10'".....s.t.t.u.u.v.v.w.x.y.z.A.B.C",'#10'".....h.t.D.E.v.F'
+'.F.G.H.I.J.K.L.M",'#10'".....i.u.N.O.F.P.P.Q.R.J.S.T.U.V",'#10'".W.X.Y.Z.0.'
+'1.2.3.3.4.5.6.7.8.9.@",'#10'".#.;.:.=.+.%.$.(.).[.],.,,,-,*,a",'#10'",b,c,d'
+',e,f,g,h,i,j,k,l,m,n,o,p,q",'#10'",r.+.%,s,t,u,v,w,x,y,z,A,B,C,D,E",'#10'",'
+'F,G,H,I,J,K,L,x,M,N,O,P,Q,R,S,T",'#10'"....,U,V,W,X,M,M,Y,Z,0,1,2,3,4,5",'
+#10'"....,6,x,7,8,Y,Y,9,@,#,;,:,=,+,%",'#10'"....,$,M,M,Y,9,9,(,),[,]-.-,---'
+'*",'#10'".t-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o",'#10'"........................-p'
+'-q-r-o"}'#10'6'#5#0#0'BM6'#5#0#0#0#0#0#0'6'#4#0#0'('#0#0#0#16#0#0#0#16#0#0#0
+#1#0#8#0#0#0#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0
+#128#0#0#0#128#128#0#128#0#0#0#128#0#128#0#128#128#0#0#192#192#192#0#192#220
+#192#0#240#202#166#0#0' @'#0#0' `'#0#0' '#128#0#0' '#160#0#0' '#192#0#0' '
+#224#0#0'@'#0#0#0'@ '#0#0'@@'#0#0'@`'#0#0'@'#128#0#0'@'#160#0#0'@'#192#0#0'@'
+#224#0#0'`'#0#0#0'` '#0#0'`@'#0#0'``'#0#0'`'#128#0#0'`'#160#0#0'`'#192#0#0'`'
+#224#0#0#128#0#0#0#128' '#0#0#128'@'#0#0#128'`'#0#0#128#128#0#0#128#160#0#0
+#128#192#0#0#128#224#0#0#160#0#0#0#160' '#0#0#160'@'#0#0#160'`'#0#0#160#128#0
+#0#160#160#0#0#160#192#0#0#160#224#0#0#192#0#0#0#192' '#0#0#192'@'#0#0#192'`'
+#0#0#192#128#0#0#192#160#0#0#192#192#0#0#192#224#0#0#224#0#0#0#224' '#0#0#224
+'@'#0#0#224'`'#0#0#224#128#0#0#224#160#0#0#224#192#0#0#224#224#0'@'#0#0#0'@'
+#0' '#0'@'#0'@'#0'@'#0'`'#0'@'#0#128#0'@'#0#160#0'@'#0#192#0'@'#0#224#0'@ '#0
+#0'@ '#0'@ @'#0'@ `'#0'@ '#128#0'@ '#160#0'@ '#192#0'@ '#224#0'@@'#0#0'@@ '
+#0'@@@'#0'@@`'#0'@@'#128#0'@@'#160#0'@@'#192#0'@@'#224#0'@`'#0#0'@` '#0'@`@'
+#0'@``'#0'@`'#128#0'@`'#160#0'@`'#192#0'@`'#224#0'@'#128#0#0'@'#128' '#0'@'
+#128'@'#0'@'#128'`'#0'@'#128#128#0'@'#128#160#0'@'#128#192#0'@'#128#224#0'@'
+#160#0#0'@'#160' '#0'@'#160'@'#0'@'#160'`'#0'@'#160#128#0'@'#160#160#0'@'#160
+#192#0'@'#160#224#0'@'#192#0#0'@'#192' '#0'@'#192'@'#0'@'#192'`'#0'@'#192#128
+#0'@'#192#160#0'@'#192#192#0'@'#192#224#0'@'#224#0#0'@'#224' '#0'@'#224'@'#0
+'@'#224'`'#0'@'#224#128#0'@'#224#160#0'@'#224#192#0'@'#224#224#0#128#0#0#0
+#128#0' '#0#128#0'@'#0#128#0'`'#0#128#0#128#0#128#0#160#0#128#0#192#0#128#0
+#224#0#128' '#0#0#128' '#0#128' @'#0#128' `'#0#128' '#128#0#128' '#160#0#128
+' '#192#0#128' '#224#0#128'@'#0#0#128'@ '#0#128'@@'#0#128'@`'#0#128'@'#128#0
+#128'@'#160#0#128'@'#192#0#128'@'#224#0#128'`'#0#0#128'` '#0#128'`@'#0#128'`'
+'`'#0#128'`'#128#0#128'`'#160#0#128'`'#192#0#128'`'#224#0#128#128#0#0#128#128
+' '#0#128#128'@'#0#128#128'`'#0#128#128#128#0#128#128#160#0#128#128#192#0#128
+#128#224#0#128#160#0#0#128#160' '#0#128#160'@'#0#128#160'`'#0#128#160#128#0
+#128#160#160#0#128#160#192#0#128#160#224#0#128#192#0#0#128#192' '#0#128#192
+'@'#0#128#192'`'#0#128#192#128#0#128#192#160#0#128#192#192#0#128#192#224#0
+#128#224#0#0#128#224' '#0#128#224'@'#0#128#224'`'#0#128#224#128#0#128#224#160
+#0#128#224#192#0#128#224#224#0#192#0#0#0#192#0' '#0#192#0'@'#0#192#0'`'#0#192
+#0#128#0#192#0#160#0#192#0#192#0#192#0#224#0#192' '#0#0#192' '#0#192' @'#0
+#192' `'#0#192' '#128#0#192' '#160#0#192' '#192#0#192' '#224#0#192'@'#0#0#192
+'@ '#0#192'@@'#0#192'@`'#0#192'@'#128#0#192'@'#160#0#192'@'#192#0#192'@'#224
+#0#192'`'#0#0#192'` '#0#192'`@'#0#192'``'#0#192'`'#128#0#192'`'#160#0#192'`'
+#192#0#192'`'#224#0#192#128#0#0#192#128' '#0#192#128'@'#0#192#128'`'#0#192
+#128#128#0#192#128#160#0#192#128#192#0#192#128#224#0#192#160#0#0#192#160' '#0
+#192#160'@'#0#192#160'`'#0#192#160#128#0#192#160#160#0#192#160#192#0#192#160
+#224#0#192#192#0#0#192#192' '#0#192#192'@'#0#192#192'`'#0#192#192#128#0#192
+#192#160#0#240#251#255#0#164#160#160#0#128#128#128#0#0#0#255#0#0#255#0#0#0
+#255#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0#246#246#246#246
+#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246
+#24#24#24#0#246#246#246#246#246#246#246#246#246#246#246#24#24#2#24#0#16#246
+#246#246#246#246#246#246#246#246#24#2#2'(('#24#24#0#246#246#246#246#246#246
+#246#2#2'((0('#2#24#24#0#246#246#246#246#246#246#0#2'(0'#186'0('#2#24#0#246
+#246#246#246#246#246#251'(0'#186#250'((('#2#24#246#246#246#0#246#246#0'0'#186
+#0#186#186'((('#2#246#246#246#251#0#246#251'('#0#251#186#186#186#186'(('#246
+#246#246#246#251#0#0#0#251#186#186#186#186#186#186'x'#246#246#246#0#246#251
+#251#251'x'#0#0#0'y'#185#185#246#246#246#246#251#246#251#251#251#185#251#251
+#251#250'y'#246#246#246#246#246#246#0#251#251#251#0#246#185#185#246#246#246
+#246#246#246#246#0#251#246#0#246#251#0#246#246#246#246#246#246#246#246#246
+#251#246#246#251#246#246#251#246#246#246#246#246#246#246#246#246#246#246#246
,#246#246#246#246#246#246#246#246#246#246#246#246'6'#5#0#0'BM6'#5#0#0#0#0#0#0
+'6'#4#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0#8#0#0#0#0#0#0#1#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128#0#0#0#128#0#128
+#0#128#128#0#0#192#192#192#0#192#220#192#0#240#202#166#0#0' @'#0#0' `'#0#0' '
+#128#0#0' '#160#0#0' '#192#0#0' '#224#0#0'@'#0#0#0'@ '#0#0'@@'#0#0'@`'#0#0'@'
+#128#0#0'@'#160#0#0'@'#192#0#0'@'#224#0#0'`'#0#0#0'` '#0#0'`@'#0#0'``'#0#0'`'
+#128#0#0'`'#160#0#0'`'#192#0#0'`'#224#0#0#128#0#0#0#128' '#0#0#128'@'#0#0#128
+'`'#0#0#128#128#0#0#128#160#0#0#128#192#0#0#128#224#0#0#160#0#0#0#160' '#0#0
+#160'@'#0#0#160'`'#0#0#160#128#0#0#160#160#0#0#160#192#0#0#160#224#0#0#192#0
+#0#0#192' '#0#0#192'@'#0#0#192'`'#0#0#192#128#0#0#192#160#0#0#192#192#0#0#192
+#224#0#0#224#0#0#0#224' '#0#0#224'@'#0#0#224'`'#0#0#224#128#0#0#224#160#0#0
+#224#192#0#0#224#224#0'@'#0#0#0'@'#0' '#0'@'#0'@'#0'@'#0'`'#0'@'#0#128#0'@'#0
+#160#0'@'#0#192#0'@'#0#224#0'@ '#0#0'@ '#0'@ @'#0'@ `'#0'@ '#128#0'@ '#160#0
+'@ '#192#0'@ '#224#0'@@'#0#0'@@ '#0'@@@'#0'@@`'#0'@@'#128#0'@@'#160#0'@@'#192
+#0'@@'#224#0'@`'#0#0'@` '#0'@`@'#0'@``'#0'@`'#128#0'@`'#160#0'@`'#192#0'@`'
+#224#0'@'#128#0#0'@'#128' '#0'@'#128'@'#0'@'#128'`'#0'@'#128#128#0'@'#128#160
+#0'@'#128#192#0'@'#128#224#0'@'#160#0#0'@'#160' '#0'@'#160'@'#0'@'#160'`'#0
+'@'#160#128#0'@'#160#160#0'@'#160#192#0'@'#160#224#0'@'#192#0#0'@'#192' '#0
+'@'#192'@'#0'@'#192'`'#0'@'#192#128#0'@'#192#160#0'@'#192#192#0'@'#192#224#0
+'@'#224#0#0'@'#224' '#0'@'#224'@'#0'@'#224'`'#0'@'#224#128#0'@'#224#160#0'@'
+#224#192#0'@'#224#224#0#128#0#0#0#128#0' '#0#128#0'@'#0#128#0'`'#0#128#0#128
+#0#128#0#160#0#128#0#192#0#128#0#224#0#128' '#0#0#128' '#0#128' @'#0#128' `'
+#0#128' '#128#0#128' '#160#0#128' '#192#0#128' '#224#0#128'@'#0#0#128'@ '#0
+#128'@@'#0#128'@`'#0#128'@'#128#0#128'@'#160#0#128'@'#192#0#128'@'#224#0#128
+'`'#0#0#128'` '#0#128'`@'#0#128'``'#0#128'`'#128#0#128'`'#160#0#128'`'#192#0
+#128'`'#224#0#128#128#0#0#128#128' '#0#128#128'@'#0#128#128'`'#0#128#128#128
+#0#128#128#160#0#128#128#192#0#128#128#224#0#128#160#0#0#128#160' '#0#128#160
+'@'#0#128#160'`'#0#128#160#128#0#128#160#160#0#128#160#192#0#128#160#224#0
+#128#192#0#0#128#192' '#0#128#192'@'#0#128#192'`'#0#128#192#128#0#128#192#160
+#0#128#192#192#0#128#192#224#0#128#224#0#0#128#224' '#0#128#224'@'#0#128#224
+'`'#0#128#224#128#0#128#224#160#0#128#224#192#0#128#224#224#0#192#0#0#0#192#0
+' '#0#192#0'@'#0#192#0'`'#0#192#0#128#0#192#0#160#0#192#0#192#0#192#0#224#0
+#192' '#0#0#192' '#0#192' @'#0#192' `'#0#192' '#128#0#192' '#160#0#192' '
+#192#0#192' '#224#0#192'@'#0#0#192'@ '#0#192'@@'#0#192'@`'#0#192'@'#128#0#192
+'@'#160#0#192'@'#192#0#192'@'#224#0#192'`'#0#0#192'` '#0#192'`@'#0#192'``'#0
+#192'`'#128#0#192'`'#160#0#192'`'#192#0#192'`'#224#0#192#128#0#0#192#128' '#0
+#192#128'@'#0#192#128'`'#0#192#128#128#0#192#128#160#0#192#128#192#0#192#128
+#224#0#192#160#0#0#192#160' '#0#192#160'@'#0#192#160'`'#0#192#160#128#0#192
+#160#160#0#192#160#192#0#192#160#224#0#192#192#0#0#192#192' '#0#192#192'@'#0
+#192#192'`'#0#192#192#128#0#192#192#160#0#240#251#255#0#164#160#160#0#128#128
+#128#0#0#0#255#0#0#255#0#0#0#255#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255
+#255#255#0#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246
+#246#246#249#249#1#10#0#246#246#246#0#249#249#0#246#246#246#246#246#249#249
+#249#1#0#246#0#13#249#0#246#246#246#246#246#246#246#249#249#249#1#0#249#249
+'S'#246#246#246#246#246#246#246#246#246'\'#249#249#249#249'T'#246#246#246#246
+#246#246#246#246#246'\'#0#249#249#249#249#0'R'#246#246#246#246#246#246#246']'
+#0#249#249#18'f'#249#249#0'I'#246#246#246#246#246#246#0#249#249'g'#191'g^'
+#249#249#0#246#246#246#246#246#0#249#249'g'#191'off^'#249#249#246#246#246#246
+#246#249#249'g'#191'g'#191#191'f^f'#249#246#246#246#246#246#246']]o'#191#191
+#191#191#191'^f'#246#246#246#246#246#246'o'#191#191#191#191#191#191#191#191
+'o'#246#246#246#246#246#246#246'oowwwwww'#246#246#246#246#246#246#246#246#246
+'wwooow'#246#246#246#246#246#246#246#246#246#246#246#246'ww'#246#246#246#246
+#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246#246
+#0#0#22'TSelectDirectoryDialog'#5'SDDir'#5'Title'#6#16'Select Directory'#11
+'FilterIndex'#2#0#4'left'#3#162#0#3'top'#2'B'#0#0#0
]);

1047
examples/cleandir/frmmain.pp Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,12 @@
object CleanDirsDaemon: TCleanDirsDaemon
OnCreate = CleanDirsDaemonCreate
OnStart = CleanDirsDaemonStart
OnStop = CleanDirsDaemonStop
OnExecute = CleanDirsDaemonExecute
left = 604
top = 402
Height = 0
HorizontalOffset = 0
VerticalOffset = 0
Width = 0
end

View File

@ -0,0 +1,9 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TCleanDirsDaemon','FORMDATA',[
'TPF0'#16'TCleanDirsDaemon'#15'CleanDirsDaemon'#8'OnCreate'#7#21'CleanDirsDae'
+'monCreate'#7'OnStart'#7#20'CleanDirsDaemonStart'#6'OnStop'#7#19'CleanDirsDa'
+'emonStop'#9'OnExecute'#7#22'CleanDirsDaemonExecute'#4'left'#3'\'#2#3'top'#3
+#146#1#6'Height'#2#0#16'HorizontalOffset'#2#0#14'VerticalOffset'#2#0#5'Width'
+#2#0#0#0
]);

View File

@ -0,0 +1,326 @@
{ Directory cleaning service - service module
Copyright (C) 2007 Michael Van Canneyt
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version with the following modification:
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent modules,and
to copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the terms
and conditions of the license of that module. An independent module is a
module which is not derived from or based on this library. If you modify
this library, you may extend this exception to your version of the library,
but you are not obligated to do so. If you do not wish to do so, delete this
exception statement from your version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
for more details.
You should have received a copy of the GNU Library General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
}
unit svccleandirs;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, daemonapp, eventlog, dircleaner;
type
{ TCleanDirsThread }
TCleanDirsThread = Class(TThread)
Private
FConfigFile : String;
FLog : TEventLog;
FCleaner : TCleanDirs;
procedure DoClean(T: TDateTime);
procedure DoLog(Msg: String);
function GetNextTime(LastTime: TDateTime): TDateTime;
procedure SetupCleaner;
Public
Constructor Create(AConfigFile : String; ALog : TEventLog; ATerminate : TNotifyEvent);
Procedure Execute; override;
end;
{ TCleanDirsDaemon }
TCleanDirsDaemon = class(TDaemon)
procedure CleanDirsDaemonCreate(Sender: TObject);
procedure CleanDirsDaemonExecute(Sender: TCustomDaemon);
procedure CleanDirsDaemonStart(Sender: TCustomDaemon; var OK: Boolean);
procedure CleanDirsDaemonStop(Sender: TCustomDaemon; var OK: Boolean);
private
{ private declarations }
FConfigFile : String;
FThread : TCleanDirsThread;
FLog : TEventLog;
procedure StartLog;
procedure ThreadStopped(Sender: TObject);
public
{ public declarations }
end;
var
CleanDirsDaemon: TCleanDirsDaemon;
implementation
uses dateutils;
resourcestring
SStartExecute = 'Start cleaning directories for schedule time: %s';
SEndExecute = 'End of cleaning directories for schedule time: %s. Duration: %s';
SErrCleaning = 'An error occurred when cleaning: %s';
SNextCleanTime = 'Next cleaning run: %s';
SRunningDailyAt = 'Running in daily mode, clean time: %s';
SRunningHourlyAt = 'Running in hourly mode, at minute: %d';
SErrNoConfigFile = 'No configuration file found !';
// Include windows messages for eventlog component.
{$ifdef mswindows}
{$r fclel.res}
{$endif}
procedure RegisterDaemon;
begin
RegisterDaemonClass(TCleanDirsDaemon)
end;
{ TCleanDirsDaemon }
procedure TCleanDirsDaemon.StartLog;
begin
FLog:=Self.Logger;
If (FConfigFile='') then
Flog.Error(SErrNoConfigFile);
end;
procedure TCleanDirsDaemon.CleanDirsDaemonCreate(Sender: TObject);
begin
If Application.Hasoption('c','config') then
begin
FConfigFile:=Application.GetOptionValue('c','config');
end
else
begin
FConfigFile:=GetAppConfigFile(false,false);
If Not FileExists(FConfigFile) then
begin
FConfigFile:=GetAppConfigFile(True,false);
If Not FileExists(FConfigFile) then
FConfigFile:='';
end;
end;
end;
procedure TCleanDirsDaemon.CleanDirsDaemonExecute(Sender: TCustomDaemon);
begin
end;
procedure TCleanDirsDaemon.ThreadStopped(Sender : TObject);
begin
FThread:=Nil;
end;
procedure TCleanDirsDaemon.CleanDirsDaemonStart(Sender: TCustomDaemon;
var OK: Boolean);
begin
StartLog;
{ Start should return immediatly. Therefor, a thread is started if
one is not yet running. Usually, here one opens a TCP/IP socket
and starts listening }
OK:=(FThread=Nil) and (FConfigFile<>'');
If OK then
FThread:=TCleanDirsThread.Create(FConfigFile,FLog,@ThreadStopped);
end;
procedure TCleanDirsDaemon.CleanDirsDaemonStop(Sender: TCustomDaemon;
var OK: Boolean);
Var
I : Integer;
begin
If Assigned(FThread) then
begin
FThread.Terminate;
I:=0;
// Wait at most 5 seconds.
While (FThread<>Nil) and (I<50) do
begin
Sleep(100);
ReportStatus;
end;
// Let the thread die silently.
If (FThread<>Nil) then
FThread.OnTerminate:=Nil;
end;
OK:=FThread=Nil;
end;
{ TCleanDirsThread }
constructor TCleanDirsThread.Create(AConfigFile: String; ALog: TEventLog; ATerminate : TNotifyEvent);
begin
FConfigFile:=AConfigFile;
FLog:=Alog;
FreeOnTerminate:=False;
OnTerminate:=ATerminate;
Inherited Create(False);
end;
procedure TCleanDirsThread.DoLog(Msg : String);
begin
If Assigned(FLog) then
FLog.Info(Msg);
If Terminated then
FCleaner.Cancel;
end;
Function TCleanDirsThread.GetNextTime (LastTime : TDateTime) : TDateTime;
// Number of days to add till day is in allowed days.
Function NextOKDay(D : TDateTime) : Integer;
Const
ScheduleDays : array [1..7] of TScheduleDay
= (sdMonday,sdTuesday,sdwednesday,sdThursday,
sdFriday,sdSaturday,sdSunday);
begin
Result:=0;
If FCleaner.ScheduleDays<>[] then
While Not (ScheduleDays[DayOfTheWeek(D+Result)] in FCleaner.ScheduleDays) do
Inc(Result);
end;
Var
DT : TDateTime;
h,m,s,ms : Word;
begin
Case FCleaner.ScheduleMode of
smDaily: begin
Result:=Date;
// Too late for today.
if (Time>FCleaner.DailyAt) then
Result:=Result+1;
Result:=Result+NextOKDay(Result)+FCleaner.DailyAt
end;
smHourly : begin
DT:=Now;
H:=NextOKDay(DT);
If (H<>0) then
Result:=Date+H+EncodeTime(0,FCleaner.HourlyAt,0,0)
else
begin // Still today
DecodeTime(DT,H,M,S,MS);
Result:=Date;
If (M>=FCleaner.HourlyAt) then
begin // Next hour
H:=H+1;
If (H=24) then
begin
H:=0; // Tomorrow, check next day OK.
Result:=Result+1+NextOKDay(Result+1);
end;
end;
DT:=EncodeTime(H,FCleaner.HourlyAt,0,0);
Result:=Result+DT;
end;
end;
end;
DoLog(Format(SNextCleanTime,[DateTimeToStr(Result)]));
end;
procedure TCleanDirsThread.DoClean(T : TDateTime);
Var
S,ST : String;
DT : TDateTime;
begin
try
S:=DateTimeToStr(T);
DoLog(Format(SStartExecute,[S]));
// FCleaner.Execute;
DT:=FCleaner.EndTime-FCleaner.StartTime;
ST:=TimeToStr(DT);
DoLog(Format(SEndExecute,[S,ST]));
except
On E : Exception do
If Assigned(FLog) then
FLog.Error(SErrCleaning,[E.Message]);
end;
end;
procedure TCleanDirsThread.SetupCleaner;
begin
FCleaner.OnLog:=@Self.DoLog;
FCleaner.LoadFromFile(FConfigFile);
If FCleaner.ScheduleMode=smDaily then
DoLog(Format(SRunningDailyAt,[TimeToStr(FCleaner.DailyAt)]))
else
DoLog(Format(SRunningHourlyAt,[FCleaner.HourlyAt]));
end;
procedure TCleanDirsThread.Execute;
Function GetDelta (T : TDateTime) : Int64;
begin
Result:=SecondsBetween(Now,T)*1000;
If (Result>3000) then
Result:=3000;
end;
Var
T : TDateTime;
Delta : Int64;
begin
FCleaner:=TCleanDirs.Create(Nil);
try
SetupCleaner;
T:=Now;
Repeat
T:=GetNextTime(T);
Repeat
Delta:=GetDelta(T); // 3 seconds or less
If Not Terminated then
Sleep(Delta);
Until (Now>=T) or Terminated;
If Not Terminated then
DoClean(T);
Until Terminated;
finally
FreeAndNil(FCleaner);
end;
end;
initialization
{$I svccleandirs.lrs}
RegisterDaemon;
end.

View File

@ -0,0 +1,13 @@
object CleanDirServiceMapper: TCleanDirServiceMapper
DaemonDefs = <
item
DaemonClassName = 'TCleanDirsDaemon'
Name = 'CleanDirs'
DisplayName = 'Clean directories service'
Options = [doAllowPause]
WinBindings.Dependencies = <>
WinBindings.StartType = stAuto
end>
left = 426
top = 183
end

View File

@ -0,0 +1,9 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TCleanDirServiceMapper','FORMDATA',[
'TPF0'#22'TCleanDirServiceMapper'#21'CleanDirServiceMapper'#10'DaemonDefs'#14
+#1#15'DaemonClassName'#6#16'TCleanDirsDaemon'#4'Name'#6#9'CleanDirs'#11'Disp'
+'layName'#6#25'Clean directories service'#7'Options'#11#12'doAllowPause'#0#24
+'WinBindings.Dependencies'#14#0#21'WinBindings.StartType'#7#6'stAuto'#0#0#4
+'left'#3#170#1#3'top'#3#183#0#0#0
]);

View File

@ -0,0 +1,63 @@
{ Directory cleaning service - Service mapper.
Copyright (C) 2007 Michael Van Canneyt
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version with the following modification:
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent modules,and
to copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the terms
and conditions of the license of that module. An independent module is a
module which is not derived from or based on this library. If you modify
this library, you may extend this exception to your version of the library,
but you are not obligated to do so. If you do not wish to do so, delete this
exception statement from your version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
for more details.
You should have received a copy of the GNU Library General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
}
unit svcmap;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, daemonapp;
type
TCleanDirServiceMapper = class(TDaemonMapper)
private
{ private declarations }
public
{ public declarations }
end;
var
CleanDirServiceMapper: TCleanDirServiceMapper;
implementation
procedure RegisterMapper;
begin
RegisterDaemonMapper(TCleanDirServiceMapper)
end;
initialization
{$I svcmap.lrs}
RegisterMapper;
end.