Marco's Web Center

Menu for Development

Site Menu
Object Pascal Handbook
Delphi Handbooks Collection
Mastering Borland Delphi 2005
(Old) White Papers
(Old)Tools
(Old) Conferences

My Other Sites
Italian Site (www.marcocantu.it)
the delphi search

Spirit of delphi

Advertising
Home My Blog Books Object Pascal Marco

Home: Code Repository: Mastering Delphi 5

Project SEARCH

Project Structure


SEARCH.DPR

program Search;

uses
  Forms,
  SearchF in 'SearchF.pas' {SearchForm};

{$R *.RES}

begin
  Application.CreateForm(TSearchForm, SearchForm);
  Application.Run;
end.

SEARCHF.PAS

unit SearchF;

interface

uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls,
  StdCtrls, Forms, DBCtrls, DB, Buttons, DBTables, Mask, ExtCtrls,
  Dialogs, DBActns, ActnList, ImgList, ComCtrls, ToolWin;

type
  TSearchForm = class(TForm)
    DataSource1: TDataSource;
    Table1: TTable;
    Table1Salary: TFloatField;
    Table1EmpNo: TIntegerField;
    Table1LastName: TStringField;
    Table1FirstName: TStringField;
    Table1PhoneExt: TStringField;
    Table1HireDate: TDateTimeField;
    ActionList1: TActionList;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ImageList1: TImageList;
    DataSetFirst1: TDataSetFirst;
    DataSetLast1: TDataSetLast;
    DataSetNext1: TDataSetNext;
    DataSetPrior1: TDataSetPrior;
    EditName: TEdit;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ActionGoto: TAction;
    ActionGoNear: TAction;
    ScrollBox: TScrollBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    EditEmpNo: TDBEdit;
    EditLastName: TDBEdit;
    EditFirstName: TDBEdit;
    EditPhoneExt: TDBEdit;
    EditHireDate: TDBEdit;
    EditSalary: TDBEdit;
    procedure FormCreate(Sender: TObject);
    procedure ActionGoNearExecute(Sender: TObject);
    procedure ActionGotoExecute(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  SearchForm: TSearchForm;

implementation

{$R *.DFM}

procedure TSearchForm.FormCreate(Sender: TObject);
begin
  Table1.First;
end;

procedure TSearchForm.ActionGoNearExecute(Sender: TObject);
begin
  // short-hand
  {Table1.FindNearest ([EditName.Text]);}

  // alternative code:
  Table1.SetKey;
  Table1 ['LastName'] := EditName.Text;
  Table1.GotoNearest;
end;

procedure TSearchForm.ActionGotoExecute(Sender: TObject);
begin
  // locate
  if not Table1.Locate ('LastName', EditName.Text, []) then
    MessageDlg ('Name not found', mtError, [mbOk], 0);

  // short-hand
{  if not Table1.FindKey ([EditName.Text]) then
    MessageDlg ('Name not found', mtError, [mbOk], 0); }

  // alternative code:
  {Table1.SetKey;
  Table1 ['LastName'] := EditName.Text;
  Table1.KeyFieldCount := 1;
  if not Table1.GotoKey then
    MessageDlg ('Name not found', mtError, [mbOk], 0); }
end;

end.

SEARCHF.DFM

object SearchForm: TSearchForm
  Left = 300
  Top = 214
  Width = 403
  Height = 204
  Caption = 'Table Search'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clBlack
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = True
  Position = poScreenCenter
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object ToolBar1: TToolBar
    Left = 0
    Top = 0
    Width = 395
    Height = 27
    Caption = 'ToolBar1'
    EdgeBorders = [ebTop, ebBottom]
    Flat = True
    Images = ImageList1
    ParentShowHint = False
    ShowHint = True
    TabOrder = 0
    object ToolButton1: TToolButton
      Left = 0
      Top = 0
      Action = DataSetFirst1
    end
    object ToolButton2: TToolButton
      Left = 23
      Top = 0
      Action = DataSetPrior1
    end
    object ToolButton3: TToolButton
      Left = 46
      Top = 0
      Action = DataSetNext1
    end
    object ToolButton4: TToolButton
      Left = 69
      Top = 0
      Action = DataSetLast1
    end
    object ToolButton5: TToolButton
      Left = 92
      Top = 0
      Width = 8
      Caption = 'ToolButton5'
      ImageIndex = 3
      Style = tbsSeparator
    end
    object EditName: TEdit
      Left = 100
      Top = 0
      Width = 137
      Height = 22
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      ParentFont = False
      TabOrder = 0
      Text = 'Williams'
    end
    object ToolButton7: TToolButton
      Left = 237
      Top = 0
      Action = ActionGoto
    end
    object ToolButton6: TToolButton
      Left = 260
      Top = 0
      Action = ActionGoNear
    end
  end
  object ScrollBox: TScrollBox
    Left = 0
    Top = 27
    Width = 395
    Height = 150
    HorzScrollBar.Margin = 6
    VertScrollBar.Margin = 6
    Align = alClient
    BorderStyle = bsNone
    TabOrder = 1
    object Label1: TLabel
      Left = 230
      Top = 17
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&Emp No'
      FocusControl = EditEmpNo
    end
    object Label2: TLabel
      Left = 14
      Top = 15
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&Last Name'
      FocusControl = EditLastName
    end
    object Label3: TLabel
      Left = 14
      Top = 36
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&First Name'
      FocusControl = EditFirstName
    end
    object Label4: TLabel
      Left = 14
      Top = 58
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&Phone Ext'
      FocusControl = EditPhoneExt
    end
    object Label5: TLabel
      Left = 230
      Top = 39
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&Hire Date'
      FocusControl = EditHireDate
    end
    object Label6: TLabel
      Left = 14
      Top = 79
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&Salary'
      FocusControl = EditSalary
    end
    object EditEmpNo: TDBEdit
      Left = 296
      Top = 14
      Width = 57
      Height = 21
      DataField = 'EmpNo'
      DataSource = DataSource1
      TabOrder = 0
    end
    object EditLastName: TDBEdit
      Left = 80
      Top = 12
      Width = 97
      Height = 21
      DataField = 'LastName'
      DataSource = DataSource1
      TabOrder = 1
    end
    object EditFirstName: TDBEdit
      Left = 80
      Top = 33
      Width = 97
      Height = 21
      DataField = 'FirstName'
      DataSource = DataSource1
      TabOrder = 2
    end
    object EditPhoneExt: TDBEdit
      Left = 80
      Top = 55
      Width = 97
      Height = 21
      DataField = 'PhoneExt'
      DataSource = DataSource1
      TabOrder = 3
    end
    object EditHireDate: TDBEdit
      Left = 296
      Top = 36
      Width = 57
      Height = 21
      DataField = 'HireDate'
      DataSource = DataSource1
      TabOrder = 4
    end
    object EditSalary: TDBEdit
      Left = 80
      Top = 76
      Width = 97
      Height = 21
      DataField = 'Salary'
      DataSource = DataSource1
      TabOrder = 5
    end
  end
  object DataSource1: TDataSource
    AutoEdit = False
    DataSet = Table1
    Left = 279
    Top = 109
  end
  object Table1: TTable
    Active = True
    DatabaseName = 'DBDEMOS'
    IndexFieldNames = 'LastName;FirstName'
    TableName = 'employee.db'
    Left = 332
    Top = 109
    object Table1Salary: TFloatField
      FieldName = 'Salary'
    end
    object Table1EmpNo: TIntegerField
      FieldName = 'EmpNo'
    end
    object Table1LastName: TStringField
      FieldName = 'LastName'
      FixedChar = False
    end
    object Table1FirstName: TStringField
      FieldName = 'FirstName'
      FixedChar = False
      Size = 15
    end
    object Table1PhoneExt: TStringField
      FieldName = 'PhoneExt'
      FixedChar = False
      Size = 4
    end
    object Table1HireDate: TDateTimeField
      FieldName = 'HireDate'
    end
  end
  object ActionList1: TActionList
    Images = ImageList1
    Left = 214
    Top = 111
    object DataSetFirst1: TDataSetFirst
      Category = 'Dataset'
      Caption = '&First'
      Hint = 'First'
      ImageIndex = 0
    end
    object DataSetLast1: TDataSetLast
      Category = 'Dataset'
      Caption = '&Last'
      Hint = 'Last'
      ImageIndex = 1
    end
    object DataSetNext1: TDataSetNext
      Category = 'Dataset'
      Caption = '&Next'
      Hint = 'Next'
      ImageIndex = 2
    end
    object DataSetPrior1: TDataSetPrior
      Category = 'Dataset'
      Caption = '&Prior'
      Hint = 'Prior'
      ImageIndex = 3
    end
    object ActionGoto: TAction
      Caption = '&Goto'
      Hint = 'Goto'
      ImageIndex = 4
      OnExecute = ActionGotoExecute
    end
    object ActionGoNear: TAction
      Caption = 'Go &Near'
      Hint = 'Go Near'
      ImageIndex = 5
      OnExecute = ActionGoNearExecute
    end
  end
  object ImageList1: TImageList
    Left = 24
    Top = 128
    Bitmap = {
      494C010106000900040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600
      0000000000003600000028000000400000003000000001001800000000000024
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000141414140000000000000000000000000000000000000000000000000000
      0000320000000000000000000000000000000000000000000000000000000000
      0000F6FF30003100320033000000000000000000000000000000000000000000
      0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000
      0000000EE0000001000000010000000100000001000000010000000100000001
      000000010000000100000001000000010000000100000001000000010000000E
      E000000000000000000000000000000000000000000000000000000000000000
      0000020000000400000006000000080000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000084840084840084840084
      8400310000000000000000000000000000000000000000000000000000000000
      0000F6FF30003100320033000000000000000000000000000000000000000000
      0000615365744E6578743100446174615365745072696F723100FFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFF000000000000000000000000000000000000000000000000000084840084
      8400848400000000000000000000000000000000000000000000000000000000
      0000000000008484008484008484008484008484008484008484000000000000
      00000000000000000000000000848484FFFFFF84848400FFFF84848400FFFFFF
      FFFF00FFFF00FFFFFFFFFF00FFFFFFFFFF00FFFF000000848484000000848484
      000084000084000084000084FFFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFF
      FF00FFFF00000084848400000000000000000000000000000000000084840084
      8400848400000000000000000000000000000000000000000000000000000000
      0000000000000000008484008484008484008484008484000000000000000000
      0000000000000000000084848400FFFF00FFFF848484FFFFFF00FFFF84848400
      FFFFFFFFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF000000848484000000000084
      00008484848400FFFF000084000084FFFFFF00FFFFFFFFFF00FFFFFFFFFF00FF
      FFFFFFFF00000084848400000000000000000000000000000000000084840084
      8400848400000000000000000000000000000000000000000000000000000000
      0000000000000000000000008484008484008484000000000000000000000000
      00000000000000000000FFFFFF000000FFFFFF84848400FFFFFFFFFF00FFFFFF
      FFFF00FFFF00FFFFFFFFFF00FFFFFFFFFF00FFFF000000848484848484000084
      84848400FFFFFFFFFF848484000084848484FFFFFF00FFFFFFFFFF00FFFFFFFF
      FF00FFFF00000084848400000000000000000000000000000000000084840084
      8400848400000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000008484000000000000000000000000000000
      0000000000000000000000000000000000FFFFFFFFFF00FFFFFFFFFF00FFFFFF
      FFFF00FFFFFFFFFF000000000000000000000000000000848484000084000084
      00FFFFFFFFFF00FFFFFFFFFF84848400008400FFFFFFFFFF0000000000000000
      0000000000000084848400000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000FFFFFF00FFFFFFFFFF00FFFFFFFFFF00
      FFFFFFFFFF00FFFF00000000FFFFC6C6C6000000000000848484000084000000
      FFFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFF00000000FFFFC6C6
      C600000000000084848400000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000FFFFFFFFFF00FFFFFFFFFF00FFFFFF
      FFFF00FFFFFFFFFF000000C6C6C6000000FFFFFF000000848484848484000000
      00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF000000C6C6C60000
      00FFFFFF00000084848400000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000FFFFFF00FFFFFFFFFF00FFFFFFFFFF00
      FFFFFFFFFF00FFFF000000000000FFFFFF00FFFF000000848484000000000000
      FFFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFF000000000000FFFF
      FF00FFFF00000084848400000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000848484000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000848484000000000000000061696E7400000000120300000000
      000010000000D097910810FB910890FA9108202C910800000000000000000000
      0000000000000000000000000000000000000000000000000000060093FF0000
      0000C244D0A18CA191084843910800200A0900000000574D5F5041494E540000
      0000848484848484848484848484848484848484848484848484000000000000
      8484848484848484848484848484848484848484848484848484848484848484
      848484848484848484840000000000000000120074FF0000000077394EFD001F
      0A0934909108401F0A090000000054574D4C427574746F6E44626C436C6B0000
      0000120300000000000010000000F883910890A7910810A79108202C91080000
      0000000000000000000000000000000000000000000000000000000000000000
      000006002DFF0000000037BBDBA1DCA191080000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000D0979108D81F0A090000000054574D500000000000000000000000000000
      00000000000000000000000000000600C9FF00000000BA44D0A18CA191082042
      9108541E0A0900000000574D5F534554464F43555300060037FF00000000BB44
      D0A18CA1910848429108801E0A0900000000574D5F4B494C4C464F4355530000
      000006000BFF00000000C544D0A18CA19108FFFF0000000000000000FFFFFFFF
      FF00FFFFFFFFFF00FFFF00000000000000000000000000000000000000000000
      0000574D5F43414E43454C4D4F44450000000000000000000000000000000000
      00000000000000000000060059FF0000000049BADBA1DCA19108DC529108901D
      0A0900000000574D5F565343524F4C4C0000060099FF0000000041BADBA1DCA1
      9108DC599108C41D0A0900000000574D5F494D455F5354415254434F4D504F53
      4954494F4E00120010FF0000000043AE1C89FFFF0000000000FFFFFFFFFF00FF
      FFFFFFFF00000000000000000000000000000000000000000000000000000000
      000080079208202C910800000000000000000000000054574D53697A65001203
      00000000000010000000749C910874109208F40F9208202C9108000000000000
      0000000000000000000000000000000000000000000000000000000000000600
      ECFF00000000B844D0A18CA19108D4419108001D0A0900000000574D5F53495A
      45001200A0FF00000000CA39885D281D0A09FFFF00000000FFFFFF00FFFFFFFF
      FF00FFFFFFFFFF00FFFFFFFFFF00000000000000000000000000000000000000
      0000202C91080000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000600B3FFFFFF0000000000FFFFFFFFFF00FF
      FFFFFFFF00000000000000000000000000000000000000000000000000000000
      0000B041D41F9C1C0A09749C9108DC1C0A090000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000574D5F55534552001200CAFF0000
      00008B70C7FBA01B0A0984839108E01B0A09FFFF00000000FFFFFF00FFFFFFFF
      FF00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFF0000000000000000FF00
      00FF000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000006F7052656D6F76650000
      000012005DFF000000002457D181EC1A0A09FFFF0000000000FFFFFFFFFF0000
      000000000000000000000000000000000000000000000000000000000000FF00
      00FF00000000000000000000000000000000FFFF0000000000000000FFFFFFFF
      FF00FFFFFFFFFF00FFFF00000000000000000000000000000000000000000000
      000000000000FFFF000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000544C6973742E41646400
      00000900E1FF00000000A8DBE19278D6AC0800000000000000000000FFFFFFFF
      FF00FFFF00000000000000000000000000000000000000000000000000000000
      000000000000A7DBE192A4D5AC0870D5AC08FFFF0000000000FFFFFFFFFF00FF
      FFFFFFFF00000000000000000000000000000000000000000000000000000000
      0000000000000000000000FFFF0000000000000000FFFFFFFFFF00FFFFFFFFFF
      00FFFF00000000000000000000000000000050190A0900000000545265616465
      722E52656164436F6C6C656374696F6E00000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000696F6E00090094FF00000000D1891969FFFF00000000FFFFFF00FFFFFFFF
      FF00FFFFFFFFFF00FFFFFFFFFF00000000000000000000000000000000000000
      0000000000000000000000FFFF0000000000FFFFFFFFFF00FFFFFFFFFF000000
      0000000000000000000000000000000000006E7400000600F6FF0000000040DD
      73AA6005AD082822AB08A0180A09000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000073740000060020FF00000000F1EACFD5FFFF0000000000FFFFFFFFFF00FF
      FFFFFFFF00000000000000000000000000000000000000000000000000000000
      0000000000000000000000FFFF00000000FFFFFF00FFFFFFFFFF00FFFFFFFFFF
      00FFFFFFFFFF0000000000000000000000006F79000009004BFF00000000D169
      42AF74F8AB0840F8AB08E8170A09000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000054436F6C6C656374696F6E2EFFFF00000000FFFFFF00FFFFFFFF
      FF00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFF0000000000000000FF00
      00FF000000000000000000FFFF0000000000FFFFFFFFFF00FFFFFFFFFF000000
      000000000000000000000000000000000000090040FF00000000BBDBE1920CCF
      AC08D8CEAC0824170A090000000054436F6D0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000054436F6D706F6E656E742E5365744E61FFFF0000000000FFFFFFFFFF0000
      000000000000000000000000000000000000000000000000000000000000FF00
      00FF000000000000000000FFFF00000000FFFFFF00FFFFFFFFFF00FFFFFFFFFF
      00FFFFFFFFFF00FFFFFFFFFF00FFFF000000000000000802CB5A3C94AD08884B
      AB0854160A09000000002E54436F6D706F6E0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00006550726F7065727469657300090087FF00000000000000000000FFFFFFFF
      FF00FFFF00000000000000000000000000000000000000000000000000000000
      0000000000000000000000FFFF0000000000FFFFFFFFFF000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000400FFFF0000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000FFFFFFFFFF00FFFF000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000808080
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000808080000000000000
      0000000000000000000000000000000000000000000000000000000000008080
      8000000000000000000000000000000000000080808000000000000000000000
      0000000000000000000000000000808080000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000008080
      8000000000000000000000000000000000000080808000000000000000000000
      0000000000000000000000000000808080000000000000000000000000000000
      0000008080800000000000000000000000000000000000000000000000000000
      0000000080808000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000808080
      0000000000000000000000000000000000000000000000000000000000008080
      8000000000000000000000000080808000000000000000000000000000000000
      0000000000000000000000000000000000000000808080000000000000000000
      0000008080800000000000000000000000000000000000000000000000000000
      0000000000000000000080808000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000808080000000000000
      0000000000000000000000000000000000000000000000000000000000008080
      8000000000000080808000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000808080000000
      0000008080800000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000080808000000000000000000000000000
      0000000000000000000000000000000000808080000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000008080
      8080808000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      8080808080800000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000008080
      8000000000000080808000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000808080000000
      0000008080800000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000080808000000000000000000000000000
      0000000000000000000000000000000000808080000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000008080
      8000000000000000000000000080808000000000000000000000000000000000
      0000000000000000000000000000000000000000808080000000000000000000
      0000008080800000000000000000000000000000000000000000000000000000
      0000000000000000000080808000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000808080000000000000
      0000000000000000000000000000000000000000000000000000000000008080
      8000000000000000000000000000000000000080808000000000000000000000
      0000000000000000000000000000808080000000000000000000000000000000
      0000008080800000000000000000000000000000000000000000000000000000
      0000000080808000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000808080
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000424D3E000000000000003E000000
      2800000040000000300000000100010000000000800100000000000000000000
      000000000000000000000000FFFFFF00D7A6548BD4090A09120065FF00000000
      61794E616D650000536574446973706C696F6E4974656D2E54436F6C6C656374
      B0090A0900000000B0A9AB0874A9AB08000000008EA70DFD000000000900C2FF
      74696F6E4974656D2E54436F6C6C656374090A0900000000DC2BAD088C2FAB08
      00000000F0CDF6C4000000000700E3FFFFFFFFFF00000000FFF8FFFF0700FAFF
      20F81FFF18000000007F041F00000000007C000F5CC9AA08003C000F7030AD08
      000F0007040000000004000107032500000C00006C65637401FF000100000000
      E3FC003F4830AB08FFFCFC7F8705A191FFFFFFFF12004BFFFFF8FFFF00000000
      FFF8FFFF1C00FDFFFFFFFFFF0C000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7E7E7E7F9FFFF9F
      E787E1E7F87FFE1FE607E067F81FF81FE007E007F80FF01FE607E067F81FF81F
      E787E1E7F87FFE1FE7E7E7E7F9FFFF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}
  end
end