PDA

View Full Version : script obber



sherlockmeister
02-24-2008, 05:10 PM
heres a scar script obber that i wrote (for fun of course since we are all open source here).
basically all it does is replace all the var names with random string making it very hard to understand.
i put it an encoding bitmap feature (with my crappy encoding algorithm) but for some reason scar throws lots of funny exceptions with lots of large bitmaps (like in bejewled.scar) even when it is decoded properly.
all the params are consts in the main class so you will have to recompile to change them (sorry) and are as followed.
length: approx alias length
password: bitmap encoding pass, leave null if you are not encoding;
proc name: name that decode proc should be
comment: keep comments?
pass var: universal var (or const) that the password is going to be stored if you encode bitmaps
proc flag: put this in your script above the first procedure to mark where the decode proc should be inserted
path, out: the path of the script and the path to write to
hash: insert hash proc as well? if you are not including srl and are encoding bitmaps you will need this (Srl/Srl/Math.scar - BenLand100);

heres bejeweled obbed
program Bejeweled;

Type
vm6LQh = ReCorD
t212679, XJ42i7: INtegER;
MJ841g: InTeGEr;
End;
ByTeARRAy7 = aRray[0..7] OF BYTe;

Var
gCP325: tFOrm;
ubX139H: tTimer;
B64Z7, LzHQ8: ARRAY[1..8] of ArRay[1..8] oF byte;
OgCY5O: ARrAY[1..8] OF bytE;
Qtt7G5s: aRrAY[1..7] oF INTegEr;
h87t1t7: ArraY[1..7] of TCaNVAs;
J7Mg, euBO2i5: IntEGer;
viAZ50Z: ArrAy oF VM6Lqh;
t4mVy: INTegEr;
IL85: IntegEr;
xjk7: ByTearRaY7;
XvF70g: IntEGeR;


pROceDurE L4K6; FOrwARd;
ProCedUre bQS82V(gbb98: IntEgER; N2wY8: IntEger; PP67E: iNteger; VD613: InteGEr);
VAr
T212679, xj42i7: iNTeGER;
u1yu: TCaNvaS;
BEGin
U1yu := GEtBItMApcaNvas(IL85);
U1yu.brUsh.stYlE := bSsOliD;
u1Yu.brUSh.COLor := clblAcK;
U1Yu.pEN.COlOR := cLBLAcK;
U1Yu.REctANGle(0, 0, GCP325.WIdtH, GCp325.heigHT);
For XJ42i7 := N2wy8 to vD613 do
for T212679 := gbB98 To pP67e DO
bEGIn
if (B64Z7[t212679][xJ42I7] >= 1) ThEN

coPyCanvaS(H87t1t7[b64Z7[t212679][xj42i7]], U1yU, 0, 0, 32, 32, t212679 * 32, Xj42i7 * 32, T212679
* 32 + 32, Xj42i7 * 32 + 32);
eND;
if (j7mg > -1) and (eUBO2I5 > -1) thEn
BEGIn
T212679 := J7mG;
Xj42I7 := eubO2i5;
u1yU.PEN.coLoR := cLblaCK;
u1yu.BrUSH.StYLe := bSClear;
U1yU.RECtAngLE(T212679 * 32, XJ42i7 * 32, t212679 * 32 + 31, xj42I7 * 32 + 31);
U1yu.RectaNGle(t212679 * 32 + 2, xj42I7 * 32 + 2, T212679 * 32 + 29, Xj42i7 * 32 + 29);
U1yu.pEN.COlOr := cLreD;
U1yu.reCTANGle(t212679 * 32 + 1, xJ42i7 * 32 + 1, T212679 * 32 + 30, xJ42I7 * 32 + 30);
eND;
FOr t212679 := 0 TO getARraylENGtH(vIAz50z) - 1 Do
BEGIN
U1Yu.brUSh.sTylE := BScleAR;
u1Yu.fOnT.sIZe := 14;
U1Yu.FoNT.nAMe := 'Verdana';
u1yu.fONT.COLOR := ClBLaCk;
u1yU.TextoUt(ViAz50Z[T212679].T212679 * 32 + 1, viaz50Z[t212679].xj42i7 * 32 + 1,
INttostr(vIAz50Z[t212679].mJ841G));
U1yU.fONT.Color := ClWhITe;
U1yU.tExtOUT(Viaz50Z[t212679].T212679 * 32, vIAZ50z[T212679].xJ42I7 * 32,
inTtoSTR(ViAz50z[t212679].Mj841g));
enD;
U1yu.BruSh.stylE := BscLeAr;
u1YU.foNT.sIZE := 12;
u1Yu.FOnt.nAmE := 'Verdana';
u1yu.font.ColoR := cLwHiTe;
U1yu.tExtoUT(32, 293, 'Score: ' + InTTostR(T4mVY * 10));
u1YU.pEN.coLor := CLWhIte;
U1yU.rEctAnGLE(30, 30, 290, 290);
iF (gbB98 <> 1) Or (pP67E <> 8) oR (N2wY8 <> 1) Or (VD613 <> 8) TheN
BeGin

CoPYcanVas(U1Yu, GCP325.cANvAS, gbB98 * 32, n2wy8 * 32, pP67e * 32 + 32, VD613 * 32 +
32, GBb98 * 32, N2Wy8 * 32, pP67E * 32 + 32, VD613 * 32 + 32);
enD ELse

cOPyCANvAS(u1YU, gCp325.canvAS, 0, 0, gcP325.WiDth, GCP325.hEiGHT, 0, 0,
gcP325.WidTh, GcP325.hEiGHT);
End;

PrOCEdURe l4k6;
vaR
t212679, xj42i7: iNtEGeR;
BeGIN
for T212679 := 1 TO 8 Do
FOr XJ42I7 := 1 TO 8 Do
B64z7[T212679][xJ42i7] := raNdom(7) + 1;
eND;

pROceDuRE V126L05(w8H682S: tobjeCt);
beGiN
BqS82V(1, 1, 8, 8);
end;

FUNCtioN W415W(gbb98, n2WY8, pP67e, VD613: InTeGEr): BoOleaN;
BegIN
rEsulT := falsE;
iF (GBb98 >= 1) And (Gbb98 <= 8) anD (n2WY8 >= 1) aND (N2wy8 <= 8) ThEN
iF (pP67e >= 1) and (pp67e <= 8) and (vD613 >= 1) AnD (vd613 <= 8) then
BeGiN
rEsult := ((gbb98 = PP67E) ANd (ABS(N2wY8 - Vd613) = 1)) OR
((N2wY8 = VD613) aND (ABs(GBb98 - Pp67E) = 1));
ENd;
End;

ProCEDUre z253F(gBb98, n2wY8, PP67e, Vd613: INtEgeR);
var
K4w9883, TxKik66: InteGer;
bEgIn

gCP325.CAnVAS.brusH.sTYlE := BssoLId;
GCP325.CAnvAs.BRuSh.coLoR := CLBLACK;
GCp325.CANVAs.pEn.cOloR := Clblack;
FOr TXKiK66 := 0 to 15 DO
BeGIN
gcp325.cANVAS.rECtaNGlE(gbb98 * 32, N2Wy8 * 32, GBb98 * 32 + 31, N2wY8 * 32 + 31);
GCP325.CanvAs.RECTANGle(pp67E * 32, vD613 * 32, PP67e * 32 + 31, VD613 * 32 + 31);

CoPyCanvAs(H87t1T7[B64z7[pp67e][vd613]], gcP325.canvas, 0, 0, 32, 32, Pp67e * 32 + (GBb98
- pp67E) * TXkik66 * 2, vD613 * 32 + (n2WY8 - vd613) * txkik66 * 2, Pp67E * 32 + (GBb98 - PP67E) * TxKik66 * 2 +
32, VD613 * 32 + (n2wY8 - VD613) * Txkik66 * 2 + 32);

CopyCanvas(H87T1T7[b64Z7[gBB98][N2WY8]], GCP325.caNvas, 0, 0, 32, 32, gBb98 * 32 + (PP67e
- gbB98) * tXkIK66 * 2, N2wy8 * 32 + (Vd613 - n2Wy8) * TxKIK66 * 2, GBb98 * 32 + (pp67e - gBb98) * TXKik66 * 2 +
32, N2Wy8 * 32 + (vd613 - n2Wy8) * TxKiK66 * 2 + 32);
SLEep(10);
EnD;
K4w9883 := B64z7[GbB98][n2Wy8];
B64z7[gbb98][n2Wy8] := B64Z7[pP67e][Vd613];
b64z7[pP67e][vd613] := k4W9883;
ENd;

fuNCTIOn A61B(T212679, XJ42I7: INTeGer): iNtegEr;
bEgin
resuLT := -1;
IF (t212679 >= 1) AnD (T212679 <= 8) aNd (XJ42I7 >= 1) aNd (xJ42i7 <= 8) THEN
reSuLt := B64Z7[T212679][xj42I7];
END;

fUnCtion A7zW7V(kuJGBTT: CHAR; var mRR32H1: InTEger; t212679, Xj42I7: inteGer): BOoLean;
BEGiN
RESULt := TRUE;
If (Kujgbtt = '1') ThEN
BEgIN
rEsULt := ((mRr32H1 = -1) OR (B64z7[t212679][XJ42i7] = mrr32h1));
MrR32h1 := b64z7[t212679][xj42i7];
ENd;
eND;

FUNcTiON SWFzK9G(kdm3S28: sTRiNg; t212679, Xj42i7: InTegeR): BOOlEan;
var
MrR32H1: InTEgEr;
bEGIn
REsuLT := TRUe;
MrR32H1 := -1;
ResULt := ReSUlt and A7ZW7v(kdM3s28[1], mRr32h1, T212679, xj42i7);
RESUlt := ResULt AnD A7ZW7V(KDM3S28[2], mrr32h1, T212679 + 1, Xj42I7);
REsuLT := reSUlT AND a7Zw7V(KdM3s28[3], Mrr32H1, T212679, XJ42i7 + 1);
resuLt := rESULT AND a7zw7V(kDm3S28[4], MrR32h1, t212679 + 1, xJ42i7 + 1);
rEsulT := resuLT aND A7ZW7V(KDm3S28[5], MRR32h1, t212679, xJ42i7 + 2);
resULT := rESult And a7Zw7V(kdM3S28[6], mrr32H1, T212679 + 1, XJ42I7 + 2);
enD;

fUncTiON q89k6G(kdM3S28: StrInG; t212679, Xj42i7: iNTEgEr): BooleaN;
var
mRR32h1: IntEGER;
BEGIn
ResuLT := trUe;
mrR32H1 := -1;
reSulT := ReSULt And a7Zw7V(KdM3S28[1], MRR32H1, T212679, xJ42i7);
rEsuLt := reSUlt and A7ZW7V(KDM3s28[2], mrR32h1, t212679 + 1, XJ42I7);
RESult := REsulT aND A7Zw7V(KdM3S28[3], mRr32H1, T212679 + 2, xj42I7);
ReSuLt := REsULt ANd a7ZW7V(KDm3s28[4], MrR32h1, T212679, Xj42I7 + 1);
rESUlt := resulT And A7Zw7v(kdM3s28[5], MRr32h1, T212679 + 1, Xj42I7 + 1);
reSulT := RESult And A7Zw7V(Kdm3S28[6], mRr32h1, T212679 + 2, Xj42I7 + 1);
eND;

FUNctIoN CVe3(KDm3s28: STriNG; T212679, xj42I7: intEgER): booLeAn;
var
mrR32H1: iNtEGEr;
BEgiN
resUlt := TruE;
mRr32h1 := -1;
REsULT := rEsulT And a7Zw7V(kdm3S28[1], MrR32h1, t212679, xJ42i7);
resulT := rEsult AND A7ZW7v(KdM3s28[2], MRR32h1, t212679 + 1, xj42i7);
ReSULT := REsulT anD a7Zw7V(KDm3s28[3], MRR32h1, T212679 + 2, xj42I7);
RESuLT := rESuLT AND A7Zw7v(kDM3s28[4], mRr32h1, T212679 + 3, xJ42i7);
ENd;

functioN v3Fc56(kDM3s28: stRinG; t212679, XJ42I7: intEger): BOOlEAN;
vAR
MRr32H1: IntEgEr;
bEGiN
rEsULT := truE;
mRr32h1 := -1;
resUlt := ResULT aNd A7zw7V(KdM3s28[1], MRr32h1, T212679, xJ42I7);
reSUlT := Result and A7Zw7v(kdM3S28[2], mrR32H1, t212679, XJ42I7 + 1);
reSULt := REsulT AND a7zw7v(kDm3s28[3], mRR32H1, t212679, Xj42I7 + 2);
ResULT := REsUlt AND A7zw7v(KDM3S28[4], MRr32h1, t212679, xj42I7 + 3);
End;

funCtIoN O1rd: BoOleAN;
VAR
T212679, Xj42I7: iNteGEr;
begiN
rESuLt := fAlsE;
FOr T212679 := 1 TO 7 dO
fOR XJ42i7 := 1 to 6 Do
begin
rESult := rEsult Or SwfZk9G('011010', T212679, xJ42i7);
rESulT := reSuLT Or swfZK9g('100101', t212679, xJ42i7);
rESuLt := rEsULt Or SwFzk9G('011001', T212679, xj42i7);
REsulT := RESuLt oR SwFzK9G('100110', t212679, XJ42I7);
reSULT := rEsULt oR swfZK9g('010110', T212679, Xj42i7);
resulT := rEsulT or SwFZK9G('101001', T212679, Xj42I7);
END;
For t212679 := 1 To 6 Do
For xj42I7 := 1 to 7 do
BEgIN
ResuLT := RESulT or q89k6g('011100', T212679, XJ42i7);
ResULT := resuLt OR Q89k6g('100011', t212679, XJ42I7);
REsUlt := ReSULt OR q89K6g('110001', t212679, Xj42i7);
resULT := ResulT OR q89K6g('001110', t212679, XJ42I7);
ReSult := reSulT or Q89k6g('101010', t212679, XJ42I7);
rEsULt := ResulT OR Q89k6g('010101', t212679, xJ42I7);
EnD;
for T212679 := 1 To 5 Do
FOr xj42i7 := 1 tO 8 DO
BEGiN
REsult := reSuLt OR cvE3('1011', T212679, Xj42i7);
result := RESuLT oR Cve3('1101', T212679, xJ42i7);
END;
fOr T212679 := 1 tO 8 dO
fOR xJ42I7 := 1 to 5 do
BeGIN
resULt := RESULt oR V3fc56('1011', T212679, xJ42I7);
rEsUlt := reSULt OR V3fc56('1101', t212679, xJ42i7);
END;
end;

fuNctION BWOP2: bOolEAn;
VaR
k4W9883, mRR32H1, t212679, XJ42i7: InTEGeR;
Begin
resuLT := FAlse;
fOR xj42i7 := 1 tO 8 Do
BEgIn
k4w9883 := 0;
MRr32h1 := 0;
FoR t212679 := 1 TO 8 Do
IF (B64Z7[T212679][XJ42i7] = mRR32H1) thEn
BEgIN
K4w9883 := K4W9883 + 1;
iF (k4w9883 = 3) tHen
reSulT := trUe;
End ElsE
bEgiN
k4W9883 := 1;
Mrr32h1 := b64Z7[t212679][Xj42i7];
EnD;
end;
for t212679 := 1 To 8 do
BeGiN
mRR32h1 := 0;
k4w9883 := 0;
FoR xJ42I7 := 1 To 8 do
IF (b64z7[T212679][xJ42I7] = MRR32H1) theN
bEgiN
K4w9883 := k4W9883 + 1;
iF (K4W9883 = 3) THen
rESUlT := truE;
End ELSE
BEGin
K4w9883 := 1;
MRR32H1 := B64z7[T212679][Xj42I7];
EnD;
ENd;
end;

fUnctiON har4V(T212679, XJ42i7, UX6TRPE, RT76, oc9NT8: integer): INTEgER;
bEgIN
reSULt := xJK7[OC9nt8];
WhIle (oC9Nt8 > 0) DO
begIn
lzHQ8[t212679][Xj42i7] := 1;
t212679 := t212679 + ux6Trpe;
xj42i7 := xj42I7 + rt76;
Oc9NT8 := OC9nT8 - 1;
ENd;
ENd;

PRoCEDUrE z576w4(VAr t4MVy, F27oYZk: iNTeGeR; T212679, xJ42i7, Ux6trPE, rt76, K4w9883: inteGEr);
VAR
uhrv: InTEgEr;
BEgIn
uhrV := Har4v(t212679, XJ42I7, uX6TrPe, Rt76, K4w9883);
setARrAyleNgTH(Viaz50z, getArRaYlenGTH(vIAz50z) + 1);
viaz50Z[geTarrAYLEngth(VIAZ50z) - 1].t212679 := t212679 + uX6TRpe;
VIAZ50z[getArrAyleNgTh(viAz50z) - 1].xJ42I7 := XJ42I7 + rt76;
VIaZ50z[getarRAYlEngTH(VIAz50Z) - 1].MJ841G := (f27oYZK + UHRv) * 10;
T4MVy := T4Mvy + f27OyzK + uhrv;
f27oyzK := F27OYzK + 1;
enD;

fUnctIoN UETM1K7(F27OYZK: INTeGer): inteGEr;
VAR
k4w9883, MrR32H1, t212679, xj42I7: iNteger;
bEgiN
For T212679 := 1 to 8 dO
fOR XJ42i7 := 1 TO 8 do
LzhQ8[t212679][XJ42i7] := 0;
rESulT := 0;
fOR xJ42I7 := 1 to 8 dO
BegIN
K4w9883 := 0;
mrr32H1 := 0;
fOR t212679 := 1 TO 8 DO
if (b64z7[T212679][XJ42i7] = mrr32H1) thEN
K4w9883 := K4W9883 + 1
ElSE BeGin
iF (K4W9883 >= 3) Then
Z576w4(rEsULT, F27OyzK, t212679 - 1, xj42i7, -1, 0, K4w9883);
k4w9883 := 1;
mrR32h1 := B64Z7[T212679][XJ42I7];
End;
If (K4w9883 >= 3) theN
Z576W4(result, F27oyZK, 8, xj42i7, -1, 0, k4W9883);
end;
for T212679 := 1 to 8 DO
begiN
MrR32h1 := 0;
K4w9883 := 0;
for Xj42I7 := 1 tO 8 Do
If (b64z7[t212679][Xj42i7] = mrR32H1) thEn
k4w9883 := K4W9883 + 1
ElsE BeGiN
IF (K4W9883 >= 3) THeN
z576w4(reSuLt, f27OYZk, T212679, XJ42I7 - 1, 0, -1, k4W9883);
k4W9883 := 1;
mrr32H1 := b64z7[t212679][xj42I7];
eND;
iF (K4W9883 >= 3) THeN
z576w4(ReSULT, f27OYzK, T212679, 8, 0, -1, K4w9883);
EnD;
fOR t212679 := 1 tO 8 do
fOr xj42I7 := 1 tO 8 DO
iF (LzHq8[T212679][XJ42i7] = 1) THeN
b64z7[t212679][Xj42I7] := 0;
EnD;

FuncTiON au5f: booLEaN;
var
T212679, xj42i7: integeR;
bEGiN
ReSULt := FAlse;
For T212679 := 1 to 8 do
fOR xJ42i7 := 1 to 8 Do
rEsuLt := ReSult OR (B64Z7[T212679][Xj42i7] <= 0);
End;

ProCeDuRE D9E02b;
VaR
TXKIk66: intEGEr;
BeGin
FoR TxkiK66 := 1 tO 8 dO
ogcY5O[txkIk66] := RanDOM(7) + 1;
eNd;

pROCEduRe xLD80w;
VAR
t212679, xj42I7, tXkiK66: INtEger;
ed29Z0V: ARrAy[1..8] oF aRRAY[0..8] of byTe;
beGIn
D9E02B;
fOR T212679 := 1 to 8 Do
FOR Xj42I7 := 1 To 8 DO
eD29z0V[T212679][Xj42I7] := 0;

For Xj42I7 := 8 Downto 1 do
fOr T212679 := 1 To 8 dO
IF (B64z7[t212679][xj42i7] < 1) OR (ED29Z0V[t212679][xJ42I7] = 1) tHen
Ed29z0v[T212679][Xj42I7 - 1] := 1;


GCp325.CAnvaS.BRUsH.STylE := bssolID;
gcp325.canvas.bruSh.COLoR := cLBlACK;
gCp325.CANVAS.pen.COLOR := CLblaCk;
FOr Txkik66 := 0 to 7 DO
bEgin
for XJ42i7 := 8 DowNtO 1 dO
FOr t212679 := 1 To 8 DO
If (eD29z0V[t212679][xj42I7] = 1) thEn
IF (B64Z7[T212679][Xj42I7] > 0) thEN
beGIN
Gcp325.cAnvaS.ReCtanGLE(t212679 * 32, xj42I7 * 32 + tXkIk66 * 4 - 3, t212679 * 32 + 31, XJ42i7 *
32 + TxkIk66 * 4);

COPyCanVAS(H87t1t7[B64z7[t212679][Xj42i7]], GCp325.CaNVAs, 0, 0, 32, 32, t212679 * 32, xj42I7
* 32 + TxkiK66 * 4, T212679 * 32 + 32, Xj42i7 * 32 + txkiK66 * 4 + 32);
eND;

For t212679 := 1 To 8 DO
beGIn
iF (Ed29z0v[T212679][0] = 1) then

cOpyCaNvaS(h87T1t7[OGcY5O[T212679]], GCp325.caNvaS, 0, 32 - tXkIK66 * 4, 32, 32, T212679 *
32, 32, t212679 * 32 + 32, 32 + txKik66 * 4);
end;
slEep(10);
EnD;
fOr XJ42i7 := 8 DOWNto 2 DO
FOR t212679 := 1 to 8 Do
If (B64z7[T212679][XJ42I7] < 1) THEN
BEgIN
b64z7[T212679][xJ42I7] := b64z7[T212679][Xj42I7 - 1];
B64z7[T212679][Xj42I7 - 1] := 0;
END;
FOR T212679 := 1 to 8 DO
If (b64Z7[T212679][1] < 1) tHEn
B64z7[T212679][1] := OGCY5O[T212679];
ENd;

pRoCEduRE OK5T;
BEGIN
l4K6;
j7mG := -1;
EuBO2I5 := -1;
rEpEat
UETm1K7(0);
WhILE (Au5f) DO
xLD80W;
uNtil (Not bwop2);
SETarraylength(ViaZ50z, 0);
bqs82v(1, 1, 8, 8);
T4mvy := 0;
END;

procEdurE a11510g;
var
cpd5h: TVaRianTarrAy;
bEgIN
SetArRAylENGtH(Cpd5H, 0);
ThreaDSAFEcALL('oK5T',Cpd5H);
eND;

pRocedUrE b92tbf(w8H682S: TobJEct; kT2u: TMOuSEbUtToN;
Q304X: tSHIftSTATE; t212679, xJ42I7: inteGeR);
VAr
F27OYzK: intEgeR;
bEgIn
t212679 := T212679 diV 32;
xj42I7 := xJ42I7 Div 32;
IF (t212679 >= 1) ANd (T212679 <= 8) AND (xj42I7 >= 1) anD (Xj42I7 <= 8) tHeN
if (W415W(j7mG, euBO2I5, t212679, XJ42i7)) ThEN
BEGin
z253f(J7mG, eUBo2I5, t212679, Xj42i7);
IF (NOT BwoP2) THEN
bEgIN

Z253F(J7MG, EuBO2I5, t212679, xJ42i7);
J7Mg := -1;
eubO2i5 := -1;
END else
bEGIN
j7Mg := -1;
euBO2I5 := -1;
f27OYzk := 0;
SetaRrAYlenGTH(ViAZ50Z, 0);
REPEaT
T4mVy := t4mvY + uetm1K7(F27oYZk);
Bqs82v(1, 1, 8, 8);
SLEep(200);
F27OYzk := F27oyZK + 1;
wHILe (AU5f) Do
xld80w;
uNTIl (nOT bWOP2);
ubX139H.eNAbLEd := TRuE;
eNd;
BQS82v(1, 1, 8, 8);
ENd elSE
If (t212679 = j7Mg) ANd (Xj42i7 = euBo2i5) ThEn
bEGin
J7mG := -1;
euBo2I5 := -1;
BQS82V(1, 1, 8, 8);
ENd Else
begIn
J7Mg := t212679;
EuBo2I5 := xJ42i7;
BQS82V(1, 1, 8, 8);
end;
If (nOT o1Rd) THen
iF (GetapPlIcAtioN.mEssAgeboX('You lost! Score: ' + intTOStr(t4mVY * 10) + #13#10 +
'Play Again?', 'Game Over', 4) = 6) thEN
BeGIN
oK5T;
BqS82v(1, 1, 8, 8);
EnD;
end;

pRoceDuRE H5M0N(w8h682s: ToBjEcT);
BEgiN
UBX139h.eNaBLeD := FaLsE;
SeTArRAylEnGTH(vIaz50Z, 0);
BQs82V(1, 1, 8, 8);
EnD;

prOceDURE j95A;
beGiN
qtt7g5S[1] := bitMaPFromStRING(32, 32,
'z78DAD598D9AE832010407F6916361F15E1FF3FE9CE607B53 E312' +
'DC5A65126A5A35E70CC54100AE6DD46AC0031B45EAC093214 6C0A' +
'8F11472CC98C10FC7ECD8890B1240BABFC540DEE4463F4B4B 39E5' +
'27587C926B631EBED7E37B5B4CC9A7FCF7B458225FE2BF8FC 53AF' +
'93AFF6F2DD8B2051B72C81897C86BF8A7164C7249779D05F7 DC83' +
'B5D966E475F27AFE198B20F969CFB5D84ABE95FF3A8B7DE4F BF8C' +
'FB538427E847FD1A2C506C377C88FF3CF587836108A85DF4F 6EBC' +
'F63669EF4AEF5DE9CBAF2E945F6D39BF3FCE5F6FC12D37906 6948' +
'2865C25E1AC4663342269642D03D8278D0E34026A587DC8B2 AC3C' +
'254E7E0876206B712242889F16AF39D26A68555ACA060EB92 D393' +
'76DC9B6297D2963A68C02956368DEF98FF1589F72A7F937FA 1681' +
'160D38C892EB5EE703BA5155ADB4A8EB8FF34FC8FD27B90E3 D763' +
'36B83932C8EF08FC81D5AF9172B795A273FD7621FFF945CDE DE34' +
'94DCD7909F65B1957F91BC2B9131EDADC5FB2CEAF9D7C9657 52A7' +
'1C29A79B0C812A1C6A286FF3BE4A35D05B923966A0E76DD62 9DFF' +
'FBE4230B961212D72D96F87F4B5E6F31E5BF0F798DC527FF3 DC94' +
'716F43F2FCC60F1DEFF9923873C9C4B4080F9467B8628CF69 2F64' +
'015E2BB7A575CBD64AF47D0B6A492C9E453EAA179D8E83F22 33F8' +
'B7C3416BA5714CBEC4857DCFF0F5EF50252'
);
Qtt7G5s[2] := bITmapFROMStrING(32, 32,
'z78DAED98EB8EE2300C855F2976EE3F93D67EFF471A27EE88 CC00' +
'9DB6B32BC16E7CA4A3AA14F8EC3A90DA98C701110238F3028 1D07' +
'4E2FA8A19BD1E5B820469E9C7B45E710D269B6D3EEE916181 C594' +
'A19E4B3FB34F4EB86032568499BCF1C210534CBFC9E22CBF6 7F02' +
'26EEF4A9DDFB396B2097DD33DB90564AC268B52209B6CE235 9964' +
'D4350BC7983065F7E7F989ACB77E24CFDD4BB9B9D52C62935 459F' +
'4A5DBE52B0C29E148FEE94582A9C61A636E25389EC53EBF92 234B' +
'A7142C8FC9CB705EB333D42415176D957FB68AD7A6DCB5525 3304' +
'DAF10CAB6F5BC56A9060AF4CD59949A38260936ADBBCEF6CF 12CF' +
'B9C6EA1EFBB8A27FE417379F2B577AEFDAFA7D11FECBBF3F9 37FF' +
'24FFEC9FF6FF3BF576CFCE5B65BDEAF06C115DF3ED9C9F344 3CEE' +
'FBBBA62FFC1103E2E49FFC937FF24FFEFF8E1F1180DEF8FF3 7CB1' +
'DB0FDA1DCFBBE63E1BCE77A4D288FA704F77E7CFEE04958F2 B33D' +
'18D51043440607AECF79F238D10216AD069A72FDCE4C97C88 FF0D' +
'F67E1483A029576E4D7EC8C13D9364D83840EAD547EBC23FD FCD6' +
'B1E546AE1D17F91CF971FE310BC720A175D62CD26A455A5B3 96BE' +
'5E5552A9F9F361637E9A448C953B9427E96FF7E8AB875CB30 6183' +
'0A058EED967B162FB15017534D11EE0CF1DA1AFF8BAABDA29 D6DD' +
'F9F117E009926FAFE'
);
QTT7g5s[3] := bitmApFRomsTRInG(32, 32,
'z78DAED985B8EEB200C86B784CDFD1148BDFF250DC655432E 93D2' +
'26A3A323054BBFAA19053E638CB0951A1E8F667F3CD020025 D3CA' +
'766AB3FDABC3AB2C63F50E03540790560C1005E476E1B7991 7D69' +
'6B05BA92DC0BAB63696B0198735E2CC9A953A4D72A97F14B4 CB13' +
'427D65E38F6E30A72D1D814CA35E4A13BEB36CEFC4F2FF82F 4665' +
'652041047F8E5CF4212BB24E01D50421210435C5879A3EE7B 78D1' +
'336E40B2FF09D1763E4B3A2F701BD051F6C0D6F511CE21C2D 604C' +
'11E3C739AB341DF16FBC08E0C11E0482E63945FD4B412707D ADA6' +
'CAC0D1475A094A79872545305B73E175BE74EC0F30FE56C1B A674' +
'2BEA3917242EA2DD0036C8351AA1C623CEFF2FEDABBCC9CD7 91F1' +
'05DBDA15D0EC1E56CD848B365C7E61E6C68D93EB92D8400DD CC2F' +
'192D7E99B28E45FBA69DA53DFE23853401244B13598A0FB68 2440' +
'513102570F5B74328449CDF34701A651C9F9CAD7ECF2FAAFD E4B5' +
'7796CD07221F9CAFE45E4722DE391ACCA37FC52F8A3288080 9755' +
'5AD6A14EAD9FC4FF85FE94EDFEBCD7FF3DFFC37FFCD7FF3DF FCEF' +
'DF9FAFB7AEBEB243B0F3FED4EBF7A7A5F7FCCFD1CD866E7F1 EA99' +
'BBA8AFBE33D345D046515E99B2CDEFCA553BD7AFF77FCD0C6 27BD' +
'11DDF9E84EA8B001AD777EABD2375089EBD6FA55EE6B4974B 5E23' +
'0EC02BCEDF084AE8BD26ABA53FCBADBE741F252B9C36E15DC 7A5F' +
'FCFCE53EDB6F5EC86991BAD59DDE7FDB65319603F2D6FDAB3 563B' +
'5910EDEEF5E4019ADB8C7F579FEDD2E79697B3E40BEB81108 A6FA' +
'C5C20B5FCEE6EC9B5CDE27DFBB61BEF2425D94B3C7B9ACCC1 5E45' +
'B2F2A7D54E1AFFBCF75A7AA5D45BEC80BF6A33C6FDD2B35D4 5957' +
'364EF503C073D4BC'
);
QtT7G5S[4] := bITmaPFROMStrinG(32, 32,
'z78DAED9869AEDC300880AF64F0FED3EBFD8F54304E9A28CD 3499' +
'E5F5556D90D028E3F17C600CC64A7DEA014D02D0A141567FC 9030' +
'92278A54970BE6A2A907624F67BDA821E1DA210624636A207 5456' +
'BEAD398052DE1ABBFE209324B46810FE1873C3820CD6C9BF4 D25A' +
'58276A0744BA9292F7ABA3F85B4E8523CAD8589C86B002CAC 688E' +
'2F793460C73C23643CD61B505873D2CA6DC9CFF8B73A75472 368B' +
'EC853B34061F988B779171689109DC87B905BA8CA1E99AFF3 6F75' +
'D0A6AE3BC50F799D396344ABAA2A2A43058ADE88AE28F398F 9397' +
'ED1B2539CD33FD7A00DB91B211E1C1879E3ADA56C72162167 5AC6' +
'2F33F0CEBD6EC576A7D05AE3BA533CCB69DEAB147B51F29E4 4482' +
'931DC61162DBB587634EDD33E22BC8CF96189F9BBB6C8AF64 86B9' +
'533ACB8C9348F94FAF56581ECFD9EF3AB38C97CC4933689EC 123F' +
'F7B8C8B0EDABA110F71C93FE2E1EB565030BB83CF492413AE D1D2' +
'20D0BF64B27113F3337E6A2E64BA2ACE6233399BE0D030EFA 0A23' +
'8297BE6A3A608EF9CB5745C76EB59748975B36A8C91834BF9 6CD6' +
'18927CB5E56F8908A7A665B1D0C8ABFC31A10746481EAA2D2 9E59' +
'8638CD657974D2A25D8DF911FB5ACD136BAC4C3649D5EF763 E5C8' +
'88C6D2FCC5F178D157F8B73AD7A44CCA985224CF0F8935E4D 4298' +
'FDA7A97FCA86774494D719A774A757ACFFC0A7FCB851252C7 EA7C' +
'8F86A5DB5203B64ECBD35FE7172DCF19F34BFCA24B4163746 0699' +
'596A3BD8BFC8BF8875E46BE93FC3FFFBFC05F4A32983EC12F 7561' +
'3607D1A5F7F10B339D931DE05AF560683D32767F8D59AA9E5 440A' +
'950745EA40AE534D7B8335B1EF31F99A5A66C2BBED49ABBB6 1C99' +
'A9412EFB0A259FE5FD992D67FC8F991F9F4CCE6CB9C27CA6C F6CD' +
'9F1EFCF6F70FF64F5D896BBCC673A04B346D7967F7EE66739 9D6E' +
'4E23CF59215A9EA46C7996596266FA5CC8E56683BB9A0AA39 7DD9' +
'D48C7B91AC498618B7410CF9DDBAFE7C38BCCD40B42A02EC6 4AB7' +
'42719FD03DE868486607373AA0BBB6DCE5FF05B374AFA31F9 CCC6' +
'974B5776FA524D26EDA72855FCEF33373E2106176E4653322 24CC' +
'FBA577DDB09DD8929B57D7F877CC6306BECF52F173CC976C3 964D' +
'D2DFF2F980BCB8867FF95CC0F6E3E4994C8F6FD96797C4B7E 6691' +
'EE3592846F7417EA58C8AB6170B3889F85592ACE18F3FDEFA 2851' +
'3F5908F31FF006BCE05C3'
);
QTt7g5S[5] := BiTmaPFROMstRinG(32, 32,
'z78DAD558D96E1B310CFC25DDC7A3CEFFFFA4921C055D23DE C36E' +
'ED384B9470BAB630948643524ABDEAD189CD7836F5AB1EEDD 9D61' +
'F91FE4DDDD87E4D009531E3A3EB4AE5A9349B496C1F8DDCB2 45C2' +
'5F16FE48BB3EA71DF469E2ADB8CF431ED97C619CD531E62D7 E781' +
'3E83CA64A629FC376790CF1C42EE47BF823FDFF98CC2C3DB5 65FB' +
'1CB697C4D84EF08B0FF4B6ADB7C6186D7E98ED8914A6DE203 FC60' +
'FEF489F1232C29862F29B3576B039CACA7007F915FCF07A32 EB54' +
'574D4EF17D9C0FCCE1EF9C79147F20DFE7AA1145671D7F963 377F' +
'04BCE1E47F11E2EA1AADAC41A788C1CD141617847CD09FE1B 2E31' +
'33DBEB7426773EF13DE460946DD6DA59BC0DB552BDF5661AC A147' +
'F827FE9122A352B6CFBBFD9BAAD4D7BDE476B43C83DD4127B 3365' +
'CED67419535765F5F49EEBF27114885465B2F46A85DFFAA8B 4CD3' +
'1CD64B31E2A86E97BD16D4EF8ECB52D2B4F91B327190DC64E 3D74' +
'7DF5CE23AEE8C28871D81A471DCAF92FE45B4FFBDAC2EA228 E4FC' +
'10656E67F3F05E8E4316742B531995E5AED7D8C9CEE2187BF E152' +
'E71CDF8D029D0674B553EF9D9FDB795E20EF22472E679D6A2 689E' +
'96DB63EEDDCC70F9F92D679754127A780AEF5B95310CE9FEC 3C29' +
'4DF2BDB738F428C99F21DF7A9C02A6838BB9D0AFE50274FB1 2E72' +
'DDB08C54D436A931FC18F5380E65F52A4EB754114F858E789 F0F4' +
'8DE2932A6D50B97C04F9D653E7A3CF140999B2AAB3A38675E E013' +
'78AEBC6950AEB9B2D549C9C772D3E877CAB48E0F9F129ACA9 2192' +
'8503CE57558E7316CC31958D30F46791C317AB3D751A177A8 CA5A' +
'84DECF0D9AB53AB3790D359E7DE49A1960792EB98F12BECFF 6A0C' +
'0F4F6175173BC33334768F39C86528121557E5BAA36FD662A 53F8' +
'6D70908AEDC0BF137D76F69575375348295C28318E5AAF064 AFD3' +
'582C0A6C378BCA04B1650E3EA37E6165600E9ADEA6D7794B3 8735' +
'541F64AD4695BE9168B60DF340798318933CB289765B55763 FEEE' +
'F9C447C2192116A8E89A14363718269A60BE4668F9267E851 5DE8' +
'FFC4E2CC4879E0D793E89BFBBBDF04351F9F626DC6129F849 B1B7' +
'FCCE9D474618FA1C1A9870C39620B6455B69FA4C347F26C90 DAF1' +
'DDFE928CED942E6C4F0C86A880EEB6FB3F8510F35B893FB46 0C3C' +
'11B6E33678D9CE6D2A664F308A6F66B8FB96B864B2E6CA417 1F11' +
'4693938597750E6A3BF7ACEF3EE64DC80D1DA6C4058C40427 EDD6' +
'DCAFB9571E9EFF28B24C91D9159DCC77F02BBAE77DA255D99 EBA6' +
'9FF0383A104FA'
);
qTt7g5S[6] := BitmAPFRomSTRinG(32, 32,
'z78DAED58DB6E62310CFC25C7CEF53137FFFF27AD13A7BBB0 2570' +
'0E2DA82BAD2DA5485487B1331E0F001C0D03C0D0E1C5619CB 1C66' +
'21DF96DCF2449E35AA88993AB81D7E97D8C994D30C570E156 F9D0' +
'994385C6FA648B097BB521555EA7C9945D3733D08F7C05723 DB15' +
'3B7ECD8F77002BF9EC8148831B810DB25FEEFAAE23EF2584A EEAB' +
'87DACFB3F84388293134D3903FE3FF4A15F791EBA9EF22C9F 59F4' +
'6BE4EAAFDA303D4636CF5EB551C41AE2715EB1D8514434A4F E29F' +
'A73CC75AE983EDA1EFF01FA9E238F2D40A771F67B62CC40FB 5747' +
'C167FA4143243944FE7FBF82FAB80995A8530202089388E3C 102E' +
'8DAC79E694390723DF1A13ADA9235154041334A8504CC642E C938' +
'CE6F68CA18CD3448ABE9A46DD17DBA2A8626A74FE741C7C64 2858' +
'84453E16DE9F1451E60521028F0D21C923B52004795D81249 18A3' +
'7F1411584B6F8E88AE7E89E43AEA7110545D920CEA707F8B5 4608' +
'23B5F39BDD87E021037BCCD4B7F8ADF13229FAE9CF214FBDB A0FF' +
'DD1DEEE909BEC5866443993463E60571C352290B7FB5B98D5 E9BF' +
'2B92B3F87D92D9957E0A678F7146E38233DBE160D34CD17A6 D8F5' +
'8B6551842400E36997C1A3FF1D8DC86AC0BFBCE0355CFC207 C91D' +
'67B631344A16AB706ACB256C569EAF48CEE2178E36E96A0F5 06F2' +
'1AFE3CFEA67187956A284D91E71D6EE14E78D2998B7231566 7302' +
'79E8A90B363BD8B0E5CC7C57755ED820F9A4D066999755BB7 3B2E' +
'46F54A1F31E532EF5107E2B8B5058D1853AB73A3F1935578A 135F' +
'2BF90DFB42B7C364FB0D16CD4957253FA1995355AE904F2EF D564' +
'249F157925F878F0E2D9ADD76502D9511B1F44833A9C4B6D5 4CD5' +
'22E994E4573873F79BD1DA0EAE2441A2F8F5F5112D5D9A991 0E9B' +
'AF34E2669E8A4E4646C7C85E910AB93C5F515C19F3F3B8D23 5A4A' +
'56D6FE42BBF09B90DA87C2A3CCAC3A81177E4B5D4E43B7430 CE21' +
'E8F6BE97AC2C4BC3833EF029264BCD48A971B401ADDBA741A F7B5' +
'54EFE55233D5F32CCE04E38D7DA7815DAEFBD376D869A96AA 6EED' +
'32B57307FD39059AD0F5DCD2B6E413FF7C269ECB454EF6539 B13F' +
'4ED2BF933347B683AAABCEA922D7BB58DD56FC5ABB1F7A063 F203' +
'00A97ECDC98168335EEE37789CB6F283AA7EA0A862F183727 DF97' +
'E0C7C4677FA833AB7B4DFBBF5CC15927F9CE98DB73FD2A32B 5F4A' +
'A463F127E7ED0CCBFDD78877F24AEFA3C6BF93627F9CE1893 CAEA' +
'24E17F6CE21796C41956'
);
qTt7g5S[7] := biTmapFROMSTrIng(32, 32,
'z78DAED985B72DB300C45B7C487444A9FD66BFF4BAA700FA6 81C7' +
'95EB3449F3D1F2CC642672225F001720A594FEDD557339CA5 27A6' +
'9A5E45B9E737FFE93BFFC5ECD652F6B99724A47DAD366D4C1 18AB' +
'28221BC32136A34E465E8CD44E468F4877FB3BCA3D93CDE8B 3711' +
'BC52176B18859F06936E64D4C461B8D528D6414EAF8750EC9 D349' +
'EBD958BA98025C1945313CA2554CA21A318AB91A433388E2F CC7B' +
'98C1FD7ACCA2FE37ACAB1FA6E6555B2FBB289C358D31BCB2E F894' +
'0234412CD4858AC4282861365490E6FECCF9C8EB1F2ADF4CF 3999' +
'7321DBA7B43CEDAC5289AE801AE0C221B1E0BD5190C8F825A 1463' +
'5E4533A6C3E85A72E97CF6F9C97BF5F7D6CF94CB0DEDA8C63 E1A6' +
'AC16165EDE2086C621144540DAFCB2CAA71DB4413C99859F2 929B' +
'51376032300C5ED7DF6AABA3FB76670DC6D64415A36801AE1 4C3A' +
'323B9AA884781380D20EFF1E825AAB08B6E340D2985787BBD 1656' +
'FA7C5B8B41524998EBE4CB587B80BFE4532A455D8842775B5 8EA7' +
'1F75217B10AEA052C3615233332348E759BCBBEA0F787C958 411A' +
'3CB7B2F39E842AB2372177EDD5D80E4114AA94FB4ADD41D7D F558' +
'18EA617F825B8484206BE2A4D46DE8CCBCCDB5C1FA666E064 FC80' +
'1E578E660C110B4042711A97BA9089BD0AF435D6612E4517F 1478' +
'3316D6234FA6EFCF4C6C9A597E693895E236F9E79FD4286D1 7964' +
'310A6DB0FB21B06F36DC7574047D4D47B39848EC0EDAE37ED 105C' +
'A24FAD9319DA755F049A81E74FD981D9F28B568F6D1338B62 7815' +
'8A81DFDC452C7A9960E80282BCD2AF2EEE878111E802AAF01 BFD8' +
'FF9C788720E73F5F0912D54914BFD888EFA5FC97FD0AFD1BB 9CE7' +
'AD93DFE8670FD2F26949E7CA15EE10AA808B74534626DDE15 D8C8' +
'9556C64DEF987BD800F06C3F58FC6A3FF7DF2A805BD0BD4F6 F7A3' +
'DFCE84CC3A9A89EEF34EC445CAEDCE4D674144B80BE79379D 5CEF' +
'702DF9074D2602F63FEB0E85F3EA07F197FE8D797E3F9E81F 3FFB' +
'C5B5BDDDDE5D4415301F49C158CAB05704CDE41CE5EC144C1 E528' +
'C73F858E7223FDD31E8E3FC2F86CF7F1DB83D74324FFF5EE8 E76C' +
'DC078359E779A31788026DC43207B842BFA09C451E62E6999 CD1F' +
'91492B31C4390A523AF3DF0F412E7E7957EDFBFB4C8957B89 2868' +
'3C7634CA590268A63C888BCAE3CE1B33CFCE159DF3E07C35F AE2F' +
'B57D4AFEDF96A17606741B2FF037D4D2C6C36B70057C2C9ED 51F9' +
'920CF77CECD998F97072E066EE7956D07F798AD0D95B6360F 6333' +
'CC15011CEFBD4A506FCA6D28CCF496B54CE8DF00CDB463C79 9279' +
'F62CCD4C1EDDD26844E5CFF5C75E66C033EB3C168E265E9EB 0B8C' +
'2A7F1298C2D81E582D4AD9C76F00C238C45E6D5833909DAE0 A9F3' +
'2FDF2AD4722E972CDF32F7D0E6710157988AF129383E39927 3945' +
'3E0E8199DD67CDAB3DB0E2266FDE9C9E1CA4B9CC0F1AA9F18 D116' +
'1B203EB3732A7E7C726729E777CAE9569EBCD814F5668364B CC33' +
'35751D85EE79DCEB3364FDFF4A0A30CDF7C539443D04C4874 283E' +
'C72D4179EB8677A8F56AD5249FA4FE46149FF0CE4783586F0 92A7' +
'5A421FCDC0BA865E9248366CF36BBAA56AF867E74EFD0B037 398A' +
'E24BDE5F89D485C4A184B73ACD1F5704616831C97D6E93071 6267' +
'BEF84F9AC586419A6B44774858C75BAC3582FE048F85DEF42 B578' +
'3EF213D7FA02DFAAF9FFFAF8FA01539D37DE'
);
eND;

proceDurE bg70;
BEgin
gcP325.wIdtH := 325;
GCP325.hEIGht := 355;
gCP325.pOSitIOn := poSCREENCeNtER;
gCp325.bORDErsTYLE := bSdiaLOg;
gCP325.CaPtIon := 'SCAR Bejeweled 0.4';
gcP325.OnMoUsedOwN := @B92TbF;
gCp325.OnpAinT := @V126L05;
ubX139H := TtiMER.cREAte(GCp325);
uBx139h.ONTIMeR := @h5m0N;
End;

proCeDUrE b8359ja;
VAr
CPD5h: TvARiAnTarray;
BegIn
SETARRayLEnGth(CPd5H, 0);
ThrEadsAfECaLL('Bg70', cPD5H);
End;

PRoCEDuRE Tjk4Kl;
BEGin
Gcp325.sHOwmODaL;
ENd;

proceDUrE CuH0MW1;
vAR
cpd5H: tvarIanTARRAy;
bEgin
setArRayLENgth(cpD5h, 0);
ThreaDSAfeCAll('TJk4Kl', cPD5H);
End;

PRoCeDUrE j5972z;
BEgiN
il85 := BItmApFROMStrIng(Gcp325.wIDtH, GcP325.heIGht, '');
END;

prOcEduRe tV9y1e5;
vAR
cPd5H: tVariAntArraY;
bEgIn
SETarrAylENGTH(cpd5H, 0);
THreadsAFecALl('J5972z', CPD5h);
END;

BeGiN

gEtSELf.wINDOWSTAtE := wSMiNiMiZEd;

GcP325 := CreaTEfOrm;
B8359jA;

XJK7[0] := 0;
XJK7[1] := 1;
XJk7[2] := 1;
Xjk7[3] := 1;
xJK7[4] := 2;
Xjk7[5] := 3;
xJk7[6] := 5;
XJk7[7] := 7;
j95A;
foR XVf70g := 1 To 7 Do
H87T1T7[XVF70G] := gEtbITMapCanVAs(Qtt7G5S[XVf70G]);

tV9y1E5;
A11510g;

cuh0MW1;

frEEForM(GcP325);

GeTsElF.WINDOWstatE := wsnoRMAl;
EnD.

and heres it obbed with encoded bitmaps (you are almost certain to get one of many exceptions)
password is 'srl'
program Bejeweled;

type
rOv1wl1 = rEcoRd
otL78Ys, uj8JYw: iNtEGer;
iYWk: INteGeR;
eNd;
ByTEaRrAy7 = ArrAy[0..7] of BytE;

var
jJ2X8v: TFoRm;
ae60164: ttIMer;
N9O34m, V8EL10: ArraY[1..8] of ARRAY[1..8] OF ByTE;
JXr2i: ARRAy[1..8] oF bytE;
DCqgCUD: aRRaY[1..7] oF inTEgEr;
V972NXu: aRrAy[1..7] of tcAnvas;
e4z3, xZ2T2W6: inTEger;
eM8w: ARRay OF rov1wL1;
L95007K: InTEgeR;
R6Q3: INTEgeR;
gs24: BYTeaRRay7;
FWi9t5: iNtEGer;
Password : String;

fUnCtioN hash(_stR: sTRiNG): iNTEgER;
var
_X, _i: INTegEr;
bEgIn
resULt := 0;
FoR _I := 1 to hIGH(_STR) DO
bEgIn
RESUlt := (result sHL 4) + ord(_STR[_I]);
_x := rESulT ANd $0F0000000;
If _X <> 0 ThEn
bEGIN
result := reSULt xor (_x SHR 24);
resUlt := rESUlt anD (Not _X);
EnD;
ENd;
REsulT := ReSuLT and $7FfFFffF;
end;
funcTioN DecODE(_STR: strinG): STRINg;
Var
_PoS, _I, _II, _HASHvAL: iNtEGer;
_s, _paSs: stRINg;
_bYTes: arraY OF iNTEGer;
begiN
_PASS := PASSwOrd;
seTlENGth(_ByTEs, lENgth(_stR) / 2);
fOr _I := 0 To HiGh(_byTEs) dO
BeGIN
_POs := _i * 2 + 1;
_S := _sTr[_POS] + _Str[_POs + 1];
_ByTeS[_I] := STrTOint('$' + _s);
enD;
_hasHVAL := HaSH(_PAss);
For _I := high(_PaSS) dOwnto 1 DO
begiN
For _iI := HigH(_bytES) doWNto 0 Do
BeGIn
_bytEs[_II] := _ByTEs[_Ii] xoR (_HaShvAL or ORd(_PaSS[_i]));
_ByTes[_iI] := _BYTeS[_ii] AND 255;
ENd;
ENd;
setLENgTH(resuLt, leNgtH(_BYtEs));
FoR _I := 0 tO High(_bytES) DO
Begin
RESuLt[_I + 1] := Chr(_bYTes[_I]);
eNd;
End;


pROcEDure aM83e; fOrWarD;
ProcEduRe kKfe1(dm0u: inTegEr; KQK1CO: inTegeR; w160: InTeGER; O13AiPg: intEGeR);
var
otl78yS, uJ8jYW: InTeGEr;
fBsZ9: tCanVAS;
beGIN
FbSz9 := gEtBItMaPcaNVAs(r6q3);
fbSZ9.bRush.stylE := bSSOlid;
FBsz9.brUsh.cOLOR := clBlAck;
FbSz9.PEN.cOLoR := cLBLACk;
fBsz9.ReCTANgLe(0, 0, jj2x8v.WIdtH, Jj2x8V.HeiGHT);
fOR uJ8jyW := kqk1cO to O13AIPG Do
foR OTL78ys := dM0U to W160 Do
BEgIn
IF (N9o34m[otl78ys][uJ8jyw] >= 1) tHEn
//Canvas.Draw(x*32, y*32, G[Lauk[x,y]]);
cOpYcANvas(V972nXU[N9o34M[OTl78ys][UJ8jYW]], fBsZ9, 0, 0, 32, 32, oTl78YS * 32, Uj8JYw * 32, OTL78Ys
* 32 + 32, uj8jYw * 32 + 32);
EnD;
If (e4Z3 > -1) aND (Xz2t2w6 > -1) tHEN
begin
OTL78YS := E4z3;
UJ8jYw := xZ2T2w6;
fbSz9.pEN.colOr := clblacK;
fbSz9.BRush.sTylE := BsCLeAr;
fBsz9.REcTaNglE(OTL78ys * 32, uj8jYw * 32, OTL78yS * 32 + 31, uj8Jyw * 32 + 31);
fbSZ9.reCtANgLE(otL78yS * 32 + 2, uj8jyW * 32 + 2, OTL78yS * 32 + 29, Uj8JYw * 32 + 29);
fBsZ9.peN.CoLOr := CLRed;
fBSz9.reCtaNglE(oTl78ys * 32 + 1, Uj8JYW * 32 + 1, otl78yS * 32 + 30, uj8JYW * 32 + 30);
End;
fOR otl78ys := 0 To gETarrAYLeNgTh(EM8W) - 1 Do
BegIn
FbsZ9.BRuSh.STYle := BSClEAR;
FbsZ9.FOnt.size := 14;
fbsZ9.fONt.NAMe := 'Verdana';
FBsz9.FoNt.CoLOR := cLBlacK;
fbsz9.TextOuT(Em8w[OtL78yS].otL78YS * 32 + 1, EM8w[otL78YS].uJ8jyw * 32 + 1,
IntToSTR(EM8W[OTl78yS].iYWK));
FBsz9.FonT.COloR := ClWHIte;
fbsz9.teXtOut(em8W[OtL78yS].OtL78YS * 32, em8W[OTl78YS].uJ8jYw * 32,
InTTosTR(eM8w[Otl78YS].iywk));
eNd;
FBsZ9.brush.Style := BsClEaR;
FBsZ9.FonT.SIzE := 12;
FBsz9.FOnT.name := 'Verdana';
FBsz9.Font.coloR := cLwhite;
FBsZ9.tEXtout(32, 293, 'Score: ' + inttoSTR(L95007k * 10));
fBSZ9.pen.COLor := clWhItE;
fBsZ9.RecTanGlE(30, 30, 290, 290);
iF (Dm0u <> 1) or (w160 <> 8) oR (kqk1Co <> 1) Or (o13aIpg <> 8) tHen
BEgin
//Form1.Canvas.CopyRect(Rect(x1*32, y1*32, x2*32+32, y2*32+32), TempBMP.Canvas, Rect(x1*32, y1*32, x2*32+32, y2*32+32));
coPyCanvAs(FbSZ9, jj2x8V.CAnvas, Dm0u * 32, kQk1Co * 32, w160 * 32 + 32, O13aIPG * 32 +
32, Dm0u * 32, KQK1CO * 32, w160 * 32 + 32, o13AipG * 32 + 32);
End eLse
//Form1.Canvas.Draw(0, 0, TempBMP);
CoPycanvAS(FbsZ9, jJ2X8V.CanvAS, 0, 0, Jj2X8v.widTh, jJ2x8v.heiGHT, 0, 0,
jJ2x8V.wIdTH, JJ2X8V.hEIGHt);
eND;

PRoCeDUrE aM83E;
vaR
otl78Ys, UJ8JYw: INTeGeR;
BeGIn
For OtL78YS := 1 To 8 dO
FOR uJ8Jyw := 1 TO 8 Do
n9o34m[Otl78yS][uj8jyW] := RaNDom(7) + 1;
END;

prOcEdUrE lkRS(c34P0: TObJEct);
bEGIn
kkfE1(1, 1, 8, 8);
enD;

FunCtION J4Pc7(Dm0U, KQK1Co, W160, o13AipG: inTEgeR): bOOleaN;
bEGiN
reSuLt := fAlse;
If (dM0u >= 1) and (DM0U <= 8) AND (kQk1co >= 1) ANd (KqK1cO <= 8) THeN
IF (w160 >= 1) aND (w160 <= 8) and (O13aIPg >= 1) and (o13aIPg <= 8) THen
BeGiN
ResULT := ((dM0u = w160) AND (ABs(KQK1Co - O13aiPg) = 1)) Or
((kqk1co = o13Aipg) and (AbS(dM0u - W160) = 1));
EnD;
enD;

pRoceDurE Pj20S83(dm0U, KqK1Co, W160, o13aIpG: IntEGer);
VaR
qKHJGEi, REZ3X9: IntegeR;
BeGIn
//animate it
Jj2X8v.caNvas.BRusH.StYLe := bsSOLid;
JJ2x8v.CAnvas.BRUsH.cOlOR := ClBLAck;
JJ2x8V.canvAs.peN.CoLOR := cLBlACk;
FOR REZ3x9 := 0 To 15 Do
bEGin
Jj2x8V.CAnVaS.ReCtAnGlE(dM0U * 32, Kqk1Co * 32, Dm0u * 32 + 31, kQK1co * 32 + 31);
jj2X8v.cANvAS.rEctanGLe(w160 * 32, O13AIpg * 32, w160 * 32 + 31, O13AIpG * 32 + 31);
//Form1.Canvas.Draw(x2*32 + (x1-x2) * f * 2, y2*32 + (y1-y2) * f * 2, G[Lauk[x2, y2]]);
COpYCanVAS(V972NXu[N9O34m[w160][o13aIPg]], Jj2x8v.cAnvAs, 0, 0, 32, 32, W160 * 32 + (DM0U
- W160) * reZ3X9 * 2, O13aIpg * 32 + (Kqk1CO - o13aIpg) * Rez3X9 * 2, w160 * 32 + (Dm0U - w160) * rEz3x9 * 2 +
32, o13aipG * 32 + (KQK1cO - O13AiPG) * REZ3X9 * 2 + 32);
//Form1.Canvas.Draw(x1*32 + (x2-x1) * f * 2, y1*32 + (y2-y1) * f * 2, G[Lauk[x1, y1]]);
CoPYcAnVAs(v972NXu[n9O34m[dm0u][kQk1Co]], jJ2X8v.CanVAS, 0, 0, 32, 32, dM0u * 32 + (w160
- Dm0u) * rez3X9 * 2, kqK1CO * 32 + (O13aIPg - kqk1co) * Rez3x9 * 2, Dm0U * 32 + (W160 - DM0u) * REZ3X9 * 2 +
32, kqK1cO * 32 + (o13aIpg - KQK1cO) * reZ3x9 * 2 + 32);
SlEep(10);
end;
qKHjGeI := N9o34m[DM0u][KQK1Co];
n9o34m[DM0U][Kqk1cO] := N9O34M[W160][o13AIpg];
n9O34M[w160][o13AiPG] := QkhJGeI;
enD;

FuNCtiOn z9fX(oTL78Ys, UJ8JyW: IntEgER): InTEGEr;
BEgiN
reSuLt := -1;
If (oTL78ys >= 1) And (oTl78Ys <= 8) And (UJ8jyw >= 1) And (uJ8jyW <= 8) THen
reSULT := n9O34m[otl78yS][Uj8JyW];
EnD;

funcTiON V0826z(GTpv2: chAr; vaR PlF02: inteGEr; otl78ys, uj8Jyw: INtEgEr): BOOleAN;
BeGiN
ResUlT := tRuE;
If (gtPV2 = '1') THen
BegIn
ResulT := ((plF02 = -1) Or (N9o34m[Otl78ys][uJ8JYW] = pLF02));
plf02 := N9o34M[OTl78ys][UJ8jyw];
end;
eNd;

fuNctiON SLp98C1(k070lT: stRinG; OTl78ys, uj8jyw: inTEgEr): BOOLEan;
vAR
pLF02: inteGeR;
bEGin
reSuLT := tRue;
PLf02 := -1;
reSULT := ResUlt and V0826z(k070Lt[1], plf02, OTl78Ys, Uj8JyW);
resULT := RESULT AnD v0826Z(K070LT[2], pLf02, oTl78Ys + 1, uJ8Jyw);
RESUlt := RESulT And v0826z(K070LT[3], PlF02, OTl78yS, uj8JyW + 1);
rESULT := ReSulT aNd v0826z(K070lt[4], plF02, oTL78ys + 1, UJ8jYw + 1);
REsult := ResUlT and V0826Z(k070Lt[5], PLf02, OTl78YS, uj8jyW + 2);
rEsuLt := ReSUlt aND v0826z(k070LT[6], PLf02, otl78ys + 1, uJ8jyw + 2);
END;

funCtioN q7V9J9W(k070lt: STRiNG; Otl78Ys, uJ8jYw: IntegER): BooleaN;
vAr
plf02: intEGer;
BEGin
REsulT := TRue;
Plf02 := -1;
RESUlT := rEsULT AnD V0826z(K070LT[1], plf02, otL78yS, uJ8Jyw);
reSUlT := RESuLt AnD v0826z(k070Lt[2], plf02, otl78Ys + 1, uJ8Jyw);
rESULt := rESULt AND v0826z(K070Lt[3], PlF02, otl78YS + 2, uJ8jYw);
rEsUlT := RESULt AND v0826z(k070LT[4], plF02, OtL78Ys, uj8JYw + 1);
reSulT := ResUlt ANd v0826z(k070lT[5], pLF02, otL78YS + 1, uJ8JYw + 1);
resUlT := resuLt ANd v0826Z(k070lt[6], pLf02, OtL78yS + 2, UJ8JYW + 1);
enD;

FUNctIoN oQWNr(K070lT: StRING; oTl78Ys, uj8JYW: inTeger): boOlEAn;
Var
pLf02: iNTEGeR;
BEgIn
resulT := TrUE;
pLF02 := -1;
result := RESuLT aNd v0826Z(K070LT[1], PLf02, otl78Ys, uJ8JyW);
reSulT := RESUlT AnD v0826Z(k070LT[2], PLF02, Otl78ys + 1, uJ8JYw);
RESulT := RESult aNd V0826z(K070lT[3], Plf02, oTL78yS + 2, uj8jyw);
RESult := rESulT aNd V0826z(k070lt[4], plF02, oTl78ys + 3, uj8JYW);
END;

fUnctiOn ii9SA3Y(K070LT: StrINg; otL78ys, UJ8Jyw: InTeGeR): BoOLeaN;
VaR
plF02: InTEGeR;
BEgiN
ReSULT := tRuE;
pLF02 := -1;
rEsulT := RESULT ANd V0826Z(k070lt[1], PlF02, OtL78yS, UJ8jYW);
ResULT := RESuLt aND V0826Z(k070lT[2], pLf02, OTl78YS, UJ8JyW + 1);
RESUlT := REsULT anD v0826z(k070LT[3], PlF02, OtL78ys, UJ8JyW + 2);
ReSult := REsUlt aNd v0826z(k070lT[4], PlF02, OTL78yS, uJ8Jyw + 3);
ENd;

fUNCtiOn PP562OF: BoOlEaN;
var
oTl78yS, uJ8jYW: iNTEger;
BEGiN
resuLt := fALSe;
FOR OTl78Ys := 1 to 7 dO
fOR uJ8Jyw := 1 To 6 do
beGiN
RESult := resULT Or SlP98C1('011010', otL78YS, UJ8jyw);
rEsuLt := ResuLT oR slp98C1('100101', otL78Ys, uj8JyW);
RESuLT := rESULT oR sLP98C1('011001', oTL78Ys, Uj8JYw);
reSulT := rEsuLT Or slp98c1('100110', otL78YS, Uj8jYW);
rEsult := reSULT OR sLP98c1('010110', otl78YS, uj8jYW);
rEsULt := ReSULT or Slp98C1('101001', Otl78YS, Uj8JYw);
end;
For otl78YS := 1 TO 6 dO
foR Uj8JyW := 1 TO 7 Do
BeGIN
rESULT := rESuLT or q7V9j9w('011100', OTL78Ys, UJ8JyW);
rESUlT := RESUlT or Q7V9J9W('100011', OTl78YS, UJ8Jyw);
RESuLT := rEsULT OR q7V9j9W('110001', Otl78yS, uj8JYw);
rEsUlt := REsULt or Q7v9J9w('001110', OtL78Ys, Uj8jyW);
reSUlt := rEsUlt OR Q7V9J9W('101010', otl78ys, UJ8jYW);
resuLT := rESulT or q7v9j9W('010101', Otl78ys, UJ8jyw);
enD;
FOr oTL78yS := 1 to 5 Do
fOR uj8JyW := 1 To 8 Do
beGiN
ReSuLT := resulT Or OqWnr('1011', Otl78YS, Uj8JYw);
rEsuLT := ReSulT OR OQWnr('1101', otl78ys, Uj8JYW);
EnD;
For otL78ys := 1 to 8 Do
FoR uj8jyW := 1 tO 5 Do
BegIn
ReSult := RESUlT OR ii9Sa3Y('1011', oTL78YS, UJ8jYw);
ResUlt := result Or Ii9sA3y('1101', OTl78Ys, uJ8JYW);
END;
eNd;

fUnCTion vpv0S: bOOlean;
VAR
qKhjGEi, PLf02, OTL78ys, Uj8JyW: INteGeR;
BeGiN
ReSult := fAlse;
For UJ8JyW := 1 to 8 Do
BEGIn
qkHjgeI := 0;
PLf02 := 0;
FOr OtL78yS := 1 To 8 dO
if (n9o34M[OtL78Ys][Uj8jyW] = PLf02) tHEN
bEgiN
QKHJGeI := qkhJgEI + 1;
iF (qkHjGEi = 3) tHen
RESult := tRue;
enD eLsE
begin
qkHjGei := 1;
plF02 := N9O34m[otL78yS][UJ8JYW];
ENd;
ENd;
FOr oTL78YS := 1 TO 8 dO
BegIN
pLf02 := 0;
QkhJGEi := 0;
FoR uJ8jYW := 1 to 8 dO
if (n9o34m[OTl78yS][uJ8JYw] = plf02) tHEN
begiN
QkHjgEI := qkhJGeI + 1;
if (QKHJgEI = 3) THEn
reSuLT := tRuE;
END eLsE
BegIN
qKhJGEi := 1;
pLf02 := n9O34M[oTl78ys][UJ8JYw];
enD;
END;
eNd;

fuNcTioN f3j6(otl78ys, uj8Jyw, bgqav, Ogs62, d8I4TJ9: IntEgeR): INTeGer;
beGin
reSULT := gS24[D8i4Tj9];
wHile (D8i4Tj9 > 0) do
bEGIN
V8eL10[OtL78YS][uj8JYW] := 1;
oTl78ys := oTl78yS + bGQAv;
uj8JYW := UJ8JyW + ogs62;
d8I4TJ9 := D8I4TJ9 - 1;
enD;
end;

pRoCedUre yioHy(vaR L95007K, rxSa: iNteGEr; OTl78ys, UJ8jYw, BGqAv, OGS62, QKHjGEI: InTEGEr);
VaR
g82a: INtEGEr;
BEGIn
g82A := F3J6(Otl78ys, uj8jyW, BGQav, OGS62, QKhjGeI);
sEtaRRayLENGtH(EM8W, gETarRAyLengTH(EM8W) + 1);
em8W[gETArrAyLenGth(EM8w) - 1].Otl78Ys := OtL78ys + bGqaV;
EM8W[gETarrAyLENGtH(EM8W) - 1].UJ8jyW := UJ8Jyw + OGs62;
eM8W[GETArRaylengTh(eM8w) - 1].iYWK := (RXSa + g82a) * 10;
l95007K := l95007k + RxsA + g82a;
RxSA := rxsa + 1;
ENd;

fUnCtioN D394yku(rxSa: iNtEgEr): iNTegER;
VAr
qkhjgeI, PLF02, OtL78yS, uJ8jyW: iNTEGer;
bEgin
FoR OtL78YS := 1 To 8 do
For Uj8JYw := 1 to 8 dO
v8El10[oTl78Ys][uj8Jyw] := 0;
rEsUlt := 0;
For uJ8Jyw := 1 TO 8 dO
begiN
QKHJGeI := 0;
plf02 := 0;
FOr OtL78ys := 1 To 8 dO
iF (n9o34m[oTl78Ys][uJ8JYw] = pLf02) thEn
qKhJgeI := QkHJGeI + 1
ELsE BEgin
If (qKhjGei >= 3) TheN
Yiohy(rESUlT, RXSA, OtL78ys - 1, Uj8Jyw, -1, 0, QKHJgei);
qKHJGEI := 1;
PLf02 := N9o34M[oTL78yS][UJ8jYW];
end;
if (qKhjGeI >= 3) then
YIoHY(rEsULT, rxSa, 8, uj8jYw, -1, 0, qkHjgei);
END;
For OTl78yS := 1 TO 8 dO
BeGin
pLf02 := 0;
QkHJGEi := 0;
FoR uJ8jYW := 1 TO 8 DO
iF (N9O34m[oTL78Ys][uJ8JYW] = plf02) theN
QKHJGei := qkhjGeI + 1
ELsE BegIN
iF (qKhJgEI >= 3) THeN
yIoHy(resUlT, rxSA, OtL78ys, Uj8JYW - 1, 0, -1, qKhjgei);
qkhJgEi := 1;
PLF02 := n9o34m[otl78YS][uJ8JyW];
END;
IF (qKHJGEi >= 3) thEn
yioHy(REsUlt, RXSa, oTl78YS, 8, 0, -1, QkhjGEi);
enD;
fOr otL78Ys := 1 tO 8 DO
FOR uJ8jYW := 1 to 8 do
IF (V8EL10[OTl78Ys][UJ8JYW] = 1) THeN
n9O34M[oTL78yS][UJ8JyW] := 0;
enD;

fUnctioN Hn212F1: BOOleaN;
VAr
otl78YS, Uj8JYW: INTeger;
begIN
resULT := faLse;
foR otl78YS := 1 tO 8 Do
For UJ8JyW := 1 TO 8 Do
rEsuLt := ReSuLt OR (n9o34M[OTl78Ys][uj8JYW] <= 0);
end;

pROcEdURE W44s256;
VAR
REz3X9: InTeGEr;
BEgIN
foR ReZ3X9 := 1 tO 8 DO
JXr2i[REZ3x9] := RanDoM(7) + 1;
End;

PrOCedURE FgThtZ4;
VAr
oTl78Ys, uj8jyW, rez3X9: INTeger;
XtpX8: ARrAY[1..8] OF ArrAy[0..8] Of BYTe;
beGin
w44S256;
For OtL78yS := 1 tO 8 dO
for uJ8jyW := 1 To 8 DO
xtPx8[otL78YS][UJ8JYw] := 0;

for uj8Jyw := 8 DOwnTo 1 Do
foR OTl78YS := 1 tO 8 dO
if (n9o34m[OtL78yS][UJ8Jyw] < 1) Or (xtPX8[OtL78ys][uj8jYw] = 1) tHeN
xTPx8[oTl78ys][uJ8jYW - 1] := 1;

//animate it
jJ2X8V.caNvAS.BRUSH.StyLE := bSSOLId;
jJ2X8V.CANvaS.BRUSH.COlor := cLbLAck;
Jj2X8v.cANVAs.peN.color := CLbLacK;
For rez3X9 := 0 TO 7 DO
BeGIN
FOR Uj8Jyw := 8 DoWNto 1 Do
FOr oTl78ys := 1 To 8 DO
if (xtPX8[Otl78Ys][uJ8Jyw] = 1) then
iF (N9O34m[otL78Ys][Uj8jYw] > 0) THEN
BegIn
Jj2x8V.caNVaS.rEctANgle(OTL78ys * 32, uJ8JyW * 32 + reZ3X9 * 4 - 3, OTl78Ys * 32 + 31, UJ8JyW *
32 + rez3X9 * 4);
//Form1.Canvas.Draw(x*32, y*32 + f*2, G[Lauk[x, y]]);
CopYcaNVAS(V972nxu[n9O34m[OTl78YS][Uj8JyW]], jJ2x8v.canvAS, 0, 0, 32, 32, Otl78ys * 32, Uj8JYw
* 32 + REZ3x9 * 4, OTL78YS * 32 + 32, uJ8jyw * 32 + rEz3x9 * 4 + 32);
END;
//upper line
for oTL78YS := 1 TO 8 do
bEGIN
if (XtPx8[otl78YS][0] = 1) tHen
//Form1.Canvas.CopyRect(Rect(x*32,32,x*32+32,32+f*2) , G[Uplauk[x]].Canvas, Rect(0, 0, 32, f*2));
coPycaNVaS(V972nxU[jxR2I[oTL78yS]], JJ2X8v.cAnvaS, 0, 32 - Rez3X9 * 4, 32, 32, OTl78ys *
32, 32, OTL78Ys * 32 + 32, 32 + ReZ3x9 * 4);
ENd;
SLEeP(10);
eNd;
fOR uj8jyW := 8 downtO 2 DO
FOR OTL78yS := 1 tO 8 dO
If (N9o34m[otl78ys][uj8JYw] < 1) TheN
bEgIn
n9O34M[otL78yS][uj8JyW] := n9o34m[Otl78ys][uJ8JYW - 1];
N9O34M[otl78Ys][uJ8JyW - 1] := 0;
eND;
FoR OTl78yS := 1 To 8 Do
If (N9O34M[otl78YS][1] < 1) THEn
N9o34m[otL78ys][1] := jXr2i[otl78yS];
end;

pROcEDure G4Wej;
BEgIN
AM83E;
E4z3 := -1;
Xz2T2W6 := -1;
rEpeAt
D394yKU(0);
whIlE (Hn212F1) DO
fGThtZ4;
UNTil (noT vPv0S);
sETArrAyleNGth(eM8W, 0);
KkfE1(1, 1, 8, 8);
L95007K := 0;
eND;

ProCedUre q7n4y;
var
e14Lkgo: tVAriANTarray;
bEgIN
SetaRrAYLEnGTh(e14LkGo, 0);
ThREadsafecall('G4Wej',e14LkGo);
END;

prOcEDuRe qee65(C34p0: toBJect; u8WX07: TMOUSeBUTTON;
K0M2Y94: tSHIfTstate; oTL78ys, UJ8jyw: intEgEr);
vaR
Rxsa: INTegER;
bEgIN
oTL78ys := oTl78YS div 32;
UJ8jYw := Uj8JYW DIv 32;
iF (Otl78Ys >= 1) ANd (oTL78ys <= 8) anD (UJ8jYw >= 1) aND (uj8Jyw <= 8) TheN
if (j4PC7(e4z3, Xz2t2w6, OtL78Ys, uj8jyW)) THen
BeGIN
PJ20s83(E4z3, XZ2t2w6, Otl78Ys, Uj8JYW);
IF (nOT vpv0S) THen
BEgin
//Swap back
Pj20S83(e4Z3, xz2t2w6, otL78ys, uj8jyw);
E4Z3 := -1;
Xz2t2w6 := -1;
enD elsE
beGiN
e4z3 := -1;
xZ2T2w6 := -1;
rXSA := 0;
sEtarRaYLENgTh(EM8w, 0);
repEAt
l95007k := L95007k + d394yku(rXsa);
kkFE1(1, 1, 8, 8);
sLEeP(200);
RXsA := rXsa + 1;
whiLE (hn212F1) do
fGThtZ4;
UntIl (NOt vpv0S);
ae60164.ENABLED := TRuE;
eND;
kKFe1(1, 1, 8, 8);
eNd eLSe
if (oTL78ys = E4z3) AnD (uj8jYW = xZ2T2w6) theN
beGIn
E4Z3 := -1;
XZ2T2W6 := -1;
kkfe1(1, 1, 8, 8);
eND else
beGIn
E4Z3 := Otl78Ys;
Xz2T2W6 := UJ8jyW;
KKfe1(1, 1, 8, 8);
END;
iF (noT Pp562oF) TheN
If (geTapplICATIoN.MESSaGeBOx('You lost! Score: ' + iNtTOsTr(L95007K * 10) + #13#10 +
'Play Again?', 'Game Over', 4) = 6) thEN
beGin
g4wej;
KKfe1(1, 1, 8, 8);
EnD;
end;

prOcEduRe XXj70s5(C34p0: toBJECT);
BeGIn
Ae60164.EnaBlED := FaLsE;
SETArraylengTH(Em8W, 0);
kkfe1(1, 1, 8, 8);
eNd;

PROcEdure y87335;
BEGIn
DcQgcuD[1] := BItMaPFROmSTRInG(32, 32,
Decode('97dad5a9aca9d8d4d5a9d4aca8d5dedfdddcddd9dd daabdbd4dcdbdedbdcabdcd8a8dcababdeaba8d4aea8dbddda afd8dea8dedcdf') +
Decode('a9aed8acdbd8dcdfdbacd8acded8a8daddaeaed8d9 dcddddaca8dba9a9d9dbacaedddddedcafd9d8a8acaeddd4de dfdcd9dbaeddac') +
Decode('d5abdcdcd9dadfaeaed4d5aedcddabaedaa8aea9d5 d5d4ddafdcdfd9ddafacafabaed8d9dda9a8a8d9d9dbdeabd9 afd9afded4a8d8') +
Decode('dfdad8d5daaed4dfdbafdbdedca8afa8a9daa8deda afd8afd9aeaed4acdaabaeabdaafd9d8d5dfdfd8aba8dfafab d5abaed8deacab') +
Decode('d4deacababdbabdfa9a9d5afdfddd8dcafdadfaed5 dcd5d4daaed5dbafabd5acdadcdbd9aedadfd9d4dadad4a9dd d8abdaa9aed5de') +
Decode('afd8a9d4dbdba8d9dad8abdfdaacaba8dcd4d5afdf ddabd4dbd4aeabafd8a9d5d9acafa8d4d8ababdeacd5afdaa9 a8d9abafabd5ae') +
Decode('abafd8ded5d9dfdaa8d5d9daaba9dcacdfaed8dddb aededadaaed5d5ababdeaeabd8d5dad5dedbdcddd5acd5d8a9 abd9abdba8afae') +
Decode('abdbdedbdbd4a8abd9aca8abd8a9a8d4aeafacabdf a8d4d9d8abdba9ded4afabdeabaea8d8abdbabaedcdfa9deda d4dddbdbd4d9d5') +
Decode('dfd5dbd8aedfd8a8dcacaed9dbdbdeded9dfdfdbd4 dbd9dfa9dddea9d5dfdad5a9dda8ded9dddfdbacd8d5daa9ae d5afdfacaedeae') +
Decode('dfd8d9a8daa8ddd5dadbdfdddbafdadcdfdfd9dfd5 d5d4abdcdbacabded4a9dfdbacdbd5d8d8d8acaeacdddbdda8 afd4dfa9ded4de') +
Decode('dadba9aed4afdbdfd4daa9dfd4dbdeacdbd5aedddf d4d8dbdedbd5a9a8abd4d5ababdcd8d5d4abdadfacdaabd4de daabacdcdbd5dc') +
Decode('dcdbdda9ded5aed5d4dfa8afd8a8a8dadddeafacd8 dcd8d8aca9afd9acd5a8afd5ababded9abaed5aba9dfdaafd4 dda8dea9dadbde') +
Decode('dedbafd5ded4dedfaed5a8abddd5abaed5dca9d8ac abd4dcdadfafdad4d8acdfdadeaba9dadbdfdcabababd4d9d8 aea9a8a9a8ded9') +
Decode('d4d9a9aea9dad4ddd4abdbd8afdcd4d8daabd4dcaf aedfafd4dcdedca8a9aca9aed8abafdfaea8acabd4a9daaed4 dbd8dad8dfacda') +
Decode('dcaedfd4acdad4afddaed5dcdfacdcaedbacdfd5db ababdeafa8d9acded8a9ddd8afd4dfded4dbdbacdda8dadba9 a9dbdfd4a9abab') +
Decode('abafa8d9dfdeddafd4dbdcdfdcdfa9dadfa9d4dbab d5daabd9afd8a8dbabdedca8d8afabddabdad4d5a9aed8dfda ababdea9aed4d9') +
Decode('dadcdbabd9deabdfabaeaedbddabdca9a8ababd4d4 dfded5dadeaed4aed9afd9ddd5ddabd4d9dbdaafd5dbdfd5ae abdbd4dfabdbd9') +
Decode('dddcd8a8dfafafdaacd8dad8aeafa9dbd9acabd9da a9ddafdbacd9d4dfaed4a8d9d8dea8acacdcdad4a9d5a8d5de abdfdfdedeabd5') +
Decode('afdaaeded9dcdbafacd8dadcd9aeafa8aed9d5d8da a9aeababddabd8a8abd8dddfd8df')
);
dcqgcud[2] := BitMaPfRomStRINg(32, 32,
Decode('97dad5a9aca8a9d4d5a8afd5a8a8dfdeddddaed5d8 d8abdfd4dadba8a8deabd4dea9dbdaa8ababd9dadcacdfdaa8 a8d5d5aeaedddd') +
Decode('d4a9afdbafdedfafaedcdba8daaeacd9acdeacacdc d9abd5a8aedeacd4dda9acd4d5aedadddcdcdcdddfded5abde dddfd5dca9ddda') +
Decode('d9a8dfabacd5acdcd4afa9dca8d8afd5dfddd9dbd4 a8d4aedaafd9d8a8dadcdda9dfdbd4afdba9dea8a8a8d4dcdb dcd5dcaed8d4d9') +
Decode('acdcd4a8d9afdeabafded9abd9a8afd5dbdddedfd8 dbd5d9d4d4afaeabdcaedfdcddd8ded9aeafabaed4a8dfdfae afabdbdaabdddf') +
Decode('dfdba8a8abd9acd4a9a9abafded4dbafdfddd4daa9 a9dedea9afd4ddd8dbd9acaedfdbd5afd8dfdfddd4afdbaea8 dfded8d4d4dbd9') +
Decode('a9d9ded8ddafaedad4d5dedddbd8abdaa8daabd4d5 d4acaeafdadaa8dfd9aeaba9a9d9afafd4afd4a9d8dfaedbdf d4ded8d9d8d4ab') +
Decode('d9acd8a9afa8d8dfafddaedfd4a8dcd9d5aba8a8d4 d9d8d5dfacd4aedbdcacdbdedba8dfd8ded5d4a8aed8dea8af abd4dfdfded9af') +
Decode('acdadcd9dfaed5abaed4aeafdaddd8a8afdededea9 d9dfd9dcd8dcdadba9d4d8daabafdbd5aca9daacdba9aeafd8 d8dfd8dededdd9') +
Decode('a9acabdcddaeacafdbabd8afaed8dbacd4dddbddac abd9aea9d8d4d4d9d4acded5dfdbddd4dedbaca9afafaea8ab dbaeabdcdfaeab') +
Decode('afd4aedba8acdca8abafafd5acdfdaaba8d9dcdade dad4abdfafd8dadaaca8aba9acabacdaa9dcdcaba8aeafafab deabd4dedaabab') +
Decode('dfd9ababa8aed4ababdbababdeafabd8dadbaeabae a8d8afdbd8afa9a8acabdddbaedcdcd8a9abdea8a9d4aed4ab ded9d9deaea8a8') +
Decode('abafafafacdbdfababaedcdcdddea8dfa8d9d4abab aed4dedaababdfd9ababa8ababd5a8dcabdcdcd5dda9a8abd5 ababdedaaeafdc') +
Decode('a9afddaba9acdca9aeabafafa8dbdea8dcafaea8da daacd9a9dfd5d5abacdaddd9abdadaa8daaeaba8a8ddd9d4d8 d5abdfafdedea9') +
Decode('dcd5a9d8dcddd9ded9d9dddbdddaaca8aeabdad4ab dfded5a9dcdddfdcdbaca9dddbd4acdadfaba9aea8d9aed4da aed5d5ababdda9') +
Decode('abdbdaa8dcd9d5deacdddfd4d8dadba8d9a9daa8ae d5aedcdea9d4dedbd9a9d5ded5d9dda8aca9d8d9daa8afaedf deaba9abaea9db') +
Decode('afdca8d8d9dbaca8dca9dcdaabd4dcaeabd4dadcab a8dedcddafaedadfddacdcdad8a9dbdfaea9dfdbacd9d8d8ac d8afded4dbafa8') +
Decode('d8a8d8d8d8dfacd4abd4abdedbdcdbdedaa8d4acd9 d9d5aed4d8deafd4d9dfdaa8d4dbababdaa8d5acafd5dad8ae afdedddbdcd5de') +
Decode('ddacddd8d5a8a8a9d4dbdaafdcdbdfabafdcd8dddc dad8ded9a9dcdca8a8ddaeabdca9acdcacababd5afacacafa9 acdfd4a9dba9a9') +
Decode('abd4abdcdcdaa8ddddd4d4dfdbabacaba8')
);
dcqGCuD[3] := BITMapFRomSTRIng(32, 32,
Decode('97dad5a9aca8a9d4d5d8afd5a8a8afdfddddaed5db afdad5d9aea9aba9dcdcd9d5afa9ababdfd8dda9aedbd8d8d9 dedfa8d4dea9df') +
Decode('dfdbacdeacdedfdeddd8d9afafabacacdcd4ddd8de a8dbded5aeafddd4d8dcacdca8d5abdbdbdaabdeaea9dddfdd dddfd8a9deaeac') +
Decode('dadbdbacafdeaba9acafaedeacafdfaedbdeabd8dd a8ddded8d9dddad4ddd8dbddaedcddddd8a8d9dadba8dcafda d4d4dcdaa9dbd4') +
Decode('dbafddd8afacd4dfa9aeddafacafdbdedbd4dbafdd dcd4d5daded8a8dfaeaed4acd4d8deacd9a9dadfacd4daabdc d9afd9aeafdcde') +
Decode('d9dfdaa9dbd8a8ded5abdba8deddacdadfa9dca9d5 dcd9aeacded8a8d9acdcdeafa8afdedbaea8abaed9abdfabab d5dfabd9dbdbd8') +
Decode('dbd8dfddd9dcddd9daabd5a8d8aeabd9dfdcdfafaf dfd9a8dddca9d8ddd9dfdcdfdcddd9ded8aed8d5dad4acdea8 a8daafdad5a9dc') +
Decode('dededba8d9ddafdfababddd4a9dcdadbdea8d9afde acdfabdadddcafa9ddd8dcabdbaedda9dbabd8dcdcaea8dfdc aedfa9dbddd9ae') +
Decode('dcdca8deaedaded4acafded9dca9abdcdbabafaedd d5a8ddaedcdca8ddd9d5dfa8dbded4d9d8aba9d9afd9dcdfda dddaa9aca9acdb') +
Decode('aeacaedda9dcd9dad8acddd4d9acdad4d5dadfd8d9 d8deddd8afdadea8dcdad8afa8dad9a8aeddabdeddaba8d8db aedcafacdbdad9') +
Decode('dfafa8acded4dcdadfd9dfa8acdfa9a9dddddedbae d5ded8dcacacdcaedbdfdeaea8ababdfaba8a9acafafaeaed4 aea9dad4dcabdc') +
Decode('ddd8a9afa9acdcd8a9dda8aedca8d8dbaea9d5d9d5 afdedbd8aedaa8dbdca8dbaedbd5a9d4dea8afd4dfa9d5d9dd dda9a9aeaedfab') +
Decode('dcd4dfa9daa8d4d4afdfd5a8d9d8abafacdbd4a9ac d8dea9aba8dfded5d8ded9dddcdfd9d9afdcded8d4d5acddab afdbd5dfd9d9dd') +
Decode('d8dcdedcdddfd8daddabd8afdad9dedfd5d9d9d4ae a9abded9dadddcacdbd8dcaed4abd4aeaca9daa8aeabdfabac acaba9a8d9afd8') +
Decode('dadad4dbaea9dddadfdfdcabd4aeacaba8d9d8a8d9 dadfdfa9a8ded4dcacaeaeacdedaabaed8dfabd5acdedfd5d5 ddd5ddd4dad8d8') +
Decode('d8aca9dbacdcd9a8aca9d4abaed9ababd5d8aba8d4 d9a8a9aba8afaea9daababdea9ababaededaababaea9daabab dea9ababaea8ab') +
Decode('a9abd4abacabafdaaca8afa8afdfd9deafddabdeab a8a9d9a8afabdaacdaacd8abdaabaeaeaba9dcaea9d5dbdba8 daabdca8acd4d4') +
Decode('afafacd5acabafa8dedea9ded9d8a9ddd9dbd8dcd8 a8d4d4afdfaea9a8abaeacd8d8deafa9daacababdadaabaea9 ddaedbdfdaafa9') +
Decode('dcdca9a9abd4a8d5d9a8acd5afdddddcaca9dadada a8acafa9dfdedad8ddd5d4a8afa9dbabacd8d8a8a8dbafd9d4 dad9afd8a8dfde') +
Decode('dda8aedddfafaea8a9abddd5d9aca8d5afa9dfdbac afacd8deabaeafaca9afa8dad9dcabdfd8dfafd4aededba8dc d8a9aedaacd8ab') +
Decode('abaeabaea8d8dea8a9afdbabd8a8aed5dbd4d4dcaf aca9d8d4a9a9a8daaba9afdbd8dedcd4dbdddeabdfa9dbaba9 acafded8dbdeaf') +
Decode('d8d4dcdda8a9a8a8abd8a8d9dddcd4aca9afd5aeda abd8dad4aba8a9a9dfa8dad4dbd4daafdea8d9ddafa8afd5dc dcddd5acdbabac') +
Decode('aed8aedfddafd8abaea8a8dba8aed4afd8aea9a8df daa9abafafdbdcafa8abdfd9dfd8a9d4d9afdeaedaafd4acae aeaedcd8a8d9d8') +
Decode('afdfabdfacdaa9d8d9a8dcacababafaeabdad8acda acacd8a9d9d8afa8aed5ddafabdbacdedeaedbaba9a9dfafde d8a9d9d8d4d8da') +
Decode('dedbd9a8abd8dddeaedddadea9d9afae')
);
DcQgcUd[4] := BITMApFROmStrinG(32, 32,
Decode('97dad5a9aca8a9d4d5dbd4aca8a9aededdddd5d5dd acabdbd9abddaba8a9dea8afaba9d5abd8d9deddd9a8d4acdf d5aea9ded9d4d4') +
Decode('a8d8abd8d8d8dba9d4dda9dddfd5a8deabdcdaaedb ddddaeaedbd9acdaa9a8acdddcd9a9dddfa9ddacdcd9dcd8db daabaed4dddedd') +
Decode('d4dfdfdad5acd8d9d4daddafa8dbacdfacd4dddadb dfd9abdbdaafa9acd5dfdca8dca9acdfdcdddbdfd9dbdedbac dfdddad8d9d8db') +
Decode('afa8aca9ded4d5ddd8dfa9a8dcacafafaba8dfddd4 dedfd9afd9dbd5dcddaba8dcd5dadeaeded5dfddaea9dbaed4 afabd9a9dfd8ac') +
Decode('d8d5dfdadbacdddad9d9afacd4dfd4dfabdaacafac deabd5d8afd9a8d5d8dfdeaeaca9d5d8d5d4aed5dbafdddddf aeacaedbd5d5a8') +
Decode('dfabdad4ded9dbddaedadeaedfdedbd9deaea9dbdc afd8ddd8d5dadea9dfaeacdba9aed4aeababd5afdadeacdad8 d9dadfdedbd5af') +
Decode('a8aed5d8deafded9dddbdcabd4d5d5afdadad4dcda dcdbd5d4dcddd4a9aed5daafd4ddd8afacd5aeacdca8d4d4ac ababdedbabdad8') +
Decode('a9ddacdbaca8deafaed8ddabdad4d4a9ded4dbded9 d9acafacacdfacdfacd9deddd8d5aca9a8d5d5aca8dfd5abde d4d5abd4ded4da') +
Decode('a8a9dcafdfd8ded4aea9dedeaba9daacdddda9afd4 dcafdfdcdca8dcaedcd5dad4a8deaca9acd8dbaedadfdcdbdf dcdbdad8acaedb') +
Decode('dfabdedeabddaea8afa9dba8aed8dadbacdaa9ddd8 aca8deafacd8dedeaeaeafdbd4a9a8acafdcd9daafd8dcabdf d4a8d9d9d9d5df') +
Decode('d4dedca9aedbdcdcdbdfa9afafd8d5dadbded9a8a9 a9dedea8dfdfafaed5aeabd4dbdcd5d4abd4afafafdbaed5ac abdbd9d5dbafd4') +
Decode('d8dedeacaeafd5aed4ded9d5abd4d9abacabd8dbd8 d5dca8aeaba9d4a8abdeacafded5aed4daaeaed9d4dededbd5 d4a8aedcdfdeab') +
Decode('abdaafd5aed5afdda8a9acafacdcdcddabdadcaed4 deaba8dfa8dca8afd8dbd8dddeddafafd5deaeabd9d4dfd9dc deaca8a9dca9df') +
Decode('dfdda9ddafabdbd9afdfdadcdcdeabdedededaa8db acdfa8dbd9afacdfacaea8dbdfdededed4d4afa8dda9dddedd a8abacddacdfde') +
Decode('d5dfd4daafa8dbacdeacdbddd5a8abd4aeafd8dad9 d8aedadba8afd8d4dad9d5d4dad8afdedbacd5aed4dcd5ded9 afabd4dbaea9db') +
Decode('dcd5d4dfdaaeafd8a8d8dbabd5d4ddd5acdaacdbdb d8afdca9ddaed5acafabaededcacdcdddad9dbd9d5dca8acac dfa9dfd4a8d8d4') +
Decode('d5dbded5aea9dbd8dad4dad9a9dfacdfd8a9d5a9ab d4dcdcabafd8acaea9dcdedbafacaed9aededbd9d4a9d8a8ab dadbdea8d8aed5') +
Decode('d5d5aedba9dfabaeaed8abdcdad5a9dcd8daabd5af dadeaca9daacd9d9aeaeacd4d5d8dfdfd9aeabddabd5d4ded8 a8d9a9d9dfd4d5') +
Decode('aba9acdaacd4daabaeacd5dbdadad9d9d4d9a9dadc d4acdadad9acdad8daacaeababaeddacdaabaeafd5d8dcdfd8 dfaedaa8acdaae') +
Decode('d5abd5dbacd8a9afd8dfdddeafdbd9a8aeafa9ded8 aba8dadcdadfa9aeabdcd4abded9afabaeacdfd9afd9dcdbde dad9dbdddbd4d4') +
Decode('d8d4dbacdeafa9d5afabaed5afabd5d5dad8a8d9db afa8d4deabaedeabababafabaeddd8abd9acdedfd4d5dea8ae dcdfabdad8dbdc') +
Decode('dedbdddaa9dcacd8abdaabdcddafdeded4a9d4dedc a9a8ddd8acabd8dbdddbd5dea9dedfdadbdaabd5a9d8d4acac d4a8d8d9d9ddac') +
Decode('d4d8dddad9d8a8acd9ddaca8d8ded9a9daafd5dede d8afdca8abdedcabd4d4acd8acdbdbaedfafafa8a9d9d4acaf afafdbdcaed4d4') +
Decode('acd4d9dcdfa8abafddacdfd8d4aba8d8aba9d4d4df a9dbdaabaed5abd4d4dcabd4abd9aeaea8dbaeafd4aedfdaae acdbaeabdbaea9') +
Decode('d4abdca8abaeabdbabdaddababdbd9abd8a9d5d4db afafaeaedbdadeacddd9afded9dba9dad4dbdaabdaa8a8dbdb daded4d4a9dba8') +
Decode('d9a8dfdeaeabd8d4dfdcd8acd4a8acd9dbaedad4d4 dbd8d4dbdfdbdbabacd8aeaed5a8d8dbdbd5deafafd4acddac acded4daa9a9d4') +
Decode('a9d9d5aedaafd4dcacaed9d4d5dbdcd5afdad9dcdd aeabd4a9a9afacaba8daaeded5afaeaea9d9ddafd9dfacdddf a8aedbd9acafda') +
Decode('d9dfdadcd4aba9dddea9a8d5dbd5d9d5dbdbdddade dadeacacddafafafdba9aea8d8ababddd8afdedad9acabacde dcabd4aeaeaedb') +
Decode('d4dad9afd8dadadbabacd8dfd9a9dfdba8a9acdadf d5d8d8abaea8abdedededadea8dfdcdddbdcdadba8d9dbd8de dedfdfdfd9aeae') +
Decode('abafacd8dadaa9a9afddd4a9a9d5d4dfd4afd8daa9 daabd5dadaaeaedbdedddbafa8aeabd8dfabdcdadeaeaed4da dbaeded4dbd9a9') +
Decode('a9dfa9ababdfabd4d5ddafaeafd5d5dbdaababd4d8 aeaeddabdba8dea8d9d4d4d9aed5abdbaba9d4dbdad4daaed9 afdaa8dbdbd4dc') +
Decode('a8a8ded8d4dfd5d9dbabdad9dcdaa8acd8d5aed5ac afdbdcdaddafded5d5d4abd5d8d8d4dfacaea8dcd5abdeaba9 a8abacdfd5d8dc') +
Decode('deabd8d4ddd5abdedcababdddddbafaea8ddd8aede ')
);
dCqgCUd[5] := BITMapfrOMsTRiNG(32, 32,
Decode('97dad5a9aca9d8d8d5a9d4dba8dcafdedcddaeabae dfd8a9a9aedaacdeaea8ababababacd9d4dfdcaeddd8d8a9df dea9a8aededba8') +
Decode('a8a9ded5d9afd4d9daddafacafdbdeddd4d9d5dbd9 ded8dfd9acafa9a8aca9dcd5d4aea9dad5dedbabd8acafdca8 a8a9a9d4a9dbdc') +
Decode('abd4dcaba8d9a9a9a9a9d5daa8d9a9ddddd4d8dedc a8deacdea8afd9aca8d8acd4ded9d4afd9d4dbaedcabd5a9a9 aeafdfd9d8aedf') +
Decode('d8abdcdbaba8d9d5afafdea8acdadca9abd9dbd4a8 dfaca9afd5aeabd9dedca8a9d4daaedbdcd4aea9d8dedca8db dfa9daa8dad5dc') +
Decode('dea8d5deaeacdbd9acdbdfd4abaededadbdad4ddae abdcaed9dfa8a8d9daafabd5dfdeaba9ababd4d5aeaedfaede a9afd8dbd8abaf') +
Decode('dcaeafdbd4daaed9a9d5d9a8abddd5afddababd9af dbaca9afdaaedbdcd5dba9daa8d4d5a8a9d5d4dcd9acdba9a8 dfdddeabaedbdd') +
Decode('aba8abd9d5d4abdcdfdedfaedfd4d5dbdfabdfd4af ded8dadbafddded4aeacaeacdadddddaabd4dcd8abaeabddda acdedfa8afd8d9') +
Decode('d8dad9a9d9a8abdcdaa9d4aeddabaeaea8dca8abd4 aedad4dcd9daabdfdda9aba8daacacdcdcd9d8dbdadca9daab d4dbdededadaab') +
Decode('ddd9afaea8dca8d9daabdcdca8dfa8acdcacaca9ac aed9dcacdad5d5aedcaea9dcd9dcdbdcdad5d9daaea9ddd4ab a8dcafdfa8dedc') +
Decode('dedea9afa8afdad9dfdbdadadea8abdcdea9a8d9db ddd4d9dba9a9dba9acd8d4afaedda9afd8d8dfafa9abd8dbdb dcacaeacdcd9da') +
Decode('abd5dfdaaba8d4dcdfdfacded8dfafdbaeabafafab a9d4afacaca9d9a9daafa9a8d9dadbafd9deaed5dea9a9d9dc dfdaafdededbd8') +
Decode('aea8a9dbdad9dcd4d8ded8dadbd8abd8abd9d4a8a8 afabdfdadcdcd9d5d5d8d9dbd8afdfabd9dbacd5d8a9ababac acd5afd9aea9de') +
Decode('dcaea9dbd9afdedca8dfacd5dba8d4daafa9dcdba9 d9a8abd5a8aeafd8dfa9dfafd9abd4dcafdedfdadcd4dda9ae dbd9a8dea9dad9') +
Decode('daa9abd8aea8dfdeaca8a8d5aedfd5d5dadca9d5dc acd9dadca9aeacabd4dfaba8d9d8afd9ababafa9acaedfa8ac dfdfd5a8d9abae') +
Decode('dcdddbd8dba8dbdaabdeabddd8a8d5a8d9dedcdbda d9dfafd8dedcd4d4d8a8d8aca8a9daa9d5aed4aea8a8dfdcd5 daafaba8dcd8df') +
Decode('a8dadcaea9abd5a9dddfd4a9dddbdad9afd8d8dea8 abd4a9d4aba9afdad4d8a8dfdda8abdfdfd9dadfa8dbdad4a9 dbacdfdbd5d4a8') +
Decode('d4dba9afdbdea8a8a9a9aeaedaddabd4abd4dfa9db dad4dad8d9dcdfdaacdad5ddaca8abd8afd4d8dedcddaea8d4 aba8aedeaedfd4') +
Decode('d9a9abdfafa9afdaded5abd9dfd5aed4d4abdfdca9 abdaacd4aedddfacdbd5ded5afafd4a9ddacaba8d8dddfdad9 abafdcdfa8dadf') +
Decode('a9a9afddd5aed8d9a9d9dedbacd4dedcabaedcd5ab d8ded5dda8dbd8abd8dfacd9a8afdad8d9dcdcd9abd5d8d5a8 dad5d4abddabd9') +
Decode('d5a9a8dfd4dedfacdba9d8ddafd4daaeddd9abd4a9 dbd8dea8daacdeaeabdcd9ddd4d4d4afdfacacafdeacded5db dad8a8a8dddcde') +
Decode('dad5aca8afaedbd4d8ddaca8afd4afdfa9d8d9d4ae d4aedadadfa9dea8d5dadaaeacafd9d5a8ddabd4abdcdfd4ac aeacd4dfdcd4df') +
Decode('d5d8dddeaea8d8dad8d8d5a8dadedcdbaeaededcd4 d8d5a9deddabd9dbdad4dcaededcdaacafdea9dad8dcacdcda daacd5aeacd8ac') +
Decode('d5d9a9a8aeabdda9d4acafd8deacafdedad4dda9de d8d4a8daa9a8d9d4acdcd4dbdddad4dfa8afd4d5abdcdfafa8 aeababdbacddae') +
Decode('ddabd9abdbdcdad8dcdadeafaededededed9dadbd5 abded4aed5dbd8dfd5dcdfdcd8d8daa8d8afacacdedbaba9db dbdfacd8deabd5') +
Decode('dba9daddd4ddd5aca8a9aeddafabdcdedaa9dadbab dbd4d8dad8dedad8ded9d5dfd4d8aedfd5dedcd5a8d8acacab dddbd9acaba9de') +
Decode('d8d5dfaeddacdbaededad5afaeacddd9afdcdbd8dd a8dea8acdedaa8dbdcdbd8dbdddda8d4aca9a8acdba9dadad4 d9afded5daded8') +
Decode('d8d9dcabdbd9aca9d9dbd4d8afa8d4dcdbd5afdbdd a9abded9dddad4d5dedcd5d4dedeaeafdfd5d4dadbd8afd8d8 dadbdeaba8a8a8') +
Decode('abd4aed9d9daaedfdcd4dfdcdcdbacd5a8d5d4acdc d9dedbdedadcd5dfdbd4acdbddafa8d9dbdbd5abd4dfdbdaa8 d5d8dcd8a9a8d5') +
Decode('ababaed9a8dfaeaed9d5dad4a8dda9dad4dea8d5d4 afabafafafa9abddd9ded8dcabd4abdbdfdba9aedbdcdfd4ab d5d9d4afdcafda') +
Decode('abaeaea8d4a9d9dad9dbdcd5abacdcaedcacd4d5da ddaeded4dbdfddafdbd9d8d8afdbd4abacd9aeded9daabdfdb aed4dda9acabdc') +
Decode('a9a9aba8d4dfd5aea8a9d4d9dfa8dbaed9abddaed5 dbacd5d5dda8a8afdbabafdeabd5d8dcddabded8afd5d4deab afd9dbddaedeae') +
Decode('dcdcafdba8dededbdad5a9d4aea8dba9dfacdbdbd9 abdeddd5acdbabdbdbafd5abafd4dbafd5dbd9afdfa8dbaeac d9dcdadcabdcdc') +
Decode('d9dbd4ded4ded5d8d4dadad8dda8dbacdeafabdaac aea8abdea8a8dbd9a9aed5dda9dca9acdbaed9ddd8d5aed9dd d9dfdaa8a9a9db') +
Decode('a9aeacabafd4d8dadca8d4a8ababdfd5afdfd9aed4 dca9d4dcd8d4a9aeaedadaabdddfafafaca8dadaa9acdfd8d8 a9d4d4a8afacdb') +
Decode('d4ababddded5deacdcddd9abac')
);
dcQgcuD[6] := bitMApfromsTRiNG(32, 32,
Decode('97dad5a9aca8a9d8d5a9afdba8dbdfdedcddaeabae dfd8aedaaea8abd8dedcdedaababababdfdaaca9dcdeacdaaf afafdddfd8dadd') +
Decode('dda8dfa9acd5dfafaca9dfa9acd8d9d5d8d9d5daaf dcdededca8ddabdddddcaedda9dddeaedda9dda8dcaed8dbdc d4aeafdcaedbdb') +
Decode('dfdca9abd4dba9aeabdfd9d9d4a8ded8acacd5d5d4 d4deacafd5dca9daa8d4daa9d5aed4d4d9a9deddaed8dadda8 dcd8dbabd4a9dd') +
Decode('d4d4d9ded5d8aedbabacdbd9d5afddd4daafafd8df dcd8d8d8a8acdaaed4d4d9d8a9dedadedea9ddd5abdaaeddd8 dadfdea9afdcd8') +
Decode('deafdaa8aea9d5abdadadddddfafabd4a8aed5dcd9 d5d5dedcafd5dcdda9afdfd8aba8a8abacaca8dfdea8abdfd8 d5d9aca8a8acaf') +
Decode('d5daa9acaeabafdeabd5d9ded5d5dfd4dedcded9a9 ded4dddeaba8deababd9acdcd8abdad4dca8afacd4a8abdfdf aed4abd8d4abd9') +
Decode('dbafa8d9a8acacaba9acdedddea9d9dbdedbaeabd8 a8afd8d8dcaed9dcaca8dfdadcd8a8afdca9d5d8dcd9d9ded9 acd9aba8dfd4ab') +
Decode('acdadeaeaedad8aca8d4d5dea8a9acdca8ababdddc abacd4a8dfded5abdfa9d9ddacdadadcabdbdaafdbdfaeaed9 ddabafd8dad9da') +
Decode('aedcdbdaabacd9dcd9dedfd9ded4d9d9aba8daabaf abd5dfabacafd5ddd4d4d8acd5d8dedddfdddfddd5d4ded5d5 a8deaedcdddfa8') +
Decode('d5a9acaedad4a8dbd4d9ded4dddadfdea9abdcacdc deaca9acd4dfded8dcd8d9ddd9dcdeded9acd5d8ddd9aeaedb d9dfa8aed4ded5') +
Decode('aea8dbabdbd5aeacdcd5aea9ded9d9d5acafa8d4ac d9dba9a9dcdaa9afacdfacd5dbdfdbacdad9aba8dad9dcaeda aedbd9dfd5d8d5') +
Decode('d5d9d9d8dea8dcdba9a8d4abdcd9d8dca8dbddd8df dcdddfd5abdda9dfdcaed4dfdeafd8dfddddd9dad4d8a9d5dc dfd9d4dcd5acde') +
Decode('daabdcd9dcdcd8d5d9afdbabd5a8d5d5aca8daa8d5 d4a8d9deaca8acdadcdcddd8d9d8a9d4dfddaea8acdadddaab d5afd8d9dbddd5') +
Decode('dfdeafd8abded4afa9a9d5daa8dddfdcdddedaafae aea9d9afdaabd5aca9abdcdedfdfd4abaca8d4aeabdfdcd9ab afa9afacddabab') +
Decode('a9a9dca9a8a8a8d4ddd4afa8aed8d5dbdbd9d9ded4 d4ded9dbdea8dbddd8dadcaeded8dfdfd4ddafdaabafd8afd4 d5a9d8a8d4afab') +
Decode('dfafd4dfafdeabd5daa9d4dfa9d4d4d8daa8ddacdb dad5abdadcd9dba8ded5dfdedea9afa8dcdbdda9ded9aea9dc daacdba9d5abd8') +
Decode('d5afdbd8d8dcd5d9dfd9dddda8dedbd4d4daaedcac deababdca9d5a9aed5dbacaeddafabafaea8ddded8d8aeabae dfdddaaed4dca9') +
Decode('dbdaafdbdedcded9d9acdcdbacafdadddbacaeafdf d8dbaed8dbd4a8acabd9d5aea8a8dfdcdad5a8dedba8d4dbac ddabd8dddbabdf') +
Decode('dcacaba8deaeaba8acdbdadcd5dad4d8dbacdfd5d9 a9d4dca8dadca9dba8a8dcd9a8dad5a9dfd4d4d5afdadfdedc d8dbdbdadedddf') +
Decode('dad4a8d5acd4ddafdedbdeafa9d5afdda8d8aeaeda aed8dadad8d8a8a9d5dfddabd4acd9a9dddbdbd4d4d4dad8d8 afafdadeafdfa8') +
Decode('d9dbabd8d9acdcabdedca8d8dedfa8abd8dcdddaa8 dfafd5afd8ddd8d5a9dcd5d8deacafdadeacdeabdcd4ded8d8 dad5acdcded8ab') +
Decode('dfafabd4dda9abafd9dfafdaaededbd9abafdda9dc dbaea9d9d4d8dadfd8deabacdcd4d4d8ded8d8aca8d4ddd9ab dfa8aba9d8dbd9') +
Decode('dfd9d4abdcd8dad4dfd8abd5dad5abdda8dfa9d4ac a9a9dadbd8dddfa9d4d8dcdcafdcabd9d9d5dedeacd4aed9af dba9d8d9aea9d8') +
Decode('dfdfa8d4d4d9a8d9d8daded5dadeabdad4afa9dca9 acdda8aca8dfd9d9dcacdfabd5abd8abd8dcdcdfa9d8a9d4ac d4d4dcdda8d4af') +
Decode('acabded9a8dfdbdbd4a8d5acd9a8d9dbd9dbaedaae d5d8a8d4dcddacafd4deaed8abd8dcd8aedcd4abdeabdeafd5 a9dfded8acd9ac') +
Decode('d8dba9dbaba8d9dfafafabddd4afd4dda9acd5daae dfacdeaeaeacaedeacd5dcdcdadaa8d9afd8a9d9a8d9deafda d9deddaea8dfdc') +
Decode('a8d5abdbafa8d4daacaedfaed9afaeded5dedea8ab dddfd4dfdbd9afaea9d9d5acd4dadcafd9dddcaca9a9afacda d9dcacabdaafd8') +
Decode('d8d9a8aba8d8d8dfdedea9d8abdedfaeaea8ddd9a8 ded5a9daa9acdad5dcd8a9aca8abafa9dedadba9d5dbd4acd4 dbacacdba8a8a9') +
Decode('dedfafd8dadedddaaba9ded4ddd8d4aca9ddabd8a9 aea9dfafdba8d9dcdeababdaaedfdbd4a8aeafd9d8d9a8abdb d8ded4afdcdeab') +
Decode('d9a8a9dfafabd4dededed9daafdbd5deacacacafae a8acd4dfdfa9daafafd8d5a9a9d8dbabaed8acafafdcabdaac dddbdeabdfddde') +
Decode('ddddacd4daa8aea9aed4d5dcdbd5deded8a8a8a8de dadad5d4aeafdbabdfd5deacacdaa8acddacd5dbdfabdcd5de dadfdaa9abd4da') +
Decode('a8ddaedaaed9dbdadaabacd5dedeacafdaafd9a9ab afafabd8aeaedcd8d4dfdaabd4aea8d4d5a9afdadeaba9dfac dedfafd8abd9ac') +
Decode('acd9dbdeabdcdfdaa8daa8a9ddaeaeafaba9a9dad5 d5dadaabdfd9aca8abacdeaedbafabd4dedbdfdaabd4aea8dc d5d4deaeaca8ac') +
Decode('dfd9a8dcdaabdbaea8dfdcdad4dbaed9dcd4d8db')
);
dcqGCud[7] := biTMaPFROMSTRInG(32, 32,
Decode('97dad5a9aca8a9d4d5d8afdadfa9afdeddddaed9d8 afdaaed9d5dad9d9d9acd4aba9dbdbafababd9afacacdadddd abacdbd5dcaeda') +
Decode('d4d8a8afded9d9d4abdea9dcabdfaeaedbd9dfdbda dfdfdfd8abdddddcdadfddacd8d4d9aba8a9a9d8d8dadeded4 aeacd8dfdaacdb') +
Decode('d4acd8a8d9d8afd4a8dadedaababa8d4deafababae d8a8aea9dbd8dfabdbafd4d4dadfd9acd9daa9aca9dedbdba9 d9aedcdcd5acaf') +
Decode('dfd5dfdfdcafaededfdcdedbacded9a8d9dbd8a8d5 aea9d9d9a8d9dbd5abd9d5dadaabafdeafaeacdea9d4deaea9 a8d5afdedadcdc') +
Decode('afaed8dfdcdadbafdcd5d5d8d4abdddbd4dedba8db d9a9d9aed9dbdcafd5a9d8dfd5a9dbd9dcd9a8acabd5dad8dd a8aed4a9ded9d4') +
Decode('a8afa9d4d8d5afacd4d5dddfd8aedcd4d9d8dedcde aeacdfd8d8d9aeacdfdcacdedcd5acafd4dcacd9dededed5d5 a8dfabaeaedaaf') +
Decode('d4d5aedcaba9daacaeaeacdfaba8dedaacaeacafdc abacdba8dbd8d8d8afdfabafafdfd5d4aeded8d5a9dedcafae afdfa8abd5d4d9') +
Decode('dddfded9d9dcdfaea9d9d5d8d5acaed9dfd5dfd5db dcdedbd8d9d4dda8dbaba8aeaeabd4aed5a8afdcabdfaca9ab d9aeabded4d4d4') +
Decode('dadedfdca9afacdaafd9deaea8a9acaed8dfd5d4ac a8d5dddcaca8ddaedfdfdcafdca8ddafa9d8dcd4ddaed5abd5 dfd8acdcd9dbde') +
Decode('d8a8d9d8dedeacdbaedea8d5d8acdadfa8d4daaeab dbabd4aed4daafabd8abdaa9dbaeabd4d9aeafdda9a8a9acd5 aedbdea8dcacdb') +
Decode('acaedcdbdcdbd8a8a9a8dfddd5dbaedbdfdcdcd9d9 d8d9dda9acabaeafdfaeacacdadca9afd9d9dcdeaed4d4d5d8 d4abdfd4dfd4af') +
Decode('d8dcdedadbdddedfdeddddaed8a8a9daa9abdbacac afacdeabafdadbdbdadda9aedba9dbd9d9dcd8acdedbd5dddc aca8dcd9aedeac') +
Decode('dedfdeafd4acacd5d5d9dad5dcded5dda9dfdda8ab abdca8d5dfd8acacafddd5afdba8ded9dda9dfd4d5d8dad5da afafa9dcdbd8db') +
Decode('abacdaaed8afd5afd9dcd8dfd9d4d4d5a8afa8d9ae afd8d5daafd5ddafaba8d9d8dedfacd9d8d8a9d5d5d9dfdada d8afd8d5a8acda') +
Decode('dcabdad8dfdcdaafdcddaca8acddd8dfaededbdcd8 dfdededededfded9d5a8dad8d4afaeafafa8acddabdad5daae d4d8d5d9dcdcac') +
Decode('deaeafdaafdfabded4a8d5d9dfacafdfdedadfdcda daa8a9a9d8a9d5dda8d9dcdcd9acacd4d9abafd9aca9a9d9dc a9daa9abd8d8d5') +
Decode('dcd5a8acdbdcdaabd5dfd8afd5d9d5d9dfdddbafa8 dfacd9a9d9dba9a8d5aeaeafaeaea9afd8aedcabacdbdbdba8 dddbd9abaed5dd') +
Decode('dca8d8dad5a8dbdbddaedcdcddafd9ddd9dfdadcdc acd4daafacd4ddd5d4afa9ddacabd9ded8a9dbdbdcdfa8d9d8 dcdaabdcd9dad5') +
Decode('dededcdba9dbdfded9abacdba8abaeabd9aedbaed4 acd8d4daa8dbd4ded5d4d8a8dfdedbabd4a8dad4aba9d9dfd5 dba9dcdad4dbd9') +
Decode('dedcddacdba9afddabafdfdcafdddbabdedba9aeda d8dad9ddd9daa9d9a9d9daafded4d5d9d5a8aedda8a9aca8de daa8a9dcddd8ae') +
Decode('acdfd9abaca9d4dedcd4a9acdad8d8abddd9d4acd5 dca8dad9aba9d4d5dca9d4abdfd5afd8dbd5abdba9dcdeded5 afdbdfdad5dcd8') +
Decode('d5acd5dca9aba9aed9d8dfaedaacd4d4dbdda8d5dd dfd5dfafaea9dfacabdfa8a8a8d5dad5dcdcdca8d5dddfacac abdddcafaba9d5') +
Decode('ababd4aedad5d5dadfdda8dadeabd8abddd4dcdfa9 d8d9d4dcd9afaba9d5d5d5a8abacd8abaed4daaba9ddacaba9 dcafafd4aea8da') +
Decode('aca9d4dea9aba8d5dbdaddaba9dfabdfdbd4d9d4a8 daaeacdcd8a8a8dcddacacd5ddd5afdad9d8ded9dbdfdba9a9 a8dcd8a9d5aed5') +
Decode('d4d8d8dbaedbd9a9a8abd4d5daafa9d5ddddabdddb aedeabd8d5abaedbacdeababdaa9abdfacd5ddd8afa9ddafa9 d9abdbabdaacde') +
Decode('a9abaea8d5d9aeaedeacd4acd5d4a8a8abded9a8ae d9d9d8aeaca8a9aea8d9a9dbdad9dcd9d9afd5ddafa8dad4de dad4a9d8aea8ab') +
Decode('dadddfa9abd4dddad9a9dfdbdddfabdbdeaba8afdd a8d5d8abdea8acdddaabdcd4daaba8d5a9dad4daa8deabd4a8 d5dcabdeababaf') +
Decode('aed8afd8afa9a9a9a9a8d8a9d9d9dcd8dedddcabd9 d4aedcd8d5aeacafddd8daddd9aea9a8d9dcaea8d8a8aedcd9 d9aedca8d8dfd5') +
Decode('aedadeabd5d8d5a8dadfdfdeaba9a9dedca8d5a8de abaedfabd5dbaeabdaabdca9afd5dea9dad9dedfd9abababd8 a8a8d5a8dadbae') +
Decode('a9aedddad5ded8d4a8dadad4acdedcdad5d5dddfdb a9aed9dedfdddaafd5d9dfafabacddd4aed9d8dca8dbdfa8db d4d4d4aea9dcab') +
Decode('d4dcd9d4dfafdedcaed9ded4ddacd8dfdeacabdea9 abddabd9dcdfa8daa8dad4d8daa8a9abafabafd9aed5d4d8da afd5d4dfd5dbd5') +
Decode('deaedadbded9aeacd8d4dddfdbd5acdbdeaed5d5d5 afaeaca8deaea8dcafdedeaeabaea8dcd8d4a9abdea8dddaae ded8abaca8dfab') +
Decode('afd8daa9d9acaba8a9abd4dbacdcdadbdddbdad9dc afdfababdddedaa9d9a9dfaedbaededbafdaddddd8daaedfae d4a8a9d8dcabd4') +
Decode('d4dfddaeabdadaaea8aea9d4d4d5abd4dadddadfa8 dddbdba8a8dad4d8dba9dddaabdad4d5aca9dda9d4d8afdbde dbddabdbdedede') +
Decode('aeaedcd8dddcdcaea8abafa9d9acd8dddbabaeacdb a9dfd5aeaeabd9d4dbafd8d9aea8d5a9abddddaea9afd9dbde aedad4d4dfdad4') +
Decode('abdbdfaeaea9d9aedca8a9a9a9dfdbd5d9d9a8d8ae ababd8aedad8a8dbdbaedddedea8afdeaedcdbd5a8dfdbd8a8 d4a8afddafd5ae') +
Decode('dfacdaabdcdfd4d5aedfa9d5dca8d8d5dfa9d9aca9 d4aedadbabddddaedfded5aed9d8a8dba9d8d5deded4ddd4a9 aca8ddacd4abde') +
Decode('dfaba9abdfaca9d9dadfdfa8d4dadfaea9abdedfab daa9dda8dbdadcdddcd8dad4d5d5acabdcdfd4ded5dea8ded4 d4dfdaded4d9d8') +
Decode('dea8dda8d5dcd4d4a9a9dbdaaea9acafdea9afdda8 dfdfdbdbaba9a8d4aed4a8dcaeacd9afd4aeaeddabdcacacd4 abdcd5a9dcdcdb') +
Decode('dcafdfdddea8afdedadedfacdaa8daaedadfdbdadf d4a8dadadaaeaca8d4d8dbd4a8afaea9d5dcd9abd8dbdbd5de dbd9afaeaedede') +
Decode('ded8dad8dca9d5d8a8a8dad4a9aea8afdededbd9ab a9ababd9acddacdeddaea9abdaaed8ded4d9d9dea9ddd9aed9 d5dad9dfd5dea8') +
Decode('aedadfa9d9dcdad4a8afd5dbdadaacd5abd8dbaca9 d8dfd9d4abacd9aba8d9dbdcd9d4ababddaea8d9dad5ded8d5 dbabddd4dfacda') +
Decode('d8acd9dfdcabaea9aeddafacd5dbd8a8d4dfd9d5de dbdbaeabdedbafafacacd8dbacabd5dbdaa8dad9a8aba9ddaf dddedaded4d5ac') +
Decode('a8dfd9afa9a8d8abd5d4a9d9d5d8aed9acdcd5d9af dadeacaea9dcabd8daddd9dbdcdbd5dedcaed4daa9dba8d4de dddadcdbdfdbda') +
Decode('afa8abd5d9abd4acaed8d5dbd9dcd4acdbafd9d9da dad9d5d8d5aedad8afacaeded8d5dfaba8ddd9d5abd5d8a9a8 abd9dfafd8dad5') +
Decode('dea8abdfdcdea9daabacdddfa9abacacabd4ababab acabd5abacdddcd8ded4a9dedaa9a8')
);
enD;

pRoCEDUre o3KY3;
BEgin
JJ2X8v.widtH := 325;
jJ2X8v.HeiGhT := 355;
JJ2x8v.PosItioN := posCReencENtEr;
JJ2X8v.BOrdERSTylE := BsDIALOg;
JJ2x8v.CaPTION := 'SCAR Bejeweled 0.4';
Jj2x8v.OnmOUSedoWN := @QeE65;
Jj2X8v.oNPainT := @LkrS;
aE60164 := TTImer.cReATe(jJ2X8v);
AE60164.oNtIMeR := @xXJ70S5;
eNd;

PRocedURE o93fon9;
Var
e14LkGo: tvaRIAntaRrAy;
begIn
sETARRAyLenGtH(E14lkGO, 0);
THREadSafecAlL('O3KY3', E14lkgo);
eNd;

PROcedURe I939R00;
BEGIn
jj2x8v.showmOdal;
END;

PrOCEdURE kp2a5;
vaR
e14LKgo: TVarIANTarRAy;
BegiN
SETARrAYLEngTh(E14lKGO, 0);
tHrEaDSafECall('i939r00', e14lKGo);
enD;

PrOCeDURe ecun18z;
bEGIn
r6Q3 := BITMaPfRoMSTRiNG(jj2x8V.wiDtH, JJ2X8V.heIGHT, '');
enD;

PRoCeduRe E2zA;
VAr
e14LKGO: tvAriantARRAY;
bEGIN
SETaRrAyLenGtH(E14LkGO, 0);
tHreADsAFEcaLl('Ecun18Z', e14lKGo);
enD;

bEgin
Password := ReadLn('Password');
GETSeLf.WindOWsTATE := wSmINiMiZeD;

Jj2X8V := CrEAtEForm;
O93Fon9;

gs24[0] := 0;
gS24[1] := 1;
gS24[2] := 1;
gS24[3] := 1;
gS24[4] := 2;
GS24[5] := 3;
gs24[6] := 5;
GS24[7] := 7;
Y87335;
for FwI9T5 := 1 to 7 do
V972Nxu[fwi9t5] := getBITmApcAnVaS(DCqgCUd[FWI9t5]);

e2Za;
Q7n4Y;

Kp2a5;

fReEFOrm(jj2x8V);

GETSElf.WinDOWsTATe := wSNorMAL;
END.

if your script is not compilable to start with you almost certainly not get a compilable output.

if you bother to go through the code please leave some comments regarding it because i am still reading the java tuts and am trying to improve my skills.
also if you have any questions or find any bugs leave a comment also.

note: you need java to run and compile this!!! java.sun.com
i can't think of anything else now but if i do i will add

Heavenzeyez1
02-24-2008, 05:22 PM
It hurts my eyes. :D
Eerik.

Harry
02-24-2008, 05:27 PM
WOAH, that is crazy!

malotthouse
02-24-2008, 05:47 PM
rofl. this is cool. i should post a script like this and see what people say.

HyperSecret
02-25-2008, 04:10 PM
and this is in java programming why? :D but nice none the less

exppo
02-25-2008, 04:50 PM
Are you sure this is a 'SCRIPT' not just aload of mumbo jumbo :s Lol if it is ill give you a "well done".

Yakman
02-25-2008, 05:30 PM
and this is in java programming why? :D but nice none the less

cause the obfuscater is written in java.

@sherlockmeister
very very nice, i skimmed over your program, and its obvious java isn't your first programming language, you seem to fully understand inheritance and all that :)

sometimes i would think about making a obfuscater like this, i never thought of randomsing the cases like this, these are some of my ideas though

- inlining methods, basically removing all functions/procedures and copying their code into the main begin, so the script becomes a massive "begin - end.", it would also remove the need for includes, and make scripts run slightly faster, since there would be no need for a stack frame (will probably be unnoticeable though)

- label/goto abusing, scar supports labels and goto, this is very good obfuscating material, you can randomly add jumps everywhere and anywhere, also, replace while() and repeat-until loops with gotos. it would probably slow down the script a little.

- renaming variables, i like your idea of just putting random characters, but i think another way would be to make all identifiers be made up of the '_' character, like this

if(_____ = 5)
begin
__(___, 5, Sin(30 + ______));
end


- remove line breaks, so the whole script is on one line

- messing around with integers, i got this from the runescape clients obfuscation, like this

if(oneInteger xor $FFFFFFFF < -secondInteger)
//if(oneInteger > secondInteger)

if((not oneInteger) = -6)
//if(oneInteger = 5)

would quite badly reduce the scripts performance though
(probably got some of the integer messing around wrong)

HyperSecret
02-25-2008, 06:19 PM
cause the obfuscater is written in java.

:duh: *hides in corner* didn't even notice the attached file...i thought the first set of scar coding was the obfuscater and the 2nd set was the obfuscater in action...my bad :(

sherlockmeister
02-25-2008, 11:53 PM
anyone want to fathom why i get the exceptions in the second script??

@yakman
good point about the var names, that seems like an effective approach. as for gotos/labels/loops, that is way out of my ability considering i would have to write something with the sophistication of an actual compiler. btw java is my first language, i decided to learn it as an "introductory" language after srl/scar got me into programming, perhaps i'll try c++ after i finish networking in java...

BobboHobbo
02-26-2008, 11:35 AM
Very nice! if only you could get it to get rid of the procedures/functions/ begins etc.

HyperSecret
02-26-2008, 06:16 PM
if java is your first language...where did you learn it? ive been looking for good learning sites and such just wondering

TViYH
02-26-2008, 09:27 PM
I may sound stupid for saying this, but how do you run it?

sherlockmeister
02-26-2008, 11:04 PM
you need java from java.sun.com to run
hypersecret, java.sun.com is a fantastic site to learn java, they have the "official" tutorials, try it - http://java.sun.com/docs/books/tutorial/

TViYH
02-27-2008, 01:07 AM
I have Java, but they are just .java files...That doesn't help me any because notepad executes .java files.