Solved

Stuck with dbapplication using ADO and MSAccesssss

Posted on 2008-09-29
7
489 Views
Last Modified: 2011-10-19
Hi Folks,

I lost the sourcecode of my project and now while I'm rebuilding it, I'm stuck right at the very first start and I can't see the problem. I attached the sourcode, but ofcourse an Access database is involved so I attached it as well. It also uses a .udl file which I could not attach so I attached the sourcecode from it, just a few lines.  I use delphi 7.

The problem I run into has something to do with the titleclick procedure as well as the index I like to maintain. The titleclick procedure is to sort on columns. The following two fields require some attention.

Nummer > the unique identifier, hidden field < should this one be autoincrement?
Klantnr > starting at 1 then 2 then 3, just to count the number of customers

Regards,

Peter

Btw If you need more info please ask, at the moment I'm a bit dazzled and yet too long stuck with this problem so bear with me ;-)




unit Form_Main;
 

interface
 

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  Db, ADODB, DBCtrls, Grids, DBGrids, ExtCtrls, ComCtrls, StdCtrls, Mask,

  jpeg,TypInfo, AppEvnts;
 

type

  TForm1 = class(TForm)

    pnlBottom: TPanel;

    connMain: TADOConnection;

    Label12: TLabel;

    tblKlanten: TADOTable;

    dsKlanten: TDataSource;

    dbnavKlanten: TDBNavigator;

    ApplicationEvents1: TApplicationEvents;

    PageControl1: TPageControl;

    tbsKlanten: TTabSheet;

    GRID2: TDBGrid;

    tbsInformatie: TTabSheet;

    Image1: TImage;

    Label9: TLabel;

    Label10: TLabel;

    tblKlantenDatum: TDateTimeField;

    tblKlantenNaam: TWideStringField;

    tblKlantenAdres: TWideStringField;

    tblKlantenPostcode: TWideStringField;

    tblKlantenWoonplaats: TWideStringField;

    tblKlantenTelefoon: TWideStringField;

    tblKlantenMobiel: TWideStringField;

    tblKlantenEmail: TWideStringField;

    tblKlantenOpmerkingen: TMemoField;

    tblKlantenKlantnr: TIntegerField;

    DBMemo1: TDBMemo;

    tblKlantenNummer: TIntegerField;

    procedure FormCreate(Sender: TObject);

    procedure FormDestroy(Sender: TObject);

    procedure GRID2MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure GRID2TitleClick(Column: TColumn);

    procedure ApplicationEvents1Exception(Sender: TObject; E: Exception);

    procedure tblKlantenNewRecord(DataSet: TDataSet);

    procedure tblKlantenCalcFields(DataSet: TDataSet);

  private

    { Private declarations }

  public

    { Public declarations }

  end;
 

var

  Form1: TForm1;
 

implementation
 

{$R *.DFM}
 
 
 
 
 

procedure TForm1.FormCreate(Sender: TObject);

begin

  connMain.Close;

  connMain.ConnectionString := 'FILE NAME='+ChangeFileExt(Application.ExeName, '.udl' );

  connMain.Open;

  tblKlanten.Open;

end;
 

procedure TForm1.FormDestroy(Sender: TObject);

begin

  connMain.Close;

end;
 

procedure TForm1.GRID2MouseMove(Sender: TObject; Shift: TShiftState; X,

  Y: Integer);

 var

  pt: TGridcoord;

begin

  pt:= Grid2.MouseCoord(x, y);
 

  if pt.y=0 then

    Grid2.Cursor:=crHandPoint

  else

    Grid2.Cursor:=crDefault;

end;
 

procedure TForm1.GRID2TitleClick(Column: TColumn);

  {$J+}

 const PreviousColumnIndex : integer = -1;

{$J-}

begin

  if GRID2.DataSource.DataSet is TCustomADODataSet then

  with TCustomADODataSet(GRID2.DataSource.DataSet) do

  begin

    try

      GRID2.Columns[PreviousColumnIndex].title.Font.Style :=

      GRID2.Columns[PreviousColumnIndex].title.Font.Style - [fsBold];

    except

    end;
 

    Column.title.Font.Style := 

    Column.title.Font.Style + [fsBold];

    PreviousColumnIndex := Column.Index;
 

    if (Pos(Column.Field.FieldName, Sort) = 1)

    and (Pos(' DESC', Sort)= 0) then

      Sort := Column.Field.FieldName + ' DESC'

    else

      Sort := Column.Field.FieldName + ' ASC';

  end;
 

 

end;
 

procedure TForm1.ApplicationEvents1Exception(Sender: TObject;

  E: Exception);

begin

 if (E is EDBEditError) AND

   (E.Message = 'Invalid input value.  Use escape key to abandon changes')

  then

    ShowMessage('My Custom Error Message')

  else

    Application.ShowException(E);

end;
 

procedure TForm1.tblKlantenNewRecord(DataSet: TDataSet);

begin

 Dataset.FieldByName('Datum').asdatetime := Now;

 Dataset.FieldByName('Naam').AsString := 'Geef naam in';
 

end;
 

procedure TForm1.tblKlantenCalcFields(DataSet: TDataSet);

begin

  Dataset.fieldbyname('Nummer').value := dataset.RecNo;

end;
 

end.
 

#####################################################################
 

The .udl file code:
 

[oledb]

; Everything after this line is an OLE DB initstring

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=database.mdb;Persist Security Info=False

Open in new window

database.mdb
0
Comment
Question by:PeterdeB
  • 4
  • 2
7 Comments
 

Author Comment

by:PeterdeB
ID: 22601675
Changin this code fragment >>

procedure TForm1.GRID2TitleClick(Column: TColumn);
  {$J+}
 const PreviousColumnIndex : integer = -1;
{$J-}
begin

Into this >

procedure TForm1.GRID2TitleClick(Column: TColumn);
  {$J+}
 const PreviousColumnIndex : integer = 1;
{$J-}
begin

Seems to solve the problem. However at program start the first index is -1 instead of 1. Not that big a problem but I wonder why that is.

Peter
0
 
LVL 28

Expert Comment

by:ciuly
ID: 22603667
you forgot to post the dfm :)

what is the initially sorted column? PreviousColumnIndex should be set to that index.

>>  However at program start the first index is -1 instead of 1. Not that big a problem but I wonder why that is.

which index is that? what line from code?
0
 
LVL 21

Expert Comment

by:developmentguru
ID: 22605101
---Klantnr > starting at 1 then 2 then 3, just to count the number of customers

This is not a good approach for counting customers.  Use a query for that instead. something like

select count(*) from customers

or, if you have an enabled field, something like this

select count(*) from customers where enabled = 1

The problem with incrementing your counter the way you are is that it does not take into account the deletion of a customer (or disabling of the customer record).
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 

Author Comment

by:PeterdeB
ID: 22606932
Hi ciuly and developmentguru, thanks for your replies. I have modified the database so I uploaded it again, together with the dfm file.

object Form1: TForm1
  Left = 252
  Top = 236
  Width = 892
  Height = 604
  Caption = 'Kapsalon Dreams klantendatabase versie 1.0'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  Icon.Data = {
    0000010008003030000001000800A80E0000860000002020000001000800A808
    00002E0F00001818000001000800C8060000D617000010100000010008006805
    00009E1E00003030000001002000A8250000062400002020000001002000A810
    0000AE490000181800000100200088090000565A000010100000010020006804
    0000DE6300002800000030000000600000000100080000000000000900000000
    000000000000000100000001000000000000646464006E6E6E00767676007C7C
    7C00905D14009764190094652000A5712400A5742A00AC782A00AC792D00AC7B
    3000807F7F00C8923F00BA8C4300B18E5B00B6997000B39A7500B49A7600B59C
    7700B69D7800B89E7A00B9A07B00BAA17C00C8944200C8954500C1964D00C897
    4800C8984B00C89A4E00C89B5000C89C5200C89E5600C8A05A00C8A25D00C8A3
    6000C8A46100C8A66500C8A86800F1BD6800F8C7760081818100868686008886
    8600898989008C8B8B008D8C8C00908F8F0091919100989797009A9A9A009D9B
    9B009E9D9D00A19F9F00BEA58000A3A0A000A4A2A200A6A4A400A8A6A600A8A8
    A800ADABAB00AEADAD00B0AFAF00B1B1B100B4B3B300B6B6B600B9B9B900BFBF
    BF00C0A68200C1A88300C2A98400C6B9A700C7BAA800C9BDAA00CCBFAD00D1BE
    A200FFDB9200FFDE9D00FFE09D00CDC0AE00CDC7BD00D4CABD00FFDEA600FFE0
    A400FFE5A500FFE2AA00FFE7AA00FFE1AF00FFE5AD00FFE9AD00FFE2B100FFE4
    B200FFE4B500FFE9B100FFE9B600FFEDB600FFE6B800FFE7BF00FFE9B900FFED
    B900FFEABD00FFEDBD00FFF0BA00FFF1BD00C2C1C100C5C2C200C7C5C500C8C6
    C600CAC8C800CDCACA00CDCDCD00D7CEC000D0CACA00D2CFCA00D2CDCD00DFD8
    CF00D2D2D200D6D1D100D5D5D500D9D5D500DAD9D900DDD9D900DDDDDD00E1DD
    DD00FFEAC000FFEDC200FFE9C500FFEEC500FFEDC900FFEECD00FFF1C100FFF1
    C500FFF1CA00FFF1CD00FFEFD200FFF1D100FFF2D500FFF4D600FFF2D900FFF4
    DA00FFF2DD00FFF4DD00E1E1E100E4E1E100E5E5E500E8E6E600E9E9E900ECEA
    EA00EDEDED00F0EEEE00FFF5E100FFF6E500FFF7E800FFF8EA00FFF9EE00F1F1
    F100F4F2F200F5F5F500F8F7F700FFFAF000F9F9F900FCFBFB00FEFEFE000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000002D010101010101010101010101010101010101010101
    01012D0000000000000000000000000000000000000000003501033C40404040
    40404040404040404040404040404040403C0301350000000000000000000000
    000000000000000001359EA3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3
    A3A39E35010000000000000000000000000000000000002A03A3A3A39E6A4340
    4340434043404340434043404340436A9EA3A3A3032A00000000000000000000
    00000000000000013CA3A39035043C3C3C3C043539393939392C2C3635363504
    2D90A3A33C0100000000000000000000000000000000000140A3957502909592
    92922D6A7C7B7A7A7539367373716D6D03439EA3400100000000000000000000
    000000000000000140A37B750296959592922D6D7C7C7C7B7A39397575737371
    2A437BA3400100000000000000000000000000000000000140A37B75029E9696
    9694306D92907C7C7C39397A7A7673732C437BA3400100000000000000000000
    000000000000000140A37B75029F9F9E96962D73959292927C3C3C7A7A7A7A7A
    2C437BA3400100000000000000000000000000000000000140A3907502313030
    3031032A2D302D302D04042D2C2C2C2C03437BA3400100000000000000000000
    000000000000000140A39075037B7B757B752D43757373717335356D6D6A6A44
    04437BA3400100000000000000000000000000000000000140A3907902A3A3A3
    A3A3317A9E9E9E96953C3D929290907C30437BA3400100000000000000000000
    000000000000000140A3907902A3A3A3A3A33175A39F9E9E9E403D9695929292
    2D437CA3400100000000000000000000000000000000000140A3907902A3A3A3
    A3A3317BA3A3A39E9F4040969696959230437BA3400100000000000000000000
    000000000000000140A3907B02A3A3A3A3A3317BA3A3A3A3A340409F9E969696
    2D437BA3400100000000000000000000000000000000000140A3927B02020202
    0202020202020202020202020202020202437BA3400100000000000000000000
    000000000000000140A3927B02A3A3A3A3A3317BA3A3A3A3A34340A3A39F9F9E
    30437BA3400100000000000000000000000000000000000140A3927B02A3A3A3
    A3A3317BA3A3A3A3A34343A3A3A3A39F31437BA3400100000000000000000000
    000000000000000140A3959002A3A3A3A3A3317BA3A3A3A3A34043A3A3A3A3A3
    31437BA3400100000000000000000000000000000000000140A3957B02A3A3A3
    A3A3317BA3A3A3A3A34340A3A3A3A3A32D437BA3400100000000000000000000
    000000000000000140A39590043CA3A3A3A3317BA3A3A3A3A34343A3A3A39E6A
    03717BA3400100000000000000000000000000000000000140A3959075310202
    0202020202020202020202020202020443757BA3400100000000000000000000
    000000000000000140A395909290909090907B7B7B7B7B7B7B757B757B75757B
    75757BA3400100000000000000000000000000000000000140A3959292929290
    907B90907B7B7B7B7B7B7B7B757B757575757BA3400100000000000000000000
    000000000000000140A39C927237371837183718181616161313131313131613
    51797BA3400100000000000000000000000000000000000140A39C74051B2222
    2626262627272726262626242422210F077290A3400100000000000000000000
    000000000000000140A39E371B4F575760606767838383676767605757554F4D
    094890A3400100000000000000000000000000000000000140A39C3720596060
    6767808383838583838067676059594E0C4990A3400100000000000000000000
    000000000000000140A39E37205F5F6780808585858585858583806762605F4E
    0C4990A3400100000000000000000000000000000000000140A39E371E677F81
    818585888888888885888581808062590C4990A3400100000000000000000000
    000000000000000140A39E461D8181878888888C888C8A8A888888888181805F
    0A4990A3400100000000000000000000000000000000000140A39E461D878C88
    8C8C8C8C978C8C978C978C8C8C87875F0A4995A3400100000000000000000000
    000000000000000140A39E461A8C8D8D8D998D9A979A979797978D8D8D8C8D7F
    0A4993A3400100000000000000000000000000000000000140A3A3461A8D999A
    9A9A9A9A9A9A9A9A9A9A9A9A9A998D7F0A5093A3400100000000000000000000
    000000000000000140A39E461A8DA0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A09F7F
    0A5095A3400100000000000000000000000000000000000140A3A34C08295F58
    5F625F6262676267625F5F5F58584E28065293A3400100000000000000000000
    000000000000000140A3A39E1005050505050505050505050505050505050505
    119095A340010000000000000000000000000000000000013CA3A3A39E9F9F9E
    9E9E9E9E959E9595959595959593939392929EA33C0100000000000000000000
    000000000000002A03A3A3A3A3A39E9F9F9E9E9E9E969E959E95959595959393
    939CA3A3032A00000000000000000000000000000000000001359EA3A3A3A3A3
    A39FA39EA39EA39E9E9F9E9E9E9E9E9EA3A39E35010000000000000000000000
    00000000000000003501033C4040404040404040404040404040404040404040
    3F3C0301350000000000000000000000000000000000000000002D0101010101
    0101010101010101010101010101010101012D00000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFF
    FFFFFFFF0000FFF0000007FF0000FFC0000001FF0000FFC0000001FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FFC0
    000001FF0000FFC0000001FF0000FFF0000007FF0000FFFFFFFFFFFF0000FFFF
    FFFFFFFF0000FFFFFFFFFFFF0000280000002000000040000000010008000000
    0000000400000000000000000000000100000001000000000000767676007A7A
    7A007D7D7D00AD8B5B00AE8C5B00AE8C5C00B08E5E00B2905F00818181008787
    87008888880096969600AFAFAF00CCBCA400CBC4B900D9C9B200FFE5AE00FFE9
    B500FFE8BB00FFEDBB00FFEDBD00DBD4CB00D2D2D200D5D5D500D9D9D900DDDD
    DD00E2D9CD00E3DCD300E5DDD000FFE7C000FFEBC000FFEEC100FFE9C500FFEE
    C600FFEBC900FFECCA00FFEDCD00FFF1C500FFF0CA00FFF2CD00EAE3D900FFF0
    D200FFF2D500FFF1D900FFF4D800FFF3DC00FFF4DE00E1E1E100E4E2E200E6E6
    E600E9E9E900ECEBEA00EEEEEE00F0EFEF00FFF5E000FFF5E500FFF6E800FFF8
    EA00FFF8EC00F1F1F100F6F5F500FAFAFA00FEFEFE0000000000000000000000
    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
    0000000000000000000000000000000000000000000000000000000000000001
    030303030303030303030303030303090300000000000000000000000000093E
    3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E030000000000000000000000013D3E
    320B0C0C0C0C0C0C0C0C0C0C0C0C0C3E3E3E0B00000000000000000000033E35
    0C3E3E3E3E0C3E3E3E320C3E3535350C353E0300000000000000000000033E1A
    0C3E3E3E3E0C3E3E3E320C3E3E3E320C1A3E0900000000000000000000033E1A
    0C3E3E3E3E0C3E3E3E3E0C3E3E3E3E0C1A3E0300000000000000000000033E1A
    0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C1A3E0900000000000000000000033E32
    0C3E3D3D3E0C3E35323E0C3E3E3E350C1A3E0300000000000000000000033E32
    0C3E3E3E3E0C3E3D3D3E0C3E3E3E350C1A3E0900000000000000000000033E32
    0C3E3E3E3E0C3E3E3E3E0C3E3E3E3E0C323E0300000000000000000000033E32
    0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C323E0900000000000000000000033E32
    0C3E3E3E3E0C3E3E3E3E0C3E3E3E350C323E0300000000000000000000033E35
    0C3E3E3E3E0C3E3E3E3E0C3E3E3E320C323E0900000000000000000000033E35
    0C3E3E3E3E0C3E3E3E3E0C3E3E3E3E0C353E0300000000000000000000033E35
    1A0C0C0C0C0C0C0C0C0C0C0C0C0C0C35323E0900000000000000000000033E35
    3232323232321A321A1A1A1A19191932353E0300000000000000000000033E35
    0E07070707070807070807070707060F353E0900000000000000000000033E1C
    073838383838383838383838383838071C3E0300000000000000000000033E1B
    083812152026262626201512111138081B3E0900000000000000000000033E1B
    083820222727282727272020131538071B3E0300000000000000000000033E1C
    08382A282E2E2E2E282E282A222239071C3E0900000000000000000000033E1D
    08382E38382E373737382E2E2C2C39071D3E0300000000000000000000033E29
    0738393A3A3A3A3A3A3A3939393938081D3E0900000000000000000000033E29
    0838202222222A222A2222211E1E3808293E0300000000000000000000033E3E
    100808080808070706060704060606163E3E0300000000000000000000013E3E
    3E3E3D3D3D3C3C3C363635333333353E3E0D0B00000000000000000000000919
    3230323030323030303030301A1A303232030000000000000000000000000003
    0303030303030303030303030303030303000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF80
    001FFF00000FFE000007FE000007FE000007FE000007FE000007FE000007FE00
    0007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE00
    0007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE00
    0007FE000007FF00000FFF80001FFFFFFFFFFFFFFFFF28000000180000003000
    0000010008000000000040020000000000000000000000010000000100000000
    0000797979007F7F7F00B7884200B4986E00BA9A6B00C4954D00C49A5300C79F
    6100C7A06500E0B972008A8A8A008F8F8F009291910094939300969696009A9A
    9A009C9B9B009C9C9C00A09F9F00A3A3A300A8A6A600A9A8A800AEADAD00B0AF
    AF00B3B2B200B5B5B500BBB8B800C1AB8A00C4B7A500C9BCAA00C1BEBE00E3C4
    8300E3C88B00E3C39100E3CB9000CDC0AE00CFC2B000D9CCBA00DDD1BE00FFE1
    A700FFE9B600FFE6B800FFEDBE00C5C5C500CACACA00CDC9C900CDCDCD00D7CF
    C200D1CDCD00D2D0CE00DFD7CC00D2D2D200D5D5D500DAD5D500D8D8D800DDD9
    D900DEDEDE00E0DDDD00FFEDC700FFEEC900FFEFCD00FFF0C300FFF1C600FFF0
    CE00FFF2D200FFF0D700FFF2D900FFF3DC00FFF4DE00E2E2E200E4E1E100E5E5
    E500E8E5E500EFEBE400E9E9E900EEEDED00F1EFEF00FFF5E000FFF7EA00FFF8
    EC00F1F1F100F4F2F200F5F5F500F8F7F700F9F9F900FCFBFB00FEFEFE000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000012020202
    0202020202020202000000000000000000000002565656565656565656565656
    120000000000000000001256561A0E120E120E120E1237565602000000000000
    00000256370E56480E54370E51310E37560C00000000000000000256370F564C
    0E56480E56360F37560C0000000000000000025637121A1A0E17170F12150F37
    560C00000000000000000256460E56560F54540E54481237560C000000000000
    00000256460F56560F56560E544C0E48560C00000000000000000256480F1B1A
    0F1A1A0E141A0E48560C00000000000000000256480E56560E56560E54560F48
    560C000000000000000002564B0E56560C56560E54560E4B560C000000000000
    000002564C2D0E0E0E0F0F0E0F0F2F4B560C000000000000000002564C303234
    323432343232324C560C00000000000000000256330303030303030303030333
    560C000000000000000002563403292B3F3F3F3F2B290332560C000000000000
    0000025634033C40414141413C3B0332560C0000000000000000025632034343
    4E4E4E4343430332560C00000000000000000256340350505050505050500332
    560C000000000000000002564A030303030303030303034A560C000000000000
    0000022F5656545454544C514C4C4B4C56020000000000000000000202020202
    0202020202020202020000000000000000000000000000000000000000000000
    000000000000000000000000000000000000000000000000000000000000FFFF
    FF00FC003F00F8001F00F0000F00F0000F00F0000F00F0000F00F0000F00F000
    0F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F000
    0F00F0000F00F0000F00F0000F00F0000F00F8001F00FFFFFF00FFFFFF002800
    0000100000002000000001000800000000000001000000000000000000000001
    00000001000000000000797979007F7F7F00B788420091919100FFF0D100FFF2
    D400EEEEEE00FFF5E500F1F1F100F4F4F400FFFFFF0000000000000000000000
    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
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000020202020202020202000000000000020B0B0B0B0B0B0B
    0B0B020000000000020704040404040404070200000000000207040B0B040B0B
    0407020000000000020704040404040404070200000000000209040B0B040B0B
    0409020000000000020904040404040404090200000000000209040B0B040B0B
    0409020000000000020904040404040404090200000000000209090909090909
    09090200000000000209030303030303030B020000000000020B030808080808
    03090200000000000209030606060606030B020000000000020B030303030303
    030B020000000000020B0B0B0B0B0B0B0B0B0200000000000002020202020202
    020200000000E00F0000C0070000C0070000C0070000C0070000C0070000C007
    0000C0070000C0070000C0070000C0070000C0070000C0070000C0070000C007
    0000E00F00002800000030000000600000000100200000000000802500000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000646464506464
    64BF646464FF646464FF646464FF646464FF646464FF646464FF646464FF6464
    64FF646464FF646464FF646464FF646464FF646464FF646464FF646464FF6464
    64FF646464FF646464FF646464FF646464FF646464FF646464FF646464FF6464
    64BF646464500000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000000000006464649F646464FF7777
    77FFA8A8A8FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2
    B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2
    B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFA8A8A8FF7777
    77FF646464FF6464649F00000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000064646460646464FF9E9E9EFFF5F5
    F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F5
    F5FF9E9E9EFF646464FF64646460000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464CF777777FFFFFFFFFFFFFF
    FFFFFFFFFFFFF7F7F7FFC3C3C3FFB7B7B7FFB7B7B7FFB7B7B7FFB7B7B7FFB7B7
    B7FFB7B7B7FFB7B7B7FFB7B7B7FFB7B7B7FFB7B7B7FFB7B7B7FFB7B7B7FFB7B7
    B7FFB7B7B7FFB7B7B7FFB7B7B7FFB7B7B7FFC3C3C3FFF7F7F7FFFFFFFFFFFFFF
    FFFFFFFFFFFF777777FF646464CF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFA8A8A8FFFFFFFFFFFFFF
    FFFFE3E3E3FF9A9A9AFF7D7D7DFFABA9A9FFAAA8A8FFA9A7A7FFA8A6A6FF7C7C
    7CFF989797FFA5A3A3FFA4A2A2FFA4A1A1FFA3A0A0FFA29F9FFF888686FF8F8F
    8FFF9F9C9CFF9E9B9BFF9E9B9BFF9E9B9BFF807F7FFF878787FFE3E3E3FFFFFF
    FFFFFFFFFFFFA8A8A8FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFEEEE
    EEFFD2D2D2FF6E6E6EFFE4E2E2FFEAE8E8FFE9E6E6FFE7E4E4FFE5E2E2FF8B8B
    8BFFC4C2C2FFE0DCDCFFDEDADAFFDCD8D8FFDAD6D6FFD8D4D4FFA3A0A0FF9292
    92FFD3CECEFFD1CCCCFFCFCACAFFCEC8C8FFC7C2C2FF747474FFBFBFBFFFEEEE
    EEFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFDDDD
    DDFFD2D2D2FF6E6E6EFFF0EEEEFFEEECECFFECEAEAFFEBE8E8FFE9E6E6FF8C8C
    8CFFC7C5C5FFE3E0E0FFE2DEDEFFE0DCDCFFDEDADAFFDCD8D8FFA4A2A2FF9292
    92FFD7D2D2FFD5D0D0FFD3CECEFFD1CCCCFFD0CACAFF868585FFB9B9B9FFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFDEDE
    DEFFD2D2D2FF6E6E6EFFF4F2F2FFF2F0F0FFF0EEEEFFEEECECFFEDEAEAFF8D8D
    8DFFCAC8C8FFE7E4E4FFE5E2E2FFE4E0E0FFE2DEDEFFE0DCDCFFA6A4A4FF9292
    92FFDBD6D6FFD9D4D4FFD7D2D2FFD5D0D0FFD3CECEFF878686FFB9B9B9FFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFDFDF
    DFFFD3D3D3FF6E6E6EFFF8F7F7FFF6F5F5FFF4F3F3FFF2F1F1FFF0EFEFFF8E8E
    8EFFCDCBCBFFEBE9E9FFE9E7E7FFE7E5E5FFE6E3E3FFE4E1E1FFA8A7A7FF9292
    92FFDEDBDBFFDDD9D9FFDBD7D7FFD9D5D5FFD7D3D3FF888787FFB9B9B9FFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFE0E0
    E0FFD5D5D5FF6E6E6EFF919191FF919090FF909090FF908F8FFF8F8F8FFF7676
    76FF868686FF8E8D8DFF8D8D8DFF8D8C8CFF8D8C8CFF8C8B8BFF7D7C7CFF9292
    92FF8B8A8AFF8A8989FF8A8989FF898888FF898888FF757474FFB9B9B9FFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFE1E1
    E1FFD6D6D6FF6E6E6EFFDBDBDBFFDADADAFFD9D8D8FFD7D7D7FFD6D5D5FF8888
    88FFBAB9B9FFD2D1D1FFD1CFCFFFCFCECEFFCECCCCFFCDCBCBFF9D9C9CFF9292
    92FFC8C6C6FFC7C5C5FFC6C3C3FFC4C2C2FFC3C0C0FF838282FFB9B9B9FFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFE2E2
    E2FFD7D7D7FF6E6E6EFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFFFCFCFCFF9191
    91FFD5D5D5FFF7F6F6FFF5F4F4FFF3F1F1FFF1EFEFFFEFEDEDFFAEADADFF9292
    92FFEAE7E7FFE8E5E5FFE6E3E3FFE5E1E1FFE3DFDFFF8B8A8AFFB9B9B9FFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFE3E3
    E3FFD9D9D9FF6E6E6EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9292
    92FFD8D8D8FFFAFAFAFFF9F8F8FFF7F6F6FFF5F4F4FFF3F2F2FFB0AFAFFF9292
    92FFEEECECFFECEAEAFFEAE8E8FFE8E6E6FFE7E4E4FF8C8B8BFFB9B9B9FFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFE4E4
    E4FFDADADAFF6E6E6EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9292
    92FFDBDBDBFFFEFEFEFFFCFCFCFFFBFAFAFFF9F8F8FFF7F6F6FFB2B1B1FF9292
    92FFF2F0F0FFF0EEEEFFEEECECFFECEAEAFFEAE8E8FF8D8C8CFFB9B9B9FFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFE5E5
    E5FFDBDBDBFF6E6E6EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9292
    92FFDBDBDBFFFFFFFFFFFFFFFFFFFEFEFEFFFDFCFCFFFBFAFAFFB4B3B3FF9292
    92FFF5F4F4FFF4F2F2FFF2F0F0FFF0EEEEFFEEECECFF8E8D8DFFB9B9B9FFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFE6E6
    E6FFDDDDDDFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E
    6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF9292
    92FF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFFB9B9B9FFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFE7E7
    E7FFDEDEDEFF6E6E6EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9292
    92FFDBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7B7B7FF9292
    92FFFDFDFDFFFBFBFBFFFAF9F9FFF8F7F7FFF6F5F5FF908F8FFFB9B9B9FFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFE8E8
    E8FFDFDFDFFF6E6E6EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9292
    92FFDBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7B7B7FF9292
    92FFFFFFFFFFFFFFFFFFFDFDFDFFFCFBFBFFFAF9F9FF919090FFB9B9B9FFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFE9E9
    E9FFE1E1E1FF6E6E6EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9292
    92FFDBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7B7B7FF9292
    92FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFF929292FFB9B9B9FFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFEAEA
    EAFFE2E2E2FF6E6E6EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9292
    92FFDBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7B7B7FF9292
    92FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF898989FFB9B9B9FFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFEBEB
    EBFFE3E3E3FF7D7D7DFFADADADFFF6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFF9292
    92FFDBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7B7B7FF9A9A
    9AFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6FFC0C0C0FF747474FFCCCCCCFFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFECEC
    ECFFE5E5E5FFCECECEFF939393FF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E
    6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E
    6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF818181FFBFBFBFFFD2D2D2FFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFEDED
    EDFFE6E6E6FFE5E5E5FFE4E4E4FFE3E3E3FFE3E3E3FFE2E2E2FFE1E1E1FFE0E0
    E0FFDFDFDFFFDEDEDEFFDDDDDDFFDCDCDCFFDBDBDBFFDADADAFFD9D9D9FFD9D9
    D9FFD8D8D8FFD7D7D7FFD6D6D6FFD5D5D5FFD4D4D4FFD3D3D3FFD2D2D2FFDDDD
    DDFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFEEEE
    EEFFE7E7E7FFE7E7E7FFE6E6E6FFE5E5E5FFE4E4E4FFE3E3E3FFE2E2E2FFE1E1
    E1FFE0E0E0FFDFDFDFFFDEDEDEFFDDDDDDFFDDDDDDFFDCDCDCFFDBDBDBFFDADA
    DAFFD9D9D9FFD8D8D8FFD7D7D7FFD6D6D6FFD5D5D5FFD4D4D4FFD3D3D3FFDEDE
    DEFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFEFEF
    EFFFE9E9E9FFD7CEC0FFBBA27DFFBBA17DFFBAA17CFFBAA07CFFB9A07BFFB9A0
    7BFFB99F7BFFB89F7AFFB89E7AFFB79E79FFB79D79FFB69D78FFB69C78FFB59C
    77FFB59B77FFB59B77FFB49B76FFB49A76FFB39A75FFCDC7BDFFD5D5D5FFDFDF
    DFFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFF0F0
    F0FFDFD8CFFF905D14FFC1974FFFC8A15BFFC8A25EFFC8A461FFC8A564FFC8A6
    66FFC8A767FFC8A868FFC8A869FFC8A869FFC8A868FFC8A766FFC8A665FFC8A5
    62FFC8A360FFC8A25DFFC8A059FFC89E56FFBA8C43FF946520FFD2CFCAFFE0E0
    E0FFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFF1F1
    F1FFBEA480FFC1954CFFFFFDFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF9FFA5742AFFC6B9A7FFE1E1
    E1FFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFF2F2
    F2FFBFA581FFC89C52FFFFFFFFFFFFE8B1FFFFEAB6FFFFEDBAFFFFEEBEFFFFF0
    C1FFFFF1C3FFFFF2C5FFFFF2C5FFFFF2C5FFFFF2C4FFFFF1C2FFFFEFBFFFFFEE
    BCFFFFECB8FFFFE9B3FFFFE6AEFFFFE3A9FFFFFFFFFFAC7B30FFC7BAA8FFE2E2
    E2FFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFF3F3
    F3FFBFA681FFC89B50FFFFFFFFFFFFEABAFFFFECBEFFFFEEC2FFFFEFC5FFFFF1
    C7FFFFF1C9FFFFF2CAFFFFF3CBFFFFF3CBFFFFF2CAFFFFF1C8FFFFF0C6FFFFEF
    C3FFFFEDC0FFFFEBBCFFFFE9B8FFFFE6B4FFFFFFFFFFAC7B2FFFC7BBA8FFE3E3
    E3FFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFF4F4
    F4FFC0A682FFC89A4EFFFFFFFFFFFFECC3FFFFEEC7FFFFEFC9FFFFF1CCFFFFF1
    CEFFFFF2CFFFFFF3D0FFFFF3D0FFFFF3D0FFFFF3D0FFFFF2CEFFFFF1CDFFFFF0
    CBFFFFEEC8FFFFEDC5FFFFEBC1FFFFE9BEFFFFFFFFFFAC7A2EFFC8BCA9FFE4E4
    E4FFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFF5F5
    F5FFC1A783FFC8984BFFFFFFFFFFFFEECDFFFFF0CFFFFFF1D1FFFFF2D3FFFFF3
    D4FFFFF3D6FFFFF4D6FFFFF4D7FFFFF4D7FFFFF4D6FFFFF3D5FFFFF2D4FFFFF1
    D2FFFFF0D0FFFFEFCEFFFFEECBFFFFECC8FFFFFFFFFFAC792DFFC9BDAAFFE5E5
    E5FFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFF6F6
    F6FFC1A883FFC89748FFFFFFFFFFFFF1D5FFFFF2D7FFFFF3D9FFFFF4DAFFFFF4
    DCFFFFF5DCFFFFF5DDFFFFF5DDFFFFF5DDFFFFF5DDFFFFF5DCFFFFF4DBFFFFF3
    DAFFFFF2D8FFFFF2D6FFFFF0D4FFFFEFD2FFFFFFFFFFAC792CFFCABEABFFE6E6
    E6FFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFF7F7
    F7FFC2A884FFC89545FFFFFFFFFFFFF4DEFFFFF4E0FFFFF5E1FFFFF5E2FFFFF6
    E3FFFFF6E3FFFFF6E4FFFFF7E4FFFFF7E4FFFFF6E3FFFFF6E3FFFFF6E2FFFFF5
    E1FFFFF5E0FFFFF4DFFFFFF3DDFFFFF2DCFFFFFFFFFFAC782AFFCCBFADFFE7E7
    E7FFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFF8F8
    F8FFC3A985FFC89442FFFFFFFFFFFFF6E7FFFFF7E8FFFFF7E8FFFFF8E9FFFFF8
    EAFFFFF8EAFFFFF8EAFFFFF9EBFFFFF9EBFFFFF8EAFFFFF8EAFFFFF8EAFFFFF7
    E9FFFFF7E8FFFFF7E7FFFFF6E6FFFFF5E5FFFFFFFFFFAC782AFFCCC0ADFFE8E8
    E8FFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFF9F9
    F9FFC3AA85FFC8923FFFFFFCF7FFFFF9EFFFFFF9F0FFFFFAF0FFFFFAF1FFFFFA
    F1FFFFFAF1FFFFFBF1FFFFFBF1FFFFFBF1FFFFFBF1FFFFFAF1FFFFFAF1FFFFFA
    F0FFFFFAF0FFFFF9EFFFFFF9EFFFFFF9EEFFFFFAF2FFAC782AFFCEC1AFFFE9E9
    E9FFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFFAFA
    FAFFD1BEA2FFA57124FFF8C776FFFFE1AFFFFFE2B1FFFFE3B3FFFFE4B5FFFFE5
    B7FFFFE6B8FFFFE6B9FFFFE6B9FFFFE6B9FFFFE6B8FFFFE5B7FFFFE5B6FFFFE4
    B4FFFFE3B2FFFFE1B0FFFFE1AFFFFFDEA6FFF1BD68FF976419FFD4CABDFFEAEA
    EAFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFB2B2B2FFFFFFFFFFFBFB
    FBFFF9F9F9FFB18E5BFF905D14FF905D14FF905D14FF905D14FF905D14FF905D
    14FF905D14FF905D14FF905D14FF905D14FF905D14FF905D14FF905D14FF905D
    14FF905D14FF905D14FF905D14FF905D14FF905D14FFB69970FFE5E5E5FFEBEB
    EBFFFFFFFFFFB2B2B2FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464FFA8A8A8FFFFFFFFFFFDFD
    FDFFFAFAFAFFF9F9F9FFF8F8F8FFF7F7F7FFF7F7F7FFF6F6F6FFF5F5F5FFF4F4
    F4FFF3F3F3FFF2F2F2FFF1F1F1FFF0F0F0FFEFEFEFFFEEEEEEFFEDEDEDFFEDED
    EDFFECECECFFEBEBEBFFEAEAEAFFE9E9E9FFE8E8E8FFE7E7E7FFE6E6E6FFF4F4
    F4FFFFFFFFFFA8A8A8FF646464FF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000646464CF777777FFFFFFFFFFFFFF
    FFFFFDFDFDFFFBFBFBFFFAFAFAFFF9F9F9FFF8F8F8FFF7F7F7FFF6F6F6FFF5F5
    F5FFF4F4F4FFF3F3F3FFF2F2F2FFF1F1F1FFF1F1F1FFF0F0F0FFEFEFEFFFEEEE
    EEFFEDEDEDFFECECECFFEBEBEBFFEAEAEAFFE9E9E9FFE8E8E8FFF0F0F0FFFFFF
    FFFFFFFFFFFF777777FF646464CF000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000064646460646464FF9E9E9EFFF5F5
    F5FFFFFFFFFFFEFEFEFFFDFDFDFFFCFCFCFFFCFCFCFFFBFBFBFFFBFBFBFFFBFB
    FBFFFAFAFAFFFAFAFAFFF9F9F9FFF9F9F9FFF8F8F8FFF8F8F8FFF7F7F7FFF7F7
    F7FFF6F6F6FFF6F6F6FFF6F6F6FFF5F5F5FFF5F5F5FFFAFAFAFFFFFFFFFFF5F5
    F5FF9E9E9EFF646464FF64646460000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000000000006464649F646464FF7777
    77FFA8A8A8FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2
    B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2
    B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFB2B2B2FFA8A8A8FF7777
    77FF646464FF6464649F00000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000646464506464
    64BF646464FF646464FF646464FF646464FF646464FF646464FF646464FF6464
    64FF646464FF646464FF646464FF646464FF646464FF646464FF646464FF6464
    64FF646464FF646464FF646464FF646464FF646464FF646464FF646464FF6464
    64BF646464500000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFF
    FFFFFFFF0000FFE0000003FF0000FFC0000001FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FF80000000FF0000FF80000000FF0000FF80000000FF0000FF80
    000000FF0000FFC0000001FF0000FFE0000003FF0000FFFFFFFFFFFF0000FFFF
    FFFFFFFF0000FFFFFFFFFFFF0000280000002000000040000000010020000000
    0000801000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    00000000000000000000000000000B0B0B114D4D4D6D747474F87D7D7DFF7D7D
    7DFF7D7D7DFF7D7D7DFF7D7D7DFF7D7D7DFF7D7D7DFF7D7D7DFF7D7D7DFF7D7D
    7DFF7D7D7DFF7D7D7DFF7D7D7DFF7D7D7DFF7C7C7CFF707070E07B7B7BFF3737
    3751000000000000000000000000000000000000000000000000000000000000
    00000000000000000000000000004D4D4D757D7D7DF4FAFAFAFFFFFFFFFFFCFC
    FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFFFCFCFCFF7474
    74F58181812A0000000000000000000000000000000000000000000000000000
    0000000000000000000000000000747474FAF6F6F6FFFBFBFBFFE1E1E1FF8787
    87FF969696FF969696FF969696FF969696FF969696FF969696FF969696FF9696
    96FF969696FF969696FF969696FF969696FF969696FFFFFFFFFFFBFBFBFFFAFA
    FAFF838383F40000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFEAEAEAFF969696FFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFF969696FFFFFFFFFFFFFFFFFFFFFFFFFFE3E0
    E0FF969696FFFFFFFFFFE7E7E7FFE7E7E7FFE7E7E7FF969696FFEAEAEAFFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFD9D9D9FF969696FFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFF969696FFFFFFFFFFFFFFFFFFFFFFFFFFE3E0
    E0FF969696FFFFFFFFFFFFFFFFFFFFFFFFFFE7E7E7FF969696FFD9D9D9FFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFDADADAFF969696FFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFF969696FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    FFFF969696FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF969696FFDADADAFFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFDCDCDCFF969696FF9696
    96FF969696FF969696FF969696FF969696FF969696FF969696FF969696FF9696
    96FF969696FF969696FF969696FF969696FF969696FF969696FFDCDCDCFFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFDEDEDEFF969696FFFFFF
    FFFFF2F2F2FFF0EFEFFFFFFFFFFF969696FFFFFFFFFFE6E4E4FFE4E2E2FFFAF9
    F9FF969696FFFFFFFFFFFFFFFFFFFFFFFFFFE7E7E7FF969696FFDEDEDEFFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFE0E0E0FF969696FFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFF969696FFFFFFFFFFF7F6F6FFF5F4F4FFFAF9
    F9FF969696FFFFFFFFFFFFFFFFFFFFFFFFFFE7E7E7FF969696FFE0E0E0FFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFE1E1E1FF969696FFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFF969696FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    FFFF969696FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF969696FFE1E1E1FFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFE3E3E3FF969696FF9696
    96FF969696FF969696FF969696FF969696FF969696FF969696FF969696FF9696
    96FF969696FF969696FF969696FF969696FF969696FF969696FFE3E3E3FFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFE4E4E4FF969696FFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFF969696FFFFFFFFFFFFFFFFFFFFFFFFFFFBFB
    FBFF969696FFFFFFFFFFFBFAFAFFFBFBFBFFE7E7E7FF969696FFE4E4E4FFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFE6E6E6FF969696FFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFF969696FFFFFFFFFFFFFFFFFFFFFFFFFFFBFB
    FBFF969696FFFFFFFFFFFFFFFFFFFBFBFBFFE7E7E7FF969696FFE6E6E6FFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFE8E8E8FF969696FFFBFB
    FBFFFDFDFDFFFFFFFFFFFFFFFFFF969696FFFFFFFFFFFFFFFFFFFFFFFFFFFBFB
    FBFF969696FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF969696FFE8E8E8FFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFEAEAEAFFDADADAFF9696
    96FF969696FF969696FF969696FF969696FF969696FF969696FF969696FF9696
    96FF969696FF969696FF969696FF969696FF969696FFE8E8E8FFEAEAEAFFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFEBEBEBFFE6E6E6FFE5E5
    E5FFE3E3E3FFE2E2E2FFE1E1E1FFDFDFDFFFDEDEDEFFDCDCDCFFDBDBDBFFDADA
    DAFFD9D9D9FFD7D7D7FFD6D6D6FFD4D4D4FFD3D3D3FFE8E8E8FFEBEBEBFFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFECEBEAFFCCBCA4FFB290
    5FFFB2905FFFB2905FFFB2905FFFB2905FFFB2905FFFB2905FFFB2905FFFB290
    5FFFB2905FFFB2905FFFB2905FFFB2905FFFB2905FFFCBC4B9FFECEBEAFFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFE3DCD3FFB2905FFFFFFC
    F9FFFFFCF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFFB2905FFFE3DCD3FFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFE1D8CCFFB2905FFFFFFF
    FFFFFFEAB7FFFFEDBDFFFFEFC2FFFFF1C5FFFFF2C6FFFFF2C6FFFFF1C4FFFFEF
    C0FFFFEDBBFFFFE8B4FFFFE5AEFFFFE5AEFFFFFFFFFFB2905FFFE1D8CCFFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFE2D9CDFFB2905FFFFFFF
    FFFFFFECC2FFFFEFC7FFFFF0CBFFFFF2CDFFFFF2CEFFFFF2CEFFFFF2CCFFFFF0
    C9FFFFEEC6FFFFEBC0FFFFE8BBFFFFE8BBFFFFFFFFFFB2905FFFE2D9CDFFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFE3DBCFFFB2905FFFFFFF
    FFFFFFF0D1FFFFF2D4FFFFF3D6FFFFF3D8FFFFF4D8FFFFF4D8FFFFF3D7FFFFF2
    D5FFFFF1D3FFFFEFCFFFFFEDCCFFFFEDCCFFFFFFFFFFB2905FFFE3DBCFFFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFE5DCD0FFB2905FFFFFFF
    FFFFFFF3DCFFFFF4DEFFFFF5E0FFFFF5E1FFFFF6E1FFFFF6E1FFFFF5E0FFFFF5
    DFFFFFF4DDFFFFF2DBFFFFF1D9FFFFF1D9FFFFFFFFFFB2905FFFE5DCD0FFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFE6DED1FFB2905FFFFFFC
    F9FFFFF7EAFFFFF8EBFFFFF8ECFFFFF8ECFFFFF9ECFFFFF9ECFFFFF8ECFFFFF8
    ECFFFFF8EAFFFFF7E9FFFFF6E8FFFFF6E8FFFFFCF9FFB2905FFFE6DED1FFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFEAE3D9FFB2905FFFFFF5
    E5FFFFE9C5FFFFEAC7FFFFEBC9FFFFECCBFFFFEDCBFFFFEDCBFFFFECCAFFFFEB
    C9FFFFEAC7FFFFE9C4FFFFE7C0FFFFE7C0FFFFF5E5FFB2905FFFEAE3D9FFFFFF
    FFFF7D7D7DFF0000000000000000000000000000000000000000000000000000
    00000000000000000000000000007D7D7DFFFFFFFFFFFAFAFAFFD9C9B2FFB290
    5FFFB2905FFFB18F5FFFB18F5EFFB08E5EFFB08E5DFFAF8D5DFFAF8D5CFFAF8D
    5CFFAE8C5CFFAE8C5BFFAD8B5BFFAD8B5BFFAD8B5BFFDBD4CBFFFAFAFAFFF8F8
    F8FF7D7D7DFF0000000000000000000000000000000000000000000000000000
    0000000000000000000000000000747474FAF6F6F6FFFDFDFDFFFAFAFAFFF9F9
    F9FFF7F7F7FFF6F6F6FFF5F5F5FFF3F3F3FFF2F2F2FFF0F0F0FFEFEFEFFFEEEE
    EEFFEDEDEDFFEBEBEBFFEAEAEAFFE8E8E8FFEBEBEBFFFCFCFCFFFDFDFDFFAFAF
    AFFF838383F40000000000000000000000000000000000000000000000000000
    00000000000000000000000000004D4D4D757D7D7DF4D2D2D2FFE3E3E3FFE3E3
    E3FFE3E3E3FFE2E2E2FFE2E2E2FFE2E2E2FFE1E1E1FFE1E1E1FFE0E0E0FFE0E0
    E0FFDFDFDFFFDFDFDFFFDEDEDEFFDFDFDFFFE2E2E2FFE2E2E2FFE2E2E2FF7070
    70E98181812A0000000000000000000000000000000000000000000000000000
    00000000000000000000000000000B0B0B114D4D4D6D6F6F6FE27C7C7CFF7E7E
    7EFF7E7E7EFF7E7E7EFF7E7E7EFF7E7E7EFF7E7E7EFF7E7E7EFF7E7E7EFF7E7E
    7EFF7E7E7EFF7E7E7EFF7E7E7EFF7E7E7EFF7B7B7BFF707070E07B7B7BFF3737
    3751000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFC00
    001FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00
    000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00
    000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00
    000FFC00000FFC00000FFC00001FFFFFFFFFFFFFFFFF28000000180000003000
    0000010020000000000060090000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000989898148C8C8CD9797979F37979
    79F3797979F3797979F3797979F3797979F3797979F3797979F3797979F37979
    79F3797979F30000000000000000000000000000000000000000000000000000
    000000000000000000000000000098989818737373F3FFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFF9B9B9BFF00000000000000000000000000000000000000000000
    00000000000000000000000000008C8C8CDAFFFFFFFFF8F8F8FFB4B4B4FF9292
    92FF969696FF969696FF969696FF969696FF969696FF969696FF969696FFD8D8
    D8FFFFFFFFFFFFFFFFFF797979F3000000000000000000000000000000000000
    0000000000000000000000000000797979F3FFFFFFFFDBDBDBFF929292FFFAFA
    FAFFE8E5E5FF929191FFF8F7F7FFDDD9D9FF939393FFEFEFEFFFD2CDCDFF9493
    93FFDBDBDBFFFFFFFFFF8B8B8BFF000000000000000000000000000000000000
    0000000000000000000000000000797979F3FFFFFFFFD8D8D8FF969696FFFCFB
    FBFFEFEDEDFF969696FFF9F9F9FFE4E1E1FF969696FFFFFFFFFFDAD5D5FF9696
    96FFD8D8D8FFFFFFFFFF8B8B8BFF000000000000000000000000000000000000
    0000000000000000000000000000797979F3FFFFFFFFDBDBDBFF969696FFB5B4
    B4FFB3B2B2FF969696FFAFAEAEFFADACACFF969696FF9B9999FFA8A6A6FF9696
    96FFDBDBDBFFFFFFFFFF8B8B8BFF000000000000000000000000000000000000
    0000000000000000000000000000797979F3FFFFFFFFDDDDDDFF969696FFFFFF
    FFFFFDFDFDFF969696FFF7F7F7FFF4F2F2FF969696FFF3F3F3FFE9E6E6FF9696
    96FFDDDDDDFFFFFFFFFF8B8B8BFF000000000000000000000000000000000000
    0000000000000000000000000000797979F3FFFFFFFFDFDFDFFF969696FFFFFF
    FFFFFFFFFFFF969696FFFEFEFEFFFBFBFBFF969696FFF4F4F4FFF1EFEFFF9696
    96FFDFDFDFFFFFFFFFFF8B8B8BFF000000000000000000000000000000000000
    0000000000000000000000000000797979F3FFFFFFFFE2E2E2FF969696FFB6B6
    B6FFB6B6B6FF969696FFB6B6B6FFB6B6B6FF969696FFA3A3A3FFB4B4B4FF9696
    96FFE2E2E2FFFFFFFFFF8B8B8BFF000000000000000000000000000000000000
    0000000000000000000000000000797979F3FFFFFFFFE4E4E4FF969696FFFFFF
    FFFFFFFFFFFF8F8F8FFFFFFFFFFFFFFFFFFF8F8F8FFFF6F6F6FFFEFEFEFF9696
    96FFE4E4E4FFFFFFFFFF8B8B8BFF000000000000000000000000000000000000
    0000000000000000000000000000797979F3FFFFFFFFE6E6E6FF919191FFFCFC
    FCFFFFFFFFFF888888FFFFFFFFFFFFFFFFFF929292FFF6F6F6FFFFFFFFFF9292
    92FFE6E6E6FFFFFFFFFF8B8B8BFF000000000000000000000000000000000000
    0000000000000000000000000000797979F3FFFFFFFFE9E9E9FFCACACAFF9292
    92FF969696FF969696FF969696FF969696FF969696FF969696FF969696FFCDCD
    CDFFE9E9E9FFFFFFFFFF8B8B8BFF000000000000000000000000000000000000
    0000000000000000000000000000797979F3FFFFFFFFEBEBEBFFD7CFC2FFD2D0
    CEFFD2D0CEFFD2D0CEFFD2D0CEFFD2D0CEFFD2D0CEFFD2D0CEFFD2D0CEFFD2D0
    CEFFEBEBEBFFFFFFFFFF8B8B8BFF000000000000000000000000000000000000
    0000000000000000000000000000797979F3FFFFFFFFDFD7CCFFB78842FFB788
    42FFB78842FFB78842FFB78842FFB78842FFB78842FFB78842FFB78842FFB788
    42FFDFD7CCFFFFFFFFFF8B8B8BFF000000000000000000000000000000000000
    0000000000000000000000000000797979F3FFFFFFFFD2D0CEFFB78842FFFFEA
    B7FFFFEEBFFFFFF0C5FFFFF2C7FFFFF2C7FFFFF0C3FFFFEDBDFFFFE8B5FFB788
    42FFD2D0CEFFFFFFFFFF8B8B8BFF000000000000000000000000000000000000
    0000000000000000000000000000797979F3FFFFFFFFD2D0CEFFB78842FFFFEE
    C9FFFFF0CEFFFFF2D1FFFFF3D3FFFFF3D3FFFFF2D1FFFFEFCDFFFFEDC7FFB788
    42FFD2D0CEFFFFFFFFFF8B8B8BFF000000000000000000000000000000000000
    0000000000000000000000000000797979F3FFFFFFFFD2D0CEFFB78842FFFFF2
    DAFFFFF4DDFFFFF5DFFFFFF5E0FFFFF5E0FFFFF5DFFFFFF3DCFFFFF2D9FFB788
    42FFD2D0CEFFFFFFFFFF8B8B8BFF000000000000000000000000000000000000
    0000000000000000000000000000797979F3FFFFFFFFD2D0CEFFB78842FFFFF7
    EBFFFFF8ECFFFFF9EDFFFFF9EDFFFFF9EDFFFFF9EDFFFFF8ECFFFFF7EAFFB788
    42FFD2D0CEFFFFFFFFFF8B8B8BFF000000000000000000000000000000000000
    0000000000000000000000000000797979F3FFFFFFFFEFEBE4FFB78842FFB788
    42FFB78842FFB78842FFB78842FFB78842FFB78842FFB78842FFB78842FFB788
    42FFEFEBE4FFFFFFFFFF8B8B8BFF000000000000000000000000000000000000
    0000000000000000000000000000797979F3C7C7C7FFFCFCFCFFF9F9F9FFF7F7
    F7FFF6F6F6FFF4F4F4FFF2F2F2FFF0F0F0FFEEEEEEFFEDEDEDFFEBEBEBFFE9E9
    E9FFE9E9E9FFFCFCFCFF797979F3000000000000000000000000000000000000
    000000000000000000000000000098989818797979F3797979F3797979F37979
    79F3797979F3797979F3797979F3797979F3797979F3797979F3797979F37979
    79F3797979F3797979F300000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000000000000000000000000000FFFF
    FF00F8003F00F0001F00F0000F00F0000F00F0000F00F0000F00F0000F00F000
    0F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F000
    0F00F0000F00F0000F00F0000F00F0000F00F0001F00FFFFFF00FFFFFF002800
    0000100000002000000001002000000000004004000000000000000000000000
    00000000000000000000000000000000000000000000797979F3797979F37979
    79F3797979F3797979F3797979F3797979F3797979F3797979F3000000000000
    000000000000000000000000000000000000797979FFFFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF797979F30000
    000000000000000000000000000000000000797979F3EDEDEDFF919191FF9191
    91FF919191FF919191FF919191FF919191FF919191FFEDEDEDFF797979F30000
    000000000000000000000000000000000000797979F3EEEEEEFF919191FFFFFF
    FFFFFFFFFFFF919191FFFFFFFFFFFFFFFFFF919191FFEEEEEEFF797979F30000
    000000000000000000000000000000000000797979F3EFEFEFFF919191FF9191
    91FF919191FF919191FF919191FF919191FF919191FFEFEFEFFF797979F30000
    000000000000000000000000000000000000797979F3F0F0F0FF919191FFFFFF
    FFFFFFFFFFFF919191FFFFFFFFFFFFFFFFFF919191FFF0F0F0FF797979F30000
    000000000000000000000000000000000000797979F3F1F1F1FF919191FF9191
    91FF919191FF919191FF919191FF919191FF919191FFF1F1F1FF797979F30000
    000000000000000000000000000000000000797979F3F2F2F2FF919191FFFFFF
    FFFFFFFFFFFF919191FFFFFFFFFFFFFFFFFF919191FFF2F2F2FF797979F30000
    000000000000000000000000000000000000797979F3F3F3F3FF919191FF9191
    91FF919191FF919191FF919191FF919191FF919191FFF3F3F3FF797979F30000
    000000000000000000000000000000000000797979F3F4F4F4FFF4F4F4FFF4F4
    F4FFF4F4F4FFF4F4F4FFF4F4F4FFF4F4F4FFF4F4F4FFF4F4F4FF797979F30000
    000000000000000000000000000000000000797979F3F5F5F5FFB78842FFB788
    42FFB78842FFB78842FFB78842FFB78842FFB78842FFF5F5F5FF797979F30000
    000000000000000000000000000000000000797979F3F6F6F6FFB78842FFFFF5
    E5FFFFF5E5FFFFF5E5FFFFF5E5FFFFF5E5FFB78842FFF6F6F6FF797979F30000
    000000000000000000000000000000000000797979F3F7F7F7FFB78842FFFFF0
    D1FFFFF2D4FFFFF0D1FFFFF0D1FFFFF2D4FFB78842FFF7F7F7FF797979F30000
    000000000000000000000000000000000000797979F3FFFFFFFFB78842FFB788
    42FFB78842FFB78842FFB78842FFB78842FFB78842FFFFFFFFFF797979F30000
    000000000000000000000000000000000000797979FFFFFFFFFFFFFFFFFFFFFF
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF797979F30000
    00000000000000000000000000000000000000000000797979F3797979F37979
    79F3797979F3797979F3797979F3797979F3797979F3797979F3000000000000
    000000000000F0070000E0030000E0030000E0030000E0030000E0030000E003
    0000E0030000E0030000E0030000E0030000E0030000E0030000E0030000E003
    0000F0070000}
  OldCreateOrder = False
  OnCreate = FormCreate
  OnDestroy = FormDestroy
  PixelsPerInch = 96
  TextHeight = 13
  object pnlBottom: TPanel
    Left = 0
    Top = 533
    Width = 884
    Height = 41
    Align = alBottom
    TabOrder = 0
    object Label12: TLabel
      Left = 264
      Top = 8
      Width = 300
      Height = 13
      Caption = 'Laat muisaanwijzer op buttons rusten om  te zien wat zij doen.'
    end
    object dbnavKlanten: TDBNavigator
      Left = 24
      Top = 8
      Width = 210
      Height = 25
      DataSource = dsKlanten
      VisibleButtons = [nbPrior, nbNext, nbInsert, nbDelete, nbEdit, nbPost, nbCancel]
      Hints.Strings = (
        'Spring naar eerste klant'
        'Vorige klant'
        'Volgende klant'
        'Spring naar laatste klant'
        'Voeg nieuwe klant toe'
        'Verwijder geselecteerde klant'
        'Bewerk geselecteerde klant'
        'Sla aangebrachte wijzingen op in database'
        'Annuleer bewerking'
        'Maak gegevens up to date')
      ParentShowHint = False
      ShowHint = True
      TabOrder = 0
    end
  end
  object PageControl1: TPageControl
    Left = 0
    Top = 0
    Width = 884
    Height = 533
    ActivePage = tbsKlanten
    Align = alClient
    TabOrder = 1
    object tbsKlanten: TTabSheet
      Caption = 'Alle klanten onder elkaar weergeven'
      ImageIndex = 3
      object GRID2: TDBGrid
        Left = 0
        Top = 0
        Width = 673
        Height = 201
        Align = alCustom
        DataSource = dsKlanten
        TabOrder = 0
        TitleFont.Charset = DEFAULT_CHARSET
        TitleFont.Color = clWindowText
        TitleFont.Height = -11
        TitleFont.Name = 'Tahoma'
        TitleFont.Style = []
        OnMouseMove = GRID2MouseMove
        OnTitleClick = GRID2TitleClick
        Columns = <
          item
            Expanded = False
            FieldName = 'KlantID'
            Visible = False
          end
          item
            Expanded = False
            FieldName = 'Nummer'
            Visible = True
          end
          item
            Expanded = False
            FieldName = 'Datum'
            Visible = True
          end
          item
            Expanded = False
            FieldName = 'Naam'
            Visible = True
          end
          item
            Expanded = False
            FieldName = 'Adres'
            Visible = True
          end
          item
            Expanded = False
            FieldName = 'Postcode'
            Visible = True
          end
          item
            Expanded = False
            FieldName = 'Woonplaats'
            Visible = True
          end
          item
            Expanded = False
            FieldName = 'Telefoon'
            Visible = True
          end
          item
            Expanded = False
            FieldName = 'Mobiel'
            Visible = True
          end
          item
            Expanded = False
            FieldName = 'Email'
            Visible = True
          end
          item
            Expanded = False
            FieldName = 'Opmerkingen'
            Visible = True
          end>
      end
      object DBMemo1: TDBMemo
        Left = 688
        Top = 8
        Width = 169
        Height = 193
        DataField = 'Opmerkingen'
        DataSource = dsKlanten
        TabOrder = 1
      end
    end
    object tbsInformatie: TTabSheet
      Caption = 'Informatie'
      ImageIndex = 2
      object Image1: TImage
        Left = 184
        Top = 232
        Width = 401
        Height = 209
        Picture.Data = {
          0A544A504547496D6167659E2A0000FFD8FFE000104A46494600010101006000
          600000FFDB004300140E0F120F0C14121012161514181E32201E1C1C1E3D2C2E
          243248404C4B47404645505A736250556D5645466488656D777A8182814E608D
          978C7D96737E817CFFDB0043011516161E1A1E3B20203B7C5246527C7C7C7C7C
          7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C
          7C7C7C7C7C7C7C7C7C7C7C7C7CFFC0001108012B018E03012200021101031101
          FFC4001A000003010101010000000000000000000001020300040506FFC40038
          1000010303020502040504020203010000010002110312213141041322516171
          813291A1F00542B1C1D11423E1F13352537206248292FFC40019010101010101
          0100000000000000000000000102030405FFC400221101010101000202030100
          030000000000000111021221033113415161225271FFDA000C03010002110311
          003F0089ACD1D2C7123CA475407451777801292BD2E4B5ECDD12699F84E57368
          6500ECF6545EE1A242013D906BA7558C0DF2A0CE067BAC1E404B77940B842A2E
          DE26DD7298714C3AAE32425233AA60F439949DA1F9AC49D5AE047AAE10613B67
          5072983B1B54B4E426355AE6E0410B88BAA1D5DF54439C4404C152F0E299B5B9
          7A120A8B643B407D51741C9194151C53A5599C448832B8A76854612107A0C7F7
          2ACDB34DD79EDA99CAB8AB742981EA12D774E8A46A02616A8EEF951734EA1588
          B5C8388D41526927081046AA86E649C1541D4DEA5CB6C3A559B560664A04AACD
          C29349577F568A2F64650025296CE569088778551835346212C9D93B5A481064
          A8AD109C18D93B69F78946D00C140A1F0344ED75DB270D698023DD3DAD076F65
          006676558119469398C1300FBA352A87B60001413BBB68835D9C8940B0F748F3
          6B70A8ECA75A9B411609EE546B753E461730AE408858D571D4A61A3524092028
          1714CF71294093A2A81256CA60C9394D601B2A135413968423B205596216550A
          5A46B9484C2E88270854A6161B736AB446C9DCD2DD1219441C04A5CB415A1508
          4A125310820C1A4A10653B64190A86B39CD01D90344120D29DAD71DD0BA4E888
          23BC207141E44813EE843818ECB36B3808056B8EA091E8A2A94DB76A729DCC25
          D98F652BBBA66D48405E06A029B9C0774F74EC94B41D554287C2BD3A8B9C88D1
          169F083A8D4C6166BAE50C9D1101C0E1074169056B6E1952151FA26153BA0269
          DBA25B729F9808D5090805A7C205B3A94DEEB44EE8246989D650E5E55B0112D2
          42226D61053C1D8E569B5691B040A5AE1AAC094F251C7608141EEA9617688003
          B2A440C140B0E1829A9868390B498C84F98D028A62E04E90A4E6CA3994FCA2E6
          DC6420E77519D00496C1C85D9606EA09F54B007E508394B7B276C08244AB1A63
          55370CE0C2057381D0424249DD316C6E90B7B2A81BEAB4F942D4C008D15429CA
          D6CECA94E99715634C371FB268E20E3B159CF2941216F5596C3999CA60E6B8E4
          252C942D85514B41384AE64688B414F6984102D49ECBA4B4252D693AA08844A6
          2CEC52C20CD6A570CA6CA1065000135D84D1840B6102C94C0EE844A21A7B2A1D
          B9D4A6C4A94653CA8281923640D32344A2A084EDA9DF080096A7041D56104612
          91D9054011940B06C92D2460AD6BFBCA21AD0755ACC611660F52A8613F0FC904
          2C329830AA1691A820A19F2812084C20205D94AE78545480E0A65A021718464C
          65029241C142E74CA25D1B2174A06B894C1E614AE0B078941D0D793AA7698516
          B81550F1EAA0A88D4A05E5BF0A40F04C27B621035EE78C9294E324A705B0B0A4
          D7EE01DA5452730429BC82ABC892448C2069007593E8AA22405AD9D150B0A2CA
          4F260094112D23085A42EA345F30731DB299944BB1040F44D1CA04A7980BB0F0
          A1ADF1B994453634C1681ECA698F0418D51BB0B100A160EEAA85C7BA70F8D424
          85A15454546A06A4E892D2B41514F714A64E5093B946250003CAC64260D08D81
          04C95A2772AA19E5358364136CB4F759CEBB50026730EA92D23541A3085C4231
          9CAD82AA04C9546D3E9920C20019C2A5EF31392374090D880C93B20E6BAD0608
          0AB73F771CA5327525401B81B0F744BCE84CA0004E001A340F7419A49CE81599
          060295D73B253D84B81E90DF2515DA3866902D00FAEAB7F4BFF5807CA834BE6D
          616FD51352B03824FA059F62C7867E09209F290D17C803A92B6B9FCC20CE551C
          E81707DBE213D8954A26322D8D948511A90AF7B9C752E03C20F2EF2276215D12
          E48230129A6AED3558218FF9853A9CE71370055D441FD38907DD25B3A0552D83
          25B28BAE890D007854731082A13E252EBA0550418445480960EE820A8A84AA0A
          A4EA573A605305DB536571530047BAE3DF0A8D7DBA2983A8CCCE729AEB5A7A1B
          8DE572739F07A8A50E2724A98BAE87F1176A23D10A6F71383F353693321539F1
          0396D246E72983A1A1FABAADB1D93833F1D779F26572BABB9E0E009ECA609953
          0D779E2DB484037E3B4299E2AE6C16031BC2E5133954C14C35E5A10A84210B61
          24846E94C02D1D902A3EE8DA5685005A3B2299A810828490AA4A52812E3DD10F
          2B16CADCB28281D28CC952B484D9D9050303957FA5305C2080270B9A5C374C2A
          3C8F8B4415145ED896913DD3F2FA6402635C290AF5008B8FCD3BB887BC4124FA
          953DA83489CE8890DED84849DD16D520FA221C18CD808F453765D39015071056
          150F6242090249C01EABA69435B35003EE91AF6FFE304F957A6D2D009A008ED2
          72A5586A629DC6208EC02B542D886103B82573DAE27FE2E58F5DBDD3546BADD0
          91E4ACE2A6E702E8204F84DCB6989AADF441B4444B8FCB298D091D324FA2A87A
          4CA6DC979689D0BA11796910722706E951340C8383EE98D37B33CC6B476B9017
          3003F1183DCE566BDAD121CEF328063EA1C194BA4822150EF2C2DBA4389F1093
          98D820B004AD01DEC816762AE21496F324081E8838B4BB74DD23646E6C4583D6
          72AA219CE011E4A4895D25AD23E184A29ABA39E1185734C25B21342B69889256
          B6135B099AD61F89C47B20CC6B4A6B00318F655A668B34C8F2117BE99FF8E5AA
          046D2755F819F2090B1D4DD0E09B1B094034940416F64CD65DFF0051EA50B1C4
          E1358E8CCA0CE6371D72869A47BA36985835070DAB5A61728AF5290870690D22
          21B07DC6EAECE218E00F509EED385CF8F9675F7E9ABCD86B16B0AA4C44EE83DE
          18D2E768BAB29DA52B9C1B009C93000D4949C5F16290B5841A84038C812A5C1D
          769A8D6D5A961D03A2E33DCFD02E5DFCB93D353974B7A848323B8460A5E22AF2
          EAB9CCBAA481369E9035FE5352AA2B36E635F6CC5D18538F96753DFA2F2104A1
          0AF6672858BB32964232556C1B84032504826B88D309CB610B104F2B054B085A
          DF0813299A9AD28D9E10098F54492E0013202C1AB414C0406EE9DA5CD13A853B
          7CA3D43424260A8AC40B6607844710F0752078715022510D254C3566F14E63A5
          AE77BACEE28D41063E4A3615ACCA6435415DC220E0261C53C19273B2916EC9C3
          463125321ACEAD55CEB8B9D3EA943C8CE6551AD04667D9134C6C493E427A5337
          88A9661C4293DEF73A5C64A24103085A4E5310A495A5182B4154685848D168F0
          8DA511AE2B03DCA60CEE8F2C92514A4843055392E89C2CDA2EF0102001306072
          7E5DBF9BE488A6E26609940858020001B056345C07C247B21CA3B840880954E4
          91A858B0F64130E70D0C26E63B77146C28B5837442DF3BA7071B258683A26E94
          1F3AEA75695625C1AE00499C83F70A82A360B8B18C718C7AE88D2A80B8E4B983
          56EE16A3423FE26925DACB6ED3B7DFE8BE63B8B186A34595A0B1C445DD4276F1
          A14BC551E24D3A6FB854A7F94B5D3BE09F2AAEA65A5CF75C2A6871006A7DD62E
          7B9A25CE736645AEEFFB2B3BB07016DB4DD70175D11B8EFF007E12B70E918ECB
          B9DC3B2D2E2EB71B0CC2E5A9C3D5653150B0861DFB1ECBA4EE51D6DA61EC60A8
          E2EDDBD33AE81529B4D2A60D22E067A6361235FAA8D171AC5AC2C36EF0331DD7
          75073006B5B4EF07224C9CFBFAF858BE8351A55070ED7BBE1271DF529AD2BA38
          2BDDC38A45A0822E1DBDBE89002479DD7A7E0F937FE358EF9CF6980423AEB954
          B56B57A182433B2C58D8C27B56B70827605AD00689E11B504C7A2249EC07A2A5
          AD42D08251BC2DAAAD8B0A6A89168D96B55AC08D888886F845AC2DCC2A8169D2
          5624945243A6611FFF00213C98414C0018FC8D299AF3B3447628653623E10983
          73046802C6B3AD893F3420765ADF09869092504F6A218AA270656CAA5A8C2098
          09A13C78440308100C8DD54388C5ADF921108893A953144913D9292376A78908
          16F75302DE3FE8130A8FDB0B06C23015C00D479192802E1BA6B4775CFC5F1547
          84A45CF20BF664E4A9EA0ABDF634B9F5035A352E2BCBE23F1887470EC073F13F
          7F65C1C5F14FE2AADEFC01F0B46814172EBBFE3739FEBD4A7F8BBF57D1690702
          0C6775E870FC4D3E244B1AF6CE97467D17CDB490F6EB683242EA6710DA3C58A8
          C6F4913683A1FD9667C9D45F18FA02DB417388006492A14F8DE12A036D7688FF
          00B1B7F55E371DC457A8FE5D4A97359A699F26375C80C2DFE5FE2783A98431AE
          77C577540FDD5038BE9B418B67469B4C4611A949F4DEEA41A5A0CC8031B2935E
          582D7C3A06BE3EFF0045E06DE8D0E29F4EA16F110FE1DCDC54F3F7DD4EB0E1E9
          B8B9B02E121DB7A1ECA0DAA2870C4B402D33D275D7FC2A9A6D7B1D165EE12244
          FD145D6349EF0EAAC71711889C951A8DA86912D1F14838D152955751B416361C
          245A574D2A7C3F12C739CE70791811BF63EE93D126BCC1346A53735865AD325D
          DBFD2EFA07A035F4F9558BB1030447FB54653A2D6D8E6B4BDA0F493AFA29D50C
          B58E74DAF3121D31D8615D31D0CB43853E63A240BC0C8DB07CFD25335CC65474
          5E4DD0E92081F25E735CE0CC1374E0B559B5016935A1CE0DD474C9FF004AF3D7
          8DD897DCC7A562D62970754729A1CEE9D0783DBEFB15DB62FA1C773A9B1CACC7
          3DA8DAAF6F85AC5B442D4437C2B5885A8245A3B216057B16B02085A16B55AC46
          C410B11B02B58B589A2362D6056B16B1046C08D82156C5AD412B16B156D5AD41
          2B16B15AD460A6885851B4AB415A13446C5AD57B50B1344A16B556C5AC412B56
          B556D5AD412846D55B56B504AD41E594DA5CF706B46A4980A3C77E2147826C62
          A5498B01D3D7B2F038BE3AB7164735D0D06435A20059EBB91673AF5B8AFC5A8D
          264508AAFC8EC079F2BC5AD5AA57A97D67DCE53010182B8DEAD749243131AA01
          C0ADAECB0002CAB199D516C821CD710E1A10B636400720A55782C68B45E35777
          52840C8D5336E74F493E8A0FA1AB5693CDD5A93D8FFF00B161007B85071A2E60
          A6EA0D7033046C12FF0054E6D06B492E83AC608FD9529516546F4D17377E9FBC
          AF337BAE1E5B1BD2D6BB04903EFD93D37168225C1A5DA9232BBDBC2F0A6E1C43
          AAB1FA096E9F448EFC35B602E7F31844B7C29633E35C155AC6B5B73EE1E4CEFE
          53B2A064BDA402467330507D20CAB04888883DFBC21CA9739CC241691A64CA32
          ED7867154CC301A81B01C1719A8D0F6CB9C1DA1C099DD5387A8CA6E05924910E
          691BA9F1E0D4AAD2FA6DEF2CDBD61591A2DE3996B23067AB577F29856A756E6D
          3325A33030A6CA6F7540D34E29DD2D9F98FDD1344D37C3BE204ED3B7F1BA5475
          70C596868746093E7C2F4383E329B9818F2D68180E9C1F1E178F2E9B1E29833A
          CE4F6F7C2E87D4145B616BA5D1DB3E56B8EEF376266BDFB16B1795C07E28DA41
          94B882608024EC77FD97B4CB6A34398E0E69D08320AF673F24E99C4AC5AC57B1
          6B16F5310B16B15EC5AC4D310B56B55EC5AC4D310B56B15EC5AC4D310B16B15E
          C5AC4D311B56B55AC5AD4D311B56B55AD5AD4D311B56B55AD46D4D310B56B55E
          D5AD4D311B56B55AD5AD4F2311B56B55AD5AD4D311B56B55AD52E22B51E16973
          2BBC3193127BA791816AF17F14FC5DA1A68F06E971F8AA0DBD3F95C7F897E2D5
          38D269B059401C37777AAF3B7958EBBFE3539124BC97389249924EA52E0B911A
          7940372B9B4DF9602C0C0C224794A6106C9CA231A94364204281EC912CCC093E
          10CA04A6682FC03303440A3D138739A65A483E11E5B8B039A6F24491B8481C63
          441E90757609A2EE9204B4B657570EFE21EF8003637185E7BEE681CB0E1D3F10
          D8768459C51BD81AFC386081A7AAF2ACAF5E8F3DE1D755370CC12A95C3DF4A2F
          2E74E446CBCEE16A56706D4ACE3A448D4E57697EB7C16FC52468ADADCAE1E229
          9024BAE1E4E573B2A39959ED700D69D3EABD2AAD6D4A61C1B7B41D5A4FE8B85C
          C632A16BDB236332429E98B0844B5CFEA6989240DA166BF98E63838D80EA7BFF
          00B4F0DA606A5BE4C47A7EA8D1A4C7B496D46B89D09D74FF00011167318E0D2D
          351A499698900FA2355952A497961734FC44448FBFD148D6AEC636D0D0E06D2D
          70C1F2B52E268D4A93C43796EDC067D7595A8D4C468527B6A43DA4C75169CFDF
          FB5AA5573E69BC4B41904CE174572057BE9D46C0D609008DBDBF95C9CF05CDB5
          BA9B6671F729FEA5C8534AB53FEEC1AAD3BB6447ACE16A35EAD30F7D23569BE2
          4B81008DFC77FB84C6ADA4B6A38803AA0693F7299C398D9936B0C08C673DD351
          D947F19E2E8D668A959B558DE921C075675903063D57B7C2FE2DC1F121A0550C
          79125AEC4789D17C854606101ED1D3A82246D3E89A8CB6D2F743AE886FF2B73B
          B11F752D5A5BDD7CB70BF8A55A54441C38C35AFC91B63E5A2EEE17F18A5598C1
          589A550C4820813E3C2EFCF7CD4F6F6E5AB4B57136ADD90641CE1635083AAE9E
          29AED96AD2D5C7CC3DD61513C4D764B5696AE3150F75B998D53C4D764B7BAD2D
          5C42AA3CC4F135D92D5A5AB8F9AB7353C4D764B5696AE2E615B984A789AED96F
          75A5BDD71F30930B733CA789AEC96F75A5AB8CD4214789E33FA70D3CAAB5267F
          E3130990D7A52D52AFC570FC336EAF5594C4122E3931D86EBE5F8BFC6B8BA8E2
          C67F60685A0757CFF885E639CE73897125C4C924CCAC5B1A7D2F17FF00C8E8B0
          96F094CD531F1BBA44ED8D4FD17CFF0011C557E2EA5DC45573C8D2741E8340A2
          B642CEAB69E884E345BC15A141A656C11E5641014064C946001AA037406ECE8B
          481A2035984624A0C0CEAB7E695A206021081DAF735D2D71188C616E9C975C49
          C9493D96BBC283A1B5584D3738E867FF006311FB22F03FB5529821C7240071AF
          F1F453AACA6D2F6D4BA756C77F75677134D8D30DD41F9AE19FC0D51F55A73969
          D4E9DF7EDE5759E2054A5CB245DE75D745C3CE716911320DC4989C1295C194E9
          B0CE46492323F559C1D9C0E5EE6BDE411968276EDF34B5335497DA1C4E3C7FB0
          A576ADE63816B66E99DFF4403CF34343037C0FCA10FD3AA950E78B2F01EDC89D
          3650AF34AAC0258FC38671FE5203CD6034E1B7180E0753BFA26730B4B1BCC25C
          5C41273833033E815177BE8F104114487BB7EE7C8FBFAA9F24BA9969230D9127
          43F78F0B9DD3171A7702758F5C8F5459744BDEDB9C4C0020FAFC82581EE35AB8
          60101A2E2270118734906096F549DBEFF74AE6BCCDDB6840EDDCA5A0E2D6B440
          CFE6271A4E7D80445B058C1500040D368EC7B214E839E1E5A4B863073F29DFF9
          4C058798EB0010634023EC42A3BF176F0EF367F71C60434EBEF093DACCFDB98D
          20291325AFDDB6FE59F23D5253616DDD2E70CB60FC8FF2A6EE2EAD7712FD01C3
          80923B67EF758F10F37075A3A49B9A72327EFF0095728ECE5543498FB5D98260
          C9CE0998EDF7A26A74DEFE6860883775813FED713789732902D6900C838D75DD
          59955EEAEC7120820B9C01311DB3A7FA5715A4D37741787460B65B698FF3DD76
          D2FC43896B9C5E5AF01B241C7AE400A15AFBC02002EF8417C8DFE7B28D5A5529
          5950B4CC4E1DA7A7D127567D258F7A9710DAB49AEC89C41EE3554BE04CEABC16
          D7AF4AA8B1E5AC762C2469A684C1C9FA784C789E229D3743C60E013273EB2BB7
          3F37FD99B1EE5DD4B5C230BCA6FE22F64F3D8D006E0C1D3B1F3E77571C7D02EB
          7981A4EC71F7A2ED3E4E6FD54C775F85AF81AAE7BB483846F95B45CBFD96BB65
          1BF5403D05C3D62FCE142E846FC20B5F2B5D9CA8DCB179417BE42571161881DA
          54AEC2C5C0E0A0E7AF49B51E1C581C5DAE63EF0B8EAF052EC35ADC68BD330441
          030B9EC06A38912566C5D798FE12C7C4E06AA2F646991E32BD67520F2EBD834F
          45CCFE1A0584923FF5380B379595E796EE842BB2992481223EAA4E16B88ECB18
          A1A0C20422B65452C238596841B64233845640461639411D502C21194C066112
          210354735AE2D7E5A7061DF0C22C632D61F8896E06A4FD33B85D1447329D40EB
          AE665D027D14430BBA644B1C0C81BFD85E707976837DD0731DC8EDB9DFE89012
          F2585BF0C0FD3FC2AB5E4CDCE91046DF4F9214DBC8E21B51E1EE635B2711EE12
          09B679A0B19AF41646B3A8F1A2B9A55852EA151B0D816893EFB2AD6AD4A29D56
          0732990491A9818EDE57256E3EBBDC432AB853D837A7DB0B539DAB8A533639CD
          E635A5C66277F448DAEF7578A14EF735D7174E31FB2E47B8B9D2EC93ACACDAA6
          9BAE64B4F857C2263B8710EA9635C704E0019F929B58E3501B5CE8C0319C69F7
          E14DDC7D473036D64344446AA2EAEF7132ED750303E4939576731D448379B84C
          89C1F2423CEA6E25B55D4E0C1E904E3F95C137143015F19452BF1352A80D73BA
          5BA06CC7AA56522F8873438EC7096E11E500E2E804C0F3A05733E85715193691
          B77CF8EDAA2D81405C3F364CCE7D3FDAAB47283439B80D21D8D73EC774055337
          0EA60F180B33DA2AF26AB5AEAAD7C30024346DEBF7A6C8D22CA346A92798C90D
          6BA4B6773E9A8547B83A9435AD0FF4D542EAAFA76B996D39D41DB034DF659CFD
          29F8BBDCFC9CC4827C6E9A8714E6965F716FE52448F9FD173D7EA26D9249CB40
          31EA47759AD63181B7BC9C3BD0F683EE939F48F48B1B5E2A0A669340E875DDFE
          FEF7854A6E63BADD6069873E609C0827EA9A9D5A8295A6CE5D41807FEDDFFC23
          4DECA2EB6A364B47C21DA8FF00470A2B5605C034F2C960C8C98F50B8EA12C697
          0B6A4FC45C20B55F89651BBFFA8E731C641691D263BAE6A952A52AD6B9F07538
          91EAAC459B51F4AC752738EE1A1C487775DCDE3A2798D303F308EF1FA8FD179F
          752AAE0E70FCF000C623B20017C8734923420E83EFEF2B5CF5D4FA4B1ECB6A35
          EDB98E0E13A84D70ECBCFE15B55AFEA0D0D3DC663EFF0045D97AF5F3D5B3DB15
          4BB08DCA37146E85A15B91B946EECB5E88B07217654AE84439052EF28DCA3722
          1C818917824C4EB095E05923FD23328100A8AE67816BA4104ECB96B51B69872E
          FB0DC4E0C9DF653A94C0034188C0D566C595E739A4F5774B3E175BDA43887124
          FAA896B6E30642C635A92C8BDB071A2582A2B2DB7947D505063B2CB2C8093311
          38580939284E1111BA0E97577B6C789B8E3A9D92D9C0F3EAB48A14C5F5339744
          6875DB75C8F26A9241B1AD2207EF0BA39CC150E49E98CFDE579AC146D214AE7D
          421CFC121A75399FBFE1425F4EA0930402E120811EA36D4E896490D2D0E8BA00
          3A9C785ABD47B680A791D441CFD3EAAC94254E2872F94C02C066E882E3B951E6
          0ECAECE12EA01FD4E26480368EE8F11429B2987007B0223EA174973D2B98BA50
          2B42D85A0005B7CAC8E00D540252939449818400C8CC207A6002498902403A2B
          BD869D4B9801B7AB5C16CE1164B6932A527110E22272EF6F920CE27FB5696D30
          26E8230ED71FA2CDA86654A94E951E9B819E5C0048391DBBC1F6562035BCC634
          06BC0375B81B69DBE70B85C584873659BC0D8EDFB2EC616B9B7D3EACFE61927E
          E3C7A297D7B16A7C436AD7796E8D6CCB6440FB84C3886369D4BE987344B4076C
          7DB75C7069B1F90C764CB463D3EFB6CA4EA8F78C904C44C092927F15D62A1716
          B9C061B324C920256D569ACE69616B5E3009FAA8061A044C39C7224188FF002A
          AF37BDB36B6701C46236F4F9AD68B716787AD4A8F21B519537CC89F643880CA6
          0B4BE2DCB732E9EFF3FD145954863E1AD2DD75831F35435A9B9E0C39A0B6483B
          1D4FF3859A550B981E5AF265C323413112248DD06C3C16BA4C7C06327DFE4A04
          063DEE792F31711A184D2D34FA5AE92641DC79F4D567311D2CE1981DA87189F6
          5D0D681A00B8C3DC6E75371838E9DE3649C3D77DE1B2E78000237998FBF55DB8
          F924FB8CD8F44146654DB503F4C18D1131B2F44BAC9FCAC4984A095E71E39E1D
          692E22EEA25A011DC429D75E2B26BD29328CAF307106A5225F55E1F922DD23E7
          FAAAB293DCC6B8D67BA41301C46BDE163F2CDC90F176CA32B9B96EE6137BC0C6
          2E25574C4AE92DBF71140E5AE4928CAA297616B94C3919308293B048449D7458
          9430811ED3D5000DE46EA2EA64370049FA2E82C9CCEA95CCB9D2E399C42CD8AE
          3735D231261239A482E049072BADED04BB6EC54AC0304CCACE35AE55951D4CB3
          5CA0E6F659C52012B4774C067545C31840A355A530188099AC9F8801E5307470
          BC3B9ED2003739D974E83CF7557FE14EE1A9B9D5A1C1B9046B9468F1A7862400
          D2C830F8C04D578BADC6D10E100CCE712BCDFB6F239E8D56B6A1A658D9F863FC
          7EAB938DAECA8E007C609B8CE16E29A68975AF21CEC169C985C9185B93F68ECE
          16BB5B4C892D38C938D7B7BA26A32A8B08B9A232400495C808099B56C98033B9
          1A2D78A3A69F02D7D37105D766D1DF0B91F4CB0E6DCF620AA739EE7349B6C070
          361E63DF557739B51DD01B24E81BD3DA48EF9FA2CEE0E47D1A8C635CE690D768
          54A17B2FA0D9B81E900B6271A2F2AA31D4DD0E047AEE9CF5A27121359D208324
          9880846530B434924DDA00B43ADAC7B7866801C1E48B7A8C6BB63C7D42E6E249
          756321C1C30E93395763C134586035A0E84106466670B9AA868AA430CB461679
          FB427A2B3ADA2CB2439CE1248DBC29B7075C6E3BACF739C41719D96954159FCB
          B0C5A060427E1C090F6969734925A4C600FF006B9C2B70F92E1922D262409C1F
          E54BF43A6A5949803EE352490D77838FA7EEB9DD54BA9DA45C6667B2D59868B6
          C790E9320EE31A7DF64580D30E21E5AE2D22047DC293E905EC346A30D4041897
          0232078F283E4C3DAE36C9B9CDC49FF5FAA2D0DAA5D51C080D209683A8DE3EF0
          AB56931C435D86E22D9106379537FA398170B4B4474EDAE8A85AE7341990DFCC
          DD00DFEFCA2688A74C820B9F90D83AE48FD7F8549BC34B6D30000E68024C768F
          41F24B466D687105CD0C33FAE552A5322A7318E060F50C1EFF00BAE52DB03A7A
          9A1D970CC4F70ABC3BADE19C008734DD33063A74FBEDAA983A18F75A18096921
          A184EBE9F7FC054A7C435CE21C2D76BE3D9254687D473E039EC316F7C77F53FA
          29318EBC52AA435866D923C9FE539EEF3F498ED3924CA575263CF5343A3B85CF
          49EE0E2DAAE3703BE4FF009103EAA0FE3AA0AC4B0B4B67008C42F44F9259ECC7
          6F269FFE367FFCAA4AE03F88BAE1148476250FEB9F936B2368D55F38995DF2B4
          AE277E20310CCCE44EC8FF005352AD271A61AC701313248FB0AFE4863B1695E4
          BCD57D56B2BB9D93A6B9F45DB48DB4D9606BEA16E8267B90566FCD878BA65699
          506D726A16B8341CC5A75F9A773ED991A790B53E4E6FED32AA0E569516556D40
          63EBAA795B9750F3BAD33BC240510831C9C892A4463CAB183A61216E3254AA9D
          84B6E8D755370F1EAACF6624388F2B102E24E847759AA806CE3013B1ADD33A27
          E5DD11EE8DA5BEFA262E90365B80093F4448CC06809AD2208F709A244494C41A
          6C6D46961C8D090345CB5F88148BDB4DCD703A5ABA68F12DFE9EAD300921A601
          CE7DD792E70D979B9E77DB605E529714A4994C217401529358F743DC446DDFDD
          4CC6CAB44C31F911199F7FDD4BF42B4D8CAB485CF0C175A04013A7DCA47B7171
          2D380D0267D744699B4924B5AD6904349CFB42907BDD2D6C92E3DA49256711D9
          4AB92D74B840F89A3F369F72A75439E5AF0CE6300939931E6344A2996125ED6B
          4B6098EFE1352639F59C1AD0EDE460DA42CFFA39DD4CB5E5A08701B83215E9D1
          B4825CDBC7E43070AF55C00E653A6C2C2DC748107731A13E8B9DCE7734B621A7
          41D81CAD4B6AA756A39D54CB5800C000447C94A152B537B4DCF105D9D1068C2D
          4827194F6FF6DC4F700224611A4CB8BB0E710310944A0ABD06DAE2E364B7325D
          A119F7D23DD5052DC004F62ABC454A44861696349B8868060C29471380755C74
          B49F905681529C8680ED1A31255594D9569814F05A0E48024FCD1AB51ED74753
          486C3801AC6247652DFE04630B038B09B9AD06D3A68414A5E5D4C402D2DFFAF7
          F3DBFCA56BDE25D4C013388DA67E8BA2980F7E1961767271F790A7FEA128B986
          A39CFC386674F91090DA1F6B5CF9399FDF1E9E55EA70C24B9AE7013903594956
          8B1CD069B8B9AD3683ACEE9716A7569B83CB6C0483AF7FB8468D5AD4435C4481
          31BC78F9A2E7D67D320B9C5CEC91188D345D3C1B2939EE6B8C3ADEAED3F653F5
          ED2129D3A8EE1CD490E39917698D7EFF00C267181797C93323F88F4576710384
          0196F54C923385C8E22A5E1E40CE73181A2962D86AF51C680E2298227DE365C2
          F79A950B88009EC99F50863A931D2C2E991395239D16B9988C4C94663DD08589
          CAD2B2E8A35EA32AF31C6E6DD2E13A93A98EEA004A36127A764B34529B5951A6
          DB83C19F65D3C33AA802087CE99FA7AAE76B5CCA4FBA4663C13F72ACD1505215
          1C669B84131A40810B3475D40DAB7DCC17B721C24820A89A85B448A820192D78
          22E1E0CFEDD97456E2453A2EA6F601500969688F508BD8DE278396120BA2EC63
          1B9599171E736BB5ACEA635CF9F888CC7AEABA6956638B9A1DF08993B85C3518
          58F2D3AB4C27E185EF8B5C5DA1CE234CFD174DF1F719B1E887089199DD105723
          1E29BED0F6C600033AEF185D14DE1D824076912BAF3F24ACE2A08081CE50D930
          C6856D1BE20108024908FEAB648CA00C040C0C2612E31D9007E49818400000F9
          28B859A7D169036CA20F73083CB3501B8B5927BCC46212725CE6C82C9EDF7FE9
          52594AA35EE702E263A4C63BA6E1DC7FA8061CEA76DA0B86DEBF35E4DCFA6DC4
          529395E8566B0B417329B4DB30DC6570B80BBA74F2B52E850BAB85CB2A086E44
          64C6172954A6E86BB456CD8AAF29B51C1AC7B9D6832E736303DCAE9A74DA2A35
          EDA586B67598EC4C04940D94B99D38106E6E7BE3CAAD2AE784638BDDCDB9E1AE
          999023B1F55CEDFD07753B8D8437382419923BFD144522EAD6D436C9991DE3FC
          235CBDAD2EA6E6F51BC10751EE99AEBD8E6B9870D1ACE44EB9DFD3EAA7D442D6
          114AD60259B01983F651606380CE41B6FF0065A93C368C10D730B8FB0C7D5733
          DB70A8F0E0D877C3A48DA16A5DF42D5EBB5AFB5C054B4119CC15C84C927BACE6
          C1CA185D229A374FC39B1C5D7D938C1507123459A09200D528EF2CBA9BEBB4B6
          980712EC9FF2B9A01392E754C1D253D363880DA8E7F28E0C1F872A559C0435A4
          92324E72B1FE0ECA3C43194AA073673B691BE9EBF55CC78ABC80400DC8D271D9
          73924882498D161AAB83AE980FAAD6DD734E4358608893BC795D4C652755732B
          9B5E4F491BAE5E822938305D043B39D150566B9A1AC6C060811FAACE520F1E65
          C5B8E98000D67FD7EC873586EA8E630B44091A833B447AFB420C2051E51209BA
          4071E9FAF94C69F2D9FDB7B4871901A72A60D51D63E6AB43FA9D2D6EA0107C79
          280B6F20C8223A8CE3B03E74F92B3EA0730B830C3FA5AF1267D014072EE6490E
          0226333E7EFD1444AAFC17DC03E2F06707390B92A3CBE009B460026575F10D35
          6A12D688EC12D3A26FEACC2DF30728A6F230D71F641CD7346411EA17AA001A0C
          20E87082011AC1D175F04D793B79420AF50D36C016803C05CD5B87B7A868A78D
          5D72CC0C2D3E4A72CEEB59851458F0D63D84487467B10BAA8B2EA6E2D7DF0D10
          018324C2E60CE994CCA76C3B7D42CD82F49C43DED78327A60E24693F7E151D50
          526BC324348F84198EDFE7D94AD7171A8FCB8EE9C31C586327CA939A8E2A85EE
          A84B8CF954E1DCE6543693D420FA2B7F4CE71CA7A5C291A98256FC6D35C75AA1
          7BC92C009F53FAAAD1AF52A10C2E82343124AECFE9D8325A09F2A818D6FC200F
          40AFE34D1D044C94C7443081C95D6209D6519C650D50ED0A87C4650267443088
          185018C032B4EC50DC23BEA020E2AED1C9B86086821A3040FE13B59FD3D1B4BC
          417435D3E3EFE6A0EAAE34CB4C10EC9912831D200D7612BC9E35A6AF7D205A4C
          023E1769F45CAAF537132A71BADF3021127C27A26C707DAD75A67248FD1084CC
          6AB62AF7DC4D2790F6982D70105A7193EDAA3CD25D54BB57B223E633AFC92348
          020EB328881D4EC92B3E21ABBDAEE5372F6B466E193FC246483D0030133DCFA2
          730248F929DD9CA48867343408022663640C1C9DD075495AE0755AC01ED6EB29
          211701B20442AA05B29A9134DD20027C84253021A94518E73244082654EA8BDD
          3F616BC9DCA60EBB6098222915AD552E8C058941A016803063280A6E0E0E0E83
          E11001C94D3030A052D0D6C7D118275F58940983DD308D9105D51D690090264E
          75469E74D52813857A6C82ACE4D66820449855020208CAE92620CAD295695A41
          94206EB4AC822FA0D27184BFD390355D08CA9E3175CEDA3D3099948FE6255918
          53C61A50D1A427130B23BAB262085B75878595196416D1019858143280840C4A
          096569C2069441F29251940C4C2C091A14B2611040F2838853C89C84F681A68B
          0760C649589910355C1B23993A2942AC13BC00B0D340AC130C24A218AADF4F75
          8B013A2B8842C8D120810AD10502C12AF889E67BA05B2AA1B9C221A27CA788E7
          B48586BA4AE82DCA9B99E12C0B93B4A432755400EC754A7B4656428128DB1128
          C6E344F8DF54130D2881053E4944011AA281676096D8D75541E898B748CCA488
          9FE5FD96830AC298D48D516D3127B2BE22029923BAA369BA3B2ADA022B5394D2
          B5800CEA996425681F542569425541959059014425944203E88A12B028191416
          9404220A0111D94046169CA12B20D2B212256310A8C744270B21280AD282080A
          D2815A50194652ACA8E769990312880066729061E9DB9246CBCF8D0C6535B894
          0683D13C085A902C6D08C2C8ADC405A328EEB0D15002DA22B0D7D9001D962D3B
          688858A04B4768481BE60AB1420671BACD820D033A94F6F7F927700D12066250
          D67E6A6281678CA60C1AA3322530C8F74C02223098083A00563FB22745A911B6
          406022B1540596281D420C502B2C834843658A1BA02B4A07559505194A115030
          59008840CB21B22744065643BAC1013AAC563AC2C834AC86CB4A00565963A055
          1904504196596419659641FFD9}
      end
      object Label9: TLabel
        Left = 216
        Top = 456
        Width = 282
        Height = 26
        Caption =
          'Our world is not measured by the distance from horizon to horizo' +
          'n, but by the extent of our understanding...'
        WordWrap = True
      end
      object Label10: TLabel
        Left = 16
        Top = 80
        Width = 162
        Height = 39
        Caption =
          'Applicatie: Klantendatabase'#13#10'Auteur: Peter de Biel'#13#10'Opdrachtgeve' +
          'r: Kapsalon Dreams'
        WordWrap = True
      end
    end
  end
  object connMain: TADOConnection
    Connected = True
    ConnectionString =
      'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=database.mdb;Persis' +
      't Security Info=False'
    LoginPrompt = False
    Mode = cmShareDenyNone
    Provider = 'Microsoft.Jet.OLEDB.4.0'
    Left = 436
    Top = 40
  end
  object tblKlanten: TADOTable
    AutoCalcFields = False
    Connection = connMain
    OnCalcFields = tblKlantenCalcFields
    OnNewRecord = tblKlantenNewRecord
    TableName = 'Klanten'
    Left = 500
    Top = 40
    object tblKlantenKlantID: TAutoIncField
      FieldName = 'KlantID'
    end
    object tblKlantenNummer: TIntegerField
      FieldKind = fkCalculated
      FieldName = 'Nummer'
      ReadOnly = True
      Calculated = True
    end
    object tblKlantenDatum: TDateTimeField
      FieldName = 'Datum'
      EditMask = '99-99-9999;1;_'
    end
    object tblKlantenNaam: TWideStringField
      FieldName = 'Naam'
      Size = 50
    end
    object tblKlantenAdres: TWideStringField
      FieldName = 'Adres'
      Size = 50
    end
    object tblKlantenPostcode: TWideStringField
      FieldName = 'Postcode'
      EditMask = '0000 >LL;1;_'
      Size = 50
    end
    object tblKlantenWoonplaats: TWideStringField
      FieldName = 'Woonplaats'
      Size = 50
    end
    object tblKlantenTelefoon: TWideStringField
      FieldName = 'Telefoon'
      EditMask = '9999-009999;1;_'
      Size = 12
    end
    object tblKlantenMobiel: TWideStringField
      FieldName = 'Mobiel'
      EditMask = '99-00999999;1;_'
      Size = 12
    end
    object tblKlantenEmail: TWideStringField
      FieldName = 'Email'
      Size = 30
    end
    object tblKlantenOpmerkingen: TMemoField
      FieldName = 'Opmerkingen'
      BlobType = ftMemo
    end
  end
  object dsKlanten: TDataSource
    DataSet = tblKlanten
    Left = 468
    Top = 40
  end
  object ApplicationEvents1: TApplicationEvents
    OnException = ApplicationEvents1Exception
    Left = 540
    Top = 40
  end
end


And here is the unit attached and also the database after a modification. It now works apart from the column nummer which should count the number of customers, since it starts at -1 then 2 then 3 and so on. After I delete an item, -1 turns to 1 and all is fine.

Regards Peter

Ps the attached database should make things clear
unit Form_Main;
 

interface
 

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  Db, ADODB, DBCtrls, Grids, DBGrids, ExtCtrls, ComCtrls, StdCtrls, Mask,

  jpeg,TypInfo, AppEvnts;
 

type

  TForm1 = class(TForm)

    pnlBottom: TPanel;

    connMain: TADOConnection;

    Label12: TLabel;

    tblKlanten: TADOTable;

    dsKlanten: TDataSource;

    dbnavKlanten: TDBNavigator;

    ApplicationEvents1: TApplicationEvents;

    PageControl1: TPageControl;

    tbsKlanten: TTabSheet;

    GRID2: TDBGrid;

    tbsInformatie: TTabSheet;

    Image1: TImage;

    Label9: TLabel;

    Label10: TLabel;

    tblKlantenDatum: TDateTimeField;

    tblKlantenNaam: TWideStringField;

    tblKlantenAdres: TWideStringField;

    tblKlantenPostcode: TWideStringField;

    tblKlantenWoonplaats: TWideStringField;

    tblKlantenTelefoon: TWideStringField;

    tblKlantenMobiel: TWideStringField;

    tblKlantenEmail: TWideStringField;

    tblKlantenOpmerkingen: TMemoField;

    DBMemo1: TDBMemo;

    tblKlantenNummer: TIntegerField;

    tblKlantenKlantID: TAutoIncField;

    procedure FormCreate(Sender: TObject);

    procedure FormDestroy(Sender: TObject);

    procedure GRID2MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure GRID2TitleClick(Column: TColumn);

    procedure ApplicationEvents1Exception(Sender: TObject; E: Exception);

    procedure tblKlantenNewRecord(DataSet: TDataSet);

    procedure tblKlantenCalcFields(DataSet: TDataSet);

  private

    { Private declarations }

  public

    { Public declarations }

  end;
 

var

  Form1: TForm1;
 

implementation
 

{$R *.DFM}
 
 
 
 
 

procedure TForm1.FormCreate(Sender: TObject);

begin

  connMain.Close;

  connMain.ConnectionString := 'FILE NAME='+ChangeFileExt(Application.ExeName, '.udl' );

  connMain.Open;

  tblKlanten.Open;

end;
 

procedure TForm1.FormDestroy(Sender: TObject);

begin

  connMain.Close;

end;
 

procedure TForm1.GRID2MouseMove(Sender: TObject; Shift: TShiftState; X,

  Y: Integer);

 var

  pt: TGridcoord;

begin

  pt:= Grid2.MouseCoord(x, y);
 

  if pt.y=0 then

    Grid2.Cursor:=crHandPoint

  else

    Grid2.Cursor:=crDefault;

end;
 

// this code  came from aboutdelphi.com. Originally it used 

// const previouscolumnindex : integer = -1

// but changing that to 1 SEEMED to solve the problem but

// I m not so sure anymore now...
 
 

procedure TForm1.GRID2TitleClick(Column: TColumn);

  {$J+}

 const PreviousColumnIndex : integer = 1;

{$J-}

begin

  if GRID2.DataSource.DataSet is TCustomADODataSet then

  with TCustomADODataSet(GRID2.DataSource.DataSet) do

  begin

    try

      GRID2.Columns[PreviousColumnIndex].title.Font.Style :=

      GRID2.Columns[PreviousColumnIndex].title.Font.Style - [fsBold];

    except

    end;
 

    Column.title.Font.Style := 

    Column.title.Font.Style + [fsBold];

    PreviousColumnIndex := Column.Index;
 

    if (Pos(Column.Field.FieldName, Sort) = 1)

    and (Pos(' DESC', Sort)= 0) then

      Sort := Column.Field.FieldName + ' DESC'

    else

      Sort := Column.Field.FieldName + ' ASC';

  end;
 

 

end;
 

procedure TForm1.ApplicationEvents1Exception(Sender: TObject;

  E: Exception);

begin

 if (E is EDBEditError) AND

   (E.Message = 'Invalid input value.  Use escape key to abandon changes')

  then

    ShowMessage('My Custom Error Message')

  else

    Application.ShowException(E);

end;
 

procedure TForm1.tblKlantenNewRecord(DataSet: TDataSet);

begin

 Dataset.FieldByName('Datum').asdatetime := Now;

 //Dataset.FieldByName('Naam').AsString := 'Geef naam in';
 

end;
 

procedure TForm1.tblKlantenCalcFields(DataSet: TDataSet);

begin

  Dataset.fieldbyname('Nummer').value := dataset.RecNo;

end;
 

end.

Open in new window

database.mdb
0
 
LVL 28

Accepted Solution

by:
ciuly earned 500 total points
ID: 22607059
ok, that's easy to solve. add math to the unit clause and change the following event to look like this:

procedure TForm1.tblKlantenCalcFields(DataSet: TDataSet);
begin
  Dataset.fieldbyname('Nummer').value := max(dataset.RecNo,1);
end;

but I would really go with developmentguru's suggestion.
0
 

Author Comment

by:PeterdeB
ID: 22607509
Both developmentguru and ciuly thanks. I'll stick to your reply ciuly, it works, another problem solved.

Peter
0
 

Author Closing Comment

by:PeterdeB
ID: 31501396
Thanks a lot!
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now