Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
зикс лаб3.docx
Скачиваний:
9
Добавлен:
21.09.2019
Размер:
208 Кб
Скачать
☆

4 Шаг. Перестановка битов ключа с использованием таблицы pc1

До финальной перестановки битов ключей, необходимо слияние каждой пары данных. После того, как для каждого битового блока CnDn, где 1<=n<=16 осуществиться соответствующая перестановка по таблице (см ниже), формируя ключи. Только 48 бит каждой объединенной пары сохраняется в перестановленном ключе.

14

17

11

24

1

5

3

28

15

6

21

10

23

19

12

4

26

8

16

7

27

20

13

2

41

52

31

37

47

55

30

40

51

45

33

48

44

49

39

56

34

53

46

42

50

36

29

32

Все подключи:

K1: 111001111101001101110010001100110001010011011101

K2: 111001101101001101110011111011100011011001010110

K3: 101011111101001111011011001111011110001011101010

K4: 001111100101001111011011011101001101110001000011

K5: 001111100101100111011001100011101010010001111110

K6: 000111110110100111011101101010011111111011000000

K7: 000111100110110110011101011111001100011000110011

K8: 010111100010110110101101100111110100110001001110

K9: 010110111010110110101101010001010001111010110110

K10: 110110001010110010101111110110010010100011111001

K11: 111100001010111010100110001000111101101000011101

K12: 111100011011111000100110000101110011010010110110

K13: 111000011011011001110110111010010000100011100101

K14: 111001001101011001110110010001101110101010011111

K15: 111001111101001101110010001100110001010011011101

K16: 111001101101001101110011111011100011011001010110

unit Unit1;

interface

uses

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

Dialogs, DES, StdCtrls, Grids, ComCtrls;

type

TForm1 = class(TForm)

Label2: TLabel;

EButton: TButton;

Label3: TLabel;

SBMemo: TMemo;

Button1: TButton;

SEdit: TEdit;

REdit: TEdit;

SG1: TStringGrid;

SG2: TStringGrid;

Button2: TButton;

SG3: TStringGrid;

SG4: TStringGrid;

Label1: TLabel;

Label4: TLabel;

SG5: TStringGrid;

Label5: TLabel;

SG6: TStringGrid;

SG7: TStringGrid;

SG9: TStringGrid;

SG8: TStringGrid;

SG10: TStringGrid;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

SG11: TStringGrid;

SG12: TStringGrid;

SG13: TStringGrid;

Button3: TButton;

procedure EButtonClick(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure SEditChange(Sender: TObject);

procedure REditChange(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

Data:TBitString;

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.EButtonClick(Sender: TObject);

Var

I:Integer;

S:String;

begin

if ((Length(SEdit.Text)mod 8 <> 0)) then

Begin

MessageBox(Handle,

'не верное количиство символов(8) в ключе ',

Nil,MB_ICONSTOP);

Exit;

End;

SetLength(Data,0);

I:=1;

While I<=Length(SEdit.Text) Do

Begin

S:=Copy(SEdit.Text,I,8);

Data:=ConcatBits([Data,DESEncode(S,SEdit.Text)]);

I:=I+8;

End;

REdit.Text:=BinToAnsiStr(Data);

SG2.Cells[0,0]:=SG1.Cells[0,8];SG2.Cells[1,0]:=SG1.Cells[6,6];SG2.Cells[2,0]:=SG1.Cells[5,5];SG2.Cells[3,0]:=SG1.Cells[4,4];SG2.Cells[4,0]:=SG1.Cells[3,3];SG2.Cells[5,0]:=SG1.Cells[2,2];SG2.Cells[6,0]:=SG1.Cells[1,1];

SG2.Cells[0,1]:=SG1.Cells[0,0];SG2.Cells[1,1]:=SG1.Cells[1,8];SG2.Cells[2,1]:=SG1.Cells[0,7];SG2.Cells[3,1]:=SG1.Cells[6,5];SG2.Cells[4,1]:=SG1.Cells[5,4];SG2.Cells[5,1]:=SG1.Cells[4,3];SG2.Cells[6,1]:=SG1.Cells[3,2];

SG2.Cells[0,2]:=SG1.Cells[2,1];SG2.Cells[1,2]:=SG1.Cells[1,0];SG2.Cells[2,2]:=SG1.Cells[2,8];SG2.Cells[3,2]:=SG1.Cells[1,7];SG2.Cells[4,2]:=SG1.Cells[0,6];SG2.Cells[5,2]:=SG1.Cells[6,4];SG2.Cells[6,2]:=SG1.Cells[5,3];

SG2.Cells[0,3]:=SG1.Cells[4,2];SG2.Cells[1,3]:=SG1.Cells[3,1];SG2.Cells[2,3]:=SG1.Cells[2,0];SG2.Cells[3,3]:=SG1.Cells[3,8];SG2.Cells[4,3]:=SG1.Cells[2,7];SG2.Cells[5,3]:=SG1.Cells[1,6];SG2.Cells[6,3]:=SG1.Cells[0,5];

SG2.Cells[0,4]:=SG1.Cells[6,8];SG2.Cells[1,4]:=SG1.Cells[5,7];SG2.Cells[2,4]:=SG1.Cells[4,6];SG2.Cells[3,4]:=SG1.Cells[3,5];SG2.Cells[4,4]:=SG1.Cells[2,4];SG2.Cells[5,4]:=SG1.Cells[1,3];SG2.Cells[6,4]:=SG1.Cells[0,2];

SG2.Cells[0,5]:=SG1.Cells[6,0];SG2.Cells[1,5]:=SG1.Cells[5,8];SG2.Cells[2,5]:=SG1.Cells[4,7];SG2.Cells[3,5]:=SG1.Cells[3,6];SG2.Cells[4,5]:=SG1.Cells[2,5];SG2.Cells[5,5]:=SG1.Cells[1,4];SG2.Cells[6,5]:=SG1.Cells[0,3];

SG2.Cells[0,6]:=SG1.Cells[6,1];SG2.Cells[1,6]:=SG1.Cells[5,0];SG2.Cells[2,6]:=SG1.Cells[4,8];SG2.Cells[3,6]:=SG1.Cells[3,7];SG2.Cells[4,6]:=SG1.Cells[2,6];SG2.Cells[5,6]:=SG1.Cells[1,5];SG2.Cells[6,6]:=SG1.Cells[0,4];

SG2.Cells[0,7]:=SG1.Cells[6,2];SG2.Cells[1,7]:=SG1.Cells[5,1];SG2.Cells[2,7]:=SG1.Cells[4,0];SG2.Cells[3,7]:=SG1.Cells[6,3];SG2.Cells[4,7]:=SG1.Cells[5,2];SG2.Cells[5,7]:=SG1.Cells[4,1];SG2.Cells[6,7]:=SG1.Cells[3,0];

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

SEdit.OnChange(Self);

SG1.Cells[0,0]:='0';SG1.Cells[1,0]:='1';SG1.Cells[2,0]:='1';SG1.Cells[3,0]:='0';SG1.Cells[4,0]:='1';SG1.Cells[5,0]:='0';SG1.Cells[6,0]:='1';

SG1.Cells[0,1]:='1';SG1.Cells[1,1]:='0';SG1.Cells[2,1]:='1';SG1.Cells[3,1]:='1';SG1.Cells[4,1]:='0';SG1.Cells[5,1]:='0';SG1.Cells[6,1]:='0';

SG1.Cells[0,2]:='0';SG1.Cells[1,2]:='1';SG1.Cells[2,2]:='0';SG1.Cells[3,2]:='1';SG1.Cells[4,2]:='1';SG1.Cells[5,2]:='1';SG1.Cells[6,2]:='1';

SG1.Cells[0,3]:='0';SG1.Cells[1,3]:='1';SG1.Cells[2,3]:='0';SG1.Cells[3,3]:='0';SG1.Cells[4,3]:='1';SG1.Cells[5,3]:='1';SG1.Cells[6,3]:='0';

SG1.Cells[0,4]:='0';SG1.Cells[1,4]:='1';SG1.Cells[2,4]:='0';SG1.Cells[3,4]:='1';SG1.Cells[4,4]:='0';SG1.Cells[5,4]:='1';SG1.Cells[6,4]:='1';

SG1.Cells[0,5]:='0';SG1.Cells[1,5]:='1';SG1.Cells[2,5]:='1';SG1.Cells[3,5]:='0';SG1.Cells[4,5]:='1';SG1.Cells[5,5]:='0';SG1.Cells[6,5]:='1';

SG1.Cells[0,6]:='1';SG1.Cells[1,6]:='1';SG1.Cells[2,6]:='0';SG1.Cells[3,6]:='1';SG1.Cells[4,6]:='0';SG1.Cells[5,6]:='1';SG1.Cells[6,6]:='0';

SG1.Cells[0,7]:='1';SG1.Cells[1,7]:='1';SG1.Cells[2,7]:='0';SG1.Cells[3,7]:='0';SG1.Cells[4,7]:='1';SG1.Cells[5,7]:='1';SG1.Cells[6,7]:='1';

SG1.Cells[0,8]:='0';SG1.Cells[1,8]:='1';SG1.Cells[2,8]:='1';SG1.Cells[3,8]:='1';SG1.Cells[4,8]:='1';SG1.Cells[5,8]:='0';SG1.Cells[6,8]:='0';

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

close;

end;

procedure TForm1.SEditChange(Sender: TObject);

begin

IF SEdit.Text<>'' Then

SBMemo.Text:=BinToStr(AnsiStrToBin(SEdit.Text))

Else SBMemo.Clear;

Label2.Caption:='символы - ('+IntToStr(Length(SEdit.Text))+' символы)';

end;

procedure TForm1.REditChange(Sender: TObject);

begin

Label3.Caption:='символы - ('+IntToStr(Length(REdit.Text))+' символы)';

end;

procedure TForm1.Button2Click(Sender: TObject);

Var

i,j: integer;

begin

for i:=0 to 3 do

begin

SG2.Rows[i].Text;

SG3.Rows[i]:=SG2.Rows[i];

end;

for i:=4 to 8 do

begin

SG2.Rows[i].Text;

SG4.Rows[i]:=SG2.Rows[i];

end;

SG5.Cells[0,0]:=SG3.Cells[1,0];SG5.Cells[1,0]:=SG3.Cells[2,0];SG5.Cells[2,0]:=SG3.Cells[3,0];

SG5.Cells[3,0]:=SG3.Cells[4,0];SG5.Cells[4,0]:=SG3.Cells[5,0];SG5.Cells[5,0]:=SG3.Cells[6,0];

SG5.Cells[6,0]:=SG3.Cells[0,1];SG5.Cells[7,0]:=SG3.Cells[1,1];SG5.Cells[8,0]:=SG3.Cells[2,1];

SG5.Cells[9,0]:=SG3.Cells[3,1];SG5.Cells[10,0]:=SG3.Cells[4,1];SG5.Cells[11,0]:=SG3.Cells[5,1];

SG5.Cells[12,0]:=SG3.Cells[6,1];SG5.Cells[13,0]:=SG3.Cells[0,2];SG5.Cells[14,0]:=SG3.Cells[1,2];

SG5.Cells[15,0]:=SG3.Cells[2,2];SG5.Cells[16,0]:=SG3.Cells[3,2];SG5.Cells[17,0]:=SG3.Cells[4,2];

SG5.Cells[18,0]:=SG3.Cells[5,2];SG5.Cells[19,0]:=SG3.Cells[6,2];SG5.Cells[20,0]:=SG3.Cells[0,3];

SG5.Cells[21,0]:=SG3.Cells[1,3];SG5.Cells[22,0]:=SG3.Cells[2,3];SG5.Cells[23,0]:=SG3.Cells[3,3];

SG5.Cells[24,0]:=SG3.Cells[4,3];SG5.Cells[25,0]:=SG3.Cells[5,3];SG5.Cells[26,0]:=SG3.Cells[6,3];

SG5.Cells[27,0]:=SG3.Cells[0,4];SG5.Cells[27,0]:=SG3.Cells[0,0];

SG7.Cells[0,0]:=SG5.Cells[1,0];SG7.Cells[1,0]:=SG5.Cells[2,0];SG7.Cells[2,0]:=SG5.Cells[3,0];

SG7.Cells[3,0]:=SG5.Cells[4,0];SG7.Cells[4,0]:=SG5.Cells[5,0];SG7.Cells[5,0]:=SG5.Cells[6,0];

SG7.Cells[6,0]:=SG5.Cells[7,0];SG7.Cells[7,0]:=SG5.Cells[8,0];SG7.Cells[8,0]:=SG5.Cells[9,0];

SG7.Cells[9,0]:=SG5.Cells[10,0];SG7.Cells[10,0]:=SG5.Cells[11,0];SG7.Cells[11,0]:=SG5.Cells[12,0];

SG7.Cells[12,0]:=SG5.Cells[13,0];SG7.Cells[13,0]:=SG5.Cells[14,0];SG7.Cells[14,0]:=SG5.Cells[15,0];

SG7.Cells[15,0]:=SG5.Cells[16,0];SG7.Cells[16,0]:=SG5.Cells[17,0];SG7.Cells[17,0]:=SG5.Cells[18,0];

SG7.Cells[18,0]:=SG5.Cells[19,0];SG7.Cells[19,0]:=SG5.Cells[20,0];SG7.Cells[20,0]:=SG5.Cells[21,0];

SG7.Cells[21,0]:=SG5.Cells[22,0];SG7.Cells[22,0]:=SG5.Cells[23,0];SG7.Cells[23,0]:=SG5.Cells[24,0];

SG7.Cells[24,0]:=SG5.Cells[25,0];SG7.Cells[25,0]:=SG5.Cells[26,0];SG7.Cells[26,0]:=SG5.Cells[27,0];

SG7.Cells[27,0]:=SG5.Cells[28,0];SG7.Cells[27,0]:=SG5.Cells[0,0];

SG9.Cells[0,0]:=SG7.Cells[2,0];SG9.Cells[1,0]:=SG7.Cells[3,0];SG9.Cells[2,0]:=SG7.Cells[4,0];

SG9.Cells[3,0]:=SG7.Cells[5,0];SG9.Cells[4,0]:=SG7.Cells[6,0];SG9.Cells[5,0]:=SG7.Cells[7,0];

SG9.Cells[6,0]:=SG7.Cells[8,0];SG9.Cells[7,0]:=SG7.Cells[9,0];SG9.Cells[8,0]:=SG7.Cells[10,0];

SG9.Cells[9,0]:=SG7.Cells[11,0];SG9.Cells[10,0]:=SG7.Cells[12,0];SG9.Cells[11,0]:=SG7.Cells[13,0];

SG9.Cells[12,0]:=SG7.Cells[14,0];SG9.Cells[13,0]:=SG7.Cells[15,0];SG9.Cells[14,0]:=SG7.Cells[16,0];

SG9.Cells[15,0]:=SG7.Cells[17,0];SG9.Cells[16,0]:=SG7.Cells[18,0];SG9.Cells[17,0]:=SG7.Cells[19,0];

SG9.Cells[16,0]:=SG7.Cells[18,0];SG9.Cells[17,0]:=SG7.Cells[19,0];SG9.Cells[18,0]:=SG7.Cells[20,0];

SG9.Cells[18,0]:=SG7.Cells[20,0];SG9.Cells[19,0]:=SG7.Cells[21,0];SG9.Cells[20,0]:=SG7.Cells[22,0];

SG9.Cells[21,0]:=SG7.Cells[23,0];SG9.Cells[22,0]:=SG7.Cells[24,0];SG9.Cells[23,0]:=SG7.Cells[25,0];

SG9.Cells[24,0]:=SG7.Cells[26,0];SG9.Cells[25,0]:=SG7.Cells[27,0];SG9.Cells[26,0]:=SG7.Cells[0,0];

SG9.Cells[27,0]:=SG7.Cells[1,0];

SG6.Cells[0,0]:=SG4.Cells[1,4];SG6.Cells[1,0]:=SG4.Cells[2,4];SG6.Cells[2,0]:=SG4.Cells[3,4];

SG6.Cells[3,0]:=SG4.Cells[4,4];SG6.Cells[4,0]:=SG4.Cells[5,4];SG6.Cells[5,0]:=SG4.Cells[6,4];

SG6.Cells[6,0]:=SG4.Cells[0,5];SG6.Cells[7,0]:=SG4.Cells[1,5];SG6.Cells[8,0]:=SG4.Cells[2,5];

SG6.Cells[9,0]:=SG4.Cells[3,5];SG6.Cells[10,0]:=SG4.Cells[4,5];SG6.Cells[11,0]:=SG4.Cells[5,5];

SG6.Cells[12,0]:=SG4.Cells[6,5];SG6.Cells[13,0]:=SG4.Cells[0,6];SG6.Cells[14,0]:=SG4.Cells[1,6];

SG6.Cells[15,0]:=SG4.Cells[2,6];SG6.Cells[16,0]:=SG4.Cells[3,6];SG6.Cells[17,0]:=SG4.Cells[4,6];

SG6.Cells[18,0]:=SG4.Cells[5,6];SG6.Cells[19,0]:=SG4.Cells[6,6];SG6.Cells[20,0]:=SG4.Cells[0,7];

SG6.Cells[21,0]:=SG4.Cells[1,7];SG6.Cells[22,0]:=SG4.Cells[2,7];SG6.Cells[23,0]:=SG4.Cells[3,7];

SG6.Cells[24,0]:=SG4.Cells[4,7];SG6.Cells[25,0]:=SG4.Cells[5,7];SG6.Cells[26,0]:=SG4.Cells[6,7];

SG6.Cells[27,0]:=SG4.Cells[0,8];SG6.Cells[27,0]:=SG4.Cells[0,4];

SG8.Cells[0,0]:=SG6.Cells[1,0];SG8.Cells[1,0]:=SG6.Cells[2,0];SG8.Cells[2,0]:=SG6.Cells[3,0];

SG8.Cells[3,0]:=SG6.Cells[4,0];SG8.Cells[4,0]:=SG6.Cells[5,0];SG8.Cells[5,0]:=SG6.Cells[6,0];

SG8.Cells[6,0]:=SG6.Cells[7,0];SG8.Cells[7,0]:=SG6.Cells[8,0];SG8.Cells[8,0]:=SG6.Cells[9,0];

SG8.Cells[9,0]:=SG6.Cells[10,0];SG8.Cells[10,0]:=SG6.Cells[11,0];SG8.Cells[11,0]:=SG6.Cells[12,0];

SG8.Cells[12,0]:=SG6.Cells[13,0];SG8.Cells[13,0]:=SG6.Cells[14,0];SG8.Cells[14,0]:=SG6.Cells[15,0];

SG8.Cells[15,0]:=SG6.Cells[16,0];SG8.Cells[16,0]:=SG6.Cells[17,0];SG8.Cells[17,0]:=SG6.Cells[18,0];

SG8.Cells[18,0]:=SG6.Cells[19,0];SG8.Cells[19,0]:=SG6.Cells[20,0];SG8.Cells[20,0]:=SG6.Cells[21,0];

SG8.Cells[21,0]:=SG6.Cells[22,0];SG8.Cells[22,0]:=SG6.Cells[23,0];SG8.Cells[23,0]:=SG6.Cells[24,0];

SG8.Cells[24,0]:=SG6.Cells[25,0];SG8.Cells[25,0]:=SG6.Cells[26,0];SG8.Cells[26,0]:=SG6.Cells[27,0];

SG8.Cells[27,0]:=SG6.Cells[28,0];SG8.Cells[27,0]:=SG6.Cells[0,0];

SG10.Cells[0,0]:=SG8.Cells[2,0];SG10.Cells[1,0]:=SG8.Cells[3,0];SG10.Cells[2,0]:=SG8.Cells[4,0];

SG10.Cells[3,0]:=SG8.Cells[5,0];SG10.Cells[4,0]:=SG8.Cells[6,0];SG10.Cells[5,0]:=SG8.Cells[7,0];

SG10.Cells[6,0]:=SG8.Cells[8,0];SG10.Cells[7,0]:=SG8.Cells[9,0];SG10.Cells[8,0]:=SG8.Cells[10,0];

SG10.Cells[9,0]:=SG8.Cells[11,0];SG10.Cells[10,0]:=SG8.Cells[12,0];SG10.Cells[11,0]:=SG8.Cells[13,0];

SG10.Cells[12,0]:=SG8.Cells[14,0];SG10.Cells[13,0]:=SG8.Cells[15,0];SG10.Cells[14,0]:=SG8.Cells[16,0];

SG10.Cells[15,0]:=SG8.Cells[17,0];SG10.Cells[16,0]:=SG8.Cells[18,0];SG10.Cells[17,0]:=SG8.Cells[19,0];

SG10.Cells[16,0]:=SG8.Cells[18,0];SG10.Cells[17,0]:=SG8.Cells[19,0];SG10.Cells[18,0]:=SG8.Cells[20,0];

SG10.Cells[18,0]:=SG8.Cells[20,0];SG10.Cells[19,0]:=SG8.Cells[21,0];SG10.Cells[20,0]:=SG8.Cells[22,0];

SG10.Cells[21,0]:=SG8.Cells[23,0];SG10.Cells[22,0]:=SG8.Cells[24,0];SG10.Cells[23,0]:=SG8.Cells[25,0];

SG10.Cells[24,0]:=SG8.Cells[26,0];SG10.Cells[25,0]:=SG8.Cells[27,0];SG10.Cells[26,0]:=SG8.Cells[0,0];

SG10.Cells[27,0]:=SG8.Cells[1,0];

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

SG11.Cells[0,0]:=SG5.Cells[13,0];SG11.Cells[1,0]:=SG5.Cells[16,0];SG11.Cells[2,0]:=SG5.Cells[10,0];

SG11.Cells[3,0]:=SG5.Cells[23,0];SG11.Cells[4,0]:=SG5.Cells[0,0];SG11.Cells[5,0]:=SG5.Cells[4,0];

SG11.Cells[6,0]:=SG5.Cells[2,0];SG11.Cells[7,0]:=SG5.Cells[27,0];SG11.Cells[8,0]:=SG5.Cells[14,0];

SG11.Cells[9,0]:=SG5.Cells[5,0];SG11.Cells[10,0]:=SG5.Cells[20,0];SG11.Cells[11,0]:=SG5.Cells[9,0];

SG11.Cells[12,0]:=SG5.Cells[22,0];SG11.Cells[13,0]:=SG5.Cells[18,0];SG11.Cells[14,0]:=SG5.Cells[11,0];

SG11.Cells[15,0]:=SG5.Cells[3,0];SG11.Cells[16,0]:=SG5.Cells[25,0];SG11.Cells[17,0]:=SG5.Cells[7,0];

SG11.Cells[18,0]:=SG5.Cells[15,0];SG11.Cells[19,0]:=SG5.Cells[6,0];SG11.Cells[20,0]:=SG5.Cells[26,0];

SG11.Cells[21,0]:=SG5.Cells[19,0];SG11.Cells[22,0]:=SG5.Cells[12,0];SG11.Cells[23,0]:=SG5.Cells[1,0];

SG11.Cells[24,0]:=SG6.Cells[11,0];SG11.Cells[25,0]:=SG6.Cells[22,0];SG11.Cells[26,0]:=SG6.Cells[1,0];

SG11.Cells[27,0]:=SG6.Cells[7,0];SG11.Cells[28,0]:=SG6.Cells[17,0];SG11.Cells[29,0]:=SG6.Cells[25,0];

SG11.Cells[30,0]:=SG6.Cells[0,0];SG11.Cells[31,0]:=SG6.Cells[10,0];SG11.Cells[32,0]:=SG6.Cells[21,0];

SG11.Cells[33,0]:=SG6.Cells[15,0];SG11.Cells[34,0]:=SG6.Cells[3,0];SG11.Cells[35,0]:=SG6.Cells[18,0];

SG11.Cells[36,0]:=SG6.Cells[14,0];SG11.Cells[37,0]:=SG6.Cells[19,0];SG11.Cells[38,0]:=SG6.Cells[9,0];

SG11.Cells[39,0]:=SG6.Cells[26,0];SG11.Cells[40,0]:=SG6.Cells[4,0];SG11.Cells[41,0]:=SG6.Cells[23,0];

SG11.Cells[42,0]:=SG6.Cells[16,0];SG11.Cells[43,0]:=SG6.Cells[12,0];SG11.Cells[44,0]:=SG6.Cells[20,0];

SG11.Cells[45,0]:=SG6.Cells[6,0];SG11.Cells[46,0]:=SG5.Cells[0,0];SG11.Cells[47,0]:=SG6.Cells[2,0];

SG12.Cells[0,0]:=SG7.Cells[13,0];SG12.Cells[1,0]:=SG7.Cells[16,0];SG12.Cells[2,0]:=SG7.Cells[10,0];

SG12.Cells[3,0]:=SG7.Cells[23,0];SG12.Cells[4,0]:=SG7.Cells[0,0];SG12.Cells[5,0]:=SG7.Cells[4,0];

SG12.Cells[6,0]:=SG7.Cells[2,0];SG12.Cells[7,0]:=SG7.Cells[27,0];SG12.Cells[8,0]:=SG7.Cells[14,0];

SG12.Cells[9,0]:=SG7.Cells[5,0];SG12.Cells[10,0]:=SG7.Cells[20,0];SG12.Cells[11,0]:=SG7.Cells[9,0];

SG12.Cells[12,0]:=SG7.Cells[22,0];SG12.Cells[13,0]:=SG7.Cells[18,0];SG12.Cells[14,0]:=SG7.Cells[11,0];

SG12.Cells[15,0]:=SG7.Cells[3,0];SG12.Cells[16,0]:=SG7.Cells[25,0];SG12.Cells[17,0]:=SG7.Cells[7,0];

SG12.Cells[18,0]:=SG7.Cells[15,0];SG12.Cells[19,0]:=SG7.Cells[6,0];SG12.Cells[20,0]:=SG7.Cells[26,0];

SG12.Cells[21,0]:=SG7.Cells[19,0];SG12.Cells[22,0]:=SG7.Cells[12,0];SG12.Cells[23,0]:=SG7.Cells[1,0];

SG12.Cells[24,0]:=SG8.Cells[11,0];SG12.Cells[25,0]:=SG8.Cells[22,0];SG12.Cells[26,0]:=SG8.Cells[1,0];

SG12.Cells[27,0]:=SG8.Cells[7,0];SG12.Cells[28,0]:=SG8.Cells[17,0];SG12.Cells[29,0]:=SG8.Cells[25,0];

SG12.Cells[30,0]:=SG8.Cells[0,0];SG12.Cells[31,0]:=SG8.Cells[10,0];SG12.Cells[32,0]:=SG8.Cells[21,0];

SG12.Cells[33,0]:=SG8.Cells[15,0];SG12.Cells[34,0]:=SG8.Cells[3,0];SG12.Cells[35,0]:=SG8.Cells[18,0];

SG12.Cells[36,0]:=SG8.Cells[14,0];SG12.Cells[37,0]:=SG8.Cells[19,0];SG12.Cells[38,0]:=SG8.Cells[9,0];

SG12.Cells[39,0]:=SG8.Cells[26,0];SG12.Cells[40,0]:=SG8.Cells[4,0];SG12.Cells[41,0]:=SG8.Cells[23,0];

SG12.Cells[42,0]:=SG8.Cells[16,0];SG12.Cells[43,0]:=SG8.Cells[12,0];SG12.Cells[44,0]:=SG8.Cells[20,0];

SG12.Cells[45,0]:=SG8.Cells[6,0];SG12.Cells[46,0]:=SG7.Cells[0,0];SG12.Cells[47,0]:=SG8.Cells[2,0];

SG13.Cells[0,0]:=SG9.Cells[13,0];SG13.Cells[1,0]:=SG9.Cells[16,0];SG13.Cells[2,0]:=SG9.Cells[10,0];

SG13.Cells[3,0]:=SG9.Cells[23,0];SG13.Cells[4,0]:=SG9.Cells[0,0];SG13.Cells[5,0]:=SG9.Cells[4,0];

SG13.Cells[6,0]:=SG9.Cells[2,0];SG13.Cells[7,0]:=SG9.Cells[27,0];SG13.Cells[8,0]:=SG9.Cells[14,0];

SG13.Cells[9,0]:=SG9.Cells[5,0];SG13.Cells[10,0]:=SG9.Cells[20,0];SG13.Cells[11,0]:=SG9.Cells[9,0];

SG13.Cells[12,0]:=SG9.Cells[22,0];SG13.Cells[13,0]:=SG9.Cells[18,0];SG13.Cells[14,0]:=SG9.Cells[11,0];

SG13.Cells[15,0]:=SG9.Cells[3,0];SG13.Cells[16,0]:=SG9.Cells[25,0];SG13.Cells[17,0]:=SG9.Cells[7,0];

SG13.Cells[18,0]:=SG9.Cells[15,0];SG13.Cells[19,0]:=SG9.Cells[6,0];SG13.Cells[20,0]:=SG9.Cells[26,0];

SG13.Cells[21,0]:=SG9.Cells[19,0];SG13.Cells[22,0]:=SG9.Cells[12,0];SG13.Cells[23,0]:=SG9.Cells[1,0];

SG13.Cells[24,0]:=SG10.Cells[11,0];SG13.Cells[25,0]:=SG10.Cells[22,0];SG13.Cells[26,0]:=SG10.Cells[1,0];

SG13.Cells[27,0]:=SG10.Cells[7,0];SG13.Cells[28,0]:=SG10.Cells[17,0];SG13.Cells[29,0]:=SG10.Cells[25,0];

SG13.Cells[30,0]:=SG10.Cells[0,0];SG13.Cells[31,0]:=SG10.Cells[10,0];SG13.Cells[32,0]:=SG10.Cells[21,0];

SG13.Cells[33,0]:=SG10.Cells[15,0];SG13.Cells[34,0]:=SG10.Cells[3,0];SG13.Cells[35,0]:=SG10.Cells[18,0];

SG13.Cells[36,0]:=SG10.Cells[14,0];SG13.Cells[37,0]:=SG10.Cells[19,0];SG13.Cells[38,0]:=SG10.Cells[9,0];

SG13.Cells[39,0]:=SG10.Cells[26,0];SG13.Cells[40,0]:=SG10.Cells[4,0];SG13.Cells[41,0]:=SG10.Cells[23,0];

SG13.Cells[42,0]:=SG10.Cells[16,0];SG13.Cells[43,0]:=SG10.Cells[12,0];SG13.Cells[44,0]:=SG10.Cells[20,0];

SG13.Cells[45,0]:=SG10.Cells[6,0];SG13.Cells[46,0]:=SG9.Cells[0,0];SG13.Cells[47,0]:=SG10.Cells[2,0];

end;

end.