Eolite 1.25: /tmp disc support and others

git-svn-id: svn://kolibrios.org@2814 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2012-06-20 22:51:10 +00:00
parent 7c0789c3e6
commit 8de57a728f
10 changed files with 646 additions and 581 deletions

View File

@ -20,14 +20,13 @@ int BUTTON_HEIGHT=18;
#define ONLY_OPEN 2
//ïåðåìåííûå
#define title "Eolite File Manager v1.23"
#define title "Eolite File Manager v1.25"
dword videlenie=0x94AECE; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ
//
int but_num,
count,
za_kadrom,
curbtn,
disc_num,
scroll_size;
byte cut_active,
rename_active,
@ -53,7 +52,6 @@ struct path_string {
char Item[4096];
};
path_string disk_list[20];
dword stak[100]; //îêíî About
@ -92,273 +90,289 @@ int pressed_y;
}
else copystr("/rd/1/", #path);
Open_Dir(#path,ONLY_OPEN);
loop()
loop() switch(WaitEvent())
{
switch(WaitEvent())
{
case evMouse:
IF (del_active==1) break;
case evMouse:
IF (del_active==1) break;
id=GetSlot(Form.ID);
IF (id<>ActiveProcess()) break; //åñëè îêíî íå àêòèâíî íà ñîáûòèÿ ìûøè íå ðåàãèðóåì
id=GetSlot(Form.ID);
IF (id<>ActiveProcess()) break; //åñëè îêíî íå àêòèâíî íà ñîáûòèÿ ìûøè íå ðåàãèðóåì
m.get();
IF (rename_active==0) edit_box_mouse stdcall(#edit1); ELSE edit_box_mouse stdcall(#edit2);
if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>40) && (m.y<57)
{
IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),41,14,14,0xC7C7C7,0xFFFFFF);
WHILE (m.lkm==1) && (za_kadrom>0)
{
Pause(10);
za_kadrom--;
List_ReDraw();
m.get();
}
DrawRegion_3D(onLeft(26,0),41,14,14,0xFFFFFF,0xC7C7C7);
}
m.get();
if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>onTop(22,0)+1) && (m.y<onTop(22,0)+16)
if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>40) && (m.y<57)
{
IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),41,14,14,0xC7C7C7,0xFFFFFF);
WHILE (m.lkm==1) && (za_kadrom>0)
{
IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xC7C7C7,0xFFFFFF);
while (m.lkm==1) && (za_kadrom<count-but_num)
{
Pause(10);
za_kadrom++;
List_ReDraw();
m.get();
}
DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xFFFFFF,0xC7C7C7);
}
//êîë¸ñèêî ìûøè
IF (m.vert==65535) IF (curbtn>0) FileList_ReDraw(-1); ELSE
{
FileList_ReDraw(-1);
FileList_ReDraw(-1);
FileList_ReDraw(-1);
}
IF (m.vert==1) IF (curbtn<but_num-1) FileList_ReDraw(1); ELSE
{
FileList_ReDraw(1);
FileList_ReDraw(1);
FileList_ReDraw(1);
}
//ñêðîëë
if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>56) && && (m.y<65000) while (m.lkm)
{
IF (scroll_size/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=scroll_size/2+57; //åñëè êóðñîð íàä îêíîì
id=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî
j= scroll_size/2;
za_kadrom = m.y -j -57 * count;
za_kadrom /= onTop(22,57);
IF (but_num+za_kadrom>count) za_kadrom=count-but_num;
IF (id<>za_kadrom) List_ReDraw(); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü
Pause(10);
za_kadrom--;
List_ReDraw();
m.get();
}
break;
//Button pressed-----------------------------------------------------------------------------
case evButton:
IF (edit1.flags<>64) {edit1.flags=64; edit_box_draw stdcall(#edit1);} //ñáðàñûâàåì âûäåëåíèå ïðè íàæàòèè íà áàòîí
id=GetButtonID();
IF (id==1) ExitProcess();
IF (del_active==1) {IF (id==301) || (id==302) Del_File(302-id); break;}
switch(id)
DrawRegion_3D(onLeft(26,0),41,14,14,0xFFFFFF,0xC7C7C7);
}
if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>onTop(22,0)+1) && (m.y<onTop(22,0)+16)
{
case 21: //Back
GoBack();
break;
case 22: //Forward
HistoryPath(go_forward);
break;
case 23: //up!
IF (strcmp(#path,"/")<>0) Dir_Up();
break;
case 24: //cut
key=24;
case 25: //copy
goto CTRLC_MARK;
case 26: //paste
Paste();
break;
case 27: //goto edit_path
Goto_edit_path();
break;
case 31...33: //sort
IF(sort_num==1) DrawBar(onLeft(192,168)/2+210,45,6,9,0xE4DFE1);
IF(sort_num==2) DrawBar(onLeft(115,0),45,6,9,0xE4DFE1);
IF(sort_num==3) DrawBar(onLeft(44,0),45,6,9,0xE4DFE1);
sort_num=id-30;
Open_Dir(#path,1);
break;
case 30: //about
CreateThread(#about_dialog,#stak);
break;
case 77:
IF (show_actions==1) show_actions=0; ELSE show_actions=1;
Actions();
break;
case 78:
IF (show_dev_name==1) show_dev_name=0; ELSE show_dev_name=1;
DrawSystemDiscs();
break;
case 80: //rename
goto REN_MARK;
case 81: //Delete file
Del_Form();
break;
case 82: //create folder
NEW_FOLDER_MARK:
copystr(#path, #temp);
copystr("New folder", #temp+strlen(#temp));
CreateFolder(#temp);
IF (EAX==0){
SelectFile("New folder");
goto REN_MARK;
}
ELSE ShowMessage("Folder can not be created.");
break;
case 100...120:
DEVICE_MARK:
DrawRegion_3D(17,id-100*16+74,159,16, 0, 0); //âûäåëåíèå
copystr(#disk_list[id-100].Item, #path);
za_kadrom=curbtn=0;
Open_Dir(#path,1);
DrawRegion_3D(17,id-100*16+74,159,16, 0xFFFFFF, 0xFFFFFF);
break;
default:
if (id<200) break; //êíîïêè èç ñïèñêà ôàéëîâ
IF (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;}
else OPEN_MARK:
if (!isdir) GetIni(0); else
if (strcmp(#file_name,"..")==0) Dir_Up(); else
{ OPEN_DEV:
copystr(#file_path, #path);
IF (strcmp(#path+strlen(#path)-1,"/")<>0) copystr("/",#path+strlen(#path)); //åñëè íåò, + "/"
za_kadrom=curbtn=0;
Open_Dir(#path,1);
}
IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xC7C7C7,0xFFFFFF);
while (m.lkm==1) && (za_kadrom<count-but_num)
{
Pause(10);
za_kadrom++;
List_ReDraw();
m.get();
}
DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xFFFFFF,0xC7C7C7);
}
//êîë¸ñèêî ìûøè
IF (m.vert==65535) && (za_kadrom>0)
{
if (za_kadrom>0) za_kadrom--;
if (curbtn<but_num-1) curbtn++;
List_ReDraw();
if (za_kadrom>0) za_kadrom--;
if (curbtn<but_num-1) curbtn++;
List_ReDraw();
}
IF (m.vert==1) && (za_kadrom<count-but_num)
{
if (za_kadrom<count-but_num) za_kadrom++;
if (curbtn>0) curbtn--;
List_ReDraw();
if (za_kadrom<count-but_num) za_kadrom++;
if (curbtn>0) curbtn--;
List_ReDraw();
}
//ñêðîëë
if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>56) && && (m.y<65000) while (m.lkm)
{
IF (scroll_size/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=scroll_size/2+57; //åñëè êóðñîð íàä îêíîì
id=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî
j= scroll_size/2;
za_kadrom = m.y -j -57 * count;
za_kadrom /= onTop(22,57);
IF (but_num+za_kadrom>count) za_kadrom=count-but_num;
IF (id<>za_kadrom) List_ReDraw(); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü
m.get();
}
break;
//Key pressed-----------------------------------------------------------------------------
case evKey:
key = GetKey();
IF (del_active==1)
{
IF (key==013) Del_File(true);
IF (key==027) Del_File(false);
break;
}
IF (edit1.flags<>64) && (edit1.flags<>0) && (key<>13)
{
EAX=key<<8;
edit_box_key stdcall (#edit1);
break;
}
IF (edit2.flags<>64) && (key<>13) && (key<>27)
{
EAX=key<<8;
edit_box_key stdcall (#edit2);
break;
}
switch (key)
{
case 209...217:
id=key-110;
IF (id-100>=disc_num) break;
GOTO DEVICE_MARK;
case 8: //Íàçàä
GoBack();
break;
case 004: //Ctrl+D ðèñ íà ðàá ñòîë ðàñòÿíóòü
copystr("\\S__", #temp);
copystr(#file_path, #temp+strlen(#temp));
RunProgram("/sys/media/kiv", #temp);
break;
case 014: //Ctrl+N íîâîå îêíî
IF (Form.left==98) MoveSize(Form.left-20,Form.top-20,OLD,OLD);
RunProgram("/sys/File Managers/Eolite", #path);
break;
case 024: //Ctrl+X cut
case 003: //Ctrl+C copy
CTRLC_MARK:
IF (isdir) break; //ïàïêè ïîêà ÷òî êîïèðîâàòü íå óìååì
copystr(#file_path,#copy_file); //âû÷èñëÿåì êàêîé ôàéë êîïèðîâàòü
IF (key==24) cut_active=1; ELSE cut_active=0;
break;
case 022: Paste(); break;//Ctrl+V paste
case 027: //Esc
IF (rename_active==1) ReName(false);
break;
case 013: //Enter
IF (rename_active==1) {ReName(true); break;}
IF (strcmp(#path,#edit_path)<>0) Goto_edit_path();
ELSE GOTO OPEN_MARK;
break;
case 55: //F6 - new folder
goto NEW_FOLDER_MARK;
case 56: //IF (rename_active==1) break;//up
case 178: //up
FileList_ReDraw(-1);
break;
case 177: //down
FileList_ReDraw(1);
break;
case 180: //home
za_kadrom=0;
curbtn=0;
List_ReDraw();
break;
case 181: //end
za_kadrom=count-but_num;
curbtn=but_num-1;
List_ReDraw();
break;
case 183: //Page Down
FileList_ReDraw(but_num-1);
break;
case 184: //Page Up
FileList_ReDraw(-but_num+1);
break;
case 051: //Íàæàòà F2
REN_MARK:
DeleteButton(curbtn+201); //ýòî ÷òîá ìîæíî áûëî âûäåëÿòü ìûøüþ
edit2.flags=66; //äåëàåì êîìïîíåíò àêòèâíûì
edit2.width=onLeft(24,217);
edit2.top=curbtn*BUTTON_HEIGHT+59;
edit2.size=edit2.pos=strlen(#file_name);
edit_box_draw stdcall (#edit2);
DrawBar(213,curbtn*BUTTON_HEIGHT+58,edit2.width+1,1,0xFFFFCC); //ïîëîñà æåëòàÿ ñâåðõó äëÿ îäèíàêîâîñòè
rename_active=1;
break;
case 052: //Íàæàòà F3
IF (isdir==false) RunProgram("/sys/tinypad", #file_path);
break;
case 053: //Íàæàòà F4
IF (isdir==false) RunProgram("/sys/develop/heed", #file_path);
break;
case 054: //F5
//Button pressed-----------------------------------------------------------------------------
case evButton:
IF (edit1.flags<>64) {edit1.flags=64; edit_box_draw stdcall(#edit1);} //ñáðàñûâàåì âûäåëåíèå ïðè íàæàòèè íà áàòîí
id=GetButtonID();
IF (id==1) ExitProcess();
IF (del_active==1) {IF (id==301) || (id==302) Del_File(302-id); break;}
switch(id)
{
case 21: //Back
GoBack();
break;
case 22: //Forward
HistoryPath(go_forward);
break;
case 23: //up!
Dir_Up();
break;
case 24: //cut
key=24;
case 25: //copy
goto CTRLC_MARK;
case 26: //paste
Paste();
break;
case 27: //goto edit_path
Goto_edit_path();
break;
case 31...33: //sort
IF(sort_num==1) DrawBar(onLeft(192,168)/2+210,45,6,9,0xE4DFE1);
IF(sort_num==2) DrawBar(onLeft(115,0),45,6,9,0xE4DFE1);
IF(sort_num==3) DrawBar(onLeft(44,0),45,6,9,0xE4DFE1);
sort_num=id-30;
Open_Dir(#path,1);
break;
case 30: //about
CreateThread(#about_dialog,#stak);
break;
case 77:
IF (show_actions==1) show_actions=0; ELSE show_actions=1;
Actions();
break;
case 78:
IF (show_dev_name==1) show_dev_name=0; ELSE show_dev_name=1;
GetSystemDiscs();
Open_Dir(#path,WITH_REDRAW);
DrawSystemDiscs();
Actions();
break;
case 80: //rename
goto REN_MARK;
case 81: //Delete file
Del_Form();
break;
case 82: //create folder
NEW_FOLDER_MARK:
copystr(#path, #temp);
copystr("New folder", #temp+strlen(#temp));
CreateFolder(#temp);
IF (EAX==0){
SelectFile("New folder");
goto REN_MARK;
}
ELSE
{
Write_Error(EAX);
ShowMessage("Folder can not be created.");
}
break;
case 100...120:
DEVICE_MARK:
DrawRegion_3D(17,id-100*16+74,159,16, 0, 0); //âûäåëåíèå
copystr(#disk_list[id-100].Item, #path);
za_kadrom=curbtn=0;
Open_Dir(#path,1);
Pause(5);
DrawRegion_3D(17,id-100*16+74,159,16, 0xFFFFFF, 0xFFFFFF);
break;
default:
if (id<200) break; //êíîïêè èç ñïèñêà ôàéëîâ
if (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;}
else OPEN_MARK:
if (!isdir) GetIni(0); else
if (strcmp(#file_name,"..")==0) Dir_Up();
else
{
OPEN_DEV:
copystr(#file_path, #path);
IF (strcmp(#path+strlen(#path)-1,"/")<>0) copystr("/",#path+strlen(#path)); //åñëè íåò, + "/"
za_kadrom=curbtn=0;
Open_Dir(#path,1);
break;
case 182: //delete file
Del_Form();
break;
default:
for (i=curbtn+za_kadrom+1; i<count; i++)
}
}
break;
//Key pressed-----------------------------------------------------------------------------
case evKey:
key = GetKey();
IF (del_active==1)
{
IF (key==013) Del_File(true);
IF (key==027) Del_File(false);
break;
}
IF (edit1.flags<>64) && (edit1.flags<>0) && (key<>13)
{
EAX=key<<8;
edit_box_key stdcall (#edit1);
break;
}
IF (edit2.flags<>64) && (key<>13) && (key<>27)
{
EAX=key<<8;
edit_box_key stdcall (#edit2);
break;
}
switch (key)
{
case 209...217:
id=key-110;
IF (id-100>=disc_num) break;
GOTO DEVICE_MARK;
case 8: //Íàçàä
//GoBack();
Dir_Up();
break;
case 004: //Ctrl+D ðèñ íà ðàá ñòîë ðàñòÿíóòü
copystr("\\S__", #temp);
copystr(#file_path, #temp+strlen(#temp));
RunProgram("/sys/media/kiv", #temp);
break;
case 014: //Ctrl+N íîâîå îêíî
IF (Form.left==98) MoveSize(Form.left-20,Form.top-20,OLD,OLD);
RunProgram("/sys/File Managers/Eolite", #path);
break;
case 024: //Ctrl+X cut
case 003: //Ctrl+C copy
CTRLC_MARK:
IF (isdir) break; //ïàïêè ïîêà ÷òî êîïèðîâàòü íå óìååì
copystr(#file_path,#copy_file); //âû÷èñëÿåì êàêîé ôàéë êîïèðîâàòü
IF (key==24) cut_active=1; ELSE cut_active=0;
break;
case 022: Paste(); break;//Ctrl+V paste
case 027: //Esc
IF (rename_active==1) ReName(false);
break;
case 013: //Enter
IF (rename_active==1) {ReName(true); break;}
IF (strcmp(#path,#edit_path)<>0) Goto_edit_path();
ELSE GOTO OPEN_MARK;
break;
case 55: //F6 - new folder
goto NEW_FOLDER_MARK;
case 56: //IF (rename_active==1) break;//up
case 178: //up
FileList_ReDraw(-1);
break;
case 177: //down
FileList_ReDraw(1);
break;
case 180: //home
za_kadrom=0;
curbtn=0;
List_ReDraw();
break;
case 181: //end
za_kadrom=count-but_num;
curbtn=but_num-1;
List_ReDraw();
break;
case 183: //Page Down
FileList_ReDraw(but_num-1);
break;
case 184: //Page Up
FileList_ReDraw(-but_num+1);
break;
case 051: //Íàæàòà F2
REN_MARK:
DeleteButton(curbtn+201); //ýòî ÷òîá ìîæíî áûëî âûäåëÿòü ìûøüþ
edit2.flags=66; //äåëàåì êîìïîíåíò àêòèâíûì
edit2.width=onLeft(24,217);
edit2.top=curbtn*BUTTON_HEIGHT+59;
edit2.size=edit2.pos=strlen(#file_name);
edit_box_draw stdcall (#edit2);
DrawBar(213,curbtn*BUTTON_HEIGHT+58,edit2.width+1,1,0xFFFFCC); //ïîëîñà æåëòàÿ ñâåðõó äëÿ îäèíàêîâîñòè
rename_active=1;
break;
case 052: //Íàæàòà F3
IF (isdir==false) RunProgram("/sys/tinypad", #file_path);
break;
case 053: //Íàæàòà F4
IF (isdir==false) RunProgram("/sys/develop/heed", #file_path);
break;
case 054: //F5
Open_Dir(#path,1);
break;
case 182: //delete file
Del_Form();
break;
default:
for (i=curbtn+za_kadrom+1; i<count; i++)
{
copystr(file_mas[i]*304+buf+72,#temp);
AL=DSBYTE[#temp];
IF(AL>='A')&&(AL<='Z')DSBYTE[#temp]=AL|0x20;
IF (temp[0]==key)
{
copystr(file_mas[i]*304+buf+72,#temp);
AL=DSBYTE[#temp];
IF(AL>='A')&&(AL<='Z')DSBYTE[#temp]=AL|0x20;
IF (temp[0]==key)
{
FileList_ReDraw(i-curbtn-za_kadrom);
break;
}
FileList_ReDraw(i-curbtn-za_kadrom);
break;
}
}
BREAK;
case evReDraw: draw_window();
}
IF (rename_active==0) edit_box_mouse stdcall(#edit1); ELSE edit_box_mouse stdcall(#edit2);
}
}
BREAK;
case evReDraw:
draw_window();
}
}
@ -394,8 +408,6 @@ inline fastcall void draw_window()
DrawFlatButton(onLeft(95,0),40,68,16,33,0xE4DFE1,"Size");
//Ïåðåðèñîâûâàåì ñïèñîê
Open_Dir(#path,ONLY_SHOW);
//List_ReDraw();
//KEdit();
//ïðîêðóòêà
DrawBar(onLeft(27,0),57,1,onTop(22,57),0x94AECE); //ëèíèÿ ñëåâà îò ïðîêðóòêè
DrawFlatButton(onLeft(27,0),40,16,16,0,0xE4DFE1,"\x18"); //ïðîêðóòêà ââåðõ
@ -514,10 +526,10 @@ void Line_ReDraw(dword color, filenum){
IF (!strcmp("..",off)) temp_int=Put_icon("..", BUTTON_HEIGHT/2-7+y);
ELSE
temp_int=Put_icon("<DIR>", BUTTON_HEIGHT/2-7+y);
if (color==videlenie)
if (color<>0xFFFfff)
{
isdir=TestBit(ESDWORD[off-40], 4);
IconFairing(temp_int, BUTTON_HEIGHT/2-7+y); //çàêðàøèâàåì èêîíêó
IconFairing(temp_int, BUTTON_HEIGHT/2-7+y, color); //çàêðàøèâàåì èêîíêó
copystr(off,#file_name);
copystr(#path,#file_path);
copystr(#file_name,#file_path+strlen(#file_path)); //ïîëíûé ïóòü ê ôàéëó
@ -545,9 +557,9 @@ void Open_Dir(dword temp_, redraw){
errornum=ReadDir(0, buf, #path_);
if (errornum<>0) //îøèáêà ïðè ÷òåíèè ïàïêè
{
Write_Debug_Error(errornum);
HistoryPath(add_new_path);
GoBack();
Write_Error(errornum);
return;
}
count = ESDWORD[buf+8];
@ -641,7 +653,7 @@ void Del_File(byte dodel)
del_file_rez=DeleleFile(#file_path);
IF (del_file_rez<>0)
{
Write_Debug_Error(del_file_rez);
Write_Error(del_file_rez);
IF (isdir==true) ShowMessage("Error. Folder isn't empty.");
IF (isdir==false) ShowMessage("Error. Filesystem read-only.");
}
@ -668,7 +680,7 @@ void Paste()
copy_rezult=CopyFile(#copy_file,#new_copy_path);
IF (copy_rezult<>0) //îøèáêà
{
Write_Debug_Error(copy_rezult);
Write_Error(copy_rezult);
DrawFlatButton(Form.width/2-13,160,200,80,0,0xFFB6B5, "Error. You can't paste here.");
Pause(150);
}
@ -712,7 +724,7 @@ void ReName(byte rename)
del_file_rez=DeleleFile(#file_path);
IF (del_file_rez<>0)
{
Write_Debug_Error(del_file_rez);
Write_Error(del_file_rez);
ShowMessage("Error. Folder isn't empty.");
return;
}
@ -786,6 +798,7 @@ void SelectFile(dword that_file)
void Dir_Up()
{
char cur_folder[4096];
if (!strcmp(#path,"/")) return;
i=strlen(#path)-1;
path[i]=0x00;
do i--; while (path[i]<>'/'); copystr(#path+i+1,#cur_folder);

View File

@ -1,3 +1,8 @@
21.06.12 -- v1.25
- распознавание виртуального диска;
- изменения в прокрутке колёсиком мыши;
- обновление кода.
14.06.12 -- v1.23
- исправлен баг, когда окно было схлопнуто в заголовок и свёрнуто;
- при нажатие на кнопку закрытия окна ползунок прыгал вверх.

View File

@ -1,5 +1,6 @@
@..\C--\c-- Eolite.c--
del Eolite
@..\C--\c-- Eolite.c--
rename Eolite.com Eolite
rem @..\C--\kpack Eolite
rem ..\C--\kpack Eolite
del warning.txt
pause

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,147 +1,180 @@
unsigned char devices[2184] = {
unsigned char devices[2730] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x52, 0x51, 0xFF, 0x5A, 0x65, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x52, 0x59, 0xFF, 0xAD, 0xB2, 0xF7, 0xD6,
0xD3, 0xFF, 0x5A, 0x69, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x42, 0x6D, 0xF7, 0xA5, 0xA6, 0xFF, 0xCE, 0xCB, 0xFF, 0xC6, 0xC3, 0xFF, 0xAD, 0xBA, 0xFF, 0x5A,
0x42, 0x6D, 0xF7, 0xA5, 0xA6, 0xFF, 0xDA, 0xD8, 0xFF, 0xD4, 0xD2, 0xFF, 0xAD, 0xBA, 0xFF, 0x5A,
0x71, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x10, 0x86, 0xCE, 0x7B, 0xB2, 0xEF, 0xAD, 0xC3, 0xF7,
0xAD, 0xBA, 0xFF, 0xAD, 0xBA, 0xFF, 0x9C, 0xB6, 0xFF, 0x73, 0x9E, 0xFF, 0x39, 0x8E, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x10, 0x86, 0xCE, 0x7B, 0xB2, 0xEF, 0xC2, 0xD2, 0xF9,
0xAD, 0xBA, 0xFF, 0xAD, 0xBA, 0xFF, 0xB5, 0xC8, 0xFF, 0x73, 0x9E, 0xFF, 0x39, 0x8E, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x21, 0xAA,
0x63, 0x5A, 0xCF, 0xBD, 0x9C, 0xD7, 0xEF, 0x94, 0xD3, 0xE7, 0x9C, 0xB2, 0xF6, 0x94, 0xB2, 0xF6,
0x8C, 0xAA, 0xFE, 0x7A, 0xAA, 0xFE, 0x62, 0xAE, 0xFE, 0x20, 0x92, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x38, 0xCA, 0x42, 0x5A, 0xDA, 0x62, 0x72, 0xE2, 0x9C, 0x7A, 0xD2,
0x63, 0x5A, 0xCF, 0xBD, 0xB5, 0xE1, 0xF3, 0x94, 0xD3, 0xE7, 0x9C, 0xB2, 0xF6, 0x94, 0xB2, 0xF6,
0x8C, 0xAA, 0xFE, 0x9C, 0xC0, 0xFE, 0x62, 0xAE, 0xFE, 0x20, 0x92, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x38, 0xCA, 0x42, 0x5A, 0xDA, 0x62, 0x96, 0xE9, 0xB5, 0x7A, 0xD2,
0xC6, 0x7A, 0xCE, 0xCE, 0x7A, 0xB2, 0xE6, 0x7A, 0xAE, 0xE6, 0x72, 0xAE, 0xEE, 0x5A, 0xB6, 0xFE,
0x5A, 0xB6, 0xFE, 0x52, 0xB6, 0xFE, 0x20, 0x9A, 0xF6, 0xFF, 0xFF, 0xFF, 0x42, 0xC2, 0x4A, 0x4A,
0xDA, 0x62, 0x52, 0xE6, 0x72, 0x62, 0xDE, 0x7A, 0x6A, 0xDA, 0x7A, 0x6A, 0xC6, 0x84, 0x6A, 0xBE,
0x8C, 0x62, 0xAE, 0xCE, 0x5A, 0xAE, 0xD6, 0x4A, 0xB2, 0xEE, 0x30, 0xAE, 0xE6, 0x18, 0xAE, 0xF6,
0x08, 0xA6, 0xE6, 0x00, 0x82, 0xBC, 0xFF, 0xFF, 0xFF, 0x4A, 0xC6, 0x4A, 0x5A, 0xDE, 0x62, 0x7A,
0x5A, 0xB6, 0xFE, 0x52, 0xB6, 0xFE, 0x20, 0x9A, 0xF6, 0xFF, 0xFF, 0xFF, 0x58, 0xC9, 0x5F, 0x42,
0xC2, 0x57, 0x52, 0xE6, 0x72, 0x62, 0xDE, 0x7A, 0x6A, 0xDA, 0x7A, 0x6A, 0xC6, 0x84, 0x6A, 0xBE,
0x8C, 0x62, 0xAE, 0xCE, 0x5A, 0xAE, 0xD6, 0x4A, 0xB2, 0xEE, 0x30, 0xAE, 0xE6, 0x26, 0xAF, 0xF6,
0x37, 0xA7, 0xDB, 0x59, 0xAC, 0xD1, 0xE4, 0xE6, 0xEB, 0x43, 0xB5, 0x43, 0x50, 0xC6, 0x57, 0x7A,
0xDE, 0x5A, 0x8C, 0xE2, 0x5A, 0x9C, 0xCA, 0x52, 0xA4, 0xC6, 0x5A, 0x72, 0xC2, 0x7A, 0x62, 0xB6,
0x9C, 0x4A, 0xAA, 0xCE, 0x30, 0xAE, 0xDE, 0x18, 0xAA, 0xDE, 0x00, 0x7C, 0xB4, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x52, 0xC2, 0x42, 0x8C, 0xDA, 0x4A, 0xBC, 0xDE, 0x38, 0xCE,
0xCE, 0x30, 0xD6, 0xBE, 0x30, 0xCE, 0xC6, 0x38, 0xA4, 0xC6, 0x52, 0x62, 0xBE, 0x84, 0x42, 0xA6,
0xA4, 0x18, 0x7C, 0xAC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xA4, 0xBE, 0x20, 0xC6, 0xCE, 0x28, 0xE6, 0xC2, 0x18, 0xDE, 0xA6, 0x18, 0xD6,
0xB6, 0x20, 0xD6, 0xBA, 0x28, 0x94, 0xBA, 0x42, 0x28, 0x92, 0x5A, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x9C, 0x4A, 0xAA, 0xCE, 0x3C, 0xB2, 0xDF, 0x36, 0xA5, 0xDA, 0x43, 0x9D, 0xC6, 0xED, 0xEE, 0xF1,
0xFF, 0xFF, 0xFF, 0xE4, 0xE1, 0xD9, 0x4B, 0xB2, 0x3C, 0x7D, 0xC2, 0x42, 0xBC, 0xDE, 0x38, 0xCE,
0xCE, 0x30, 0xD6, 0xBE, 0x30, 0xCE, 0xC6, 0x38, 0xA4, 0xC6, 0x52, 0x62, 0xBE, 0x84, 0x4D, 0xA3,
0xBB, 0x53, 0x9D, 0xC0, 0xE7, 0xE4, 0xDD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xE1, 0xDE, 0xD4, 0x96, 0xAE, 0x1D, 0xB1, 0xB8, 0x23, 0xE6, 0xC2, 0x18, 0xDE, 0xA6, 0x18, 0xD6,
0xB6, 0x20, 0xD6, 0xBA, 0x28, 0x8E, 0xAD, 0x4B, 0x41, 0x9E, 0x6D, 0xE4, 0xE1, 0xD9, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xDE, 0xD4,
0xB5, 0x8D, 0x0E, 0xDB, 0x98, 0x07, 0xDB, 0x98, 0x07, 0xDB, 0x90, 0x07, 0xC4, 0x92, 0x21, 0x99,
0x97, 0x2C, 0xE4, 0xE1, 0xD9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xDE, 0xD4, 0xC4, 0x7A, 0x00,
0xE3, 0x90, 0x00, 0xD7, 0x8F, 0x15, 0xB5, 0x84, 0x1E, 0xE4, 0xE1, 0xD9, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xC6, 0x9A, 0x10, 0xF6, 0xAA, 0x08, 0xF6, 0xAA, 0x08, 0xF6, 0xA2, 0x08, 0xD6, 0x9A, 0x10, 0x8C,
0x8A, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x86, 0x00,
0xFE, 0xA2, 0x00, 0xEE, 0x96, 0x00, 0xAC, 0x74, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x86, 0x00, 0xBC, 0x6C, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xE1, 0xDE,
0xD4, 0xA5, 0x8F, 0x7D, 0x90, 0x77, 0x63, 0x8F, 0x76, 0x62, 0x8F, 0x76, 0x62, 0xA5, 0x8F, 0x7D,
0xE1, 0xDE, 0xD4, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF,
0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xBE, 0xB8, 0xA2, 0x91, 0x74, 0x62, 0xD3, 0xC8, 0xBE, 0xFA, 0xF7,
0xF8, 0xFF, 0xFF, 0xFE, 0xFA, 0xF7, 0xF8, 0xD3, 0xC8, 0xBE, 0x91, 0x74, 0x62, 0xBE, 0xB8, 0xA2,
0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xBE, 0xB8, 0xA2, 0x97,
0x81, 0x67, 0xF4, 0xF3, 0xEF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF,
0xFE, 0xFF, 0xFF, 0xFE, 0xD4, 0xE8, 0xD0, 0x97, 0x81, 0x67, 0xBE, 0xB8, 0xA2, 0xFF, 0xFF, 0xFE,
0xFF, 0xFF, 0xFE, 0xE1, 0xDE, 0xD4, 0x93, 0x76, 0x64, 0xF4, 0xF3, 0xEF, 0xFF, 0xFF, 0xFE, 0xFF,
0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xD8, 0xED, 0xD9, 0x97, 0xD1,
0x9A, 0xDC, 0xDB, 0xF0, 0x91, 0x74, 0x62, 0xE1, 0xDE, 0xD4, 0xFF, 0xFF, 0xFE, 0xA5, 0x8F, 0x7D,
0xD3, 0xC8, 0xBE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xCE,
0xD1, 0xDC, 0xFB, 0xFB, 0xFC, 0x85, 0xB5, 0xA2, 0xA9, 0xB5, 0xD3, 0xAF, 0xAD, 0xF0, 0xCF, 0xBC,
0xB2, 0xA5, 0x8F, 0x7D, 0xFF, 0xFF, 0xFE, 0x90, 0x77, 0x63, 0xFA, 0xF7, 0xF8, 0xFF, 0xFF, 0xFE,
0xFB, 0xF8, 0xF7, 0xF6, 0xEB, 0xEA, 0xBB, 0x9E, 0xA5, 0x8F, 0x7A, 0x62, 0xC2, 0xBD, 0xA9, 0x9E,
0x9E, 0xD1, 0xBC, 0xAC, 0xD2, 0xD4, 0xB9, 0xC7, 0xE4, 0xC4, 0xC3, 0x89, 0x72, 0x5E, 0xFF, 0xFF,
0xFE, 0x8F, 0x76, 0x62, 0xF6, 0xEB, 0xEA, 0xF1, 0xDF, 0xDD, 0xEC, 0xD4, 0xD2, 0xBE, 0xA2, 0xB3,
0x8F, 0x6E, 0x62, 0xE7, 0xE5, 0xDC, 0x9A, 0x79, 0x6C, 0xD9, 0xBB, 0xC6, 0xE1, 0xCA, 0xCA, 0xE7,
0xD9, 0xD7, 0xF6, 0xEB, 0xEA, 0x93, 0x7E, 0x65, 0xFF, 0xFF, 0xFE, 0x8F, 0x76, 0x62, 0xE4, 0xC4,
0xC3, 0xDD, 0xC5, 0xD2, 0xCD, 0xBC, 0xDD, 0xAD, 0xAD, 0xDC, 0xAF, 0xB4, 0xC6, 0x90, 0x7B, 0x62,
0xE6, 0xE4, 0xDB, 0xF1, 0xE7, 0xE7, 0xF1, 0xED, 0xF0, 0xF9, 0xFA, 0xFB, 0xFA, 0xF7, 0xF8, 0x8D,
0x83, 0x61, 0xFF, 0xFF, 0xFE, 0xA5, 0x8F, 0x7D, 0xCF, 0xBC, 0xB2, 0xBA, 0xB6, 0xF7, 0xB8, 0xC6,
0xE7, 0x8B, 0xBB, 0xA7, 0xE1, 0xE3, 0xE9, 0xFC, 0xFC, 0xFD, 0xF4, 0xF4, 0xF7, 0xF7, 0xF4, 0xF7,
0xF7, 0xF8, 0xFA, 0xF4, 0xF4, 0xF7, 0xD3, 0xC8, 0xBE, 0xA5, 0x8F, 0x7D, 0xFF, 0xFF, 0xFE, 0xE1,
0xDE, 0xD4, 0x93, 0x76, 0x64, 0xDC, 0xDB, 0xF0, 0x8A, 0xC5, 0x91, 0xC4, 0xDA, 0xCB, 0xE5, 0xED,
0xEB, 0xE9, 0xEA, 0xEF, 0xF7, 0xF4, 0xF7, 0xF8, 0xF9, 0xFA, 0xE1, 0xE3, 0xE9, 0xF4, 0xF3, 0xEF,
0x8F, 0x68, 0x62, 0xE1, 0xDE, 0xD4, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xBE, 0xB8, 0xA2, 0x97,
0x81, 0x67, 0xD4, 0xE8, 0xD0, 0xEE, 0xEF, 0xF3, 0xED, 0xEE, 0xF2, 0xED, 0xEE, 0xF3, 0xF9, 0xFA,
0xFB, 0xE7, 0xE8, 0xEE, 0xF4, 0xF3, 0xEF, 0x97, 0x75, 0x67, 0xBE, 0xB8, 0xA2, 0xFF, 0xFF, 0xFE,
0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xBE, 0xB8, 0xA2, 0x91, 0x74, 0x62, 0xD3,
0xC8, 0xBE, 0xFA, 0xF7, 0xF8, 0xFF, 0xFF, 0xFE, 0xFA, 0xF7, 0xF8, 0xD3, 0xC8, 0xBE, 0x91, 0x74,
0x62, 0xD2, 0xCE, 0xBF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE,
0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xE1, 0xDE, 0xD4, 0xA5, 0x8F, 0x7D, 0x8F, 0x76, 0x62, 0x8E,
0x75, 0x62, 0x90, 0x77, 0x63, 0xA5, 0x8F, 0x7D, 0xE1, 0xDE, 0xD4, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF,
0xFE, 0xFF, 0xFF, 0xFE, 0xCE, 0xC1, 0xAF, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66,
0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87,
0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xCE, 0xC1, 0xAF, 0x87, 0x6F,
0x66, 0xF0, 0xCA, 0xA4, 0xF0, 0xCA, 0xA4, 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, 0xF0, 0xCA, 0xA4,
0x87, 0x6F, 0x66, 0xE2, 0xE4, 0xEA, 0xA8, 0x6C, 0x3D, 0xE2, 0xE4, 0xEA, 0x87, 0x6F, 0x66, 0xF0,
0xCA, 0xA4, 0xF0, 0xCA, 0xA4, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, 0xD1, 0xA3,
0x7E, 0x87, 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0xD4, 0xD4, 0xD4,
0xA8, 0x6C, 0x3D, 0xD4, 0xD4, 0xD4, 0x87, 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x87,
0x6F, 0x66, 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F,
0x66, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4,
0x87, 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xF0,
0xCA, 0xA4, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F,
0x66, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E,
0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, 0xD1, 0xA3, 0x7E, 0xD1,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xDE, 0xD4, 0xC4, 0x7A, 0x00, 0xC3, 0x7D, 0x1E,
0xE4, 0xE1, 0xD9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xDB,
0xCA, 0xAA, 0x88, 0x6D, 0x93, 0x70, 0x55, 0x92, 0x6F, 0x54, 0x92, 0x6F, 0x54, 0xAA, 0x88, 0x6D,
0xE0, 0xDB, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xB7, 0x95, 0x94, 0x6C, 0x54, 0xD3, 0xC2, 0xB3, 0xF7, 0xEF,
0xF2, 0xFF, 0xFF, 0xF3, 0xF7, 0xEF, 0xF2, 0xD3, 0xC2, 0xB3, 0x94, 0x6C, 0x54, 0xC0, 0xB7, 0x95,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xB7, 0x95, 0x9A,
0x7C, 0x59, 0xF1, 0xEF, 0xE7, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF,
0xF3, 0xFF, 0xFF, 0xF3, 0xCB, 0xE7, 0xC5, 0x9A, 0x7C, 0x59, 0xC0, 0xB7, 0x95, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xE0, 0xDB, 0xCA, 0x96, 0x6E, 0x56, 0xF1, 0xEF, 0xE7, 0xFF, 0xFF, 0xF3, 0xFF,
0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xCE, 0xEC, 0xCF, 0x89, 0xD4,
0x8D, 0xD2, 0xD1, 0xEF, 0x94, 0x6C, 0x54, 0xE0, 0xDB, 0xCA, 0xFF, 0xFF, 0xFF, 0xAA, 0x88, 0x6D,
0xD3, 0xC2, 0xB3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0xC4,
0xC9, 0xDB, 0xF4, 0xF4, 0xF8, 0x76, 0xB9, 0x9E, 0x9C, 0xAC, 0xD5, 0xA2, 0xA0, 0xF2, 0xD0, 0xB4,
0xA6, 0xAA, 0x88, 0x6D, 0xFF, 0xFF, 0xFF, 0x93, 0x70, 0x55, 0xF7, 0xEF, 0xF2, 0xFF, 0xFF, 0xF3,
0xF8, 0xF1, 0xEF, 0xF4, 0xE2, 0xE1, 0xBD, 0x90, 0x9B, 0x92, 0x75, 0x54, 0xC4, 0xBC, 0x9C, 0x90,
0x90, 0xD3, 0xB5, 0x9F, 0xD3, 0xD5, 0xAD, 0xC2, 0xE4, 0xB9, 0xB8, 0x8B, 0x6C, 0x51, 0xFF, 0xFF,
0xFF, 0x92, 0x6F, 0x54, 0xF4, 0xE2, 0xE1, 0xF0, 0xD6, 0xD3, 0xEB, 0xCA, 0xC7, 0xC0, 0x95, 0xAF,
0x92, 0x65, 0x54, 0xE5, 0xE2, 0xD3, 0x9F, 0x6F, 0x5C, 0xD9, 0xAF, 0xBF, 0xE1, 0xBF, 0xBF, 0xE6,
0xD0, 0xCD, 0xF4, 0xE2, 0xE1, 0x96, 0x79, 0x57, 0xFF, 0xFF, 0xFF, 0x92, 0x6F, 0x54, 0xE4, 0xB9,
0xB8, 0xDD, 0xBA, 0xCD, 0xC8, 0xB0, 0xDE, 0xA0, 0xA0, 0xDE, 0xA3, 0xAB, 0xC7, 0x93, 0x76, 0x54,
0xE4, 0xE1, 0xD2, 0xEF, 0xDE, 0xDE, 0xEE, 0xE5, 0xEC, 0xF2, 0xF4, 0xF7, 0xF7, 0xEF, 0xF2, 0x90,
0x82, 0x53, 0xFF, 0xFF, 0xFF, 0xAA, 0x88, 0x6D, 0xD0, 0xB4, 0xA6, 0xAE, 0xA9, 0xF9, 0xAC, 0xBE,
0xE8, 0x7C, 0xBE, 0xA3, 0xD8, 0xDC, 0xE7, 0xF5, 0xF5, 0xF9, 0xEC, 0xEC, 0xF3, 0xF3, 0xEC, 0xF3,
0xEF, 0xF2, 0xF7, 0xEC, 0xEC, 0xF3, 0xD3, 0xC2, 0xB3, 0xAA, 0x88, 0x6D, 0xFF, 0xFF, 0xFF, 0xE0,
0xDB, 0xCA, 0x96, 0x6E, 0x56, 0xD2, 0xD1, 0xEF, 0x7B, 0xC9, 0x84, 0xB9, 0xDA, 0xC3, 0xDC, 0xEA,
0xE7, 0xE1, 0xE3, 0xEC, 0xF3, 0xEC, 0xF3, 0xF1, 0xF3, 0xF6, 0xD8, 0xDC, 0xE7, 0xF1, 0xEF, 0xE7,
0x92, 0x5C, 0x54, 0xE0, 0xDB, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xB7, 0x95, 0x9A,
0x7C, 0x59, 0xCB, 0xE7, 0xC5, 0xE6, 0xE8, 0xF0, 0xE5, 0xE7, 0xEF, 0xE5, 0xE7, 0xF0, 0xF2, 0xF4,
0xF7, 0xDE, 0xE0, 0xEB, 0xF1, 0xEF, 0xE7, 0x9A, 0x6C, 0x59, 0xC0, 0xB7, 0x95, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xB7, 0x95, 0x94, 0x6C, 0x54, 0xD3,
0xC2, 0xB3, 0xF7, 0xEF, 0xF2, 0xFF, 0xFF, 0xF3, 0xF7, 0xEF, 0xF2, 0xD3, 0xC2, 0xB3, 0x94, 0x6C,
0x54, 0xD2, 0xCC, 0xB4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xDB, 0xCA, 0xAA, 0x88, 0x6D, 0x92, 0x6F, 0x54, 0x91,
0x6E, 0x54, 0x93, 0x70, 0x55, 0xAA, 0x88, 0x6D, 0xE0, 0xDB, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44,
0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77,
0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A,
0x44, 0xD1, 0xA3, 0x7E, 0xF0, 0xCA, 0xA4, 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, 0xF0, 0xCA, 0xA4,
0x77, 0x5A, 0x44, 0xE2, 0xE4, 0xEA, 0xA8, 0x6C, 0x3D, 0xE2, 0xE4, 0xEA, 0x77, 0x5A, 0x44, 0xF0,
0xCA, 0xA4, 0xF0, 0xCA, 0xA4, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, 0xD1, 0xA3,
0x7E, 0x77, 0x5A, 0x44, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0xD4, 0xD4, 0xD4,
0xA8, 0x6C, 0x3D, 0xD4, 0xD4, 0xD4, 0x77, 0x5A, 0x44, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x77,
0x5A, 0x44, 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0xD1, 0xA3,
0x7E, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4,
0x77, 0x5A, 0x44, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xF0,
0xCA, 0xA4, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A,
0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xD1, 0xA3, 0x7E,
0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, 0xD1, 0xA3, 0x7E, 0xD1,
0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3,
0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66,
0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87,
0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44,
0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87,
0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F,
0x66, 0xD1, 0xA3, 0x7E, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4,
0x87, 0x6F, 0x66, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC,
0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0x87, 0x6F, 0x66, 0xD1, 0xA3,
0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, 0x87, 0x6F, 0x66, 0x7D, 0x5E, 0xE7,
0x66, 0x87, 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4,
0x77, 0x5A, 0x44, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1,
0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0x77, 0x5A, 0x44, 0xD1, 0xA3,
0x7E, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, 0x77, 0x5A, 0x44, 0x7D, 0x5E, 0xE7,
0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D,
0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x87, 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F,
0x66, 0xF0, 0xCA, 0xA4, 0x87, 0x6F, 0x66, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED,
0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0xEC, 0xED, 0xED, 0x87,
0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, 0x87, 0x6F,
0x66, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7,
0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x87, 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0x87,
0x6F, 0x66, 0x87, 0x6F, 0x66, 0xF0, 0xCA, 0xA4, 0x87, 0x6F, 0x66, 0xDB, 0xBA, 0x99, 0xDB, 0xBA,
0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x77, 0x5A, 0x44, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0x77, 0x5A,
0x44, 0xF0, 0xCA, 0xA4, 0x77, 0x5A, 0x44, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6,
0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0xF1, 0xF3, 0xF6, 0x77,
0x5A, 0x44, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, 0x77, 0x5A,
0x44, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7,
0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x7D, 0x5E, 0xE7, 0x77, 0x5A, 0x44, 0xD1, 0xA3, 0x7E, 0x77,
0x5A, 0x44, 0x77, 0x5A, 0x44, 0xF0, 0xCA, 0xA4, 0x77, 0x5A, 0x44, 0xDB, 0xBA, 0x99, 0xDB, 0xBA,
0x99, 0xDB, 0xBA, 0x99, 0xDB, 0xBA, 0x99, 0xDB, 0xBA, 0x99, 0xDB, 0xBA, 0x99, 0xDB, 0xBA, 0x99,
0xDB, 0xBA, 0x99, 0x87, 0x6F, 0x66, 0xD1, 0xA3, 0x7E, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87,
0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F,
0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66,
0x87, 0x6F, 0x66, 0x87, 0x6F, 0x66, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xDB, 0xBA, 0x99, 0x77, 0x5A, 0x44, 0xD1, 0xA3, 0x7E, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77,
0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A,
0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44,
0x77, 0x5A, 0x44, 0x77, 0x5A, 0x44, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E,
0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72,
0x4A, 0x8E, 0x72, 0x4A, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8E, 0x72, 0x4A,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83,
0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A,
0x48, 0x83, 0x6A, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0x6A, 0x48,
0xEA, 0xE4, 0xE6, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2,
0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xEA, 0xE4, 0xE6, 0x8E, 0x72,
0x4A, 0xFF, 0xFF, 0xFF, 0x8E, 0x72, 0x4A, 0xEC, 0xE8, 0xEA, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4,
0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xEA, 0xE4, 0xE6, 0x83, 0x6A,
0x48, 0xFF, 0xFF, 0xFF, 0x83, 0x6A, 0x48, 0xEC, 0xE8, 0xEA, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4,
0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2,
0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xEC, 0xE8, 0xEA, 0x8E, 0x72, 0x4A, 0x8E, 0x72,
0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A,
0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E,
0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xF2, 0xEE, 0xF4, 0xEC, 0xE8, 0xEA, 0x83, 0x6A, 0x48, 0x83, 0x6A,
0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48,
0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83,
0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8E,
0x72, 0x4A, 0x8E, 0x72, 0x4A, 0xFF, 0xFF, 0xFF, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x83,
0x6A, 0x48, 0x83, 0x6A, 0x48, 0xFF, 0xFF, 0xFF, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA,
0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE,
0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEC, 0xE6, 0xE8, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0xFF,
0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEC, 0xE6, 0xE8, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0xFF,
0xFF, 0xFF, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA,
0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0x26, 0xA8, 0x6E, 0x26, 0xAA, 0x6E,
0xEC, 0xE6, 0xE8, 0x8E, 0x72, 0x4A, 0x8E, 0x72, 0x4A, 0xFF, 0xFF, 0xFF, 0xEE, 0xEA, 0xEE, 0xEE,
0xEC, 0xE6, 0xE8, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0xFF, 0xFF, 0xFF, 0xEE, 0xEA, 0xEE, 0xEE,
0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA, 0xEE, 0xEE, 0xEA,
0xEE, 0xEE, 0xEA, 0xEE, 0x26, 0xAA, 0x6E, 0x26, 0xAA, 0x70, 0xEC, 0xE6, 0xE8, 0x8E, 0x72, 0x4A,
0xEE, 0xEE, 0xEA, 0xEE, 0x26, 0xAA, 0x6E, 0x26, 0xAA, 0x70, 0xEC, 0xE6, 0xE8, 0x83, 0x6A, 0x48,
0x96, 0x7C, 0x56, 0xEC, 0xE8, 0xEA, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0xEC,
0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6,
0xE8, 0xEC, 0xE6, 0xE8, 0xEC, 0xE6, 0xE8, 0x96, 0x7C, 0x56, 0xCA, 0xBC, 0xAA, 0x96, 0x7C, 0x56,
0x92, 0x76, 0x50, 0x92, 0x76, 0x50, 0x92, 0x76, 0x50, 0x92, 0x76, 0x50, 0x92, 0x76, 0x50, 0x92,
0x76, 0x50, 0x92, 0x76, 0x50, 0x92, 0x76, 0x50, 0x92, 0x76, 0x50, 0x92, 0x76, 0x50, 0x96, 0x7C,
0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83,
0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x83, 0x6A, 0x48, 0x96, 0x7C,
0x56, 0xCA, 0xBC, 0xAA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6C, 0x67, 0x67, 0x57, 0x50, 0x50, 0x57,
0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50,
0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x6C, 0x67, 0x67,
0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50,
0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5,
0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2,
0xE2, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2,
0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5,
0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0xE5, 0xE2, 0xE2, 0x57, 0x50, 0x50, 0xFF, 0xFF,
0xFF, 0x57, 0x50, 0x50, 0xAB, 0xA2, 0xA3, 0xAB, 0xA2, 0xA3, 0xAB, 0xA2, 0xA3, 0xAB, 0xA2, 0xA3,
0xAB, 0xA2, 0xA3, 0xAB, 0xA2, 0xA3, 0xAB, 0xA2, 0xA3, 0xAB, 0xA2, 0xA3, 0xAB, 0xA2, 0xA3, 0xAB,
0xA2, 0xA3, 0xAB, 0xA2, 0xA3, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0x57, 0x50,
0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50,
0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57, 0x50, 0x50, 0x57,
0x50, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50,
0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF,
0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50,
0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF,
0x57, 0x50, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
};
unsigned char factions[2112] = {
0xA1, 0x85, 0x81, 0xA1, 0x85, 0x81, 0xA1, 0x85, 0x81, 0xA1, 0x85, 0x81, 0xA1, 0x85, 0x81, 0xA1,
0x85, 0x81, 0xA1, 0x85, 0x81, 0xA1, 0x85, 0x81, 0x00, 0x00, 0x00, 0x8E, 0x8E, 0x8E, 0x00, 0x00,

View File

@ -37,7 +37,7 @@ void about_dialog()
DefineAndDrawWindow(600,150,181,256,0x34,0x10EFEBEF,0,0,"About Eolite");
DrawBar(0,0,172,50,0x8494C4); //ãîëóáîå ñçàäè
PutPaletteImage(#logo,85,85,43,7,#logo_pal);
WriteText(46,100,0x90,0xBF40BF,"Eolite v1.22",0);
WriteText(46,100,0x90,0xBF40BF,"Eolite v1.25",0);
$add ebx, 1<<16
$int 0x40
WriteText(55,120,0x80,0,"Developers:",0);
@ -47,6 +47,8 @@ void about_dialog()
WriteText(12,170,0x80,0,"Visit",0);
DrawLink(48,170,23, "kolibri-os.narod.ru"); //ññûëêa
DrawFlatButton(85,190,70,22,0,0xE4DFE1, "Close");
//PutPaletteImage(3*16*15+#ficons,16,15,40,195,#ficons_pal);
}
}

View File

@ -1,11 +1,16 @@
//03.04.2012
path_string disk_list[20];
int disc_num;
void GetSystemDiscs()
{
char dev_name[10], sys_discs[10];
int i1, j1, dev_num, dev_disc_num;
dword devbuf;
disc_num=0;
devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè
ReadDir(10, devbuf, "/");
dev_num = EBX;
@ -26,7 +31,6 @@ void GetSystemDiscs()
copystr(#sys_discs,#disk_list[disc_num].Item);
disc_num++;
}
}
}
@ -55,6 +59,7 @@ void DrawSystemDiscs()
IF (dev_name[1]=='r') { dev_icon=0; copystr("RAM disk ",#disc_name); }
IF (dev_name[1]=='c') { dev_icon=1; copystr("CD-ROM ",#disc_name); }
IF (dev_name[1]=='f') { dev_icon=2; copystr("Floppy disk ",#disc_name); }
IF (dev_name[1]=='t') { dev_icon=4; copystr("Virtual disk ",#disc_name); }
IF (dev_name[1]=='h') || (dev_name[1]=='b') copystr("Hard disk ",#disc_name);
copystr(#dev_name,#disc_name+strlen(#disc_name));
//

View File

@ -67,180 +67,180 @@ dword Put_icon(dword extension, yy)
void IconFairing(int filenum, y)
void IconFairing(int filenum, y, color)
{
switch(filenum)
{
case 0...1: //ôàéëèê
DrawBar(195,y,2,15,videlenie);
DrawBar(195,y,2,15,color);
RIGHT_PAINT:
DrawBar(209,y,2,15,videlenie);
DrawBar(205,y,4,1,videlenie);
DrawBar(206,y+1,3,1,videlenie);
DrawBar(207,y+2,2,1,videlenie);
PutPixel(208,y+3,videlenie);
DrawBar(209,y,2,15,color);
DrawBar(205,y,4,1,color);
DrawBar(206,y+1,3,1,color);
DrawBar(207,y+2,2,1,color);
PutPixel(208,y+3,color);
return;
case 2: //html
DrawBar(195,y,1,7,videlenie);
DrawBar(196,y,1,6,videlenie);
DrawBar(195,y+10,1,5,videlenie);
DrawBar(196,y+11,1,4,videlenie);
DrawBar(195,y,1,7,color);
DrawBar(196,y,1,6,color);
DrawBar(195,y+10,1,5,color);
DrawBar(196,y+11,1,4,color);
GOTO RIGHT_PAINT;
case 3: //íàñòðîéêè
DrawBar(195,y,2,7,videlenie);
DrawBar(195,y+7,1,2,videlenie);
DrawBar(195,y+12,1,3,videlenie);
PutPixel(196,y+14,videlenie);
DrawBar(195,y,2,7,color);
DrawBar(195,y+7,1,2,color);
DrawBar(195,y+12,1,3,color);
PutPixel(196,y+14,color);
GOTO RIGHT_PAINT;
case 9: //inc
DrawBar(195,y,1,12,videlenie);
DrawBar(196,y,1,11,videlenie);
DrawBar(197,y,1,10,videlenie);
DrawBar(198,y,1,5,videlenie);
DrawBar(199,y,1,4,videlenie);
DrawBar(200,y,1,3,videlenie);
DrawBar(201,y,1,2,videlenie);
DrawBar(202,y,1,3,videlenie);
DrawBar(203,y,1,2,videlenie);
PutPixel(204,y,videlenie);
PutPixel(205,y+4,videlenie);
PutPixel(206,y+3,videlenie);
PutPixel(207,y,videlenie);
PutPixel(207,y+2,videlenie);
DrawBar(208,y,1,3,videlenie);
DrawBar(209,y,2,4,videlenie);
DrawBar(210,y,1,15,videlenie);
PutPixel(198,y+14,videlenie);
DrawBar(199,y+13,1,2,videlenie);
DrawBar(200,y+12,10,3,videlenie);
PutPixel(205,y+11,videlenie);
DrawBar(206,y+10,1,2,videlenie);
DrawBar(207,y+9,1,3,videlenie);
PutPixel(207,y+7,videlenie);
DrawBar(208,y+6,2,7,videlenie);
PutPixel(209,y+5,videlenie);
DrawBar(195,y,1,12,color);
DrawBar(196,y,1,11,color);
DrawBar(197,y,1,10,color);
DrawBar(198,y,1,5,color);
DrawBar(199,y,1,4,color);
DrawBar(200,y,1,3,color);
DrawBar(201,y,1,2,color);
DrawBar(202,y,1,3,color);
DrawBar(203,y,1,2,color);
PutPixel(204,y,color);
PutPixel(205,y+4,color);
PutPixel(206,y+3,color);
PutPixel(207,y,color);
PutPixel(207,y+2,color);
DrawBar(208,y,1,3,color);
DrawBar(209,y,2,4,color);
DrawBar(210,y,1,15,color);
PutPixel(198,y+14,color);
DrawBar(199,y+13,1,2,color);
DrawBar(200,y+12,10,3,color);
PutPixel(205,y+11,color);
DrawBar(206,y+10,1,2,color);
DrawBar(207,y+9,1,3,color);
PutPixel(207,y+7,color);
DrawBar(208,y+6,2,7,color);
PutPixel(209,y+5,color);
return;
case 10: //font
DrawRegion_3D(195,y,15,14,videlenie,videlenie);
DrawBar(196,y+1,1,13,videlenie);
DrawBar(197,y+1,1,11,videlenie);
DrawBar(198,y+1,1,10,videlenie);
DrawBar(199,y+1,1,9,videlenie);
DrawBar(200,y+1,1,7,videlenie);
DrawBar(201,y+1,1,5,videlenie);
DrawBar(202,y+1,1,4,videlenie);
DrawBar(203,y+1,1,2,videlenie);
DrawBar(209,y+1,1,13,videlenie);
DrawBar(208,y+1,1,11,videlenie);
PutPixel(204,y+6,videlenie);
DrawBar(203,y+10,2,1,videlenie);
DrawBar(202,y+11,2,3,videlenie);
DrawRegion_3D(195,y,15,14,color,color);
DrawBar(196,y+1,1,13,color);
DrawBar(197,y+1,1,11,color);
DrawBar(198,y+1,1,10,color);
DrawBar(199,y+1,1,9,color);
DrawBar(200,y+1,1,7,color);
DrawBar(201,y+1,1,5,color);
DrawBar(202,y+1,1,4,color);
DrawBar(203,y+1,1,2,color);
DrawBar(209,y+1,1,13,color);
DrawBar(208,y+1,1,11,color);
PutPixel(204,y+6,color);
DrawBar(203,y+10,2,1,color);
DrawBar(202,y+11,2,3,color);
return;
case 11: //asm
DrawBar(195,y,1,15,videlenie);
DrawBar(195,y,1,15,color);
return;
case 12: //audio
DrawBar(195,y,16,1,videlenie);
DrawBar(195,y,1,15,videlenie);
DrawBar(196,y+1,4,8,videlenie);
DrawBar(196,y+9,1,2,videlenie);
PutPixel(197,y+9,videlenie);
PutPixel(196,y+14,videlenie);
DrawBar(210,y+1,1,14,videlenie);
DrawBar(202,y+4,6,4,videlenie);
DrawBar(202,y+8,4,1,videlenie);
DrawBar(202,y+9,3,1,videlenie);
DrawBar(202,y+10,2,3,videlenie);
DrawBar(201,y+13,4,1,videlenie);
DrawBar(200,y+14,14,1,videlenie);
DrawBar(209,y+12,1,2,videlenie);
PutPixel(208,y+13,videlenie);
DrawBar(195,y,16,1,color);
DrawBar(195,y,1,15,color);
DrawBar(196,y+1,4,8,color);
DrawBar(196,y+9,1,2,color);
PutPixel(197,y+9,color);
PutPixel(196,y+14,color);
DrawBar(210,y+1,1,14,color);
DrawBar(202,y+4,6,4,color);
DrawBar(202,y+8,4,1,color);
DrawBar(202,y+9,3,1,color);
DrawBar(202,y+10,2,3,color);
DrawBar(201,y+13,4,1,color);
DrawBar(200,y+14,14,1,color);
DrawBar(209,y+12,1,2,color);
PutPixel(208,y+13,color);
return;
case 13: //skin
PutPixel(210,y,videlenie);
PutPixel(210,y,color);
return;
case 14...15: //video, book
DrawBar(195,y,1,15,videlenie);
DrawBar(210,y,1,15,videlenie);
DrawBar(195,y,1,15,color);
DrawBar(210,y,1,15,color);
return;
case 16...17: //ïàïêà
DrawBar(195,y,1,15,videlenie);
DrawBar(203,y,8,2,videlenie);
DrawBar(195,y,1,15,color);
DrawBar(203,y,8,2,color);
IF (filenum==17) PutPixel(206,y+1,0x1A7B17); //çåë¸íàÿ òî÷êà ñòðåëêè
DrawBar(196,y+13,15,2,videlenie);
PutPixel(196,y,videlenie); //.òî÷êè
PutPixel(202,y,videlenie);
PutPixel(210,y+2,videlenie);
PutPixel(196,y+12,videlenie);
PutPixel(210,y+12,videlenie);
DrawBar(196,y+13,15,2,color);
PutPixel(196,y,color); //.òî÷êè
PutPixel(202,y,color);
PutPixel(210,y+2,color);
PutPixel(196,y+12,color);
PutPixel(210,y+12,color);
return;
case 18: //êàðòðèäæ
DrawBar(195,y,16,2,videlenie);
DrawBar(195,y+11,1,2,videlenie);
DrawBar(210,y+11,1,2,videlenie);
DrawBar(195,y+13,16,2,videlenie);
DrawBar(195,y,16,2,color);
DrawBar(195,y+11,1,2,color);
DrawBar(210,y+11,1,2,color);
DrawBar(195,y+13,16,2,color);
return;
case 19: //èçîáðàæåíèå
case 20: //èçîáðàæåíèå
DrawBar(195,y+14,16,1,videlenie);
DrawBar(195,y+14,16,1,color);
return;
case 21: //äèñêåòà
PutPixel(195,y,videlenie);
PutPixel(210,y,videlenie);
PutPixel(195,y,color);
PutPixel(210,y,color);
return;
case 22: //áèáëèîòåêà
DrawBar(195,y,16,1,videlenie); //ñâåðõó ñëåâà
DrawBar(195,y+1,3,1,videlenie);
DrawBar(195,y+2,2,1,videlenie);
PutPixel(195,y+3,videlenie);
PutPixel(210,y+11,videlenie); //ñïðàâà ñïðàâà
DrawBar(209,y+12,2,1,videlenie);
DrawBar(208,y+13,3,1,videlenie);
DrawBar(207,y+14,4,1,videlenie);
DrawBar(195,y,16,1,color); //ñâåðõó ñëåâà
DrawBar(195,y+1,3,1,color);
DrawBar(195,y+2,2,1,color);
PutPixel(195,y+3,color);
PutPixel(210,y+11,color); //ñïðàâà ñïðàâà
DrawBar(209,y+12,2,1,color);
DrawBar(208,y+13,3,1,color);
DrawBar(207,y+14,4,1,color);
return;
case 23: //àðõèâ
PutPixel(195,y+3,videlenie);
PutPixel(195,y+11,videlenie);
PutPixel(210,y+3,videlenie);
PutPixel(210,y+11,videlenie);
PutPixel(195,y+3,color);
PutPixel(195,y+11,color);
PutPixel(210,y+3,color);
PutPixel(210,y+11,color);
DrawBar(195,y,7,1,videlenie);
DrawBar(204,y,7,1,videlenie);
DrawBar(195,y+14,7,1,videlenie);
DrawBar(204,y+14,7,1,videlenie);
DrawBar(195,y,7,1,color);
DrawBar(204,y,7,1,color);
DrawBar(195,y+14,7,1,color);
DrawBar(204,y+14,7,1,color);
DrawBar(195,y+1,5,1,videlenie);
DrawBar(206,y+1,5,1,videlenie);
DrawBar(195,y+13,5,1,videlenie);
DrawBar(206,y+13,5,1,videlenie);
DrawBar(195,y+1,5,1,color);
DrawBar(206,y+1,5,1,color);
DrawBar(195,y+13,5,1,color);
DrawBar(206,y+13,5,1,color);
DrawBar(195,y+2,3,1,videlenie);
DrawBar(208,y+2,3,1,videlenie);
DrawBar(195,y+12,3,1,videlenie);
DrawBar(208,y+12,3,1,videlenie);
DrawBar(195,y+2,3,1,color);
DrawBar(208,y+2,3,1,color);
DrawBar(195,y+12,3,1,color);
DrawBar(208,y+12,3,1,color);
return;
case 24: //îáðàç
DrawBar(195,y,6,1,videlenie);
DrawBar(195,y+1,4,1,videlenie);
DrawBar(195,y+2,3,1,videlenie);
DrawBar(195,y+3,2,2,videlenie);
DrawBar(195,y,6,1,color);
DrawBar(195,y+1,4,1,color);
DrawBar(195,y+2,3,1,color);
DrawBar(195,y+3,2,2,color);
DrawBar(195,y+5,1,5,videlenie);
DrawBar(195,y+5,1,5,color);
DrawBar(195,y+10,2,2,videlenie);
DrawBar(195,y+12,3,1,videlenie);
DrawBar(195,y+13,4,1,videlenie);
DrawBar(195,y+14,6,1,videlenie);
DrawBar(195,y+10,2,2,color);
DrawBar(195,y+12,3,1,color);
DrawBar(195,y+13,4,1,color);
DrawBar(195,y+14,6,1,color);
DrawBar(195+11,y,5,1,videlenie);
DrawBar(195+13,y+1,3,1,videlenie);
DrawBar(195+14,y+2,2,1,videlenie);
DrawBar(195+15,y+3,1,2,videlenie);
DrawBar(195+11,y,5,1,color);
DrawBar(195+13,y+1,3,1,color);
DrawBar(195+14,y+2,2,1,color);
DrawBar(195+15,y+3,1,2,color);
DrawBar(195+15,y+10,1,2,videlenie);
DrawBar(195+14,y+12,2,1,videlenie);
DrawBar(195+13,y+13,3,1,videlenie);
DrawBar(195+11,y+14,5,1,videlenie);
DrawBar(195+15,y+10,1,2,color);
DrawBar(195+14,y+12,2,1,color);
DrawBar(195+13,y+13,3,1,color);
DrawBar(195+11,y+14,5,1,color);
return;
}

View File

@ -16,7 +16,7 @@ void GetIni(byte onload)
dword buff, fsize, tj;
//читаем файл
buff = malloc(1048576);
IF (onload==1) copystr(".ini", #program_path+strlen(#program_path)); //facepalm
IF (onload==1) copystr(".ini", #program_path+strlen(#program_path));
ReadFile(0, 1048576, buff, #program_path);
IF (EAX<>6) //если файла с настройками нет в папке с программой смотрим в папке по-умолчанию
ReadFile(0, 1048576, buff, "/sys/File managers/Eolite.ini");
@ -63,7 +63,7 @@ void GetIni(byte onload)
IF (errornum<0) //если ошибочка вышла при запуске
{
//WriteDebug(#option);
Write_Debug_Error(errornum);
Write_Error(errornum);
}
return;
}
@ -79,8 +79,7 @@ void GetIni(byte onload)
IF (file_path) errornum=RunProgram(#file_path,'');
IF (errornum<0) //если ошибочка вышла при запуске
{
//WriteDebug(#file_path);
Write_Debug_Error(errornum);
Write_Error(errornum);
}
}
@ -89,39 +88,44 @@ void GetIni(byte onload)
/// нужно чтобы просто возвращало текст ///
///////////////////////////////////////////
void Write_Debug_Error(int error_number)
void Write_Error(int error_number)
{
char unknown_error[8];
char error[256];
if (error_number<0) error_number=-1*error_number;
switch (error_number) //èçâåñíàÿ îøèáêà - ïèøåì êàêàÿ è óõîäèì
switch (error_number)
{
CASE 2: RunProgram(#NOTIFY_PATH, "Eolite: error 2 - Function is not supported for the given file system");
return;
CASE 3: RunProgram(#NOTIFY_PATH, "Eolite: error 3 - Unknown file system");
return;
CASE 5: RunProgram(#NOTIFY_PATH, "Eolite: error 5 - File or folder not found");
return;
CASE 6: RunProgram(#NOTIFY_PATH, "Eolite: error 6 - End of file, EOF");
return;
CASE 7: RunProgram(#NOTIFY_PATH, "Eolite: error 7 - Pointer lies outside of application memory");
return;
case 8: RunProgram(#NOTIFY_PATH, "Eolite: error 8 - FAT table is destroyed");
return;
case 9: RunProgram(#NOTIFY_PATH, "Eolite: error 9 - FAT table is destroyed");
return;
case 10:RunProgram(#NOTIFY_PATH, "Eolite: error 10 - Access denied");
RETURN;
case 11:RunProgram(#NOTIFY_PATH, "Eolite: error 11 - Device error");
RETURN;
case 30:RunProgram(#NOTIFY_PATH, "Eolite: error 30 - Not enough memory");
RETURN;
case 31:RunProgram(#NOTIFY_PATH, "Eolite: error 31 - File is not executable");
RETURN;
case 32:RunProgram(#NOTIFY_PATH, "Eolite: error 32 - Too many processes");
RETURN;
default:copystr(IntToStr(error_number), #unknown_error);
copystr(" - Unknown error number O_o", #unknown_error+strlen(#unknown_error));
RunProgram(#NOTIFY_PATH, #unknown_error);
case 2: copystr("Error #2 - Function isn't supported for this file system", #error);
break;
case 3: copystr("Error #3 - Unknown file system", #error);
break;
case 5: copystr("Error #5 - File or folder not found", #error);
break;
case 6: copystr("Error #6 - End of file, EOF", #error);
break;
case 7: copystr("Error #7 - Pointer lies outside of application memory", #error);
break;
case 8: copystr("Error #8 - FAT table is destroyed", #error);
break;
case 9: copystr("Error #9 - FAT table is destroyed", #error);
break;
case 10:copystr("Error #10 - Access denied", #error);
break;
case 11:copystr("Error #11 - Device error", #error);
break;
case 30:copystr("Error #30 - Not enough memory", #error);
break;
case 31:copystr("Error #31 - File is not executable", #error);
break;
case 32:copystr("Error #32 - Too many processes", #error);
break;
default:copystr(IntToStr(error_number), #error);
copystr(" - Unknown error number O_o", #error+strlen(#error));
}
if (curbtn>=0) Line_ReDraw(0xFF0000, curbtn);
Pause(5);
RunProgram(#NOTIFY_PATH, #error);
//DrawBar(192,onTop(0, BUTTON_HEIGHT+7),onLeft(27,192),BUTTON_HEIGHT,0xFF0000);
//WriteText(205,onTop(-5, BUTTON_HEIGHT+7),0x80,0xFFFFFF,#error,0);
}

View File

@ -33,7 +33,8 @@ char program_path[4096];
struct mouse{
struct mouse
{
unsigned int x,y,lkm,pkm,hor,vert;
void get();
};
@ -76,7 +77,9 @@ void mouse::get()
}
//---------------------------------------------------------------------------
struct proc_info{
struct proc_info
{
#define SelfInfo -1
dword use_cpu;
word pos_in_stack,num_slot,rezerv1;
char name[11];
@ -85,45 +88,44 @@ struct proc_info{
word status_slot,rezerv3;
dword work_left,work_top,work_width,work_height;
char status_window;
void GetInfo(dword ECX);
void GetInfo( ECX);
byte reserved[1024-71];
#define SelfInfo -1
};
void proc_info::GetInfo(dword EBX, ECX)
void proc_info::GetInfo( EBX, ECX)
{
EAX = 9;
$int 0x40
$mov eax,9;
$int 0x40
}
inline fastcall int GetSlot(dword ECX)
inline fastcall int GetSlot( ECX)
{
EAX = 18;
EBX = 21;
$mov eax,18;
$mov ebx,21;
$int 0x40
}
inline fastcall int ActiveProcess()
{
EAX = 18;
EBX = 7;
$mov eax,18;
$mov ebx,7;
$int 0x40
}
//-------------------------------------------------------------------------------
inline fastcall dword WaitEvent(){
EAX = 10; // wait here for event
$mov eax,10;
$int 0x40
}
inline fastcall void SetEventMask(dword EBX)
inline fastcall void SetEventMask( EBX)
{
EAX = 40;
$int 0x40
}
inline fastcall word GetKey(){ //Gluk fix
inline fastcall word GetKey(){ //+Gluk fix
$push edx
@getkey:
$mov eax,2
@ -152,7 +154,7 @@ inline fastcall void ExitProcess(){
}
inline fastcall void Pause(dword EBX){
$mov eax, 5 //<2F> ã§ , ¢ á®âëå ¤®«ïå ᥪ㭤ë
$mov eax, 5
$int 0x40
}
@ -176,14 +178,14 @@ dword mainAreaColour,byte headerType,dword headerColour,EDI)
$int 0x40
}
inline fastcall void CreateThread(dword ECX,EDX)
inline fastcall void CreateThread( ECX,EDX)
{
EAX = 51;
EBX = 1;
$int 0x40
}
inline fastcall void DrawTitle(dword ECX){
inline fastcall void DrawTitle( ECX){
EAX = 71;
EBX = 1;
$int 0x40;
@ -204,14 +206,15 @@ inline fastcall dword GetScreenHeight()
$and eax,0x0000FFFF
}
inline fastcall void MoveSize(dword EBX,ECX,EDX,ESI){
EAX = 67;
inline fastcall void MoveSize( EBX,ECX,EDX,ESI){
$mov eax,67;
$int 0x40
}
//------------------------------------------------------------------------------
inline fastcall dword strlen(EDI){
inline fastcall dword strlen( EDI)
{
asm {
xor ecx, ecx
xor eax, eax
@ -223,7 +226,7 @@ inline fastcall dword strlen(EDI){
}
inline fastcall copystr(dword ESI,EDI)
inline fastcall copystr( ESI,EDI)
{
$cld
l1:
@ -234,7 +237,7 @@ l1:
}
char buffer[11];
inline fastcall dword IntToStr(dword ESI)
inline fastcall dword IntToStr( ESI)
{
$mov edi, #buffer
$mov ecx, 10
@ -317,7 +320,7 @@ inline fastcall unsigned int find_symbol(ESI,BL)
}
inline fastcall ChangeCase(dword EDX)
inline fastcall ChangeCase( EDX)
{
AL=DSBYTE[EDX];
IF(AL>='a')&&(AL<='z')DSBYTE[EDX]=AL&0x5f;
@ -334,7 +337,8 @@ inline fastcall ChangeCase(dword EDX)
//------------------------------------------------------------------------------
inline fastcall void PutPixel(dword EBX,ECX,EDX){
inline fastcall void PutPixel( EBX,ECX,EDX)
{
EAX=1;
$int 0x40
}
@ -351,7 +355,7 @@ void DefineButton(dword x,y,w,h,EDX,ESI)
$int 0x40
}
inline fastcall void DeleteButton(dword EDX)
inline fastcall void DeleteButton( EDX)
{
EAX = 8;
EDX += BT_DEL;
@ -368,28 +372,26 @@ void WriteText(dword x,y,byte fontType, dword color, EDX, ESI)
void DrawBar(dword x,y,w,h,EDX)
{
#speed
EAX = 13;
EBX = x<<16+w;
ECX = y<<16+h;
$int 0x40
#codesize
}
void DrawRegion_3D(dword x,y,width,height,color1,color2)
{
DrawBar(x,y,width+1,1,color1); //¯®«®á  £®à ᢥàåã
DrawBar(x,y+1,1,height-1,color1); //¯®«®á  á«¥¢ 
DrawBar(x+width,y+1,1,height,color2); //¯®«®á  á¯à ¢ 
DrawBar(x,y+height,width,1,color2); //¯®«®á  £®à á­¨§ã
DrawBar(x,y,width+1,1,color1);
DrawBar(x,y+1,1,height-1,color1);
DrawBar(x+width,y+1,1,height,color2);
DrawBar(x,y+height,width,1,color2);
}
void DrawFlatButton(dword x,y,width,height,id,color,text)
{
DrawRegion_3D(x,y,width,height,0x94AECE,0x94AECE);
DrawRegion_3D(x+1,y+1,width-2,height-2,0xFFFFFF,0xC7C7C7);
DrawBar(x+2,y+2,width-3,height-3,color); //§ «¨¢ª 
IF (id<>0) DefineButton(x+1,y+1,width-2,height-2,id+BT_HIDE,0xEFEBEF); //ª­®¯ª 
DrawBar(x+2,y+2,width-3,height-3,color);
IF (id<>0) DefineButton(x+1,y+1,width-2,height-2,id+BT_HIDE,0xEFEBEF);
WriteText(-strlen(text)*6+width/2+x+1,height/2-3+y,0x80,0,text,0);
}
@ -412,7 +414,7 @@ void PutImage(dword EBX,w,h,x,y)
}
//------------------------------------------------------------------------------
inline fastcall void WriteDebug(dword EDX)
inline fastcall void debug( EDX)
{
$mov eax, 63
$mov ebx, 1
@ -430,7 +432,7 @@ done:
$int 0x40
}
inline fastcall void WriteFullDebug(dword ESI)
inline fastcall void WriteFullDebug( ESI)
{
WriteDebug("");
WriteDebug(ESI);