TempleOSCDV5.01.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:48:15 +02:00
1 parent f6eacf7744
commit 320c7ee98a
219 files changed
+5132 -4774

No files matched your search

Binary file not shown.
+3 -3
View File
@@ -204,7 +204,7 @@ public I64 DelTree(U8 *files_find_mask,U8 *fu_flags=NULL)
return res; return res;
} }
U0 TouchFile(U8 *filename,U8 *attr,CDate cdt=MIN_I64) U0 TouchFile(U8 *filename,U8 *attr,CDate cdt=I64_MIN)
{ {
CDrv *dv=Let2Drv(*filename); CDrv *dv=Let2Drv(*filename);
CDirEntry de; CDirEntry de;
@@ -219,7 +219,7 @@ U0 TouchFile(U8 *filename,U8 *attr,CDate cdt=MIN_I64)
if (!*cur_dir) if (!*cur_dir)
StrCpy(cur_dir,"/"); StrCpy(cur_dir,"/");
ScanFlags(&de.attr,Define("ST_FILE_ATTRS"),attr); ScanFlags(&de.attr,Define("ST_FILE_ATTRS"),attr);
if (cdt==MIN_I64) if (cdt==I64_MIN)
de.datetime=Now; de.datetime=Now;
else else
de.datetime=cdt; de.datetime=cdt;
@@ -230,7 +230,7 @@ U0 TouchFile(U8 *filename,U8 *attr,CDate cdt=MIN_I64)
Free(cur_dir); Free(cur_dir);
} }
public U0 Touch(U8 *files_find_mask="*",U8 *attr="+?", public U0 Touch(U8 *files_find_mask="*",U8 *attr="+?",
U8 *fu_flags=NULL,CDate cdt=MIN_I64) U8 *fu_flags=NULL,CDate cdt=I64_MIN)
{/*Touch file attributes and DateTime. {/*Touch file attributes and DateTime.
Default lists attributes. Default lists attributes.
attr: "+?" =show current attr: "+?" =show current
+1 -1
View File
@@ -353,7 +353,7 @@ public U0 DskView(U8 drv_let=0)
GrCircle(dc,h>>1,v>>1,radius); GrCircle(dc,h>>1,v>>1,radius);
j=1; j=1;
for (i=0;i<NUM_DRVS;i++) { for (i=0;i<DRVS_NUM;i++) {
dv=&blkdev.drvs[i]; dv=&blkdev.drvs[i];
if (bd==dv->bd && dv->fs_type) { if (bd==dv->bd && dv->fs_type) {
sect_start=-(dv->drv_offset*2*ã/(bd->max_blk+1)); sect_start=-(dv->drv_offset*2*ã/(bd->max_blk+1));
+38 -22
View File
@@ -207,15 +207,15 @@ U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_head,I64 mode)
break; break;
case FM_PICK_FILE: case FM_PICK_FILE:
DocPrint(doc,"$$PURPLE$$Pick file and press <ESC>\n\n"); DocPrint(doc,"$$PURPLE$$Pick file and press <ESC>\n\n");
doc->flags|=DOCF_MIN_SIZE; doc->flags|=DOCF_SIZE_MIN;
break; break;
case FM_PICK_DIR: case FM_PICK_DIR:
DocPrint(doc,"$$PURPLE$$Pick directory and press <ESC>\n\n"); DocPrint(doc,"$$PURPLE$$Pick directory and press <ESC>\n\n");
doc->flags|=DOCF_MIN_SIZE; doc->flags|=DOCF_SIZE_MIN;
break; break;
} }
DocPrint(doc,"$$LTBLUE$$"); DocPrint(doc,"$$LTBLUE$$");
for (i=0;i<NUM_DRVS;i++) { for (i=0;i<DRVS_NUM;i++) {
dv=&blkdev.drvs[i]; dv=&blkdev.drvs[i];
if (dv->bd->type==BDT_ATAPI) { if (dv->bd->type==BDT_ATAPI) {
if (dv->bd->flags&BDF_INITIALIZED) if (dv->bd->flags&BDF_INITIALIZED)
@@ -388,7 +388,7 @@ U0 FMFmtDrv(CDoc *doc)
Free(st); Free(st);
} }
U0 FMMakeISO(CDoc *doc) U0 FMMakeISO(CDoc *doc,I64 type)
{ {
CDocEntry *doc_ce=doc->cur_entry; CDocEntry *doc_ce=doc->cur_entry;
CDirEntry *tmpde; CDirEntry *tmpde;
@@ -402,12 +402,19 @@ U0 FMMakeISO(CDoc *doc)
tmpde=tmpde->parent; tmpde=tmpde->parent;
if (tmpde && *tmpde->full_name) { if (tmpde && *tmpde->full_name) {
Silent; Silent;
switch (type) {
case FSt_REDSEA:
RedSeaISO(,tmpde->full_name);
break;
case FSt_ISO9660:
if (tmpde->full_name[StrLen(tmpde->full_name)-1]=='/') if (tmpde->full_name[StrLen(tmpde->full_name)-1]=='/')
st=MStrPrint("%s*",tmpde->full_name); st=MStrPrint("%s*",tmpde->full_name);
else else
st=MStrPrint("%s/*",tmpde->full_name); st=MStrPrint("%s/*",tmpde->full_name);
ISO9660ISO(,st); ISO9660ISO(,st);
Free(st); Free(st);
break;
}
Silent(OFF); Silent(OFF);
} }
} }
@@ -486,11 +493,12 @@ U0 FMCopy(CDoc *doc)
#define FMR_PASTE 6 #define FMR_PASTE 6
#define FMR_CHG_DSK 7 #define FMR_CHG_DSK 7
#define FMR_FORMAT 8 #define FMR_FORMAT 8
#define FMR_MOUNT_ISO 9 #define FMR_MOUNT_REDSEA_ISO_C 9
#define FMR_UNMOUNT 10 #define FMR_UNMOUNT 10
#define FMR_MAKE_ISO 11 #define FMR_MAKE_REDSEA_ISO_C 11
#define FMR_BURN_ISO 12 #define FMR_MAKE_ISO9660 12
#define FMR_HELP 13 #define FMR_BURN_ISO 13
#define FMR_HELP 14
I64 PopUpFMRight(U8 *header=NULL,U8 *footer=NULL) I64 PopUpFMRight(U8 *header=NULL,U8 *footer=NULL)
{ {
@@ -498,20 +506,22 @@ I64 PopUpFMRight(U8 *header=NULL,U8 *footer=NULL)
CDoc *doc=DocNew; CDoc *doc=DocNew;
if (header) DocPrint(doc,"%s",header); if (header) DocPrint(doc,"%s",header);
DocPrint(doc,"$$CM+LX,1,1 $$$$BT,\"INCLUDE \",LE=FMR_INCLUDE$$" DocPrint(doc,"$$CM+LX,1,1 $$$$BT,\"INCLUDE \",LE=FMR_INCLUDE$$"
"$$CM+LX,27,0$$$$BT,\"ADAM INCLUDE \",LE=FMR_ADAM_INCLUDE$$" "$$CM+LX,29,0$$$$BT,\"ADAM INCLUDE \",LE=FMR_ADAM_INCLUDE$$"
"$$CM+LX,1,3 $$$$BT,\"DELETE \",LE=FMR_DELETE$$" "$$CM+LX,1,3 $$$$BT,\"DELETE \",LE=FMR_DELETE$$"
"$$CM+LX,27,0$$$$BT,\"RENAME \",LE=FMR_RENAME$$" "$$CM+LX,29,0$$$$BT,\"RENAME \",LE=FMR_RENAME$$"
"$$CM+LX,1,3 $$$$BT,\"MAKE DIRECTORY \",LE=FMR_MKDIR$$" "$$CM+LX,1,3 $$$$BT,\"MAKE DIRECTORY \",LE=FMR_MKDIR$$"
"$$CM+LX,27,0$$$$BT,\"PLAIN-TEXT EDIT \",LE=FMR_PLAIN$$" "$$CM+LX,29,0$$$$BT,\"PLAIN-TEXT EDIT \",LE=FMR_PLAIN$$"
"$$CM+LX,1,3 $$$$BT,\"PASTE CLIPBOARD FILES \",LE=FMR_PASTE$$" "$$CM+LX,1,3 $$$$BT,\"PASTE CLIPBOARD FILES \",LE=FMR_PASTE$$"
"$$CM+LX,27,0$$$$BT,\"CHANGE DISK(MOUNT IT) \",LE=FMR_CHG_DSK$$" "$$CM+LX,29,0$$$$BT,\"CHANGE DISK(MOUNT IT) \",LE=FMR_CHG_DSK$$"
"$$CM+LX,1,3 $$$$BT,\"FORMAT \",LE=FMR_FORMAT$$" "$$CM+LX,1,3 $$$$BT,\"FORMAT \",LE=FMR_FORMAT$$"
"$$CM+LX,1,3 $$$$BT,\"MOUNT ISO.C FILE \",LE=FMR_MOUNT_ISO$$" "$$CM+LX,1,3 $$$$BT,\"MOUNT ISO.C FILE \","
"$$CM+LX,27,0$$$$BT,\"UNMOUNT \",LE=FMR_UNMOUNT$$" "LE=FMR_MOUNT_REDSEA_ISO_C$$"
"$$CM+LX,1,3 $$$$BT,\"MAKE ISO (CD/DVD) FILE\",LE=FMR_MAKE_ISO$$" "$$CM+LX,29,0$$$$BT,\"UNMOUNT \",LE=FMR_UNMOUNT$$"
"$$CM+LX,27,0$$$$BT,\"BURN ISO (CD/DVD) FILE\",LE=FMR_BURN_ISO$$" "$$CM+LX,1,3 $$$$BT,\"MAKE ISO.C (CD/DVD) FILE\",LE=FMR_MAKE_REDSEA_ISO_C$$"
"$$CM+LX,29,0$$$$BT,\"MAKE ISO (CD/DVD) FILE \",LE=FMR_MAKE_ISO9660$$"
"$$CM+LX,1,3 $$$$BT,\"BURN ISO (CD/DVD) FILE \",LE=FMR_BURN_ISO$$"
"$$CM+LX,1,3 $$$$BT,\"HELP \",LE=FMR_HELP$$" "$$CM+LX,1,3 $$$$BT,\"HELP \",LE=FMR_HELP$$"
"$$CM+LX,27,0$$$$BT,\"CANCEL \",LE=DOCM_CANCEL$$\n"); "$$CM+LX,29,0$$$$BT,\"CANCEL \",LE=DOCM_CANCEL$$\n");
if (footer) DocPrint(doc,"%s",footer); if (footer) DocPrint(doc,"%s",footer);
i=PopUpMenu(doc); i=PopUpMenu(doc);
DocDel(doc); DocDel(doc);
@@ -543,18 +553,21 @@ U0 FMRightClick()
Msg(MSG_KEY_DOWN,0,SC_INS+SCF_SHIFT); Msg(MSG_KEY_DOWN,0,SC_INS+SCF_SHIFT);
break; break;
case FMR_CHG_DSK: case FMR_CHG_DSK:
Msg(MSG_KEY_DOWN,'m',0); Msg(MSG_KEY_DOWN,'c',0);
break; break;
case FMR_FORMAT: case FMR_FORMAT:
Msg(MSG_KEY_DOWN,'f',0); Msg(MSG_KEY_DOWN,'f',0);
break; break;
case FMR_MOUNT_ISO: case FMR_MOUNT_REDSEA_ISO_C:
Msg(MSG_KEY_DOWN,'i',0); Msg(MSG_KEY_DOWN,'i',0);
break; break;
case FMR_UNMOUNT: case FMR_UNMOUNT:
Msg(MSG_KEY_DOWN,'u',0); Msg(MSG_KEY_DOWN,'u',0);
break; break;
case FMR_MAKE_ISO: case FMR_MAKE_REDSEA_ISO_C:
Msg(MSG_KEY_DOWN,'m',0);
break;
case FMR_MAKE_ISO9660:
Msg(MSG_KEY_DOWN,'M',0); Msg(MSG_KEY_DOWN,'M',0);
break; break;
case FMR_BURN_ISO: case FMR_BURN_ISO:
@@ -702,7 +715,7 @@ public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL)
case CH_CTRLY: case CH_CTRLY:
FMDelete(doc); FMDelete(doc);
break; break;
case 'm': case 'c':
FMChgDsk(doc); FMChgDsk(doc);
break; break;
case 'i': case 'i':
@@ -712,7 +725,10 @@ public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL)
FMUnmount(doc); FMUnmount(doc);
break; break;
case 'M': case 'M':
FMMakeISO(doc); FMMakeISO(doc,FSt_ISO9660);
break;
case 'm':
FMMakeISO(doc,FSt_REDSEA);
break; break;
case 'B': case 'B':
FMBurnISO(doc); FMBurnISO(doc);
+1 -1
View File
@@ -33,7 +33,7 @@ U8 Mount2(U8 boot_drv_let,CDoc *_doc,Bool _caller_is_prtdsk)
make_free=TRUE; make_free=TRUE;
} }
unit=0; unit=0;
prt_num=MIN_I64; prt_num=I64_MIN;
switch (type) { switch (type) {
case BDT_RAM: case BDT_RAM:
"Addr of RAM disk ($$PURPLE$$<ENTER>$$FG$$ to MAlloc):"; "Addr of RAM disk ($$PURPLE$$<ENTER>$$FG$$ to MAlloc):";
+1 -1
View File
@@ -239,7 +239,7 @@ public U0 FunRep(U8 *st,U8 *rbp=NULL,I64 max_depth=2,CTask *task=NULL)
} else { } else {
tmpm=tmpf->member_lst_and_root; tmpm=tmpf->member_lst_and_root;
while (tmpm) { while (tmpm) {
if (0<=tmpm->reg<NUM_REGS) if (0<=tmpm->reg<REG_REGS_NUM)
"%08Z %s\n",tmpm->reg,"ST_U64_REGS",tmpm->str; "%08Z %s\n",tmpm->reg,"ST_U64_REGS",tmpm->str;
else else
"%08tX %s\n",tmpm->offset,tmpm->str; "%08tX %s\n",tmpm->offset,tmpm->str;
+3 -3
View File
@@ -9,10 +9,10 @@ U0 LoadDocDefines()
(Now-Str2Date("8/1/2003"))/ToF64(1<<32)/CDATE_YEAR_DAYS); (Now-Str2Date("8/1/2003"))/ToF64(1<<32)/CDATE_YEAR_DAYS);
//This is cut and replaced when I generate a distro. //This is cut and replaced when I generate a distro.
//See $LK,"DD_TEMPLEOS_LOC",A="FF:::/Demo/AcctExample/TOSDistro.HC,DD_TEMPLEOS_LOC"$. //See $LK,"DD_TEMPLEOS_LOC",A="FF:::/Demo/AcctExample/TOS/TOSDistro.HC,DD_TEMPLEOS_LOC"$.
$TR-C,"LineRep"$ $TR-C,"LineRep"$
$ID,4$DefinePrint("DD_TEMPLEOS_LOC","119,466"); $ID,4$DefinePrint("DD_TEMPLEOS_LOC","119,710");
DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","81,791"); DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","81,944");
$ID,-4$ $ID,-4$
DefinePrint("DD_KERNEL","%08X",bfh); DefinePrint("DD_KERNEL","%08X",bfh);
bfh(I64)+=bfh->file_size-1; bfh(I64)+=bfh->file_size-1;
+6 -4
View File
@@ -33,7 +33,7 @@ extern Bool DocHighlightCursor(Bool show=OFF,CDoc *doc=NULL);
extern U0 DocInsDoc(CDoc *doc=NULL,CDoc *doc2); extern U0 DocInsDoc(CDoc *doc=NULL,CDoc *doc2);
extern U0 DocInsEntry(CDoc *doc,CDocEntry *doc_e); extern U0 DocInsEntry(CDoc *doc,CDocEntry *doc_e);
extern Bool DocLock(CDoc *doc); extern Bool DocLock(CDoc *doc);
extern I64 DocMax(I64 i=MAX_I64); extern I64 DocMax(I64 i=I64_MAX);
extern CDoc *DocNew(U8 *filename=NULL,CTask *task=NULL); extern CDoc *DocNew(U8 *filename=NULL,CTask *task=NULL);
extern CDocEntry *DocPrint(CDoc *doc=NULL,U8 *fmt,...); extern CDocEntry *DocPrint(CDoc *doc=NULL,U8 *fmt,...);
extern CDoc *DocPut(CTask *task=NULL); extern CDoc *DocPut(CTask *task=NULL);
@@ -50,7 +50,7 @@ extern U0 EdCodeTools(CDoc *doc);
extern U8 *EdSprite(I64 bin_num); extern U8 *EdSprite(I64 bin_num);
extern I64 ExeDoc(CDoc *doc,I64 ccf_flags=0); extern I64 ExeDoc(CDoc *doc,I64 ccf_flags=0);
extern I64 FindWiz(); extern I64 FindWiz();
extern I64 GetI64(U8 *msg=NULL,I64 dft=0,I64 lo=MIN_I64,I64 hi=MAX_I64); extern I64 GetI64(U8 *msg=NULL,I64 dft=0,I64 lo=I64_MIN,I64 hi=I64_MAX);
extern Bool GrPlot0(CDC *dc,I64 x,I64 y); extern Bool GrPlot0(CDC *dc,I64 x,I64 y);
extern I64 ISO9660ISO(U8 *_filename=NULL,U8 *src_files_find_mask, extern I64 ISO9660ISO(U8 *_filename=NULL,U8 *src_files_find_mask,
U8 *fu_flags=NULL,U8 *_stage2_filename=NULL); U8 *fu_flags=NULL,U8 *_stage2_filename=NULL);
@@ -69,8 +69,8 @@ extern I64 PopUpColorLighting(U8 *header=NULL);
extern I64 PopUpFile(U8 *filename, extern I64 PopUpFile(U8 *filename,
Bool warn_ext=TRUE,CTask *parent=NULL,CTask **_pu_task=NULL); Bool warn_ext=TRUE,CTask *parent=NULL,CTask **_pu_task=NULL);
extern Bool PopUpForm(U8 *_d,U8 *class_name=lastclass, extern Bool PopUpForm(U8 *_d,U8 *class_name=lastclass,
I64 dof_flags=DOF_MIN_SIZE,U8 *header=NULL,U8 *footer=NULL); I64 dof_flags=DOF_SIZE_MIN,U8 *header=NULL,U8 *footer=NULL);
extern I64 PopUpGetI64(U8 *msg,I64 dft,I64 lo=MIN_I64,I64 hi=MAX_I64); extern I64 PopUpGetI64(U8 *msg,I64 dft,I64 lo=I64_MIN,I64 hi=I64_MAX);
extern U8 *PopUpGetStr(U8 *header=NULL); extern U8 *PopUpGetStr(U8 *header=NULL);
extern I64 PopUpMenu(CDoc *doc,I64 dof_flags=0); extern I64 PopUpMenu(CDoc *doc,I64 dof_flags=0);
extern Bool PopUpNoYes(U8 *header=NULL,U8 *footer=NULL); extern Bool PopUpNoYes(U8 *header=NULL,U8 *footer=NULL);
@@ -78,6 +78,8 @@ extern Bool PopUpOk(U8 *header=NULL,U8 *footer=NULL);
extern I64 PopUpRangeI64( extern I64 PopUpRangeI64(
I64 lo,I64 hi,I64 step=1,U8 *header=NULL,U8 *footer=NULL); I64 lo,I64 hi,I64 step=1,U8 *header=NULL,U8 *footer=NULL);
extern Bool PopUpTransform(I64 *r); extern Bool PopUpTransform(I64 *r);
extern I64 RedSeaISO(U8 *_iso_filename=NULL,U8 *_src_dir,
U8 *_stage2_filename=NULL);
extern U0 Refresh(I64 cnt=1,Bool force=FALSE); extern U0 Refresh(I64 cnt=1,Bool force=FALSE);
extern U0 RegOneTimePopUp(I64 flag_num,U8 *msg); extern U0 RegOneTimePopUp(I64 flag_num,U8 *msg);
extern Bool RegWrite(U8 *path,U8 *fmt,...); extern Bool RegWrite(U8 *path,U8 *fmt,...);
+4 -4
View File
@@ -326,11 +326,11 @@ wh_done:
#help_index "Info;Hash;Cmd Line (Typically)" #help_index "Info;Hash;Cmd Line (Typically)"
#define HDR_MAX 16 #define HDR_NUM 16
public I64 HashDepthRep(CHashTable *table=NULL) public I64 HashDepthRep(CHashTable *table=NULL)
{//Hash table linked-list chain depth report. {//Hash table linked-list chain depth report.
//Histogram of collision count. //Histogram of collision count.
I64 i,j,longest=0,cnt=0,a[HDR_MAX]; I64 i,j,longest=0,cnt=0,a[HDR_NUM];
CHash *tmph; CHash *tmph;
if (!table) table=Fs->hash_table; if (!table) table=Fs->hash_table;
MemSet(a,0,sizeof(a)); MemSet(a,0,sizeof(a));
@@ -338,7 +338,7 @@ public I64 HashDepthRep(CHashTable *table=NULL)
tmph=table->body[i]; tmph=table->body[i];
if (tmph) { if (tmph) {
j=LinkedLstCnt(tmph); j=LinkedLstCnt(tmph);
if (j<HDR_MAX) if (j<HDR_NUM)
a[j]++; a[j]++;
cnt+=j; cnt+=j;
if (j>longest) if (j>longest)
@@ -346,7 +346,7 @@ public I64 HashDepthRep(CHashTable *table=NULL)
} }
} }
"Histogram\n"; "Histogram\n";
for (i=0;i<HDR_MAX;i++) for (i=0;i<HDR_NUM;i++)
if (a[i]) if (a[i])
"%02d:%d\n",i,a[i]; "%02d:%d\n",i,a[i];
"Size:%d Count:%d Longest:%d\n", "Size:%d Count:%d Longest:%d\n",
+3 -3
View File
@@ -156,7 +156,7 @@ public U0 ODERenum(CMathODE *ode)
public CMass *MassFind(CMathODE *ode,F64 x,F64 y,F64 z=0) public CMass *MassFind(CMathODE *ode,F64 x,F64 y,F64 z=0)
{//Search for mass nearest to x,y,z. {//Search for mass nearest to x,y,z.
CMass *tmpm,*best_mass=NULL; CMass *tmpm,*best_mass=NULL;
F64 dd,best_dd=MAX_F64; F64 dd,best_dd=F64_MAX;
tmpm=ode->next_mass; tmpm=ode->next_mass;
while (tmpm!=&ode->next_mass) { while (tmpm!=&ode->next_mass) {
@@ -173,7 +173,7 @@ public CMass *MassFind(CMathODE *ode,F64 x,F64 y,F64 z=0)
public CSpring *SpringFind(CMathODE *ode,F64 x,F64 y,F64 z=0) public CSpring *SpringFind(CMathODE *ode,F64 x,F64 y,F64 z=0)
{//Find spring midpoint nearest x,y,z. {//Find spring midpoint nearest x,y,z.
CSpring *tmps,*best_spring=NULL; CSpring *tmps,*best_spring=NULL;
F64 dd,best_dd=MAX_F64; F64 dd,best_dd=F64_MAX;
tmps=ode->next_spring; tmps=ode->next_spring;
while (tmps!=&ode->next_spring) { while (tmps!=&ode->next_spring) {
@@ -195,7 +195,7 @@ public U0 MassOrSpringFind(
{//Find spring or mass nearest x,y,z. {//Find spring or mass nearest x,y,z.
CMass *tmpm,*best_mass=NULL; CMass *tmpm,*best_mass=NULL;
CSpring *tmps,*best_spring=NULL; CSpring *tmps,*best_spring=NULL;
F64 dd,best_dd=MAX_F64; F64 dd,best_dd=F64_MAX;
tmpm=ode->next_mass; tmpm=ode->next_mass;
while (tmpm!=&ode->next_mass) { while (tmpm!=&ode->next_mass) {
+28 -7
View File
@@ -1,4 +1,4 @@
#help_index "Misc/Registry" #help_index "Registry"
#define REGISTRY_FILENAME "~/Registry.HC.Z" #define REGISTRY_FILENAME "~/Registry.HC.Z"
CDoc *sys_registry_doc=NULL; CDoc *sys_registry_doc=NULL;
I64 sys_msg_flags[1]={0}; I64 sys_msg_flags[1]={0};
@@ -145,7 +145,8 @@ U0 RegInit()
} }
} }
#help_index "Boot/Once;Misc/Once" #help_index "Boot/Once;Registry/Once"
#help_file "::/Doc/Once"
public U0 AOnceFlush() public U0 AOnceFlush()
{//Flush AOnce() buf. {//Flush AOnce() buf.
@@ -158,51 +159,71 @@ public U0 OnceFlush()
} }
public U0 AOnce(U8 *fmt,...) public U0 AOnce(U8 *fmt,...)
{//Writes Adam code to $LK,"Registry",A="FI:~/Registry.HC"$ to be executed next boot. {//Add Adam code to $LK,"~/Registry.HC"$, executed next boot.
U8 *buf=StrPrintJoin(NULL,fmt,argc,argv); U8 *buf=StrPrintJoin(NULL,fmt,argc,argv);
if (!Bt(&sys_run_level,RLf_ONCE_ADAM))
AOnceFlush;
RegAppend("Once/Adam","%s\n",buf); RegAppend("Once/Adam","%s\n",buf);
Free(buf); Free(buf);
} }
public U0 Once(U8 *fmt,...) public U0 Once(U8 *fmt,...)
{//Writes User code to $LK,"Registry",A="FI:~/Registry.HC"$ to be executed next boot. {//Add User code to $LK,"~/Registry.HC"$, executed next boot.
U8 *buf=StrPrintJoin(NULL,fmt,argc,argv); U8 *buf=StrPrintJoin(NULL,fmt,argc,argv);
if (!Bt(&sys_run_level,RLf_ONCE_USER))
OnceFlush;
RegAppend("Once/User","%s\n",buf); RegAppend("Once/User","%s\n",buf);
Free(buf); Free(buf);
} }
public U0 AOnceDrv(U8 drv_let=0,U8 *fmt,...) public U0 AOnceDrv(U8 drv_let=0,U8 *fmt,...)
{//Writes Adam code to drv $LK,"Registry",A="FI:~/Registry.HC"$ to be executed next boot. {//Add Adam code to drv $LK,"~/Registry.HC"$, executed next boot.
U8 *buf=StrPrintJoin(NULL,fmt,argc,argv); U8 *buf=StrPrintJoin(NULL,fmt,argc,argv);
I64 old_drv_let=*sys_registry_doc->filename.name; I64 old_drv_let=*sys_registry_doc->filename.name;
if (drv_let) if (drv_let)
*sys_registry_doc->filename.name=drv_let; *sys_registry_doc->filename.name=drv_let;
if (!Bt(&sys_run_level,RLf_ONCE_ADAM))
AOnceFlush;
RegAppend("Once/Adam","%s\n",buf); RegAppend("Once/Adam","%s\n",buf);
Free(buf); Free(buf);
*sys_registry_doc->filename.name=old_drv_let; *sys_registry_doc->filename.name=old_drv_let;
} }
public U0 OnceDrv(U8 drv_let=0,U8 *fmt,...) public U0 OnceDrv(U8 drv_let=0,U8 *fmt,...)
{//Writes User code to drv $LK,"Registry",A="FI:~/Registry.HC"$ to be executed next boot. {//Add User code to drv $LK,"~/Registry.HC"$, executed next boot.
U8 *buf=StrPrintJoin(NULL,fmt,argc,argv); U8 *buf=StrPrintJoin(NULL,fmt,argc,argv);
I64 old_drv_let=*sys_registry_doc->filename.name; I64 old_drv_let=*sys_registry_doc->filename.name;
if (drv_let) if (drv_let)
*sys_registry_doc->filename.name=drv_let; *sys_registry_doc->filename.name=drv_let;
if (!Bt(&sys_run_level,RLf_ONCE_USER))
OnceFlush;
RegAppend("Once/User","%s\n",buf); RegAppend("Once/User","%s\n",buf);
Free(buf); Free(buf);
*sys_registry_doc->filename.name=old_drv_let; *sys_registry_doc->filename.name=old_drv_let;
} }
public U0 OnceExe() public U0 OnceExe()
{//Execute Once code. This goes in $LK,"~/Once.HC"$. {//Execute Once code. Call goes in $LK,"~/Once.HC"$.
try {
RegDft("Once/Adam",""); RegDft("Once/Adam","");
if (RegCnt("Once/Adam")>2) { if (RegCnt("Once/Adam")>2) {
Adam("RegExe(\"Once/Adam\");"); Adam("RegExe(\"Once/Adam\");");
AOnceFlush; AOnceFlush;
} }
LBts(&sys_run_level,RLf_ONCE_ADAM);
RegDft("Once/User",""); RegDft("Once/User","");
if (RegCnt("Once/User")>2) { if (RegCnt("Once/User")>2) {
RegExe("Once/User"); RegExe("Once/User");
OnceFlush; OnceFlush;
} }
LBts(&sys_run_level,RLf_ONCE_USER);
} catch {
AOnceFlush;
LBts(&sys_run_level,RLf_ONCE_ADAM);
OnceFlush;
LBts(&sys_run_level,RLf_ONCE_USER);
}
} }
+4 -4
View File
@@ -4,7 +4,7 @@ U0 ACDDictWordsAdd(U8 *st)
I64 i; I64 i;
U8 *ptr; U8 *ptr;
if (st && *st && (ptr=ACDWordPtAt(st))) { if (st && *st && (ptr=ACDWordPtAt(st))) {
for (i=0;i<ACD_MAX_FILLINS;i++) { for (i=0;i<ACD_FILLINS_NUM;i++) {
if (*ptr++!=ACD_WORD_CHAR) if (*ptr++!=ACD_WORD_CHAR)
break; break;
if (i) '\n'; if (i) '\n';
@@ -21,7 +21,7 @@ U0 ACDocRst(I64 left,I64 top)
{ {
CDoc *doc=DocPut; CDoc *doc=DocPut;
DocRst(doc,TRUE); DocRst(doc,TRUE);
doc->flags|=DOCF_MIN_SIZE; doc->flags|=DOCF_SIZE_MIN;
Fs->border_src=BDS_CONST; Fs->border_src=BDS_CONST;
Fs->border_attr=LTGRAY<<4+DrvTextAttrGet(':')&15; Fs->border_attr=LTGRAY<<4+DrvTextAttrGet(':')&15;
Fs->text_attr =LTGRAY<<4+BLUE; Fs->text_attr =LTGRAY<<4+BLUE;
@@ -63,7 +63,7 @@ I64 ACPriorWordInStr(U8 *src,U8 *dst,I64 len,I64 buf_size)
U0 ACFillInAdd(CHashAC *tmpw) U0 ACFillInAdd(CHashAC *tmpw)
{ {
I64 k; I64 k;
if (ac.num_fillins<AC_MAX_FILLINS || if (ac.num_fillins<AC_FILLINS_NUM ||
tmpw->hits>ac.fillin_hits[ac.num_fillins-1]) { tmpw->hits>ac.fillin_hits[ac.num_fillins-1]) {
for (k=ac.num_fillins-1;k>=0;k--) { for (k=ac.num_fillins-1;k>=0;k--) {
if (tmpw->hits<=ac.fillin_hits[k]) if (tmpw->hits<=ac.fillin_hits[k])
@@ -75,7 +75,7 @@ U0 ACFillInAdd(CHashAC *tmpw)
} }
ac.fillin_matches[k+1]=tmpw; ac.fillin_matches[k+1]=tmpw;
ac.fillin_hits[k+1] =tmpw->hits; ac.fillin_hits[k+1] =tmpw->hits;
if (ac.num_fillins<AC_MAX_FILLINS) if (ac.num_fillins<AC_FILLINS_NUM)
ac.num_fillins++; ac.num_fillins++;
} }
} }
+3 -3
View File
@@ -210,11 +210,11 @@ public U0 MemPageRep()
else else
"$$RED$$2MEG$$FG$$ pages\n"; "$$RED$$2MEG$$FG$$ pages\n";
"PML2\t :%010X 2MEG :%08X\n", "PML2\t :%010X 2MEG :%08X\n",
*MEM_PML2(U64 *),*MEM_NUM_2MEG(U64 *); *MEM_PML2(U64 *),*MEM_2MEG_NUM(U64 *);
"PML3\t :%010X 1GIG :%08X\n", "PML3\t :%010X 1GIG :%08X\n",
*MEM_PML3(U64 *),*MEM_NUM_1GIG(U64 *); *MEM_PML3(U64 *),*MEM_1GIG_NUM(U64 *);
"PML4\t :%010X 512GIG:%08X\n", "PML4\t :%010X 512GIG:%08X\n",
*MEM_PML4(U64 *),*MEM_NUM_512GIG(U64 *); *MEM_PML4(U64 *),*MEM_512GIG_NUM(U64 *);
"FIXED_AREA:%010X\n",SYS_FIXED_AREA; "FIXED_AREA:%010X\n",SYS_FIXED_AREA;
"HEAP_BASE :%010X\nHEAP_LIMIT:%010X\n",mem_heap_base,mem_heap_limit; "HEAP_BASE :%010X\nHEAP_LIMIT:%010X\n",mem_heap_base,mem_heap_limit;
} }
+1 -1
View File
@@ -46,7 +46,7 @@ U0 DocBinsValidate(CDoc *doc)
if (doc_e->de_flags & DOCEF_HAS_BIN) { if (doc_e->de_flags & DOCEF_HAS_BIN) {
if (b=doc_e->bin_data=DocBinFindNum(doc,doc_e->bin_num)) { if (b=doc_e->bin_data=DocBinFindNum(doc,doc_e->bin_num)) {
if (doc_e->de_flags & DOCEF_BIN_PTR_LINK) if (doc_e->de_flags & DOCEF_BIN_PTR_LINK)
b->tmp_use_cnt=MAX_I32; b->tmp_use_cnt=I32_MAX;
if (!b->use_cnt++) if (!b->use_cnt++)
b->renum_num=++renum_num; b->renum_num=++renum_num;
doc_e->bin_num=b->renum_num; doc_e->bin_num=b->renum_num;
+8 -8
View File
@@ -18,14 +18,14 @@ public I64 EdCurU8(CDoc *doc)
return res; return res;
} }
public U0 EdCursorLeft(CDoc *doc,I64 sc=MIN_I64) public U0 EdCursorLeft(CDoc *doc,I64 sc=I64_MIN)
{//Move cursor left. Might need a call to $LK,"DocRecalc",A="MN:DocRecalc"$(). {//Move cursor left. Might need a call to $LK,"DocRecalc",A="MN:DocRecalc"$().
//See $LK,"EdRenumAsm",A="MN:EdRenumAsm"$ for an example. //See $LK,"EdRenumAsm",A="MN:EdRenumAsm"$ for an example.
U8 *dst; U8 *dst;
Bool unlock=DocLock(doc); Bool unlock=DocLock(doc);
CDocEntry *doc_ce=doc->cur_entry,*original_ce=doc_ce,*doc_ne; CDocEntry *doc_ce=doc->cur_entry,*original_ce=doc_ce,*doc_ne;
I64 cc=doc->cur_col,y=doc_ce->y; I64 cc=doc->cur_col,y=doc_ce->y;
if (sc!=MIN_I64) sc=sc.u32[0]; if (sc!=I64_MIN) sc=sc.u32[0];
if (sc>=0 && sc&SCF_CTRL) { if (sc>=0 && sc&SCF_CTRL) {
while (doc_ce->last!=doc && (doc_ce->last->y==y || while (doc_ce->last!=doc && (doc_ce->last->y==y ||
doc_ce->de_flags & (DOCEF_SKIP|DOCEF_FILTER_SKIP))) doc_ce->de_flags & (DOCEF_SKIP|DOCEF_FILTER_SKIP)))
@@ -90,14 +90,14 @@ public U0 EdCursorLeft(CDoc *doc,I64 sc=MIN_I64)
DocUnlock(doc); DocUnlock(doc);
} }
public U0 EdCursorRight(CDoc *doc,I64 sc=MIN_I64) public U0 EdCursorRight(CDoc *doc,I64 sc=I64_MIN)
{//Move cursor right. Might need a call to $LK,"DocRecalc",A="MN:DocRecalc"$(). {//Move cursor right. Might need a call to $LK,"DocRecalc",A="MN:DocRecalc"$().
//See $LK,"EdRenumAsm",A="MN:EdRenumAsm"$ for an example. //See $LK,"EdRenumAsm",A="MN:EdRenumAsm"$ for an example.
Bool unlock=DocLock(doc); Bool unlock=DocLock(doc);
U8 *dst; U8 *dst;
CDocEntry *doc_ce=doc->cur_entry,*original_ce=doc_ce,*doc_ne; CDocEntry *doc_ce=doc->cur_entry,*original_ce=doc_ce,*doc_ne;
I64 cc=doc->cur_col,y=doc_ce->y,old_de_flags,old_color; I64 cc=doc->cur_col,y=doc_ce->y,old_de_flags,old_color;
if (sc!=MIN_I64) sc=sc.u32[0]; if (sc!=I64_MIN) sc=sc.u32[0];
if (sc>=0 && sc&SCF_CTRL) { if (sc>=0 && sc&SCF_CTRL) {
while (doc_ce!=doc && doc_ce->next->y==y && while (doc_ce!=doc && doc_ce->next->y==y &&
doc_ce->next->type_u8!=DOCT_SOFT_NEW_LINE && doc_ce->next!=doc && doc_ce->next->type_u8!=DOCT_SOFT_NEW_LINE && doc_ce->next!=doc &&
@@ -166,7 +166,7 @@ public U0 EdCursorRight(CDoc *doc,I64 sc=MIN_I64)
DocUnlock(doc); DocUnlock(doc);
} }
public U0 EdLineUp(CDoc *doc,I64 sc=MIN_I64) public U0 EdLineUp(CDoc *doc,I64 sc=I64_MIN)
{//Move cursor up. Might need a call to $LK,"DocRecalc",A="MN:DocRecalc"$(). {//Move cursor up. Might need a call to $LK,"DocRecalc",A="MN:DocRecalc"$().
//See $LK,"EdRenumAsm",A="MN:EdRenumAsm"$ for an example. //See $LK,"EdRenumAsm",A="MN:EdRenumAsm"$ for an example.
Bool unlock=DocLock(doc); Bool unlock=DocLock(doc);
@@ -174,7 +174,7 @@ public U0 EdLineUp(CDoc *doc,I64 sc=MIN_I64)
I64 y,x; I64 y,x;
CDocEntry *doc_ce=doc->cur_entry,*doc_ne; CDocEntry *doc_ce=doc->cur_entry,*doc_ne;
if (sc!=MIN_I64) sc=sc.u32[0]; if (sc!=I64_MIN) sc=sc.u32[0];
if (doc_ce->type_u8==DOCT_HEX_ED) { if (doc_ce->type_u8==DOCT_HEX_ED) {
doc->cur_col=doc->cur_col-doc_ce->hex_ed_width*3; doc->cur_col=doc->cur_col-doc_ce->hex_ed_width*3;
if (doc->cur_col>=0) { if (doc->cur_col>=0) {
@@ -277,14 +277,14 @@ public U0 EdLineUp(CDoc *doc,I64 sc=MIN_I64)
DocUnlock(doc); DocUnlock(doc);
} }
public U0 EdLineDown(CDoc *doc,I64 sc=MIN_I64) public U0 EdLineDown(CDoc *doc,I64 sc=I64_MIN)
{//Move cursor down. Might need a call to $LK,"DocRecalc",A="MN:DocRecalc"$(). {//Move cursor down. Might need a call to $LK,"DocRecalc",A="MN:DocRecalc"$().
//See $LK,"EdRenumAsm",A="MN:EdRenumAsm"$ for an example. //See $LK,"EdRenumAsm",A="MN:EdRenumAsm"$ for an example.
Bool unlock=DocLock(doc); Bool unlock=DocLock(doc);
U8 *dst; U8 *dst;
I64 y,x,old_de_flags=0,old_color; I64 y,x,old_de_flags=0,old_color;
CDocEntry *doc_ce=doc->cur_entry,*doc_ne,*doc_ce2; CDocEntry *doc_ce=doc->cur_entry,*doc_ne,*doc_ce2;
if (sc!=MIN_I64) sc=sc.u32[0]; if (sc!=I64_MIN) sc=sc.u32[0];
if (doc_ce->type_u8==DOCT_HEX_ED) { if (doc_ce->type_u8==DOCT_HEX_ED) {
doc->cur_col=doc->cur_col+doc_ce->hex_ed_width*3; doc->cur_col=doc->cur_col+doc_ce->hex_ed_width*3;
if (doc->cur_col>=doc_ce->len*3) { if (doc->cur_col>=doc_ce->len*3) {
+1 -1
View File
@@ -601,7 +601,7 @@ U0 EdPopUpChSC(I64 *_ch,I64 *_sc)
{ {
I64 sc; I64 sc;
"Press A Key\n"; "Press A Key\n";
DocPut->flags|=DOCF_MIN_SIZE; DocPut->flags|=DOCF_SIZE_MIN;
do GetMsg(_ch,&sc,1<<MSG_KEY_DOWN); do GetMsg(_ch,&sc,1<<MSG_KEY_DOWN);
while (sc.u8[0]==SC_SHIFT || sc.u8[0]==SC_CTRL || sc.u8[0]==SC_ALT); while (sc.u8[0]==SC_SHIFT || sc.u8[0]==SC_CTRL || sc.u8[0]==SC_ALT);
*_sc=sc; *_sc=sc;
+4 -4
View File
@@ -146,13 +146,13 @@ public Bool DocEd(CDoc *doc,I64 dof_flags=0)
LBts(&Fs->display_flags,DISPLAYf_SHOW); LBts(&Fs->display_flags,DISPLAYf_SHOW);
WinZBufUpdate; WinZBufUpdate;
} }
if (dof_flags&DOF_MIN_SIZE) if (dof_flags&DOF_SIZE_MIN)
doc->flags|=DOCF_MIN_SIZE; doc->flags|=DOCF_SIZE_MIN;
DocUnlock(doc); DocUnlock(doc);
if (!(dof_flags&DOF_DONT_WINMGR_SYNC)) { if (!(dof_flags&DOF_DONT_WINMGR_SYNC)) {
Refresh(2,TRUE); Refresh(2,TRUE);
if (doc->flags&DOCF_MIN_SIZE) if (doc->flags&DOCF_SIZE_MIN)
Refresh(2,TRUE); Refresh(2,TRUE);
} }
res=View; res=View;
@@ -178,7 +178,7 @@ public Bool DocEd(CDoc *doc,I64 dof_flags=0)
} }
Free(old_task_title); Free(old_task_title);
DocDel(bdoc); DocDel(bdoc);
if (dof_flags&DOF_MIN_SIZE) { if (dof_flags&DOF_SIZE_MIN) {
WinHorz(old_left,old_right); WinHorz(old_left,old_right);
WinVert(old_top,old_bottom); WinVert(old_top,old_bottom);
} }
+2 -2
View File
@@ -17,7 +17,7 @@ public Bool DocLineNumGoTo(CDoc *doc,I64 line_num) //one based
return res; return res;
} }
public Bool DocFind(CDoc *haystack_doc,I64 start_line_num=MIN_I64, public Bool DocFind(CDoc *haystack_doc,I64 start_line_num=I64_MIN,
U8 *needle,I64 match=1) U8 *needle,I64 match=1)
{//Find str by searching tags. Move cur_entry & center. {//Find str by searching tags. Move cur_entry & center.
Bool res=FALSE,unlock; Bool res=FALSE,unlock;
@@ -26,7 +26,7 @@ U8 *needle,I64 match=1)
I64 i; I64 i;
if (haystack_doc) { if (haystack_doc) {
unlock=DocLock(haystack_doc); unlock=DocLock(haystack_doc);
if (start_line_num==MIN_I64) { if (start_line_num==I64_MIN) {
res=TRUE; res=TRUE;
doc_e=haystack_doc->head.next; doc_e=haystack_doc->head.next;
} else { } else {
+4 -4
View File
@@ -223,8 +223,8 @@ public Bool DocForm(U8 *_d,U8 *class_name=lastclass,
doc->desc='Form'; doc->desc='Form';
if (header) DocPrint(doc,"%s",header); if (header) DocPrint(doc,"%s",header);
doc->flags|=DOCF_OVERSTRIKE|DOCF_FORM; doc->flags|=DOCF_OVERSTRIKE|DOCF_FORM;
if (dof_flags&DOF_MIN_SIZE) if (dof_flags&DOF_SIZE_MIN)
doc->flags|=DOCF_MIN_SIZE; doc->flags|=DOCF_SIZE_MIN;
ml=tmpc->member_lst_and_root; ml=tmpc->member_lst_and_root;
while (ml) { while (ml) {
if ((fmtstr=MemberMetaData("fmtstr",ml)) && if ((fmtstr=MemberMetaData("fmtstr",ml)) &&
@@ -332,12 +332,12 @@ dm_restart:
public I64 PopUpMenu(CDoc *doc,I64 dof_flags=0) public I64 PopUpMenu(CDoc *doc,I64 dof_flags=0)
{//Run menu chooser doc in PopUp win task. {//Run menu chooser doc in PopUp win task.
doc->flags|=DOCF_MIN_SIZE | DOCF_FORM; doc->flags|=DOCF_SIZE_MIN | DOCF_FORM;
return PopUpPrint("DocMenu(0x%X,0x%X);",doc,dof_flags); return PopUpPrint("DocMenu(0x%X,0x%X);",doc,dof_flags);
} }
public Bool PopUpForm(U8 *_d,U8 *class_name=lastclass, public Bool PopUpForm(U8 *_d,U8 *class_name=lastclass,
I64 dof_flags=DOF_MIN_SIZE,U8 *header=NULL,U8 *footer=NULL) I64 dof_flags=DOF_SIZE_MIN,U8 *header=NULL,U8 *footer=NULL)
{//See $LK,"::/Demo/DolDoc/Form.HC"$ and $LK,"::/Demo/LastClass.HC"$. {//See $LK,"::/Demo/DolDoc/Form.HC"$ and $LK,"::/Demo/LastClass.HC"$.
return PopUpPrint("DocForm(0x%X,0x%X,0x%X,0x%X,0x%X);",_d,class_name, return PopUpPrint("DocForm(0x%X,0x%X,0x%X,0x%X,0x%X);",_d,class_name,
dof_flags,header,footer); dof_flags,header,footer);
+5 -5
View File
@@ -150,7 +150,7 @@ gs_done:
} }
#help_index "Keyboard Devices;Char/Input;StdIn" #help_index "Keyboard Devices;Char/Input;StdIn"
public I64 GetI64(U8 *msg=NULL,I64 dft=0,I64 lo=MIN_I64,I64 hi=MAX_I64) public I64 GetI64(U8 *msg=NULL,I64 dft=0,I64 lo=I64_MIN,I64 hi=I64_MAX)
{//Prompt user for I64 expression. {//Prompt user for I64 expression.
Bool okay; Bool okay;
U8 *st; U8 *st;
@@ -176,7 +176,7 @@ public I64 GetI64(U8 *msg=NULL,I64 dft=0,I64 lo=MIN_I64,I64 hi=MAX_I64)
} }
} }
public F64 GetF64(U8 *msg=NULL,F64 dft=0,F64 lo=MIN_F64,F64 hi=MAX_F64) public F64 GetF64(U8 *msg=NULL,F64 dft=0,F64 lo=F64_MIN,F64 hi=F64_MAX)
{//Prompt user for F64 expression. {//Prompt user for F64 expression.
Bool okay; Bool okay;
U8 *st; U8 *st;
@@ -202,12 +202,12 @@ public F64 GetF64(U8 *msg=NULL,F64 dft=0,F64 lo=MIN_F64,F64 hi=MAX_F64)
} }
} }
public CDate GetDate(U8 *msg=NULL,CDate dft=MIN_I64, public CDate GetDate(U8 *msg=NULL,CDate dft=I64_MIN,
CDate lo=MIN_I64,CDate hi=MAX_I64) CDate lo=I64_MIN,CDate hi=I64_MAX)
{//Prompt user for date expression. (Use $LK,"Now",A="MN:Now"$() if you want current time.) {//Prompt user for date expression. (Use $LK,"Now",A="MN:Now"$() if you want current time.)
U8 *st; U8 *st;
CDate res; CDate res;
if (dft==MIN_I64) dft=Now; if (dft==I64_MIN) dft=Now;
while (TRUE) { while (TRUE) {
if (msg) if (msg)
"" msg,dft,dft; "" msg,dft,dft;
+3 -3
View File
@@ -9,7 +9,7 @@ public I64 PopUpColor(U8 *header=NULL,
DocPrint(doc,"%s",header); DocPrint(doc,"%s",header);
if (allow_transparent) if (allow_transparent)
DocPrint(doc,"$$MU,\"TRANSPARENT\",LE=TRANSPARENT$$\n"); DocPrint(doc,"$$MU,\"TRANSPARENT\",LE=TRANSPARENT$$\n");
for (i=0;i<NUM_COLORS;i++) for (i=0;i<COLORS_NUM;i++)
DocPrint(doc,"$$BG,%d$$$$MU,\"__%-8Z__\",LE=%d$$$$BG$$\n",i,i,"ST_COLORS",i); DocPrint(doc,"$$BG,%d$$$$MU,\"__%-8Z__\",LE=%d$$$$BG$$\n",i,i,"ST_COLORS",i);
if (allow_dft) if (allow_dft)
DocPrint(doc,"$$BG,WHITE$$$$MU,\"DEFAULT\",LE=DOC_DFT$$$$BG$$"); DocPrint(doc,"$$BG,WHITE$$$$MU,\"DEFAULT\",LE=DOC_DFT$$$$BG$$");
@@ -33,14 +33,14 @@ public I64 PopUpColorLighting(U8 *header=NULL)
"\n"); "\n");
DocPrint(doc, DocPrint(doc,
"\n$$LTPURPLE$$Single-Sided Full-Range Double-Sided Full-Range\n$$BLACK$$"); "\n$$LTPURPLE$$Single-Sided Full-Range Double-Sided Full-Range\n$$BLACK$$");
for (i=0;i<NUM_COLORS/2;i++) { for (i=0;i<COLORS_NUM/2;i++) {
DocPrint(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",LE=%d$$$$BG$$ ",i,i,"ST_COLORS",i); DocPrint(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",LE=%d$$$$BG$$ ",i,i,"ST_COLORS",i);
DocPrint(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",LE=%d$$$$BG$$\n",i,i,"ST_COLORS", DocPrint(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",LE=%d$$$$BG$$\n",i,i,"ST_COLORS",
ROPF_TWO_SIDED+i); ROPF_TWO_SIDED+i);
} }
DocPrint(doc, DocPrint(doc,
"\n$$LTPURPLE$$Single-Sided Half-Range Double-Sided Half-Range\n$$BLACK$$"); "\n$$LTPURPLE$$Single-Sided Half-Range Double-Sided Half-Range\n$$BLACK$$");
for (i=0;i<NUM_COLORS;i++) { for (i=0;i<COLORS_NUM;i++) {
DocPrint(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",LE=%d$$$$BG$$ ", DocPrint(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",LE=%d$$$$BG$$ ",
i,i,"ST_COLORS",ROPF_HALF_RANGE_COLOR+i); i,i,"ST_COLORS",ROPF_HALF_RANGE_COLOR+i);
DocPrint(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",LE=%d$$$$BG$$\n", DocPrint(doc,"$$BG,%d$$$$MU,\"__%-19Z__\",LE=%d$$$$BG$$\n",
+15 -10
View File
@@ -1,5 +1,10 @@
#help_index "DolDoc/Misc" #help_index "DolDoc/Misc"
CColorROPU32 highlight_hash_type_colors[HTt_TYPES_NUM]=
DOC_COLOR_EXPORT_SYS_SYM,0,DOC_COLOR_DEFINE_STR,DOC_COLOR_GLBL_VAR,
DOC_COLOR_CLASS,DOC_COLOR_KEYWORD,DOC_COLOR_FUN,0,0,DOC_COLOR_KEYWORD,
DOC_COLOR_KEYWORD,DOC_COLOR_KEYWORD,DOC_COLOR_REG,0,0,0,0};
U32 *DocHighlight(CDocEntry *doc_e,U8 *src,I64 len,I64 _tmp_u32_attr) U32 *DocHighlight(CDocEntry *doc_e,U8 *src,I64 len,I64 _tmp_u32_attr)
{//Be aware of $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.HC"$. {//Be aware of $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.HC"$.
U32 *res=MAlloc((len+1)*sizeof(U32)),*dst=res; U32 *res=MAlloc((len+1)*sizeof(U32)),*dst=res;
@@ -35,12 +40,12 @@ hl_normal:
} }
break; break;
case '\'': case '\'':
tmp_u32_attr=DOC_COLOR_QUOTE<<8|mask_tmp_u32_attr; tmp_u32_attr=DOC_COLOR_CHAR_CONST<<8|mask_tmp_u32_attr;
*dst++=ch1+tmp_u32_attr; *dst++=ch1+tmp_u32_attr;
len--; len--;
goto hl_single_quote; goto hl_single_quote;
case '\"': case '\"':
tmp_u32_attr=DOC_COLOR_QUOTE<<8|mask_tmp_u32_attr; tmp_u32_attr=DOC_COLOR_STR<<8|mask_tmp_u32_attr;
*dst++=ch1+tmp_u32_attr; *dst++=ch1+tmp_u32_attr;
len--; len--;
goto hl_dbl_quote; goto hl_dbl_quote;
@@ -71,13 +76,13 @@ hl_normal:
} }
ch=*src; ch=*src;
*src=0; *src=0;
if (tmph=HashFind(ptr,cmp.asm_hash, if (tmph=HashFind(ptr,adam_task->hash_table,
HTT_KEYWORD|HTT_ASM_KEYWORD|HTT_OPCODE|HTT_REG)) { HTT_EXPORT_SYS_SYM|HTT_DEFINE_STR|HTT_GLBL_VAR|HTT_CLASS|
if (tmph->type&(HTT_KEYWORD|HTT_ASM_KEYWORD|HTT_OPCODE)) HTT_INTERNAL_TYPE|HTT_FUN|HTT_KEYWORD|HTT_ASM_KEYWORD|
tmp_u32_attr=DOC_COLOR_KEYWORD<<8|mask_tmp_u32_attr; HTT_OPCODE|HTT_REG))
tmp_u32_attr=highlight_hash_type_colors[HashTypeNum(tmph)]<<8|
mask_tmp_u32_attr;
else else
tmp_u32_attr=DOC_COLOR_KEYWORD2<<8|mask_tmp_u32_attr;
} else
tmp_u32_attr=_tmp_u32_attr; tmp_u32_attr=_tmp_u32_attr;
while (ch1=*ptr++) while (ch1=*ptr++)
*dst++=ch1+tmp_u32_attr; *dst++=ch1+tmp_u32_attr;
@@ -88,7 +93,7 @@ hl_normal_done:
s->comment_depth=0; s->comment_depth=0;
break; break;
case DOCSS_SINGLE_QUOTE: case DOCSS_SINGLE_QUOTE:
tmp_u32_attr=DOC_COLOR_QUOTE<<8|mask_tmp_u32_attr; tmp_u32_attr=DOC_COLOR_CHAR_CONST<<8|mask_tmp_u32_attr;
hl_single_quote: hl_single_quote:
last_ch=0; last_ch=0;
while (len--) { while (len--) {
@@ -105,7 +110,7 @@ hl_single_quote:
s->comment_depth=0; s->comment_depth=0;
break; break;
case DOCSS_DBL_QUOTE: case DOCSS_DBL_QUOTE:
tmp_u32_attr=DOC_COLOR_QUOTE<<8|mask_tmp_u32_attr; tmp_u32_attr=DOC_COLOR_CHAR_CONST<<8|mask_tmp_u32_attr;
hl_dbl_quote: hl_dbl_quote:
last_ch=0; last_ch=0;
while (len--) { while (len--) {
+2 -2
View File
@@ -42,11 +42,11 @@ U0 DocInit()
} }
CmpCtrlDel(cc); CmpCtrlDel(cc);
for (i=0;i<DOCT_NUM_TYPES;i++) for (i=0;i<DOCT_TYPES_NUM;i++)
doldoc.dft_de_flags[i]&=~DOCG_BL_IV_UL; doldoc.dft_de_flags[i]&=~DOCG_BL_IV_UL;
doldoc.type_flags_form[0]=0; doldoc.type_flags_form[0]=0;
for (i=0;i<DOCT_NUM_TYPES;i++) for (i=0;i<DOCT_TYPES_NUM;i++)
if (Bt(&doldoc.dft_de_flags[i],DOCEf_TAG) && i!=DOCT_TEXT || i==DOCT_HEX_ED) if (Bt(&doldoc.dft_de_flags[i],DOCEf_TAG) && i!=DOCT_TEXT || i==DOCT_HEX_ED)
Bts(doldoc.type_flags_form,i); Bts(doldoc.type_flags_form,i);
+1 -1
View File
@@ -157,7 +157,7 @@ I64 PopUpMacroMenu()
"$$CM+LX,1,3$$$$BT,\"STOP\",LE=SM_STOP$$" "$$CM+LX,1,3$$$$BT,\"STOP\",LE=SM_STOP$$"
"$$CM+LX,17,0$$$$BT,\"CANCEL\",LE=DOCM_CANCEL$$" "$$CM+LX,17,0$$$$BT,\"CANCEL\",LE=DOCM_CANCEL$$"
"\n\n\n$$GREEN$$SHIFT-F2$$FG$$ will play macro.\n"); "\n\n\n$$GREEN$$SHIFT-F2$$FG$$ will play macro.\n");
doc->flags|=DOCF_MIN_SIZE | DOCF_FORM; doc->flags|=DOCF_SIZE_MIN | DOCF_FORM;
StrPrint(buf,"DocMenu(%d);",doc); StrPrint(buf,"DocMenu(%d);",doc);
sys_macro_task=Spawn(&SrvCmdLine,NULL,"Macro Popup",,Fs); sys_macro_task=Spawn(&SrvCmdLine,NULL,"Macro Popup",,Fs);
Fs->popup_task=sys_macro_task; Fs->popup_task=sys_macro_task;
+2 -2
View File
@@ -276,7 +276,7 @@ public U0 DocRst(CDoc *doc,Bool is_old)
doc->dollar_buf_ptr=0; doc->dollar_buf_ptr=0;
doc->cmd_U8=CH_SPACE; doc->cmd_U8=CH_SPACE;
doc->page_line_num=0; doc->page_line_num=0;
doc->best_d=MAX_I64; doc->best_d=I64_MAX;
s=&doc->settings_head; s=&doc->settings_head;
s->left_margin=DOC_DFT; s->left_margin=DOC_DFT;
@@ -376,7 +376,7 @@ public CDoc *DocNew(U8 *filename=NULL,CTask *task=NULL)
doc->left_click_link=&EdLeftClickLink; doc->left_click_link=&EdLeftClickLink;
doc->dollar_buf_size=84; doc->dollar_buf_size=84;
doc->dollar_buf=MAlloc(doc->dollar_buf_size,task); doc->dollar_buf=MAlloc(doc->dollar_buf_size,task);
doc->max_entries=MAX_I64; doc->max_entries=I64_MAX;
doc->win_task=task; doc->win_task=task;
doc->mem_task=task; doc->mem_task=task;
DocRst(doc,FALSE); DocRst(doc,FALSE);
+7 -7
View File
@@ -47,7 +47,7 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e)
U8 *buf,*buf2; U8 *buf,*buf2;
if (doc_e->type_u8==DOCT_FOREGROUND && if (doc_e->type_u8==DOCT_FOREGROUND &&
doc->flags&DOCF_COLOR_NAMES && 0<=attr<NUM_COLORS) { doc->flags&DOCF_COLOR_NAMES && 0<=attr<COLORS_NUM) {
buf=StrNew(DefineSub(attr,"ST_COLORS")); buf=StrNew(DefineSub(attr,"ST_COLORS"));
attr=DOC_DFT; attr=DOC_DFT;
} else } else
@@ -58,7 +58,7 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e)
de_flags=doc_e->de_flags&~(DOCG_BL_IV_UL|DOCEF_SEL| de_flags=doc_e->de_flags&~(DOCG_BL_IV_UL|DOCEF_SEL|
DOCEF_HIGHLIGHT|DOCEF_WORD_WRAP|DOCEF_SKIP|DOCEF_FILTER_SKIP); DOCEF_HIGHLIGHT|DOCEF_WORD_WRAP|DOCEF_SKIP|DOCEF_FILTER_SKIP);
for (i=0;i<DOCEf_NUM_FLAGS;i++) for (i=0;i<DOCEf_FLAGS_NUM;i++)
if (Bt(&f1,i)!=Bt(&de_flags,i)) { if (Bt(&f1,i)!=Bt(&de_flags,i)) {
if (Bt(&de_flags,i)) { if (Bt(&de_flags,i)) {
if (!(1<<i&DOCEG_HAS_ARG)) { if (!(1<<i&DOCEG_HAS_ARG)) {
@@ -92,7 +92,7 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e)
case DOCT_BACKGROUND: case DOCT_BACKGROUND:
case DOCT_DFT_FOREGROUND: case DOCT_DFT_FOREGROUND:
case DOCT_DFT_BACKGROUND: case DOCT_DFT_BACKGROUND:
if (doc->flags&DOCF_COLOR_NAMES && 0<=attr<NUM_COLORS) { if (doc->flags&DOCF_COLOR_NAMES && 0<=attr<COLORS_NUM) {
buf2=MStrPrint("%s%Z,",buf,doc_e->attr,"ST_COLORS"); buf2=MStrPrint("%s%Z,",buf,doc_e->attr,"ST_COLORS");
Free(buf); buf=buf2; Free(buf); buf=buf2;
break; break;
@@ -114,7 +114,7 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e)
buf2=MStrPrint("%s%d,",buf,doc_e->attr); buf2=MStrPrint("%s%d,",buf,doc_e->attr);
Free(buf); buf=buf2; Free(buf); buf=buf2;
} }
case DOCT_NUM_TYPES-1: //nobound switch case DOCT_TYPES_NUM-1: //nobound switch
break; break;
} }
de_flags=doc_e->de_flags & DOCEG_HAS_ARG; de_flags=doc_e->de_flags & DOCEG_HAS_ARG;
@@ -202,7 +202,7 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e)
case DOCEf_USER_DATA: case DOCEf_USER_DATA:
buf2=MStrPrint("%sU=0x%X,",buf,doc_e->user_data); buf2=MStrPrint("%sU=0x%X,",buf,doc_e->user_data);
break; break;
case DOCEf_NUM_FLAGS-1: //nobound switch case DOCEf_FLAGS_NUM-1: //nobound switch
break; break;
} }
Free(buf); buf=buf2; Free(buf); buf=buf2;
@@ -285,7 +285,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st)
else else
doc_e->attr=attr; doc_e->attr=attr;
break; break;
#assert DOCT_ERROR==DOCT_NUM_TYPES-1 #assert DOCT_ERROR==DOCT_TYPES_NUM-1
case DOCT_ERROR: case DOCT_ERROR:
goto pd_err; goto pd_err;
} }
@@ -460,7 +460,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st)
else else
goto pd_err; goto pd_err;
break; break;
case DOCEf_NUM_FLAGS-1: //nobound switch case DOCEf_FLAGS_NUM-1: //nobound switch
break; break;
} }
} }
+3 -3
View File
@@ -74,7 +74,7 @@ public U8 *FileNameForm(U8 *dft=NULL,I64 dof_flags=0,CTask *mem_task=NULL)
public U8 *PopUpFileName(U8 *dft=NULL,I64 dof_flags=0) public U8 *PopUpFileName(U8 *dft=NULL,I64 dof_flags=0)
{//Filename chooser. Uses form, not $LK,"FileMgr",A="MN:FileMgr"$(). {//Filename chooser. Uses form, not $LK,"FileMgr",A="MN:FileMgr"$().
U8 *st=MStrPrint("FileNameForm(\"%Q\",0x%X,Fs->parent_task);", U8 *st=MStrPrint("FileNameForm(\"%Q\",0x%X,Fs->parent_task);",
dft,dof_flags|DOF_MIN_SIZE),*res=PopUp(st,Fs); dft,dof_flags|DOF_SIZE_MIN),*res=PopUp(st,Fs);
Free(st); Free(st);
return res; return res;
} }
@@ -184,7 +184,7 @@ public U8 *PopUpGetStr(U8 *header=NULL)
return res; return res;
} }
public I64 PopUpGetI64(U8 *msg,I64 dft,I64 lo=MIN_I64,I64 hi=MAX_I64) public I64 PopUpGetI64(U8 *msg,I64 dft,I64 lo=I64_MIN,I64 hi=I64_MAX)
{//Prompt for I64 text expression in PopUp win task. {//Prompt for I64 text expression in PopUp win task.
U8 *st=MStrPrint("GetI64(0x%X,0x%X,0x%X,0x%X);",msg,dft,lo,hi); U8 *st=MStrPrint("GetI64(0x%X,0x%X,0x%X,0x%X);",msg,dft,lo,hi);
I64 res=PopUp(st,Fs); I64 res=PopUp(st,Fs);
@@ -192,7 +192,7 @@ public I64 PopUpGetI64(U8 *msg,I64 dft,I64 lo=MIN_I64,I64 hi=MAX_I64)
return res; return res;
} }
public F64 PopUpGetF64(U8 *msg,F64 dft,F64 lo=MIN_F64,F64 hi=MAX_F64) public F64 PopUpGetF64(U8 *msg,F64 dft,F64 lo=F64_MIN,F64 hi=F64_MAX)
{//Prompt for F64 text expression in PopUp win task. {//Prompt for F64 text expression in PopUp win task.
U8 *st=MStrPrint("GetF64(0x%X,0x%X(F64),0x%X(F64),0x%X(F64));",msg,dft,lo,hi); U8 *st=MStrPrint("GetF64(0x%X,0x%X(F64),0x%X(F64),0x%X(F64));",msg,dft,lo,hi);
F64 res=PopUp(st,Fs)(F64); F64 res=PopUp(st,Fs)(F64);
+7 -7
View File
@@ -255,9 +255,9 @@ I64 DocTmpAttr(CDoc *doc,CDocEntry *doc_e,I64 cur_u8_attr)
public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL) public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL)
{//Recalc and fmt. Also used by WinMgr to draw on scrn. {//Recalc and fmt. Also used by WinMgr to draw on scrn.
I64 i,ii,j,k,x,x0,y,y0,D,d2,col,col2,best_col=0,best_d=MAX_I64,xx,yy,zz, I64 i,ii,j,k,x,x0,y,y0,D,d2,col,col2,best_col=0,best_d=I64_MAX,xx,yy,zz,
num_entries=0,i_jif,cur_u8_attr,tmp_u32_attr, num_entries=0,i_jif,cur_u8_attr,tmp_u32_attr,
cursor_y=MIN_I64,left_margin,right_margin,y_plot_top,y_plot_bottom, cursor_y=I64_MIN,left_margin,right_margin,y_plot_top,y_plot_bottom,
top,left,bottom,right,width,height,scroll_x,scroll_y,pix_top,pix_left; top,left,bottom,right,width,height,scroll_x,scroll_y,pix_top,pix_left;
CDocEntry reg *doc_e,reg *doc_e2,*best_doc_e,*next_clear_found=NULL, CDocEntry reg *doc_e,reg *doc_e2,*best_doc_e,*next_clear_found=NULL,
*added_cursor=NULL; *added_cursor=NULL;
@@ -422,8 +422,8 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL)
skipped_update= doc_e==doc && doc->head.next!=doc; skipped_update= doc_e==doc && doc->head.next!=doc;
if (full_refresh) { if (full_refresh) {
doc->min_x=MAX_I32; doc->min_y=MAX_I32; doc->min_x=I32_MAX; doc->min_y=I32_MAX;
doc->max_x=MIN_I32; doc->max_y=MIN_I32; doc->max_x=I32_MIN; doc->max_y=I32_MIN;
} }
while (doc_e!=doc) { while (doc_e!=doc) {
while (TRUE) { while (TRUE) {
@@ -967,7 +967,7 @@ rc_adjust_xy:
dc->flags|=DCF_DONT_DRAW; dc->flags|=DCF_DONT_DRAW;
bptr=tmpb->data; bptr=tmpb->data;
ii=SpriteTypeMask(bptr); ii=SpriteTypeMask(bptr);
if (ii&1<<SPT_NUM_TYPES) { if (ii&1<<SPT_TYPES_NUM) {
bptr=gr.empty_sprite; bptr=gr.empty_sprite;
ii=SpriteTypeMask(bptr); ii=SpriteTypeMask(bptr);
} }
@@ -1042,7 +1042,7 @@ rc_adjust_xy:
doc_e->de_flags&DOCEF_TAG && doc_e->tag) doc_e->de_flags&DOCEF_TAG && doc_e->tag)
x-=StrLen(doc_e->tag); x-=StrLen(doc_e->tag);
break; break;
case DOCT_NUM_TYPES-1: //nobound switch case DOCT_TYPES_NUM-1: //nobound switch
default: default:
break; break;
} }
@@ -1178,7 +1178,7 @@ rc_skip:
} }
} }
} }
if (doc->flags & DOCF_MIN_SIZE) { if (doc->flags & DOCF_SIZE_MIN) {
if (Bt(&win_task->display_flags,DISPLAYf_NO_BORDER)) { if (Bt(&win_task->display_flags,DISPLAYf_NO_BORDER)) {
if (left<0) if (left<0)
left=0; left=0;
+1 -1
View File
@@ -173,7 +173,7 @@ public U0 DocCollapse(Bool collapse=TRUE,CDoc *doc=NULL)
} }
#help_index "DolDoc/Cmd Line (Typically);Cmd Line (Typically)" #help_index "DolDoc/Cmd Line (Typically);Cmd Line (Typically)"
public I64 DocMax(I64 i=MAX_I64) public I64 DocMax(I64 i=I64_MAX)
{//Set max document entries. (Cmd line buffer size.) {//Set max document entries. (Cmd line buffer size.)
//Adjusts the size of the cmd line buf. //Adjusts the size of the cmd line buf.
//Normally, the cmd line deletes entries //Normally, the cmd line deletes entries
+1 -1
View File
@@ -60,7 +60,7 @@ ft_done:
public Bool DocTreeMake(CDoc *doc,U8 *path) public Bool DocTreeMake(CDoc *doc,U8 *path)
{//Make registry-like tree widget. {//Make registry-like tree widget.
I64 i=0,j=MIN_I64,k=0; I64 i=0,j=I64_MIN,k=0;
U8 *st1=StrNew(path), U8 *st1=StrNew(path),
*st2=MAlloc(StrLen(path)+1), *st2=MAlloc(StrLen(path)+1),
*st3=StrNew(path); *st3=StrNew(path);
+6 -6
View File
@@ -21,13 +21,13 @@ See $LK,"::/Doc/DolDocOverview.DD"$
public class CDolDocGlbls public class CDolDocGlbls
{ {
CHashTable *hash; CHashTable *hash;
I64 dft_de_flags [DOCT_NUM_TYPES], I64 dft_de_flags [DOCT_TYPES_NUM],
type_flags_nontag_invis [(DOCT_NUM_TYPES+63)/64], type_flags_nontag_invis [(DOCT_TYPES_NUM+63)/64],
type_flags_form [(DOCT_NUM_TYPES+63)/64], type_flags_form [(DOCT_TYPES_NUM+63)/64],
type_flags_data [(DOCT_NUM_TYPES+63)/64], type_flags_data [(DOCT_TYPES_NUM+63)/64],
type_flags_chk_dup [(DOCT_NUM_TYPES+63)/64], type_flags_chk_dup [(DOCT_TYPES_NUM+63)/64],
clean_scan_codes [4]; clean_scan_codes [4];
I32 dft_type_flags [DOCT_NUM_TYPES]; I32 dft_type_flags [DOCT_TYPES_NUM];
} doldoc; } doldoc;
MemSet(&doldoc,0,sizeof(CDolDocGlbls)); MemSet(&doldoc,0,sizeof(CDolDocGlbls));
+1 -1
View File
@@ -19,8 +19,8 @@ MemSet(&god,0,sizeof(CGodGlbls));
god.doodle_fifo =FifoU8New(2048*8); god.doodle_fifo =FifoU8New(2048*8);
god.fifo =FifoU8New(2048*8); god.fifo =FifoU8New(2048*8);
extern U0 GodBiblePassage(I64 num_lines=20);
extern U0 GodBitsIns(I64 num_bits,I64 n); extern U0 GodBitsIns(I64 num_bits,I64 n);
extern U0 GodDoodle(U8 *hex=NULL); extern U0 GodDoodle(U8 *hex=NULL);
extern U0 GodBiblePassage(I64 num_lines=20);
extern U0 GodSong(); extern U0 GodSong();
extern U0 GodWord(I64 bits=17,Bool show_num=FALSE); extern U0 GodWord(I64 bits=17,Bool show_num=FALSE);
+1 -1
View File
@@ -147,7 +147,7 @@ public class CSpritePtMeshU8s : CSpriteBase
#define SPT_TEXT 27 //$LK,"CSpritePtStr",A="MN:CSpritePtStr"$ #define SPT_TEXT 27 //$LK,"CSpritePtStr",A="MN:CSpritePtStr"$
#define SPT_TEXT_BOX 28 //$LK,"CSpritePtStr",A="MN:CSpritePtStr"$ #define SPT_TEXT_BOX 28 //$LK,"CSpritePtStr",A="MN:CSpritePtStr"$
#define SPT_TEXT_DIAMOND 29 //$LK,"CSpritePtStr",A="MN:CSpritePtStr"$ #define SPT_TEXT_DIAMOND 29 //$LK,"CSpritePtStr",A="MN:CSpritePtStr"$
#define SPT_NUM_TYPES 30 #define SPT_TYPES_NUM 30
#define SPG_TYPE_MASK 0x7F #define SPG_TYPE_MASK 0x7F
#help_index "Graphics/Sprite;Sprites;Sprites/Binary" #help_index "Graphics/Sprite;Sprites;Sprites/Binary"
+7 -7
View File
@@ -178,7 +178,7 @@ public Bool GrTextBox3(CDC *dc=gr.dc,I64 x1,I64 y1,I64 z1,U8 *s,I64 border=2)
return ToBool(res); return ToBool(res);
} }
#define MAX_DIAMOND_SLOPE 2.75 #define DIAMOND_SLOPE_MAX 2.75
public Bool GrTextDiamond3(CDC *dc=gr.dc, public Bool GrTextDiamond3(CDC *dc=gr.dc,
I64 x1,I64 y1,I64 z1,U8 *_s,I64 border=2) I64 x1,I64 y1,I64 z1,U8 *_s,I64 border=2)
@@ -223,12 +223,12 @@ public Bool GrTextDiamond3(CDC *dc=gr.dc,
do { do {
dx_old=dx; dy_old=dy; dx_old=dx; dy_old=dy;
m=ToF64(dx)/dy; m=ToF64(dx)/dy;
if (m<1/MAX_DIAMOND_SLOPE) { if (m<1/DIAMOND_SLOPE_MAX) {
dy=MaxI64(dy,Ceil(MAX_DIAMOND_SLOPE*dx)); dy=MaxI64(dy,Ceil(DIAMOND_SLOPE_MAX*dx));
m=1/MAX_DIAMOND_SLOPE; m=1/DIAMOND_SLOPE_MAX;
} else if (m>MAX_DIAMOND_SLOPE) { } else if (m>DIAMOND_SLOPE_MAX) {
dy=MaxI64(dy,Ceil(dx/MAX_DIAMOND_SLOPE)); dy=MaxI64(dy,Ceil(dx/DIAMOND_SLOPE_MAX));
m=MAX_DIAMOND_SLOPE; m=DIAMOND_SLOPE_MAX;
} }
dx=MaxI64(dx,w+Ceil(m*AbsI64(y-y1))); dx=MaxI64(dx,w+Ceil(m*AbsI64(y-y1)));
dx=MaxI64(dx,w+Ceil(m*AbsI64(y+FONT_HEIGHT-y1))); dx=MaxI64(dx,w+Ceil(m*AbsI64(y+FONT_HEIGHT-y1)));
+15 -15
View File
@@ -149,7 +149,7 @@ public U0 DCRst(CDC *dc)
Mat4x4IdentEqu(dc->r); Mat4x4IdentEqu(dc->r);
dc->r_norm=GR_SCALE; dc->r_norm=GR_SCALE;
dc->flags&=~(DCF_SYMMETRY|DCF_TRANSFORMATION|DCF_JUST_MIRROR); dc->flags&=~(DCF_SYMMETRY|DCF_TRANSFORMATION|DCF_JUST_MIRROR);
MemCpy(dc->palette,gr_palette_std,sizeof(CBGR48)*NUM_COLORS); MemCpy(dc->palette,gr_palette_std,sizeof(CBGR48)*COLORS_NUM);
} }
public U0 DCExtentsInit(CDC *dc=NULL) public U0 DCExtentsInit(CDC *dc=NULL)
@@ -159,10 +159,10 @@ public U0 DCExtentsInit(CDC *dc=NULL)
//You should clear the record flag yourself //You should clear the record flag yourself
if (!dc) dc=gr.dc; if (!dc) dc=gr.dc;
dc->flags|=DCF_RECORD_EXTENTS; dc->flags|=DCF_RECORD_EXTENTS;
dc->min_x=MAX_I64; dc->min_x=I64_MAX;
dc->max_x=MIN_I64; dc->max_x=I64_MIN;
dc->min_y=MAX_I64; dc->min_y=I64_MAX;
dc->max_y=MIN_I64; dc->max_y=I64_MIN;
} }
public CDC *DCAlias(CDC *dc=NULL,CTask *task=NULL) public CDC *DCAlias(CDC *dc=NULL,CTask *task=NULL)
@@ -229,7 +229,7 @@ public I64 DCSize(CDC *dc)
public I32 *DCDepthBufRst(CDC *dc) public I32 *DCDepthBufRst(CDC *dc)
{//Reset device context depth buf to far away. {//Reset device context depth buf to far away.
if (dc->depth_buf) if (dc->depth_buf)
MemSetU32(dc->depth_buf,MAX_I32,dc->width_internal*dc->height); MemSetU32(dc->depth_buf,I32_MAX,dc->width_internal*dc->height);
return dc->depth_buf; return dc->depth_buf;
} }
@@ -288,7 +288,7 @@ public U8 *DCSave(CDC *dc,I64 *_size=NULL,I64 dcsf_flags=DCSF_COMPRESSED)
U8 *res,*ptr,*body; U8 *res,*ptr,*body;
CArcCompress *arc; CArcCompress *arc;
I64 body_size=dc->width_internal*dc->height,total_size,flags; I64 body_size=dc->width_internal*dc->height,total_size,flags;
CBGR48 palette[NUM_COLORS]; CBGR48 palette[COLORS_NUM];
if (dcsf_flags&DCSF_COMPRESSED) { if (dcsf_flags&DCSF_COMPRESSED) {
arc=CompressBuf(dc->body,body_size); arc=CompressBuf(dc->body,body_size);
@@ -308,10 +308,10 @@ public U8 *DCSave(CDC *dc,I64 *_size=NULL,I64 dcsf_flags=DCSF_COMPRESSED)
if (dcsf_flags&DCSF_PALETTE_GET) if (dcsf_flags&DCSF_PALETTE_GET)
GrPaletteGet(palette); GrPaletteGet(palette);
else else
MemCpy(palette,&dc->palette,NUM_COLORS*sizeof(CBGR48)); MemCpy(palette,&dc->palette,COLORS_NUM*sizeof(CBGR48));
if (MemCmp(palette,gr_palette_std,NUM_COLORS*sizeof(CBGR48))) { if (MemCmp(palette,gr_palette_std,COLORS_NUM*sizeof(CBGR48))) {
flags|=DCF_PALETTE; flags|=DCF_PALETTE;
total_size+=NUM_COLORS*sizeof(CBGR48); total_size+=COLORS_NUM*sizeof(CBGR48);
} }
ptr=res=MAlloc(total_size); ptr=res=MAlloc(total_size);
@@ -323,8 +323,8 @@ public U8 *DCSave(CDC *dc,I64 *_size=NULL,I64 dcsf_flags=DCSF_COMPRESSED)
#assert offset(CDC.end)==offset(CDC.palette) #assert offset(CDC.end)==offset(CDC.palette)
if (flags&DCF_PALETTE) { if (flags&DCF_PALETTE) {
MemCpy(ptr,palette,NUM_COLORS*sizeof(CBGR48)); MemCpy(ptr,palette,COLORS_NUM*sizeof(CBGR48));
ptr+=NUM_COLORS*sizeof(CBGR48); ptr+=COLORS_NUM*sizeof(CBGR48);
} }
MemCpy(ptr,body,body_size); MemCpy(ptr,body,body_size);
@@ -349,10 +349,10 @@ public CDC *DCLoad(U8 *src,I64 *_size=NULL,CTask *task=NULL)
ptr+=offset(CDC.end)-offset(CDC.start); ptr+=offset(CDC.end)-offset(CDC.start);
if (res->flags&DCF_PALETTE) { if (res->flags&DCF_PALETTE) {
MemCpy(&res->palette,ptr,NUM_COLORS*sizeof(CBGR48)); MemCpy(&res->palette,ptr,COLORS_NUM*sizeof(CBGR48));
ptr+=NUM_COLORS*sizeof(CBGR48); ptr+=COLORS_NUM*sizeof(CBGR48);
} else } else
MemCpy(&res->palette,gr_palette_std,NUM_COLORS*sizeof(CBGR48)); MemCpy(&res->palette,gr_palette_std,COLORS_NUM*sizeof(CBGR48));
body_size=res->width_internal*res->height; body_size=res->width_internal*res->height;
if (res->flags&DCF_COMPRESSED) { if (res->flags&DCF_COMPRESSED) {
+9 -9
View File
@@ -25,16 +25,16 @@ public class CGrGlbls
U0 (*fp_draw_grab_ms)(CDC *dc,I64 x,I64 y,Bool closed); U0 (*fp_draw_grab_ms)(CDC *dc,I64 x,I64 y,Bool closed);
U8 *empty_sprite; //Gets assigned $LK,"gr.empty_sprite",A="FF:::/Adam/AMouse.HC,empty_sprite"$ U8 *empty_sprite; //Gets assigned $LK,"gr.empty_sprite",A="FF:::/Adam/AMouse.HC,empty_sprite"$
#define GR_NUM_PEN_BRUSHES 64 #define GR_PEN_BRUSHES_NUM 64
CDC *pen_brushes[GR_NUM_PEN_BRUSHES], CDC *pen_brushes[GR_PEN_BRUSHES_NUM],
*collision_pen_brushes[GR_NUM_PEN_BRUSHES], *collision_pen_brushes[GR_PEN_BRUSHES_NUM],
*even_pen_brushes[GR_NUM_PEN_BRUSHES], *even_pen_brushes[GR_PEN_BRUSHES_NUM],
*odd_pen_brushes[GR_NUM_PEN_BRUSHES]; *odd_pen_brushes[GR_PEN_BRUSHES_NUM];
I8 circle_lo[GR_NUM_PEN_BRUSHES][GR_NUM_PEN_BRUSHES], I8 circle_lo[GR_PEN_BRUSHES_NUM][GR_PEN_BRUSHES_NUM],
circle_hi[GR_NUM_PEN_BRUSHES][GR_NUM_PEN_BRUSHES]; circle_hi[GR_PEN_BRUSHES_NUM][GR_PEN_BRUSHES_NUM];
#define GR_MAX_SCRN_ZOOM 8 #define GR_SCRN_ZOOM_MAX 8
U8 *scrn_zoom_tables[GR_MAX_SCRN_ZOOM+1]; U8 *scrn_zoom_tables[GR_SCRN_ZOOM_MAX+1];
I64 scrn_zoom,sx,sy; I64 scrn_zoom,sx,sy;
//When zoomed, this keeps the mouse centered. //When zoomed, this keeps the mouse centered.
+2 -2
View File
@@ -18,7 +18,7 @@ U0 GrSetUpTables()
for (j=0;j<8;j++) for (j=0;j<8;j++)
gr.to_8_colors(U8 *)[k++]=i; gr.to_8_colors(U8 *)[k++]=i;
for (i=0;i<GR_NUM_PEN_BRUSHES;i++) { for (i=0;i<GR_PEN_BRUSHES_NUM;i++) {
k=i+1; k=i+1;
rr=k*k; rr=k*k;
@@ -77,7 +77,7 @@ U0 GrSetUpTables()
// MemSet(text.vga_alias,0,GR_HEIGHT*GR_WIDTH>>3); // MemSet(text.vga_alias,0,GR_HEIGHT*GR_WIDTH>>3);
MemSet(gr.scrn_image->body,0,GR_WIDTH*GR_HEIGHT>>1); MemSet(gr.scrn_image->body,0,GR_WIDTH*GR_HEIGHT>>1);
} }
for (i=1;i<=GR_MAX_SCRN_ZOOM;i++) { for (i=1;i<=GR_SCRN_ZOOM_MAX;i++) {
dst=gr.scrn_zoom_tables[i]=MAlloc(256*i); dst=gr.scrn_zoom_tables[i]=MAlloc(256*i);
for (j=0;j<256;j++) { for (j=0;j<256;j++) {
m=0; m=0;
+5 -5
View File
@@ -16,7 +16,7 @@ U0 GrPaletteIndicesSet()
while (LBts(&sys_semas[SEMA_VGA],0)) while (LBts(&sys_semas[SEMA_VGA],0))
Yield; Yield;
InU8(VGAP_INPUT_STAT); //Rsts attr index/data InU8(VGAP_INPUT_STAT); //Rsts attr index/data
for (i=0;i<NUM_COLORS;i++) { for (i=0;i<COLORS_NUM;i++) {
OutU8(VGAP_ATTR_INDEX,i); OutU8(VGAP_ATTR_INDEX,i);
OutU8(VGAP_ATTR_DATA_WRITE,i); OutU8(VGAP_ATTR_DATA_WRITE,i);
} }
@@ -61,13 +61,13 @@ public CBGR48 GrPaletteColorGet(I64 color_num)
return res; return res;
} }
public CBGR48 gr_palette_std[NUM_COLORS]={ public CBGR48 gr_palette_std[COLORS_NUM]={
0x000000000000,0x00000000AAAA,0x0000AAAA0000,0x0000AAAAAAAA, 0x000000000000,0x00000000AAAA,0x0000AAAA0000,0x0000AAAAAAAA,
0xAAAA00000000,0xAAAA0000AAAA,0xAAAA55550000,0xAAAAAAAAAAAA, 0xAAAA00000000,0xAAAA0000AAAA,0xAAAA55550000,0xAAAAAAAAAAAA,
0x555555555555,0x55555555FFFF,0x5555FFFF5555,0x5555FFFFFFFF, 0x555555555555,0x55555555FFFF,0x5555FFFF5555,0x5555FFFFFFFF,
0xFFFF55555555,0xFFFF5555FFFF,0xFFFFFFFF5555,0xFFFFFFFFFFFF}; 0xFFFF55555555,0xFFFF5555FFFF,0xFFFFFFFF5555,0xFFFFFFFFFFFF};
public CBGR48 gr_palette_gray[NUM_COLORS]={ public CBGR48 gr_palette_gray[COLORS_NUM]={
0x000000000000,0x111111111111,0x222222222222,0x333333333333, 0x000000000000,0x111111111111,0x222222222222,0x333333333333,
0x444444444444,0x555555555555,0x666666666666,0x777777777777, 0x444444444444,0x555555555555,0x666666666666,0x777777777777,
0x888888888888,0x999999999999,0xAAAAAAAAAAAA,0xBBBBBBBBBBBB, 0x888888888888,0x999999999999,0xAAAAAAAAAAAA,0xBBBBBBBBBBBB,
@@ -76,14 +76,14 @@ public CBGR48 gr_palette_gray[NUM_COLORS]={
public U0 GrPaletteGet(CBGR48 *bgr48) public U0 GrPaletteGet(CBGR48 *bgr48)
{//16 colors {//16 colors
I64 i; I64 i;
for (i=0;i<NUM_COLORS;i++) for (i=0;i<COLORS_NUM;i++)
bgr48[i]=GrPaletteColorGet(i); bgr48[i]=GrPaletteColorGet(i);
} }
public U0 GrPaletteSet(CBGR48 *bgr48) public U0 GrPaletteSet(CBGR48 *bgr48)
{//16 colors {//16 colors
I64 i; I64 i;
for (i=0;i<NUM_COLORS;i++) for (i=0;i<COLORS_NUM;i++)
GrPaletteColorSet(i,bgr48[i]); GrPaletteColorSet(i,bgr48[i]);
} }
+10 -10
View File
@@ -280,7 +280,7 @@ I64 GrFillSemiCircle(CDC *dc=gr.dc,I64 cx,I64 cy,I64 z=0,I64 diameter,I64 n)
if (diameter>=1) if (diameter>=1)
switch (n) { switch (n) {
case 0: case 0:
if (diameter<GR_NUM_PEN_BRUSHES) if (diameter<GR_PEN_BRUSHES_NUM)
for (i=0;i<r;i++) for (i=0;i<r;i++)
res+=GrHLine(dc,gr.circle_lo[diameter][i]+cx, res+=GrHLine(dc,gr.circle_lo[diameter][i]+cx,
gr.circle_hi[diameter][i]+cx,cy+i-r,z,z); gr.circle_hi[diameter][i]+cx,cy+i-r,z,z);
@@ -293,7 +293,7 @@ I64 GrFillSemiCircle(CDC *dc=gr.dc,I64 cx,I64 cy,I64 z=0,I64 diameter,I64 n)
} }
break; break;
case 1: case 1:
if (diameter<GR_NUM_PEN_BRUSHES) if (diameter<GR_PEN_BRUSHES_NUM)
for (i=r+1;i<diameter;i++) for (i=r+1;i<diameter;i++)
res+=GrHLine(dc,gr.circle_lo[diameter][i]+cx, res+=GrHLine(dc,gr.circle_lo[diameter][i]+cx,
gr.circle_hi[diameter][i]+cx,cy+i-r,z,z); gr.circle_hi[diameter][i]+cx,cy+i-r,z,z);
@@ -306,7 +306,7 @@ I64 GrFillSemiCircle(CDC *dc=gr.dc,I64 cx,I64 cy,I64 z=0,I64 diameter,I64 n)
} }
break; break;
case 2: case 2:
if (diameter<GR_NUM_PEN_BRUSHES) if (diameter<GR_PEN_BRUSHES_NUM)
for (i=0;i<r;i++) for (i=0;i<r;i++)
res+=GrVLine(dc,cx+i-r,gr.circle_lo[diameter][i]+cy, res+=GrVLine(dc,cx+i-r,gr.circle_lo[diameter][i]+cy,
gr.circle_hi[diameter][i]+cy,z,z); gr.circle_hi[diameter][i]+cy,z,z);
@@ -319,7 +319,7 @@ I64 GrFillSemiCircle(CDC *dc=gr.dc,I64 cx,I64 cy,I64 z=0,I64 diameter,I64 n)
} }
break; break;
case 3: case 3:
if (diameter<GR_NUM_PEN_BRUSHES) if (diameter<GR_PEN_BRUSHES_NUM)
for (i=r+1;i<diameter;i++) for (i=r+1;i<diameter;i++)
res+=GrVLine(dc,cx+i-r,gr.circle_lo[diameter][i]+cy, res+=GrVLine(dc,cx+i-r,gr.circle_lo[diameter][i]+cy,
gr.circle_hi[diameter][i]+cy,z,z); gr.circle_hi[diameter][i]+cy,z,z);
@@ -332,7 +332,7 @@ I64 GrFillSemiCircle(CDC *dc=gr.dc,I64 cx,I64 cy,I64 z=0,I64 diameter,I64 n)
} }
break; break;
case 4: case 4:
if (diameter<GR_NUM_PEN_BRUSHES) if (diameter<GR_PEN_BRUSHES_NUM)
for (i=0;i<r;i++) for (i=0;i<r;i++)
res+=GrHLine(dc,gr.circle_lo[diameter][i]+cx, res+=GrHLine(dc,gr.circle_lo[diameter][i]+cx,
gr.circle_hi[diameter][i]+cx,cy+i-r,z,z); gr.circle_hi[diameter][i]+cx,cy+i-r,z,z);
@@ -345,7 +345,7 @@ I64 GrFillSemiCircle(CDC *dc=gr.dc,I64 cx,I64 cy,I64 z=0,I64 diameter,I64 n)
} }
break; break;
case 5: case 5:
if (diameter<GR_NUM_PEN_BRUSHES) if (diameter<GR_PEN_BRUSHES_NUM)
for (i=r+1;i<diameter;i++) for (i=r+1;i<diameter;i++)
res+=GrHLine(dc,gr.circle_lo[diameter][i]+cx, res+=GrHLine(dc,gr.circle_lo[diameter][i]+cx,
gr.circle_hi[diameter][i]+cx,cy+i-r,z,z); gr.circle_hi[diameter][i]+cx,cy+i-r,z,z);
@@ -358,7 +358,7 @@ I64 GrFillSemiCircle(CDC *dc=gr.dc,I64 cx,I64 cy,I64 z=0,I64 diameter,I64 n)
} }
break; break;
case 6: case 6:
if (diameter<GR_NUM_PEN_BRUSHES) if (diameter<GR_PEN_BRUSHES_NUM)
for (i=0;i<r;i++) for (i=0;i<r;i++)
res+=GrVLine(dc,cx+i-r,gr.circle_lo[diameter][i]+cy, res+=GrVLine(dc,cx+i-r,gr.circle_lo[diameter][i]+cy,
gr.circle_hi[diameter][i]+cy,z,z); gr.circle_hi[diameter][i]+cy,z,z);
@@ -371,7 +371,7 @@ I64 GrFillSemiCircle(CDC *dc=gr.dc,I64 cx,I64 cy,I64 z=0,I64 diameter,I64 n)
} }
break; break;
case 7: case 7:
if (diameter<GR_NUM_PEN_BRUSHES) if (diameter<GR_PEN_BRUSHES_NUM)
for (i=r+1;i<diameter;i++) for (i=r+1;i<diameter;i++)
res+=GrVLine(dc,cx+i-r,gr.circle_lo[diameter][i]+cy, res+=GrVLine(dc,cx+i-r,gr.circle_lo[diameter][i]+cy,
gr.circle_hi[diameter][i]+cy,z,z); gr.circle_hi[diameter][i]+cy,z,z);
@@ -391,7 +391,7 @@ public I64 GrFillCircle(CDC *dc=gr.dc,I64 cx,I64 cy,I64 z=0,I64 diameter)
{//2D. Clipping but not transformation. {//2D. Clipping but not transformation.
I64 res=0,i,k,r=diameter>>1,rr; I64 res=0,i,k,r=diameter>>1,rr;
if (diameter>=1) { if (diameter>=1) {
if (diameter<GR_NUM_PEN_BRUSHES) if (diameter<GR_PEN_BRUSHES_NUM)
for (i=0;i<diameter;i++) for (i=0;i<diameter;i++)
res+=GrHLine(dc,gr.circle_lo[diameter][i]+cx, res+=GrHLine(dc,gr.circle_lo[diameter][i]+cx,
gr.circle_hi[diameter][i]+cx,cy+i-r,z,z); gr.circle_hi[diameter][i]+cx,cy+i-r,z,z);
@@ -462,7 +462,7 @@ public Bool GrPlot3(CDC *dc=gr.dc,I64 x,I64 y,I64 z)
dc->db_z=z; dc->db_z=z;
if (dc->brush || w<=0) if (dc->brush || w<=0)
GrPlot1(dc,x,y); GrPlot1(dc,x,y);
else if (dc->pen_width<GR_NUM_PEN_BRUSHES) { else if (dc->pen_width<GR_PEN_BRUSHES_NUM) {
if (dc->color.c0.rop!=ROPB_COLLISION) if (dc->color.c0.rop!=ROPB_COLLISION)
dc->color.c0.rop=ROPB_MONO; dc->color.c0.rop=ROPB_MONO;
if (dc->depth_buf) { if (dc->depth_buf) {
+1 -1
View File
@@ -94,7 +94,7 @@ U0 GrUpdateTasks()
U0 GrFixZoomScale() U0 GrFixZoomScale()
{ {
gr.scrn_zoom=ClampI64(gr.scrn_zoom,1,GR_MAX_SCRN_ZOOM); gr.scrn_zoom=ClampI64(gr.scrn_zoom,1,GR_SCRN_ZOOM_MAX);
if (gr.scrn_zoom==1) { if (gr.scrn_zoom==1) {
gr.sx=0; gr.sx=0;
gr.sy=0; gr.sy=0;
+7 -7
View File
@@ -28,7 +28,7 @@ public U0 Sprite3(CDC *dc=gr.dc,I64 x,I64 y,I64 z,U8 *elems,
CGrSym old_sym; CGrSym old_sym;
MemCpy(&old_sym,&dc->sym,sizeof(CGrSym)); MemCpy(&old_sym,&dc->sym,sizeof(CGrSym));
if (dc->flags & DCF_LOCATE_NEAREST) if (dc->flags & DCF_LOCATE_NEAREST)
dc->nearest_dist=MAX_I64; dc->nearest_dist=I64_MAX;
while (tmpg->type&SPG_TYPE_MASK) { while (tmpg->type&SPG_TYPE_MASK) {
switch (tmpg->type&SPG_TYPE_MASK) { switch (tmpg->type&SPG_TYPE_MASK) {
case SPT_COLOR: case SPT_COLOR:
@@ -293,16 +293,16 @@ public U0 Sprite3ZB(CDC *dc=gr.dc,I64 x,I64 y,I64 z,U8 *elems,F64
public U0 SpriteExtents(U8 *elems,I64 *min_x=NULL,I64 *max_x=NULL, public U0 SpriteExtents(U8 *elems,I64 *min_x=NULL,I64 *max_x=NULL,
I64 *min_y=NULL,I64 *max_y=NULL) I64 *min_y=NULL,I64 *max_y=NULL)
{//Ignores flood fills. {//Ignores flood fills.
CDC *dc=DCNew(MAX_I32,MAX_I32,Fs,TRUE); CDC *dc=DCNew(I32_MAX,I32_MAX,Fs,TRUE);
DCExtentsInit(dc); DCExtentsInit(dc);
Sprite3(dc,MAX_I32/2,MAX_I32/2,MAX_I32/2,elems); Sprite3(dc,I32_MAX/2,I32_MAX/2,I32_MAX/2,elems);
if (dc->min_x<=dc->max_x) { if (dc->min_x<=dc->max_x) {
dc->min_x-=MAX_I32/2; dc->min_x-=I32_MAX/2;
dc->max_x-=MAX_I32/2; dc->max_x-=I32_MAX/2;
} }
if (dc->min_y<=dc->max_y) { if (dc->min_y<=dc->max_y) {
dc->min_y-=MAX_I32/2; dc->min_y-=I32_MAX/2;
dc->max_y-=MAX_I32/2; dc->max_y-=I32_MAX/2;
} }
if (min_x) *min_x=dc->min_x; if (min_x) *min_x=dc->min_x;
if (max_x) *max_x=dc->max_x; if (max_x) *max_x=dc->max_x;
+2 -2
View File
@@ -661,7 +661,7 @@ U0 SpriteSideBarTask(CTask *parent,CSprite **_head,I64 *_cur_elem_num)
CDocEntry *doc_e; CDocEntry *doc_e;
CDoc *doc=DocPut; CDoc *doc=DocPut;
Spawn(&SpriteSideBarTask2,parent,"CSpriteTask",,Fs); Spawn(&SpriteSideBarTask2,parent,"CSpriteTask",,Fs);
doc->flags|=DOCF_MIN_SIZE|DOCF_FORM; doc->flags|=DOCF_SIZE_MIN|DOCF_FORM;
while (TRUE) { while (TRUE) {
SpriteSideBarPickNew(doc,*_head,*_cur_elem_num); SpriteSideBarPickNew(doc,*_head,*_cur_elem_num);
DocHighlightCursor(,doc); DocHighlightCursor(,doc);
@@ -977,7 +977,7 @@ Bool SpriteSelUnselShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode)
case SPED_UNSEL: case SPED_UNSEL:
case SPED_SHIFT_PTS: case SPED_SHIFT_PTS:
xx=arg1; yy=arg2; xx=arg1; yy=arg2;
best_dd=MAX_I64; best_dd=I64_MAX;
tmpes=head.next; tmpes=head.next;
while (tmpes!=&head) { while (tmpes!=&head) {
switch (tmpes->type) { switch (tmpes->type) {
+4 -4
View File
@@ -76,7 +76,7 @@ CMeshEdTri *MeshTriNew(CMeshFrame *e,CColorROPU32 color,
CMeshEdVertex *MeshVertexFindScrPt(CMeshFrame *e,I64 x,I64 y) CMeshEdVertex *MeshVertexFindScrPt(CMeshFrame *e,I64 x,I64 y)
{//Scrn coordinates {//Scrn coordinates
CMeshEdVertex *res=NULL,*tmpv=e->vertex_head.next; CMeshEdVertex *res=NULL,*tmpv=e->vertex_head.next;
I64 dd,dz,best_dd=MAX_I64,best_dz=MAX_I64; I64 dd,dz,best_dd=I64_MAX,best_dz=I64_MAX;
while (tmpv!=&e->vertex_head) { while (tmpv!=&e->vertex_head) {
if (!(tmpv->flags&VF_IGNORE)) { if (!(tmpv->flags&VF_IGNORE)) {
dd=SqrI64(x-tmpv->pt.x)+SqrI64(y-tmpv->pt.y); dd=SqrI64(x-tmpv->pt.x)+SqrI64(y-tmpv->pt.y);
@@ -1358,7 +1358,7 @@ me_clipboard_cut:
p0b.y=ms.presnap.y; p0b.y=ms.presnap.y;
p0b.z=e.ms_z; p0b.z=e.ms_z;
adjusting_z=TRUE; adjusting_z=TRUE;
Snd(ClampI64(Freq2Ona(3*e.ms_z+1500),0,MAX_I8)); Snd(ClampI64(Freq2Ona(3*e.ms_z+1500),0,I8_MAX));
} }
} }
break; break;
@@ -1432,7 +1432,7 @@ me_clipboard_cut:
p0b.y=ms.presnap.y; p0b.y=ms.presnap.y;
p0b.z=e.ms_z; p0b.z=e.ms_z;
adjusting_z=TRUE; adjusting_z=TRUE;
Snd(ClampI64(Freq2Ona(3*e.ms_z+1500),0,MAX_I8)); Snd(ClampI64(Freq2Ona(3*e.ms_z+1500),0,I8_MAX));
} }
break; break;
case MSG_MS_R_UP: case MSG_MS_R_UP:
@@ -1472,7 +1472,7 @@ me_clipboard_cut:
e.ms_z=RoundI64(Sign(p0b.y-ms.presnap.y) e.ms_z=RoundI64(Sign(p0b.y-ms.presnap.y)
*Sqrt(Sqr(p0b.x-ms.presnap.x)+Sqr(p0b.y-ms.presnap.y)) *Sqrt(Sqr(p0b.x-ms.presnap.x)+Sqr(p0b.y-ms.presnap.y))
+p0b.z,e.cur_snap); +p0b.z,e.cur_snap);
Snd(ClampI64(Freq2Ona(3*e.ms_z+1500),0,MAX_I8)); Snd(ClampI64(Freq2Ona(3*e.ms_z+1500),0,I8_MAX));
} }
if (moving) { if (moving) {
MeshCursorW(&e,Fs,&x,&y,&z); MeshCursorW(&e,Fs,&x,&y,&z);
+3 -3
View File
@@ -3,7 +3,7 @@
U8 polypt_map[9]={0,1,2,3,0,4,5,6,7}; U8 polypt_map[9]={0,1,2,3,0,4,5,6,7};
I64 sprite_elem_base_sizes[SPT_NUM_TYPES]={ I64 sprite_elem_base_sizes[SPT_TYPES_NUM]={
sizeof(CSpriteBase), //SPT_END sizeof(CSpriteBase), //SPT_END
sizeof(CSpriteColor), //SPT_COLOR sizeof(CSpriteColor), //SPT_COLOR
sizeof(CSpriteDitherColor), //SPT_DITHER_COLOR sizeof(CSpriteDitherColor), //SPT_DITHER_COLOR
@@ -90,8 +90,8 @@ I64 SpriteTypeMask(U8 *elems)
I64 res=0; I64 res=0;
CSprite *tmpg=elems-offset(CSprite.start); CSprite *tmpg=elems-offset(CSprite.start);
while (tmpg->type&SPG_TYPE_MASK) { while (tmpg->type&SPG_TYPE_MASK) {
if (tmpg->type&SPG_TYPE_MASK>=SPT_NUM_TYPES) if (tmpg->type&SPG_TYPE_MASK>=SPT_TYPES_NUM)
return 1<<SPT_NUM_TYPES; return 1<<SPT_TYPES_NUM;
Bts(&res,tmpg->type&SPG_TYPE_MASK); Bts(&res,tmpg->type&SPG_TYPE_MASK);
tmpg(U8 *)+=SpriteElemSize(tmpg); tmpg(U8 *)+=SpriteElemSize(tmpg);
} }
+1 -1
View File
@@ -9,7 +9,7 @@ public Bool HostChgDsk(U8 *iso_filename)
WinBorder; WinBorder;
WinMax; WinMax;
DocClear; DocClear;
"$$PURPLE$$$$TX+CX,\"Change CD/DVD\"$$$$FG$$\n\n\n\n"; "$$PURPLE$$$$TX+CX,\"Set to %s\"$$$$FG$$\n\n\n\n",iso_filename;
switch (ins_reg.host_vm) { switch (ins_reg.host_vm) {
case VM_VMWARE: case VM_VMWARE:
if (IsDotC(iso_filename)) if (IsDotC(iso_filename))
+3 -3
View File
@@ -122,14 +122,14 @@ Bool InSetMsPlot(I64 mS,I64 x,I64 y,I64 z)
return TRUE; return TRUE;
} }
public U0 InSetMs(I64 mS=7,I64 x=MAX_I64,I64 y=MAX_I64,I64 z=MAX_I64, public U0 InSetMs(I64 mS=7,I64 x=I64_MAX,I64 y=I64_MAX,I64 z=I64_MAX,
I64 l=MAX_I64,I64 r=MAX_I64) I64 l=I64_MAX,I64 r=I64_MAX)
{//Move mouse to spot at certain speed. {//Move mouse to spot at certain speed.
if (!(0<=x<GR_WIDTH)) if (!(0<=x<GR_WIDTH))
x=ms.pos.x; x=ms.pos.x;
if (!(0<=y<GR_HEIGHT)) if (!(0<=y<GR_HEIGHT))
y=ms.pos.y; y=ms.pos.y;
if (z==MAX_I64) if (z==I64_MAX)
z=ms.pos.z; z=ms.pos.z;
if (!(FALSE<=l<=TRUE)) if (!(FALSE<=l<=TRUE))
l=ms.lb; l=ms.lb;
+2 -2
View File
@@ -1,4 +1,4 @@
#help_index "Misc/Install Registration" #help_index "Registry/Install Registration"
public CInsReg ins_reg; public CInsReg ins_reg;
MemSet(&ins_reg,0,sizeof(CInsReg)); MemSet(&ins_reg,0,sizeof(CInsReg));
@@ -31,7 +31,7 @@ public Bool InsReg(U8 drv_let=0,I64 action=RR_REGISTER)
if (drv_let) if (drv_let)
*sys_registry_doc->filename.name=drv_let; *sys_registry_doc->filename.name=drv_let;
RegWrite("Adam/InsReg", RegWrite("Adam/InsReg",
"#help_index \"Misc/Install Registration\"\n" "#help_index \"Registry/Install Registration\"\n"
"MemSet(&ins_reg,0,sizeof(CInsReg));\n" "MemSet(&ins_reg,0,sizeof(CInsReg));\n"
"ins_reg.registered=%d;\n" "ins_reg.registered=%d;\n"
"ins_reg.host_os=%d;\n" "ins_reg.host_os=%d;\n"
+1 -1
View File
@@ -1,5 +1,5 @@
//See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$ or $LK,"Upgrading Documentation",A="FI:::/Doc/Upgrade.DD"$. //See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$ or $LK,"Upgrading Documentation",A="FI:::/Doc/Upgrade.DD"$.
//Study my account examples: $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOSDistro.HC,1"$ //Study my account examples: $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOS/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOS/TOSDistro.HC,1"$
#include "BootDVD" #include "BootDVD"
#include "DskISORedSea" #include "DskISORedSea"
+1 -1
View File
@@ -1,5 +1,5 @@
//See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$ or $LK,"Upgrading Documentation",A="FI:::/Doc/Upgrade.DD"$. //See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$ or $LK,"Upgrading Documentation",A="FI:::/Doc/Upgrade.DD"$.
//Study my account examples: $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOSDistro.HC,1"$ //Study my account examples: $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOS/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOS/TOSDistro.HC,1"$
#include "BootHD" #include "BootHD"
+1 -1
View File
@@ -1,5 +1,5 @@
//See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$ or $LK,"Upgrading Documentation",A="FI:::/Doc/Upgrade.DD"$. //See $LK,"Install Documentation",A="FI:::/Doc/Install.DD"$ or $LK,"Upgrading Documentation",A="FI:::/Doc/Upgrade.DD"$.
//Study my account examples: $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOSDistro.HC,1"$ //Study my account examples: $LK,"Cfg Strs",A="FL:::/Demo/AcctExample/TOS/TOSCfg.HC,1"$, $LK,"Update Funs",A="FL:::/Demo/AcctExample/TOS/TOSDistro.HC,1"$
#include "BootMHD" #include "BootMHD"
#include "BootMHD2" #include "BootMHD2"
+1 -1
View File
@@ -36,7 +36,7 @@ public U0 BootRAM(U8 *filename=NULL)
CKernel *hi_image,*lo_image=mem_boot_base-sizeof(CBinFile), CKernel *hi_image,*lo_image=mem_boot_base-sizeof(CBinFile),
reg *sys_ram_reboot; reg *sys_ram_reboot;
if (!filename) if (!filename)
filename="::/Kernel/" KERNEL_BIN_C; filename="::/" KERNEL_BIN_C;
do if (!(hi_image=FileRead(filename,&size))) return; do if (!(hi_image=FileRead(filename,&size))) return;
while (hi_image<0x100000); //If alloc from low 640K, just get another copy. while (hi_image<0x100000); //If alloc from low 640K, just get another copy.
+6 -2
View File
@@ -142,15 +142,18 @@ public I64 RedSeaISO(U8 *_iso_filename=NULL,U8 *_src_dir,
CDrv *dv=DrvMakeFreeSlot(DrvNextFreeLet('Q')); //First $LK,"BDT_ISO_FILE_WRITE",A="MN:BDT_ISO_FILE_WRITE"$ CDrv *dv=DrvMakeFreeSlot(DrvNextFreeLet('Q')); //First $LK,"BDT_ISO_FILE_WRITE",A="MN:BDT_ISO_FILE_WRITE"$
CBlkDev *bd=BlkDevNextFreeSlot(dv->drv_let,BDT_ISO_FILE_WRITE); CBlkDev *bd=BlkDevNextFreeSlot(dv->drv_let,BDT_ISO_FILE_WRITE);
if (!IsDir(_src_dir))
PrintErr("'%s' is not a dir.\n",_src_dir);
else {
if (!_iso_filename) if (!_iso_filename)
_iso_filename=blkdev.dft_iso_filename; _iso_filename=blkdev.dft_iso_c_filename;
iso_filename=ChgExt(_iso_filename,"ISO.C"); iso_filename=ChgExt(_iso_filename,"ISO.C");
src_dir=DirNameAbs(_src_dir); src_dir=DirNameAbs(_src_dir);
if (_stage2_filename) { if (_stage2_filename) {
stage2_filename=FileNameAbs(_stage2_filename); stage2_filename=FileNameAbs(_stage2_filename);
*stage2_filename=dv->drv_let; *stage2_filename=dv->drv_let;
i=StrLen(src_dir); i=StrLen(src_dir);
if (i!=3) //If not head if (i!=3) //If not root
i++; //Skip slash i++; //Skip slash
StrCpy(stage2_filename+3,stage2_filename+i); StrCpy(stage2_filename+3,stage2_filename+i);
} else } else
@@ -180,5 +183,6 @@ public I64 RedSeaISO(U8 *_iso_filename=NULL,U8 *_src_dir,
Free(stage2_filename); Free(stage2_filename);
Free(src_dir); Free(src_dir);
Free(iso_filename); Free(iso_filename);
}
return res; return res;
} }
+17 -17
View File
@@ -1,6 +1,6 @@
#help_index "Graphics/Windows BMP Files" #help_index "Graphics/Windows BMP Files"
#define NUM_BMP_COLORS 16 #define BMP_COLORS_NUM 16
class CFileBMP class CFileBMP
{ {
@@ -23,13 +23,13 @@ class CFileBMP
U0 end; U0 end;
CBGR24 palette[NUM_BMP_COLORS]; CBGR24 palette[BMP_COLORS_NUM];
}; };
public CFileBMP *BMP4To(CDC *dc) public CFileBMP *BMP4To(CDC *dc)
{//To Windows 4-bit BMP. {//To Windows 4-bit BMP.
U8 *src,*ptr; U8 *src,*ptr;
CBGR48 palette[NUM_COLORS]; CBGR48 palette[COLORS_NUM];
I64 i,x,y,w=dc->width>>1, I64 i,x,y,w=dc->width>>1,
size=sizeof(CFileBMP)+dc->width*dc->height>>1; size=sizeof(CFileBMP)+dc->width*dc->height>>1;
CFileBMP *bmp =CAlloc(size); CFileBMP *bmp =CAlloc(size);
@@ -43,8 +43,8 @@ public CFileBMP *BMP4To(CDC *dc)
bmp->bit_cnt =4; bmp->bit_cnt =4;
bmp->image_size =dc->width*dc->height>>1; bmp->image_size =dc->width*dc->height>>1;
GrPaletteGet(palette); GrPaletteGet(palette);
#assert NUM_COLORS==NUM_BMP_COLORS #assert COLORS_NUM==BMP_COLORS_NUM
for (i=0;i<NUM_BMP_COLORS;i++) { for (i=0;i<BMP_COLORS_NUM;i++) {
bmp->palette[i].b=palette[i].b>>8; bmp->palette[i].b=palette[i].b>>8;
bmp->palette[i].g=palette[i].g>>8; bmp->palette[i].g=palette[i].g>>8;
bmp->palette[i].r=palette[i].r>>8; bmp->palette[i].r=palette[i].r>>8;
@@ -66,7 +66,7 @@ public CFileBMP *BMPRLE4To(CDC *dc)
{//To Windows RLE4 bit BMP. {//To Windows RLE4 bit BMP.
U8 *src,*ptr,*start; U8 *src,*ptr,*start;
I64 i,x,y,w=dc->width,cnt,pattern; I64 i,x,y,w=dc->width,cnt,pattern;
CBGR48 palette[NUM_COLORS]; CBGR48 palette[COLORS_NUM];
CFileBMP *bmp =CAlloc(sizeof(CFileBMP)+2*(dc->width+1)*dc->height); CFileBMP *bmp =CAlloc(sizeof(CFileBMP)+2*(dc->width+1)*dc->height);
bmp->type ='BM'; bmp->type ='BM';
bmp->planes =1; bmp->planes =1;
@@ -77,8 +77,8 @@ public CFileBMP *BMPRLE4To(CDC *dc)
bmp->bit_cnt =4; bmp->bit_cnt =4;
bmp->compression=2; //RLE4 bmp->compression=2; //RLE4
GrPaletteGet(palette); GrPaletteGet(palette);
#assert NUM_COLORS==NUM_BMP_COLORS #assert COLORS_NUM==BMP_COLORS_NUM
for (i=0;i<NUM_BMP_COLORS;i++) { for (i=0;i<BMP_COLORS_NUM;i++) {
bmp->palette[i].b=palette[i].b>>8; bmp->palette[i].b=palette[i].b>>8;
bmp->palette[i].g=palette[i].g>>8; bmp->palette[i].g=palette[i].g>>8;
bmp->palette[i].r=palette[i].r>>8; bmp->palette[i].r=palette[i].r>>8;
@@ -94,7 +94,7 @@ public CFileBMP *BMPRLE4To(CDC *dc)
src+=2; src+=2;
cnt=2; cnt=2;
x+=2; x+=2;
while (x<w && cnt<MAX_U8) { while (x<w && cnt<U8_MAX) {
if (*src&15==pattern&15) { if (*src&15==pattern&15) {
src++; src++;
cnt++; cnt++;
@@ -184,14 +184,14 @@ public I64 BMPWrite(U8 *filename,CDC *dc,I64 bits=4)
U8 *BMPPaletteNew(CFileBMP *bmp) U8 *BMPPaletteNew(CFileBMP *bmp)
{ {
I64 i,j,best,score,best_score; I64 i,j,best,score,best_score;
CBGR48 palette[NUM_COLORS]; CBGR48 palette[COLORS_NUM];
U8 *res=CAlloc(NUM_BMP_COLORS*sizeof(U8)); U8 *res=CAlloc(BMP_COLORS_NUM*sizeof(U8));
GrPaletteGet(palette); GrPaletteGet(palette);
#assert NUM_COLORS==NUM_BMP_COLORS #assert COLORS_NUM==BMP_COLORS_NUM
for (i=0;i<NUM_BMP_COLORS;i++) { for (i=0;i<BMP_COLORS_NUM;i++) {
best=i; best=i;
best_score=MAX_I64; best_score=I64_MAX;
for (j=0;j<NUM_BMP_COLORS;j++) { for (j=0;j<BMP_COLORS_NUM;j++) {
score=SqrI64(bmp->palette[i].r-palette[j].r>>8)+ score=SqrI64(bmp->palette[i].r-palette[j].r>>8)+
SqrI64(bmp->palette[i].g-palette[j].g>>8)+ SqrI64(bmp->palette[i].g-palette[j].g>>8)+
SqrI64(bmp->palette[i].b-palette[j].b>>8); SqrI64(bmp->palette[i].b-palette[j].b>>8);
@@ -205,7 +205,7 @@ U8 *BMPPaletteNew(CFileBMP *bmp)
return res; return res;
} }
U8 ms_paint_palette[NUM_BMP_COLORS]={0,4,2,6,1,5,3,8,7,12,10,14,9,13,11,15}; U8 ms_paint_palette[BMP_COLORS_NUM]={0,4,2,6,1,5,3,8,7,12,10,14,9,13,11,15};
I64 BMP24Color(CBGR24 *ptr,Bool dither_probability) I64 BMP24Color(CBGR24 *ptr,Bool dither_probability)
{ {
@@ -245,7 +245,7 @@ public CDC *BMPRead(U8 *filename,Bool dither_probability=FALSE,
CDC *res=NULL; CDC *res=NULL;
if (ptr=FileRead(filename)) { if (ptr=FileRead(filename)) {
bmp=ptr; bmp=ptr;
if (0<bmp->width<MAX_I32 && 0<bmp->height<MAX_I32) { if (0<bmp->width<I32_MAX && 0<bmp->height<I32_MAX) {
res=DCNew(bmp->width,bmp->height); res=DCNew(bmp->width,bmp->height);
ptr+=bmp->data_offset; ptr+=bmp->data_offset;
if (bmp->compression==2) if (bmp->compression==2)
+19
View File
@@ -48,13 +48,32 @@ public I64 LinkChk(U8 *files_find_mask="/*",U8 *fu_flags=NULL)
{//Check documents for broken file links. {//Check documents for broken file links.
I64 fuf_flags=0,res=0; I64 fuf_flags=0,res=0;
CDirEntry *tmpde,*tmpde1; CDirEntry *tmpde,*tmpde1;
U8 *st;
progress2_max=1;
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+$$+f+F+O"); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+$$+f+F+O");
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags);
tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags); tmpde=tmpde1=FilesFind(files_find_mask,fuf_flags);
while (tmpde && !Bt(&fuf_flags,FUf_CANCEL)) { while (tmpde && !Bt(&fuf_flags,FUf_CANCEL)) {
st=MStrPrint("Before %s Broke:%d",tmpde->full_name,res);
if (StrLen(st)>PROGRESS_DESC_LEN-1)
st[PROGRESS_DESC_LEN-1]=0;
StrCpy(progress2_desc,st);
Free(st);
Yield;
res+=LinkChkFile(tmpde->full_name,&fuf_flags); res+=LinkChkFile(tmpde->full_name,&fuf_flags);
st=MStrPrint("After %s Broke:%d",tmpde->full_name,res);
if (StrLen(st)>PROGRESS_DESC_LEN-1)
st[PROGRESS_DESC_LEN-1]=0;
StrCpy(progress2_desc,st);
Free(st);
Yield;
tmpde=tmpde->next; tmpde=tmpde->next;
} }
DirTreeDel(tmpde1); DirTreeDel(tmpde1);
progress2_max=0;
return res; return res;
} }
+4 -4
View File
@@ -8,7 +8,7 @@ I64 TSSSize(CTSS *tss)
I64 PenBrushesSize() I64 PenBrushesSize()
{ {
I64 res=0,i; I64 res=0,i;
for (i=0;i<GR_NUM_PEN_BRUSHES;i++) for (i=0;i<GR_PEN_BRUSHES_NUM;i++)
res+=DCSize(gr.pen_brushes[i])+DCSize(gr.collision_pen_brushes[i])+ res+=DCSize(gr.pen_brushes[i])+DCSize(gr.collision_pen_brushes[i])+
DCSize(gr.even_pen_brushes[i])+DCSize(gr.odd_pen_brushes[i]); DCSize(gr.even_pen_brushes[i])+DCSize(gr.odd_pen_brushes[i]);
return res; return res;
@@ -17,7 +17,7 @@ I64 PenBrushesSize()
I64 ScrnZoomTablesSize() I64 ScrnZoomTablesSize()
{ {
I64 res=0,i; I64 res=0,i;
for (i=1;i<=GR_MAX_SCRN_ZOOM;i++) for (i=1;i<=GR_SCRN_ZOOM_MAX;i++)
res+=MSize2(gr.scrn_zoom_tables[i]); res+=MSize2(gr.scrn_zoom_tables[i]);
return res; return res;
} }
@@ -65,7 +65,7 @@ I64 BlkDevsSize()
{ {
I64 i,j,res=MSize2(blkdev.blkdevs); I64 i,j,res=MSize2(blkdev.blkdevs);
CBlkDev *bd; CBlkDev *bd;
for (i=0;i<NUM_BLKDEVS;i++) { for (i=0;i<BLKDEVS_NUM;i++) {
bd=&blkdev.blkdevs[i]; bd=&blkdev.blkdevs[i];
if (bd->bd_signature==BD_SIGNATURE_VAL) { if (bd->bd_signature==BD_SIGNATURE_VAL) {
j=(bd->max_blk+1)<<BLK_SIZE_BITS; j=(bd->max_blk+1)<<BLK_SIZE_BITS;
@@ -81,7 +81,7 @@ I64 BlkDevsSize()
I64 DrvsSize() I64 DrvsSize()
{ {
I64 i,res=MSize2(blkdev.drvs); I64 i,res=MSize2(blkdev.drvs);
for (i=0;i<NUM_DRVS;i++) for (i=0;i<DRVS_NUM;i++)
res+=MSize2(blkdev.drvs[i].cur_fat_blk)+MSize2(blkdev.drvs[i].fis); res+=MSize2(blkdev.drvs[i].cur_fat_blk)+MSize2(blkdev.drvs[i].fis);
return res; return res;
} }
+44 -11
View File
@@ -1,6 +1,6 @@
#help_index "Misc/TOS" #help_index "Misc/TOS"
public U0 TOSStaffIns() U0 TOSStaffIns()
{//Completes TOS install from TempleOSStaff.ISO {//Completes TOS install from TempleOSStaff.ISO
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$ SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
AutoComplete; AutoComplete;
@@ -9,16 +9,32 @@ public U0 TOSStaffIns()
DocClear; DocClear;
"$$PURPLE$$$$TX+CX,\"Complete TOS install from TempleOSStaff.ISO\"$$$$FG$$\n\n\n\n"; "$$PURPLE$$$$TX+CX,\"Complete TOS install from TempleOSStaff.ISO\"$$$$FG$$\n\n\n\n";
InsRereg; InsRereg;
if (HostChgDsk("/home/tad/TAD/Site1/Wb/TempleOSSup1.ISO.C"))
"\nDownload TempleOSSup1.ISO.C\tfrom http://www.templeos.org AppStore.\n"
"Download TempleOSBooks1.ISO.C\tfrom http://www.templeos.org AppStore.\n"
"Download TempleOSBooks2.ISO.C\tfrom http://www.templeos.org AppStore.\n\n";
if (PressAKey!=CH_SHIFT_ESC) {
if (HostChgDsk("/home/tad/TempleOSSup1.ISO.C"))
CopyTree("T:/","~/Sup1"); CopyTree("T:/","~/Sup1");
if (HostChgDsk("/home/tad/TAD/Site1Stale/files/TempleOSBooks1.ISO.C")) if (HostChgDsk("/home/tad/TempleOSBooks1.ISO.C"))
CopyTree("T:/","~/Books1"); CopyTree("T:/","~/Books1");
if (HostChgDsk("/home/tad/TAD/Site1Stale/files/TempleOSBooks2.ISO.C")) if (HostChgDsk("/home/tad/TempleOSBooks2.ISO.C"))
CopyTree("T:/","~/Books2"); CopyTree("T:/","~/Books2");
SettingsPop;
Once("TOSBootHDIns;\"\n\nRun TOSRegen;\n\n\n\";"); Once("TOSBootHDIns;");
if (PressAKey!=CH_SHIFT_ESC) "\nDo you wish to run >$FG,2$TOSRegen;$FG$ to generate\n the "
"distro ISO's and the website image, $FG,2$D:/Wb$FG$ ";
if (YorN) {
Once("TOSRegen;");
BootRAM("C:/" KERNEL_BIN_C); //Boot so TOSRegen cmd is available.
} else {
"\nReboot ";
if (YorN)
Reboot; Reboot;
}
}
SettingsPop;
} }
public U0 TOSStdIns() public U0 TOSStdIns()
@@ -30,8 +46,15 @@ public U0 TOSStdIns()
DocClear; DocClear;
"$$PURPLE$$$$TX+CX,\"Complete TOS install from TempleOSCD.ISO\"$$$$FG$$\n\n\n\n"; "$$PURPLE$$$$TX+CX,\"Complete TOS install from TempleOSCD.ISO\"$$$$FG$$\n\n\n\n";
InsRereg; InsRereg;
"\nDownload TempleOSSup1.ISO.C\tfrom http://www.templeos.org AppStore.\n"
"Download TempleOSWeb.ISO.C\tfrom http://www.templeos.org AppStore.\n"
"Download TempleOSBooks1.ISO.C\tfrom http://www.templeos.org AppStore.\n"
"Download TempleOSBooks2.ISO.C\tfrom http://www.templeos.org AppStore.\n\n";
if (PressAKey!=CH_SHIFT_ESC) {
if (FileFind("/Demo/AcctExample")) if (FileFind("/Demo/AcctExample"))
Copy("::/Demo/AcctExample/*","~"); CopyTree("::/Demo/AcctExample","~");
if (HostChgDsk("/home/tad/Downloads/TempleOSSup1.ISO.C")) if (HostChgDsk("/home/tad/Downloads/TempleOSSup1.ISO.C"))
CopyTree("T:/","~/Sup1"); CopyTree("T:/","~/Sup1");
if (HostChgDsk("/home/tad/Downloads/TempleOSWeb.ISO.C")) if (HostChgDsk("/home/tad/Downloads/TempleOSWeb.ISO.C"))
@@ -40,8 +63,18 @@ public U0 TOSStdIns()
CopyTree("T:/","~/Books1"); CopyTree("T:/","~/Books1");
if (HostChgDsk("/home/tad/Downloads/TempleOSBooks2.ISO.C")) if (HostChgDsk("/home/tad/Downloads/TempleOSBooks2.ISO.C"))
CopyTree("T:/","~/Books2"); CopyTree("T:/","~/Books2");
SettingsPop;
Once("TOSBootHDIns;\"\n\nRun TOSRegen;\n\n\n\";"); Once("TOSBootHDIns;");
if (PressAKey!=CH_SHIFT_ESC) "\nDo you wish to run >$FG,2$TOSRegen;$FG$ to generate\n the "
"distro ISO's and the website image, $FG,2$D:/Wb$FG$ ";
if (YorN) {
Once("TOSRegen;");
BootRAM("C:/" KERNEL_BIN_C); //Boot so TOSRegen cmd is available.
} else {
"\nReboot ";
if (YorN)
Reboot; Reboot;
}
}
SettingsPop;
} }
+6 -6
View File
@@ -13,8 +13,8 @@ class CFileSND
}; };
//Windows media constraint. //Windows media constraint.
//#define MAX_SND_FILE_DATA 0x0007FF00 //#define SND_FILE_DATA_MAX 0x0007FF00
#define MAX_SND_FILE_DATA 0x7FFFFF00 #define SND_FILE_DATA_MAX 0x7FFFFF00
public I64 SndFileCreate(U8 *base_filename,F64 normalized_vol=1.0, public I64 SndFileCreate(U8 *base_filename,F64 normalized_vol=1.0,
F64 averaging=0.0,I64 waveform=WF_SQUARE, F64 averaging=0.0,I64 waveform=WF_SQUARE,
@@ -96,7 +96,7 @@ public I64 SndFileCreate(U8 *base_filename,F64 normalized_vol=1.0,
level+=s->body[i]; level+=s->body[i];
level/=cnt-1; level/=cnt-1;
for (i=0;i<cnt-1;i++) for (i=0;i<cnt-1;i++)
s->body[i]=ClampI64(s->body[i]-level,MIN_I16,MAX_I16); s->body[i]=ClampI64(s->body[i]-level,I16_MIN,I16_MAX);
} }
for (i=0;i<cnt-1;i++) for (i=0;i<cnt-1;i++)
@@ -117,10 +117,10 @@ public I64 SndFileCreate(U8 *base_filename,F64 normalized_vol=1.0,
file_num=0; file_num=0;
while (cnt2>0) { while (cnt2>0) {
i=cnt2; i=cnt2;
if (i>MAX_SND_FILE_DATA) if (i>SND_FILE_DATA_MAX)
i=MAX_SND_FILE_DATA; i=SND_FILE_DATA_MAX;
s->data_size=EndianU32(i*sizeof(I16)); s->data_size=EndianU32(i*sizeof(I16));
MemCpy(s->body,&s->body[file_num*MAX_SND_FILE_DATA],i*sizeof(I16)); MemCpy(s->body,&s->body[file_num*SND_FILE_DATA_MAX],i*sizeof(I16));
StrPrint(name2,"%s%03d.SND",name,file_num++); StrPrint(name2,"%s%03d.SND",name,file_num++);
FileWrite(name2,s,offset(CFileSND.body)+i*sizeof(I16)); FileWrite(name2,s,offset(CFileSND.body)+i*sizeof(I16));
cnt2-=i; cnt2-=i;
+4 -4
View File
@@ -138,7 +138,7 @@ public U0 SndWaveCtrlDel(CSndWaveCtrl *swc)
#define WF_TRI 3 #define WF_TRI 3
#define WF_SAWTOOTH 4 #define WF_SAWTOOTH 4
#define WF_NOISE 5 #define WF_NOISE 5
#define WF_NUM_WAVEFORMS 6 #define WF_WAVEFORMS_NUM 6
public U0 SndWaveAddBuf(CSndWaveCtrl *swc,U8 *buf,I64 num_samples, public U0 SndWaveAddBuf(CSndWaveCtrl *swc,U8 *buf,I64 num_samples,
F64 _freq,I64 _waveform=WF_SQUARE,F64 _amp=1.0,F64 _left=1.0, F64 _right=1.0) F64 _freq,I64 _waveform=WF_SQUARE,F64 _amp=1.0,F64 _left=1.0, F64 _right=1.0)
@@ -157,7 +157,7 @@ public U0 SndWaveAddBuf(CSndWaveCtrl *swc,U8 *buf,I64 num_samples,
} else { } else {
phase=swc->phase; phase=swc->phase;
i=0; i=0;
amp=Min(MAX_I32,MAX_I32*_amp); amp=Min(I32_MAX,I32_MAX*_amp);
f=2*ã/swc->sample_rate*_freq; f=2*ã/swc->sample_rate*_freq;
switch (_waveform) { switch (_waveform) {
case WF_NOISE: case WF_NOISE:
@@ -201,13 +201,13 @@ public U0 SndWaveAddBuf(CSndWaveCtrl *swc,U8 *buf,I64 num_samples,
if (phase<ã) { if (phase<ã) {
if (phase<f) { if (phase<f) {
swc->last_y=swc->next_y; swc->last_y=swc->next_y;
swc->next_y=a*RandI16/MAX_U16; swc->next_y=a*RandI16/U16_MAX;
} }
j=swc->last_y*(ã-phase)+swc->next_y*phase; j=swc->last_y*(ã-phase)+swc->next_y*phase;
} else { } else {
if (phase-ã<f) { if (phase-ã<f) {
swc->last_y=swc->next_y; swc->last_y=swc->next_y;
swc->next_y=a*RandI16/MAX_U16; swc->next_y=a*RandI16/U16_MAX;
} }
j=swc->last_y*(2.0*ã-phase)+swc->next_y*(phase-ã); j=swc->last_y*(2.0*ã-phase)+swc->next_y*(phase-ã);
} }
BIN
View File
Binary file not shown.
+9 -6
View File
@@ -30,12 +30,12 @@ U0 DrawProgressBars(CDC *dc)
{ {
I64 i,j,k,n,m; I64 i,j,k,n,m;
U8 *st,*st2; U8 *st,*st2;
for (i=0;i<NUM_PROGRESS_BARS;i++) { for (i=0;i<PROGRESS_BARS_NUM;i++) {
if (m=sys_progresses[i].max) { if (m=sys_progresses[i].max) {
dc->color=BLACK; dc->color=BLACK;
GrRect(dc, GrRect(dc,
(GR_WIDTH-PROGRESS_BAR_WIDTH)/2, (GR_WIDTH-PROGRESS_BAR_WIDTH)/2,
(GR_HEIGHT-(NUM_PROGRESS_BARS*2-1-i*4)*PROGRESS_BAR_HEIGHT)/2, (GR_HEIGHT-(PROGRESS_BARS_NUM*2-1-i*4)*PROGRESS_BAR_HEIGHT)/2,
PROGRESS_BAR_WIDTH,PROGRESS_BAR_HEIGHT); PROGRESS_BAR_WIDTH,PROGRESS_BAR_HEIGHT);
dc->color=LTGREEN; dc->color=LTGREEN;
@@ -44,7 +44,7 @@ U0 DrawProgressBars(CDC *dc)
n=m; n=m;
GrRect(dc, GrRect(dc,
(GR_WIDTH-PROGRESS_BAR_WIDTH)/2+2, (GR_WIDTH-PROGRESS_BAR_WIDTH)/2+2,
(GR_HEIGHT-(NUM_PROGRESS_BARS*2-1-i*4)*PROGRESS_BAR_HEIGHT)/2+2, (GR_HEIGHT-(PROGRESS_BARS_NUM*2-1-i*4)*PROGRESS_BAR_HEIGHT)/2+2,
n*(PROGRESS_BAR_WIDTH-4)/m, n*(PROGRESS_BAR_WIDTH-4)/m,
PROGRESS_BAR_HEIGHT-4); PROGRESS_BAR_HEIGHT-4);
@@ -56,11 +56,11 @@ U0 DrawProgressBars(CDC *dc)
GrLine(dc, GrLine(dc,
(GR_WIDTH-PROGRESS_BAR_WIDTH)/2+1+j* (GR_WIDTH-PROGRESS_BAR_WIDTH)/2+1+j*
(PROGRESS_BAR_WIDTH-4)/ToF64(k+1), (PROGRESS_BAR_WIDTH-4)/ToF64(k+1),
(GR_HEIGHT-(NUM_PROGRESS_BARS*2-1-i*4)* (GR_HEIGHT-(PROGRESS_BARS_NUM*2-1-i*4)*
PROGRESS_BAR_HEIGHT)/2+4, PROGRESS_BAR_HEIGHT)/2+4,
(GR_WIDTH-PROGRESS_BAR_WIDTH)/2+1+j* (GR_WIDTH-PROGRESS_BAR_WIDTH)/2+1+j*
(PROGRESS_BAR_WIDTH-4)/ToF64(k+1), (PROGRESS_BAR_WIDTH-4)/ToF64(k+1),
(GR_HEIGHT-(NUM_PROGRESS_BARS*2-3-i*4)* (GR_HEIGHT-(PROGRESS_BARS_NUM*2-3-i*4)*
PROGRESS_BAR_HEIGHT)/2-4); PROGRESS_BAR_HEIGHT)/2-4);
} }
@@ -80,7 +80,7 @@ U0 DrawProgressBars(CDC *dc)
} else } else
st=st2; st=st2;
GrPrint(dc,(GR_WIDTH-FONT_WIDTH*StrLen(st))/2,(GR_HEIGHT-FONT_HEIGHT- GrPrint(dc,(GR_WIDTH-FONT_WIDTH*StrLen(st))/2,(GR_HEIGHT-FONT_HEIGHT-
(NUM_PROGRESS_BARS*2-2-i*4)*PROGRESS_BAR_HEIGHT)/2,"%s",st); (PROGRESS_BARS_NUM*2-2-i*4)*PROGRESS_BAR_HEIGHT)/2,"%s",st);
Free(st); Free(st);
} }
} }
@@ -203,6 +203,9 @@ U0 WinFinalUpdate(CDC *dc)
{ {
if (ms_grid.show) if (ms_grid.show)
DrawWinGrid(dc); DrawWinGrid(dc);
if (ms_grid.coord)
GrPrint(dc,GR_WIDTH-FONT_WIDTH*10,FONT_HEIGHT*3,
"(%03d,%03d)",ms.pos.x,ms.pos.y);
DrawProgressBars(dc); DrawProgressBars(dc);
if (winmgr.show_menu) if (winmgr.show_menu)
DrawMenu(dc); DrawMenu(dc);
+1 -1
View File
@@ -193,7 +193,7 @@ I64 WinQueIPMsgs(Bool que)
U0 WinCalcIdles() U0 WinCalcIdles()
{ {
F64 calc_idle_time; F64 calc_idle_time;
I64 i,k,total_jiffies,total_jiffies_delta,idle_pt_hits[MP_MAX_PROCESSORS]; I64 i,k,total_jiffies,total_jiffies_delta,idle_pt_hits[MP_PROCESSORS_NUM];
CCPU *c; CCPU *c;
CWinMgrTimingGlbls *t=winmgr.t; CWinMgrTimingGlbls *t=winmgr.t;
+1 -1
View File
@@ -36,7 +36,7 @@ U0 BgtIns(CBgtEntry *tmpb)
class CBgtEntryForm class CBgtEntryForm
{ {
U8 date[512] fmtstr "$$DA-P,A=\"Date :%s\"$$\n"; U8 date[512] fmtstr "$$DA-P,A=\"Date :%s\"$$\n";
F64 amount fmtstr "Amount $$$$$$DA,A=\"%6.2f\"$$\n"; F64 amount fmtstr "Amount $$$$$$DA,A=\"%8.2f\"$$\n";
U8 credit[512] fmtstr "$$DA-P,A=\"Credit Acct:%s\"$$\n"; U8 credit[512] fmtstr "$$DA-P,A=\"Credit Acct:%s\"$$\n";
U8 debit [512] fmtstr "$$DA-P,A=\"Debit Acct:%s\"$$\n"; U8 debit [512] fmtstr "$$DA-P,A=\"Debit Acct:%s\"$$\n";
U8 desc [512] fmtstr "$$DA-P,A=\"Desc :%s\"$$\n"; U8 desc [512] fmtstr "$$DA-P,A=\"Desc :%s\"$$\n";
+1 -1
View File
@@ -46,7 +46,7 @@ class CBgtTemplate
U16 flags; U16 flags;
U8 start_date[16] fmtstr "$$DA-P,A=\"Start Date:%s\"$$\n"; U8 start_date[16] fmtstr "$$DA-P,A=\"Start Date:%s\"$$\n";
U8 end_date[16] fmtstr "$$DA-P,A=\"End Date :%s\"$$\n"; U8 end_date[16] fmtstr "$$DA-P,A=\"End Date :%s\"$$\n";
F64 period fmtstr "$$DA,A=\"Period :%6.2f\"$$\n"; F64 period fmtstr "$$DA,A=\"Period :%8.2f\"$$\n";
U0 end; U0 end;
CBgtEntry b; CBgtEntry b;
+4 -4
View File
@@ -1,14 +1,14 @@
//Makes a mesh ball. //Makes a mesh ball.
#define MAX_VERTICES 1024 #define VERTICES_NUM 1024
#define MAX_TRIS 1024 #define TRIS_NUM 1024
class Ball class Ball
{ {
I32 vertex_cnt; I32 vertex_cnt;
I32 tri_cnt; I32 tri_cnt;
CD3I32 v[MAX_VERTICES]; CD3I32 v[VERTICES_NUM];
CMeshTri t[MAX_TRIS]; CMeshTri t[TRIS_NUM];
} *b; } *b;
class BallDefineStruct class BallDefineStruct
+4 -4
View File
@@ -1,14 +1,14 @@
//Makes a mesh man. //Makes a mesh man.
#define MAX_VERTICES 1024 #define VERTICES_NUM 1024
#define MAX_TRIS 1024 #define TRIS_NUM 1024
class Man class Man
{ {
I32 vertex_cnt; I32 vertex_cnt;
I32 tri_cnt; I32 tri_cnt;
CD3I32 v[MAX_VERTICES]; CD3I32 v[VERTICES_NUM];
CMeshTri t[MAX_TRIS]; CMeshTri t[TRIS_NUM];
} *m; } *m;
class ManDefineStruct class ManDefineStruct
+33 -33
View File
@@ -200,36 +200,36 @@ This is just a video game. Relax.
#define FIRST_STANDING 0 #define FIRST_STANDING 0
#define NUM_RUNNING_IMGS 4 #define RUNNING_IMGS_NUM 4
#define FIRST_RUNNING 0 #define FIRST_RUNNING 0
#define LAST_RUNNING (FIRST_RUNNING+NUM_RUNNING_IMGS-1) #define LAST_RUNNING (FIRST_RUNNING+RUNNING_IMGS_NUM-1)
#define NUM_SHOOTING_IMGS 5 #define SHOOTING_IMGS_NUM 5
#define FIRST_SHOOTING (LAST_RUNNING+1) #define FIRST_SHOOTING (LAST_RUNNING+1)
#define LAST_SHOOTING (FIRST_SHOOTING+NUM_SHOOTING_IMGS-1) #define LAST_SHOOTING (FIRST_SHOOTING+SHOOTING_IMGS_NUM-1)
#define NUM_DRIBBLING_IMGS 4 #define DRIBBLING_IMGS_NUM 4
#define FIRST_DRIBBLING (LAST_SHOOTING+1) #define FIRST_DRIBBLING (LAST_SHOOTING+1)
#define LAST_DRIBBLING (FIRST_DRIBBLING+NUM_DRIBBLING_IMGS-1) #define LAST_DRIBBLING (FIRST_DRIBBLING+DRIBBLING_IMGS_NUM-1)
#define NUM_STOPPED_DRIBBLING_IMGS 2 #define STOPPED_DRIBBLING_IMGS_NUM 2
#define FIRST_STOPPED_DRIBBLING (LAST_DRIBBLING+1) #define FIRST_STOPPED_DRIBBLING (LAST_DRIBBLING+1)
#define LAST_STOPPED_DRIBBLING \ #define LAST_STOPPED_DRIBBLING \
(FIRST_STOPPED_DRIBBLING+NUM_STOPPED_DRIBBLING_IMGS-1) (FIRST_STOPPED_DRIBBLING+STOPPED_DRIBBLING_IMGS_NUM-1)
Frame imgs[LAST_STOPPED_DRIBBLING+1]={ Frame imgs[LAST_STOPPED_DRIBBLING+1]={
{{$IB,"<6>",BI=6$,$IB,"<7>",BI=7$},2*DRIBBLE_T/NUM_RUNNING_IMGS}, {{$IB,"<6>",BI=6$,$IB,"<7>",BI=7$},2*DRIBBLE_T/RUNNING_IMGS_NUM},
{{$IB,"<2>",BI=2$,$IB,"<3>",BI=3$},2*DRIBBLE_T/NUM_RUNNING_IMGS}, {{$IB,"<2>",BI=2$,$IB,"<3>",BI=3$},2*DRIBBLE_T/RUNNING_IMGS_NUM},
{{$IB,"<6>",BI=6$,$IB,"<7>",BI=7$},2*DRIBBLE_T/NUM_RUNNING_IMGS}, {{$IB,"<6>",BI=6$,$IB,"<7>",BI=7$},2*DRIBBLE_T/RUNNING_IMGS_NUM},
{{$IB,"<4>",BI=4$,$IB,"<5>",BI=5$},2*DRIBBLE_T/NUM_RUNNING_IMGS}, {{$IB,"<4>",BI=4$,$IB,"<5>",BI=5$},2*DRIBBLE_T/RUNNING_IMGS_NUM},
{{$IB,"<8>",BI=8$,$IB,"<9>",BI=9$},0.1},{{$IB,"<10>",BI=10$,$IB,"<11>",BI=11$},0.2}, {{$IB,"<8>",BI=8$,$IB,"<9>",BI=9$},0.1},{{$IB,"<10>",BI=10$,$IB,"<11>",BI=11$},0.2},
{{$IB,"<12>",BI=12$,$IB,"<13>",BI=13$},0.2},{{$IB,"<12>",BI=12$,$IB,"<13>",BI=13$},0.1},{{$IB,"<14>",BI=14$,$IB,"<15>",BI=15$},0.1}, {{$IB,"<12>",BI=12$,$IB,"<13>",BI=13$},0.2},{{$IB,"<12>",BI=12$,$IB,"<13>",BI=13$},0.1},{{$IB,"<14>",BI=14$,$IB,"<15>",BI=15$},0.1},
{{$IB,"<20>",BI=20$,$IB,"<21>",BI=21$},2*DRIBBLE_T/NUM_DRIBBLING_IMGS}, {{$IB,"<20>",BI=20$,$IB,"<21>",BI=21$},2*DRIBBLE_T/DRIBBLING_IMGS_NUM},
{{$IB,"<16>",BI=16$,$IB,"<17>",BI=17$},2*DRIBBLE_T/NUM_DRIBBLING_IMGS}, {{$IB,"<16>",BI=16$,$IB,"<17>",BI=17$},2*DRIBBLE_T/DRIBBLING_IMGS_NUM},
{{$IB,"<20>",BI=20$,$IB,"<21>",BI=21$},2*DRIBBLE_T/NUM_DRIBBLING_IMGS}, {{$IB,"<20>",BI=20$,$IB,"<21>",BI=21$},2*DRIBBLE_T/DRIBBLING_IMGS_NUM},
{{$IB,"<18>",BI=18$,$IB,"<19>",BI=19$},2*DRIBBLE_T/NUM_DRIBBLING_IMGS}, {{$IB,"<18>",BI=18$,$IB,"<19>",BI=19$},2*DRIBBLE_T/DRIBBLING_IMGS_NUM},
{{$IB,"<20>",BI=20$,$IB,"<21>",BI=21$},DRIBBLE_T/NUM_STOPPED_DRIBBLING_IMGS}, {{$IB,"<20>",BI=20$,$IB,"<21>",BI=21$},DRIBBLE_T/STOPPED_DRIBBLING_IMGS_NUM},
{{$IB,"<22>",BI=22$,$IB,"<23>",BI=23$},DRIBBLE_T/NUM_STOPPED_DRIBBLING_IMGS}, {{$IB,"<22>",BI=22$,$IB,"<23>",BI=23$},DRIBBLE_T/STOPPED_DRIBBLING_IMGS_NUM},
}; };
RegDft("TempleOS/KeepAway","I64 best_score0=0,best_score1=9999;\n"); RegDft("TempleOS/KeepAway","I64 best_score0=0,best_score1=9999;\n");
@@ -238,8 +238,8 @@ RegExe("TempleOS/KeepAway");
F64 game_t_end,foul_t_end; F64 game_t_end,foul_t_end;
I64 score0,score1; I64 score0,score1;
#define NUM_PER_SIDE 3 #define PER_SIDE_NUM 3
#define NUM_OBJS (NUM_PER_SIDE*2+1) #define OBJS_NUM (PER_SIDE_NUM*2+1)
Bool someone_shooting,someone_has_ball; Bool someone_shooting,someone_has_ball;
F64 shot_land_t; F64 shot_land_t;
@@ -250,7 +250,7 @@ class Obj
F64 get_ball_dt,get_ball_é,nearest_man_dd,last_t0,next_t0,foul_t0; F64 get_ball_dt,get_ball_é,nearest_man_dd,last_t0,next_t0,foul_t0;
I64 last_img,next_img; I64 last_img,next_img;
Bool stopped,shooting,has_ball,nearest_ball,pad[4]; Bool stopped,shooting,has_ball,nearest_ball,pad[4];
} objs[NUM_OBJS],*ball,*human,*last_owner; } objs[OBJS_NUM],*ball,*human,*last_owner;
/*Just to be different, I didn't use the built-in /*Just to be different, I didn't use the built-in
DCF_TRANSFORMATION flag in this game. DCF_TRANSFORMATION flag in this game.
@@ -297,7 +297,7 @@ U0 DrawIt(CTask *task,CDC *dc)
{ {
F64 tt=tS,d,d_down,d_up; F64 tt=tS,d,d_down,d_up;
I64 i; I64 i;
Obj *o_sort[NUM_OBJS],*o; Obj *o_sort[OBJS_NUM],*o;
DCDepthBufAlloc(dc); DCDepthBufAlloc(dc);
dc->ls.x=10000; dc->ls.x=10000;
@@ -313,7 +313,7 @@ U0 DrawIt(CTask *task,CDC *dc)
GrBorder(dc,COURT_BORDER,COURT_BORDER, GrBorder(dc,COURT_BORDER,COURT_BORDER,
task->pix_width -1-COURT_BORDER, task->pix_width -1-COURT_BORDER,
task->pix_height-1-COURT_BORDER); task->pix_height-1-COURT_BORDER);
for (i=0;i<NUM_OBJS;i++) { for (i=0;i<OBJS_NUM;i++) {
o=o_sort[i]=&objs[i]; o=o_sort[i]=&objs[i];
if (o!=ball) { if (o!=ball) {
if (o->has_ball) { if (o->has_ball) {
@@ -385,8 +385,8 @@ U0 DrawIt(CTask *task,CDC *dc)
} }
} }
QSortI64(o_sort,NUM_OBJS,&ObjCompare); QSortI64(o_sort,OBJS_NUM,&ObjCompare);
for (i=0;i<NUM_OBJS;i++) for (i=0;i<OBJS_NUM;i++)
DrawObj(dc,o_sort[i],tt); DrawObj(dc,o_sort[i],tt);
tt=(game_t_end-tS)/60; tt=(game_t_end-tS)/60;
if (tt<=0) { if (tt<=0) {
@@ -449,7 +449,7 @@ U0 AnimateTask(CTask *parent_task)
if (game_t_end) { if (game_t_end) {
MemSet(&nearest_ball,0,sizeof(nearest_ball)); MemSet(&nearest_ball,0,sizeof(nearest_ball));
for (i=0;i<NUM_OBJS;i++) { for (i=0;i<OBJS_NUM;i++) {
o=&objs[i]; o=&objs[i];
o->nearest_ball=FALSE; o->nearest_ball=FALSE;
if (o!=ball) { if (o!=ball) {
@@ -468,7 +468,7 @@ U0 AnimateTask(CTask *parent_task)
nearest_ball[0]->nearest_ball=TRUE; nearest_ball[0]->nearest_ball=TRUE;
nearest_ball[1]->nearest_ball=TRUE; nearest_ball[1]->nearest_ball=TRUE;
for (i=0;i<NUM_OBJS;i++) { for (i=0;i<OBJS_NUM;i++) {
o=&objs[i]; o=&objs[i];
if (o==ball) { if (o==ball) {
o->x+=dt*o->DxDt; o->x+=dt*o->DxDt;
@@ -482,7 +482,7 @@ U0 AnimateTask(CTask *parent_task)
dy=ball->y-o->y; dy=ball->y-o->y;
if (dx*dx+dy*dy<HAND_SQR_OFFSET && ball->z<o->z+HAND_Z_OFFSET) { if (dx*dx+dy*dy<HAND_SQR_OFFSET && ball->z<o->z+HAND_Z_OFFSET) {
gets_ball=TRUE; gets_ball=TRUE;
for (j=0;j<NUM_PER_SIDE*2;j++) for (j=0;j<PER_SIDE_NUM*2;j++)
if (j!=i && objs[j].has_ball) { if (j!=i && objs[j].has_ball) {
if (Rand<2.0*dt) { if (Rand<2.0*dt) {
objs[j].stolen_t0=t0; objs[j].stolen_t0=t0;
@@ -523,8 +523,8 @@ U0 AnimateTask(CTask *parent_task)
dx=o->DxDt=MAN_VELOCITY*Cos(o->get_ball_é); dx=o->DxDt=MAN_VELOCITY*Cos(o->get_ball_é);
dy=o->DyDt=MAN_VELOCITY*Sin(o->get_ball_é); dy=o->DyDt=MAN_VELOCITY*Sin(o->get_ball_é);
} else { } else {
dx=o->DxDt+=RANDOM_MAN_ACCELERATION/sqrt2*RandI16/MAX_I16*dt; dx=o->DxDt+=RANDOM_MAN_ACCELERATION/sqrt2*RandI16/I16_MAX*dt;
dy=o->DyDt+=RANDOM_MAN_ACCELERATION/sqrt2*RandI16/MAX_I16*dt; dy=o->DyDt+=RANDOM_MAN_ACCELERATION/sqrt2*RandI16/I16_MAX*dt;
} }
} }
d=Sqrt(dx*dx+dy*dy); d=Sqrt(dx*dx+dy*dy);
@@ -532,8 +532,8 @@ U0 AnimateTask(CTask *parent_task)
o->é=Arg(dx,dy)+ã/2; o->é=Arg(dx,dy)+ã/2;
dx*=MAN_VELOCITY/sqrt2*dt/d; dx*=MAN_VELOCITY/sqrt2*dt/d;
dy*=MAN_VELOCITY/sqrt2*dt/d; dy*=MAN_VELOCITY/sqrt2*dt/d;
o->nearest_man_dd=MAX_F64; o->nearest_man_dd=F64_MAX;
for (j=0;j<NUM_PER_SIDE*2;j++) for (j=0;j<PER_SIDE_NUM*2;j++)
if (j!=i) { if (j!=i) {
dx2=objs[j].x-o->x; dx2=objs[j].x-o->x;
dy2=objs[j].y-o->y; dy2=objs[j].y-o->y;
@@ -626,7 +626,7 @@ U0 Init()
someone_shooting=FALSE; someone_shooting=FALSE;
shot_land_t=0; shot_land_t=0;
MemSet(&objs,0,sizeof(objs)); MemSet(&objs,0,sizeof(objs));
for (i=0;i<NUM_PER_SIDE*2;i++) { for (i=0;i<PER_SIDE_NUM*2;i++) {
objs[i].team=i&1; objs[i].team=i&1;
objs[i].x=Fs->pix_width/2; objs[i].x=Fs->pix_width/2;
objs[i].y=2*Fs->pix_height/2; objs[i].y=2*Fs->pix_height/2;
+9 -9
View File
@@ -1,4 +1,4 @@
#define MAX_TABLE_SIZE 0x10000 #define TABLE_SIZE_MAX 0x10000
I64 output_found,passes,table_size; I64 output_found,passes,table_size;
@@ -65,16 +65,16 @@ U8 *gate_type_lst="NULL\0OUTPUT\0INPUT\0"
#define GT_OR3 10 #define GT_OR3 10
#define GT_NAND3 11 #define GT_NAND3 11
#define GT_NOR3 12 #define GT_NOR3 12
#define GT_NUM_ENTRIES 13 #define GT_ENTRIES_NUM 13
#define MAX_SEL_GATES 128 #define SEL_GATES_NUM 128
U8 *imgs[GT_NUM_ENTRIES]={NULL,NULL,NULL, U8 *imgs[GT_ENTRIES_NUM]={NULL,NULL,NULL,
$IB,"<NOT>",BI=1$,$IB,"<AND>",BI=2$,$IB,"<OR>",BI=3$,$IB,"<NAND>",BI=4$,$IB,"<NOR>",BI=5$,$IB,"<XOR>",BI=6$,$IB,"<AND3>",BI=7$,$IB,"<OR3>",BI=8$,$IB,"<NAND3>",BI=9$,$IB,"<NOR3>",BI=10$}; $IB,"<NOT>",BI=1$,$IB,"<AND>",BI=2$,$IB,"<OR>",BI=3$,$IB,"<NAND>",BI=4$,$IB,"<NOR>",BI=5$,$IB,"<XOR>",BI=6$,$IB,"<AND3>",BI=7$,$IB,"<OR3>",BI=8$,$IB,"<NAND3>",BI=9$,$IB,"<NOR3>",BI=10$};
I64 num_inputs_entered,num_outputs_entered; I64 num_inputs_entered,num_outputs_entered;
I64 num_sel_gates, I64 num_sel_gates,
sel_gates[MAX_SEL_GATES]; sel_gates[SEL_GATES_NUM];
U0 GetGates() U0 GetGates()
{ {
@@ -83,12 +83,12 @@ U0 GetGates()
"\nEnter the available gate types in the order you prefer them to be used.\n" "\nEnter the available gate types in the order you prefer them to be used.\n"
"Your choices are:\n"; "Your choices are:\n";
for (i=GT_FIRST_REAL_GATE;i<GT_NUM_ENTRIES;i++) for (i=GT_FIRST_REAL_GATE;i<GT_ENTRIES_NUM;i++)
"%z ",i,gate_type_lst; "%z ",i,gate_type_lst;
'\n'; '\n';
num_sel_gates=0; num_sel_gates=0;
while (num_sel_gates<GT_NUM_ENTRIES) { while (num_sel_gates<GT_ENTRIES_NUM) {
"%d",num_sel_gates; "%d",num_sel_gates;
st=GetStr(" Gate: "); st=GetStr(" Gate: ");
if (!*st) { if (!*st) {
@@ -110,13 +110,13 @@ U0 Init()
do { do {
table_size=GetI64("\nTable size in hex (3 input=0x100,4=0x10000): ",0); table_size=GetI64("\nTable size in hex (3 input=0x100,4=0x10000): ",0);
if (table_size>MAX_TABLE_SIZE) if (table_size>TABLE_SIZE_MAX)
"Too large\n"; "Too large\n";
else if (table_size<1) { else if (table_size<1) {
"No table specified, aborting.\n"; "No table specified, aborting.\n";
throw; throw;
} }
} while (table_size>MAX_TABLE_SIZE); } while (table_size>TABLE_SIZE_MAX);
gate_type_table =CAlloc(table_size*sizeof(U8)); gate_type_table =CAlloc(table_size*sizeof(U8));
displayed_design=MAlloc((table_size+7)/8); displayed_design=MAlloc((table_size+7)/8);
+1 -1
View File
@@ -71,7 +71,7 @@ U0 JukeSongPuppet(CTask *juke_task,I64 passes,I64 song_num,U8 *name)
} }
public U0 JukeSongsPuppet(U8 *dirname="~/Psalmody",I64 passes=2, public U0 JukeSongsPuppet(U8 *dirname="~/Psalmody",I64 passes=2,
I64 start_song=0,I64 end_song=MAX_I64) I64 start_song=0,I64 end_song=I64_MAX)
{//Help make music video by puppeting JukeBox task. {//Help make music video by puppeting JukeBox task.
I64 i; I64 i;
CDirEntry *tmpde,*tmpde1; CDirEntry *tmpde,*tmpde1;
+12 -12
View File
@@ -48,14 +48,14 @@ $SP,"<15>",BI=15$
$SP,"<16>",BI=16$ $SP,"<16>",BI=16$
$ID,-8$ $ID,-8$
#define PSM_NOTE_SPACING 9 #define PSM_NOTE_SPACING 9
#define PSM_NUM_DURATIONS 12 #define PSM_DURATIONS_NUM 12
F64 psm_durations[PSM_NUM_DURATIONS+1]={ F64 psm_durations[PSM_DURATIONS_NUM+1]={
2*.25/3,.25,2*.5/3,.5,2.0/3.0,0.5*1.5,1.0,1.5,2.0,3.0,4.0,6.0,1000000.0}; 2*.25/3,.25,2*.5/3,.5,2.0/3.0,0.5*1.5,1.0,1.5,2.0,3.0,4.0,6.0,1000000.0};
U8 *psm_duration_lst="st\0s\0et\0e\0qt\0e.\0q\0q.\0h\0h.\0w\0w.\0"; U8 *psm_duration_lst="st\0s\0et\0e\0qt\0e.\0q\0q.\0h\0h.\0w\0w.\0";
U8 *psm_duration_imgs[PSM_NUM_DURATIONS]={ U8 *psm_duration_imgs[PSM_DURATIONS_NUM]={
$IB,"<1>",BI=1$,$IB,"<1>",BI=1$,$IB,"<2>",BI=2$,$IB,"<2>",BI=2$,$IB,"<3>",BI=3$,$IB,"<2>",BI=2$,$IB,"<3>",BI=3$,$IB,"<3>",BI=3$,$IB,"<4>",BI=4$,$IB,"<4>",BI=4$,$IB,"<5>",BI=5$,$IB,"<5>",BI=5$}; $IB,"<1>",BI=1$,$IB,"<1>",BI=1$,$IB,"<2>",BI=2$,$IB,"<2>",BI=2$,$IB,"<3>",BI=3$,$IB,"<2>",BI=2$,$IB,"<3>",BI=3$,$IB,"<3>",BI=3$,$IB,"<4>",BI=4$,$IB,"<4>",BI=4$,$IB,"<5>",BI=5$,$IB,"<5>",BI=5$};
Bool psm_triplet_durations[PSM_NUM_DURATIONS]={TRUE,FALSE,TRUE, Bool psm_triplet_durations[PSM_DURATIONS_NUM]={TRUE,FALSE,TRUE,
FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE}; FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE};
Bool PsmBlink() Bool PsmBlink()
@@ -127,7 +127,7 @@ U0 PsmSetOctave(I64 octave)
U0 DrawNote(CDC *dc,I64 x,I64 y,I64 duration) U0 DrawNote(CDC *dc,I64 x,I64 y,I64 duration)
{ {
if (0<=duration<=PSM_NUM_DURATIONS) { if (0<=duration<=PSM_DURATIONS_NUM) {
Sprite3(dc,x,y,0,psm_duration_imgs[duration]); Sprite3(dc,x,y,0,psm_duration_imgs[duration]);
if (psm_triplet_durations[duration]) if (psm_triplet_durations[duration])
Sprite3(dc,x,y,0,$IB,"<16>",BI=16$); Sprite3(dc,x,y,0,$IB,"<16>",BI=16$);
@@ -273,7 +273,7 @@ I64 PsmGetPickNoteBoxDuration(I64 xx,I64 yy)
{ {
I64 i,x1,x2; I64 i,x1,x2;
if (PSM_NOTE_BOX_Y-14<=yy<PSM_NOTE_BOX_Y+6) { if (PSM_NOTE_BOX_Y-14<=yy<PSM_NOTE_BOX_Y+6) {
for (i=0;i<PSM_NUM_DURATIONS;i++) { for (i=0;i<PSM_DURATIONS_NUM;i++) {
PsmSetPickNoteBoxX(i,&x1); PsmSetPickNoteBoxX(i,&x1);
PsmSetPickNoteBoxX(i+1,&x2); PsmSetPickNoteBoxX(i+1,&x2);
if (x1<=xx+PSM_NOTE_SPACING/2<x2) if (x1<=xx+PSM_NOTE_SPACING/2<x2)
@@ -286,7 +286,7 @@ I64 PsmGetPickNoteBoxDuration(I64 xx,I64 yy)
U0 DrawPickNoteBox() U0 DrawPickNoteBox()
{ {
I64 i,x; I64 i,x;
for (i=0;i<PSM_NUM_DURATIONS;i++) { for (i=0;i<PSM_DURATIONS_NUM;i++) {
PsmSetPickNoteBoxX(i,&x); PsmSetPickNoteBoxX(i,&x);
if (PsmIsDotted(i)) if (PsmIsDotted(i))
psm.dc2->color=RED; psm.dc2->color=RED;
@@ -330,9 +330,9 @@ Bool PsmGetPickToolBox(I64 xx,I64 yy)
return FALSE; return FALSE;
} }
#define PSM_NUM_METERS 7 #define PSM_METERS_NUM 7
I64 meter_tops[PSM_NUM_METERS] ={2,3,4,5,6,7,9}, I64 meter_tops[PSM_METERS_NUM] ={2,3,4,5,6,7,9},
meter_bottoms[PSM_NUM_METERS]={4,4,4,4,8,8,8}; meter_bottoms[PSM_METERS_NUM]={4,4,4,4,8,8,8};
#define PSM_METER_X 485 #define PSM_METER_X 485
#define PSM_METER_Y 13*FONT_HEIGHT #define PSM_METER_Y 13*FONT_HEIGHT
@@ -340,7 +340,7 @@ I64 meter_tops[PSM_NUM_METERS] ={2,3,4,5,6,7,9},
Bool PsmGetPickMeterBox(I64 xx,I64 yy,I64 *top,I64 *bottom) Bool PsmGetPickMeterBox(I64 xx,I64 yy,I64 *top,I64 *bottom)
{ {
I64 i; I64 i;
if (PSM_METER_X<=xx<PSM_METER_X+PSM_METER_W*PSM_NUM_METERS && if (PSM_METER_X<=xx<PSM_METER_X+PSM_METER_W*PSM_METERS_NUM &&
PSM_METER_Y<=yy<PSM_METER_Y+2*FONT_HEIGHT) { PSM_METER_Y<=yy<PSM_METER_Y+2*FONT_HEIGHT) {
i=(xx-PSM_METER_X)/PSM_METER_W; i=(xx-PSM_METER_X)/PSM_METER_W;
*top=meter_tops[i]; *top=meter_tops[i];
@@ -354,7 +354,7 @@ U0 DrawPickMeterBox()
{ {
I64 i; I64 i;
psm.dc2->color=BLACK; psm.dc2->color=BLACK;
for (i=0;i<PSM_NUM_METERS;i++) for (i=0;i<PSM_METERS_NUM;i++)
DrawTimeSignature(psm.dc2,PSM_METER_X+i*PSM_METER_W,PSM_METER_Y, DrawTimeSignature(psm.dc2,PSM_METER_X+i*PSM_METER_W,PSM_METER_Y,
meter_tops[i],meter_bottoms[i]); meter_tops[i],meter_bottoms[i]);
} }
+1 -1
View File
@@ -253,7 +253,7 @@ U8 *PsmCvtSong()
i=0; i=0;
tmpn=psm.head.next; tmpn=psm.head.next;
last_octave=MIN_I64; last_octave=I64_MIN;
last_duration=-1; last_duration=-1;
while (tmpn!=&psm.head) { while (tmpn!=&psm.head) {
dst=&tmpn->ascii; dst=&tmpn->ascii;
+8 -8
View File
@@ -17,7 +17,7 @@ F64 PopUpDuration()
"$$MU,\"Make Rest\",LE=PSMR_REST$$\n" "$$MU,\"Make Rest\",LE=PSMR_REST$$\n"
"$$MU,\"Insert Note\",LE=PSMR_INS_NOTE$$\n" "$$MU,\"Insert Note\",LE=PSMR_INS_NOTE$$\n"
"$$MU,\"Delete Note\",LE=PSMR_DELETE_NOTE$$\n\n"); "$$MU,\"Delete Note\",LE=PSMR_DELETE_NOTE$$\n\n");
for (i=0;i<PSM_NUM_DURATIONS;i++) for (i=0;i<PSM_DURATIONS_NUM;i++)
DocPrint(doc,"$$MU,\"%7.5f\",LE=%d$$\n",psm_durations[i],i); DocPrint(doc,"$$MU,\"%7.5f\",LE=%d$$\n",psm_durations[i],i);
DocPrint(doc,"\n$$MU,\"CANCEL\",LE=DOCM_CANCEL$$\n"); DocPrint(doc,"\n$$MU,\"CANCEL\",LE=DOCM_CANCEL$$\n");
i=PopUpMenu(doc); i=PopUpMenu(doc);
@@ -35,7 +35,7 @@ U0 PsmRightClick(I64 x,I64 y)
if (tmpn!=&psm.head) { if (tmpn!=&psm.head) {
Fs->win_inhibit=WIG_USER_TASK_DFT; Fs->win_inhibit=WIG_USER_TASK_DFT;
i=PopUpDuration; i=PopUpDuration;
if (0<=i<PSM_NUM_DURATIONS) { if (0<=i<PSM_DURATIONS_NUM) {
if (tmpn->type==PSMT_NOTE) if (tmpn->type==PSMT_NOTE)
tmpn->duration=i; tmpn->duration=i;
} else { } else {
@@ -240,7 +240,7 @@ U0 PsmLeftClick(I64 x,I64 y)
PsmLeftClickStaffBox(x,y); PsmLeftClickStaffBox(x,y);
} else { } else {
duration=PsmGetPickNoteBoxDuration(x,y); duration=PsmGetPickNoteBoxDuration(x,y);
if (0<=duration<PSM_NUM_DURATIONS) if (0<=duration<PSM_DURATIONS_NUM)
PsmLeftClickPickNoteBox(duration); PsmLeftClickPickNoteBox(duration);
else if (PsmGetPickMeterBox(x,y,&top,&bottom)) else if (PsmGetPickMeterBox(x,y,&top,&bottom))
PsmLeftClickPickMeterBox(top,bottom); PsmLeftClickPickMeterBox(top,bottom);
@@ -253,7 +253,7 @@ U8 PsmCvtDuration(F64 d)
{ {
F64 d1,d2; F64 d1,d2;
I64 j; I64 j;
for (j=0;j<PSM_NUM_DURATIONS;j++) { for (j=0;j<PSM_DURATIONS_NUM;j++) {
d1=psm_durations[j]; d1=psm_durations[j];
d2=psm_durations[j+1]; d2=psm_durations[j+1];
if (d<d1*d2/(d1+d2)) if (d<d1*d2/(d1+d2))
@@ -262,7 +262,7 @@ U8 PsmCvtDuration(F64 d)
return 0; return 0;
} }
#define PSM_NUM_KEYS 20 #define PSM_KEYS_NUM 20
class PsmKey class PsmKey
{ {
U8 x,w,h,ascii; U8 x,w,h,ascii;
@@ -273,7 +273,7 @@ class PsmKey
#define PSM_B_W 8 #define PSM_B_W 8
#define PSM_B_H 20 #define PSM_B_H 20
PsmKey psm_kbd[PSM_NUM_KEYS]={ PsmKey psm_kbd[PSM_KEYS_NUM]={
{ 2*PSM_W_W-4,PSM_B_W,PSM_B_H,'e' }, { 2*PSM_W_W-4,PSM_B_W,PSM_B_H,'e' },
{ 3*PSM_W_W-4,PSM_B_W,PSM_B_H,'r' }, { 3*PSM_W_W-4,PSM_B_W,PSM_B_H,'r' },
{ 4*PSM_W_W-4,PSM_B_W,PSM_B_H,'t' }, { 4*PSM_W_W-4,PSM_B_W,PSM_B_H,'t' },
@@ -304,7 +304,7 @@ U0 PsmDownKey(I64 x,I64 y)
y-=FONT_HEIGHT*13; y-=FONT_HEIGHT*13;
if (0<=y<PSM_W_H) { if (0<=y<PSM_W_H) {
x-=16; x-=16;
for (i=0;i<PSM_NUM_KEYS;i++) { for (i=0;i<PSM_KEYS_NUM;i++) {
o=&psm_kbd[i]; o=&psm_kbd[i];
if (o->x<=x<o->x+o->w && y<o->h) { if (o->x<=x<o->x+o->w && y<o->h) {
Msg(MSG_KEY_DOWN,o->ascii,0); Msg(MSG_KEY_DOWN,o->ascii,0);
@@ -321,7 +321,7 @@ U0 PsmUpKey(I64 x,I64 y)
y-=FONT_HEIGHT*13; y-=FONT_HEIGHT*13;
if (0<=y<PSM_W_H) { if (0<=y<PSM_W_H) {
x-=16; x-=16;
for (i=0;i<PSM_NUM_KEYS;i++) { for (i=0;i<PSM_KEYS_NUM;i++) {
o=&psm_kbd[i]; o=&psm_kbd[i];
if (o->x<=x<o->x+o->w && y<o->h) { if (o->x<=x<o->x+o->w && y<o->h) {
Msg(MSG_KEY_UP,o->ascii,0); Msg(MSG_KEY_UP,o->ascii,0);
+2 -2
View File
@@ -34,8 +34,8 @@ CColorROPU32 run_colors[2]={RED,GREEN};
#define MD_WIRE 3 #define MD_WIRE 3
#define MD_MOVE 4 #define MD_MOVE 4
#define MD_DELETE 5 #define MD_DELETE 5
#define MD_NUM_MODES 6 #define MD_MODES_NUM 6
CColorROPU32 mode_colors[MD_NUM_MODES]= CColorROPU32 mode_colors[MD_MODES_NUM]=
{BROWN,LTGRAY,DKGRAY,RED,PURPLE,RED}; {BROWN,LTGRAY,DKGRAY,RED,PURPLE,RED};
DefineLstLoad("ST_SPAN_MODES","Mass\0Concrete\0Steel\0Wire\0Move\0Delete\0"); DefineLstLoad("ST_SPAN_MODES","Mass\0Concrete\0Steel\0Wire\0Move\0Delete\0");
+2 -2
View File
@@ -275,7 +275,7 @@ U0 Span()
bt_run =CtrlBttnNew(0,0, 80,, bt_run =CtrlBttnNew(0,0, 80,,
2,"Stopped\0Running\0",run_colors,&run_bttn); 2,"Stopped\0Running\0",run_colors,&run_bttn);
bt_mode=CtrlBttnNew(0,3.0*FONT_HEIGHT,80,, bt_mode=CtrlBttnNew(0,3.0*FONT_HEIGHT,80,,
MD_NUM_MODES,Define("ST_SPAN_MODES"),mode_colors,&mode_bttn); MD_MODES_NUM,Define("ST_SPAN_MODES"),mode_colors,&mode_bttn);
a.saved_ode=NULL; a.saved_ode=NULL;
Fs->win_inhibit|=WIG_DBL_CLICK; Fs->win_inhibit|=WIG_DBL_CLICK;
@@ -386,7 +386,7 @@ U0 Span()
break; break;
case MSG_MS_R_DOWN: case MSG_MS_R_DOWN:
mode_bttn.state++; mode_bttn.state++;
if (mode_bttn.state>=MD_NUM_MODES) if (mode_bttn.state>=MD_MODES_NUM)
mode_bttn.state=0; mode_bttn.state=0;
cursor_mass=tmpm1=tmpm2=NULL; cursor_mass=tmpm1=tmpm2=NULL;
break; break;
+13 -13
View File
@@ -7,8 +7,8 @@ $SP,"<2>",BI=2$
$SP,"<3>",BI=3$ $SP,"<3>",BI=3$
$BG$ $BG$
#define NUM_STARS 8192 #define STARS_NUM 8192
I64 stars_x[NUM_STARS],stars_y[NUM_STARS]; I64 stars_x[STARS_NUM],stars_y[STARS_NUM];
#define RADIUS 7 #define RADIUS 7
@@ -25,8 +25,8 @@ class MySpring:CSpring
//Main Modses //Main Modses
#define MMD_EDIT 0 #define MMD_EDIT 0
#define MMD_PLAY 1 #define MMD_PLAY 1
#define MMD_NUM_MODES 2 #define MMD_MODES_NUM 2
CColorROPU32 main_mode_colors[MMD_NUM_MODES]={LTRED,LTGREEN}; CColorROPU32 main_mode_colors[MMD_MODES_NUM]={LTRED,LTGREEN};
DefineLstLoad("ST_MAIN_MODES","Edit\0Play\0"); DefineLstLoad("ST_MAIN_MODES","Edit\0Play\0");
CCtrlBttnState main_mode_bttn; CCtrlBttnState main_mode_bttn;
@@ -36,8 +36,8 @@ CCtrlBttnState main_mode_bttn;
#define EMD_CONNECTOR 2 #define EMD_CONNECTOR 2
#define EMD_THRUSTER 3 #define EMD_THRUSTER 3
#define EMD_MOVE 4 #define EMD_MOVE 4
#define EMD_NUM_MODES 5 #define EMD_MODES_NUM 5
CColorROPU32 edit_mode_colors[EMD_NUM_MODES]={LTGRAY,LTCYAN,CYAN,YELLOW,LTBLUE}; CColorROPU32 edit_mode_colors[EMD_MODES_NUM]={LTGRAY,LTCYAN,CYAN,YELLOW,LTBLUE};
DefineLstLoad("ST_EDIT_MODES","Mass\0Spring\0Connector\0Thruster\0Move\0"); DefineLstLoad("ST_EDIT_MODES","Mass\0Spring\0Connector\0Thruster\0Move\0");
CCtrlBttnState edit_mode_bttn; CCtrlBttnState edit_mode_bttn;
@@ -100,7 +100,7 @@ U0 DrawIt(CTask *,CDC *dc)
case MMD_PLAY: case MMD_PLAY:
task->text_attr=BLACK<<4+WHITE; task->text_attr=BLACK<<4+WHITE;
dc->color=WHITE; dc->color=WHITE;
for (i=0;i<NUM_STARS;i++) for (i=0;i<STARS_NUM;i++)
GrPlot3(dc,stars_x[i],stars_y[i],0); GrPlot3(dc,stars_x[i],stars_y[i],0);
break; break;
} }
@@ -293,7 +293,7 @@ U0 Init()
task=Fs; task=Fs;
for (i=0;i<=9;i++) for (i=0;i<=9;i++)
action_scan_codes[i]=Char2ScanCode('0'+i); action_scan_codes[i]=Char2ScanCode('0'+i);
for (i=0;i<NUM_STARS;i++) { for (i=0;i<STARS_NUM;i++) {
stars_x[i]=RandU32%8192-4096; stars_x[i]=RandU32%8192-4096;
stars_y[i]=RandU32%8192-4096; stars_y[i]=RandU32%8192-4096;
} }
@@ -378,7 +378,7 @@ U0 PlayShip()
ode->drag_v3=0.0001; ode->drag_v3=0.0001;
break; break;
case CH_SPACE: case CH_SPACE:
if (++main_mode_bttn.state==MMD_NUM_MODES) if (++main_mode_bttn.state==MMD_MODES_NUM)
main_mode_bttn.state=0; main_mode_bttn.state=0;
GetMsg(,,1<<MSG_KEY_UP); GetMsg(,,1<<MSG_KEY_UP);
goto ps_done; goto ps_done;
@@ -415,7 +415,7 @@ U0 EditShip()
F64 wx,wy; F64 wx,wy;
Bool okay; Bool okay;
MyMass *tmpm1=NULL,*tmpm2=NULL; MyMass *tmpm1=NULL,*tmpm2=NULL;
CCtrl *bt_edit_mode=CtrlBttnNew(0,5*FONT_HEIGHT+4,80,,EMD_NUM_MODES, CCtrl *bt_edit_mode=CtrlBttnNew(0,5*FONT_HEIGHT+4,80,,EMD_MODES_NUM,
Define("ST_EDIT_MODES"),edit_mode_colors,&edit_mode_bttn); Define("ST_EDIT_MODES"),edit_mode_colors,&edit_mode_bttn);
ode->flags|=ODEF_PAUSED; ode->flags|=ODEF_PAUSED;
MenuPush( MenuPush(
@@ -516,7 +516,7 @@ U0 EditShip()
} }
break; break;
case MSG_MS_R_DOWN: case MSG_MS_R_DOWN:
if (++edit_mode_bttn.state==EMD_NUM_MODES) if (++edit_mode_bttn.state==EMD_MODES_NUM)
edit_mode_bttn.state=0; edit_mode_bttn.state=0;
break; break;
case MSG_MS_R_UP: case MSG_MS_R_UP:
@@ -560,7 +560,7 @@ U0 EditShip()
Spawn(&Zoom,0.5(I64)); Spawn(&Zoom,0.5(I64));
break; break;
case CH_SPACE: case CH_SPACE:
if (++main_mode_bttn.state==MMD_NUM_MODES) if (++main_mode_bttn.state==MMD_MODES_NUM)
main_mode_bttn.state=0; main_mode_bttn.state=0;
GetMsg(,,1<<MSG_KEY_UP); GetMsg(,,1<<MSG_KEY_UP);
goto es_done; goto es_done;
@@ -615,7 +615,7 @@ U0 Strut()
PressAKey; PressAKey;
bt_main_mode=CtrlBttnNew( bt_main_mode=CtrlBttnNew(
(GR_WIDTH-4*FONT_WIDTH-16)>>1,1*FONT_HEIGHT+4,80,,MMD_NUM_MODES, (GR_WIDTH-4*FONT_WIDTH-16)>>1,1*FONT_HEIGHT+4,80,,MMD_MODES_NUM,
Define("ST_MAIN_MODES"),main_mode_colors,&main_mode_bttn); Define("ST_MAIN_MODES"),main_mode_colors,&main_mode_bttn);
DocClear; DocClear;
Init; Init;
+38 -38
View File
@@ -19,9 +19,9 @@ F64
#define PHASES_GROUPS 8 #define PHASES_GROUPS 8
#define HACK_DIST 5 #define HACK_DIST 5
#define U_NUM_ENEMY (PHASES_GROUPS*64) #define U_ENEMY_NUM (PHASES_GROUPS*64)
#define U_NUM_FRIENDLY (PHASES_GROUPS*16) #define U_FRIENDLY_NUM (PHASES_GROUPS*16)
#define U_NUM (U_NUM_FRIENDLY+U_NUM_ENEMY) #define U_NUM (U_FRIENDLY_NUM+U_ENEMY_NUM)
class Unit class Unit
{ {
I64 x,y,best_dd; I64 x,y,best_dd;
@@ -181,8 +181,8 @@ U8 *enemy_hacking_imgs[4]={$IB,"<14>",BI=14$,$IB,"<13>",BI=13$,$IB,"<14>",BI=14$
$BG$ $BG$
#define LS_NUM_APTS 20 #define LS_APTS_NUM 20
#define LS_NUM_MOUNTAINS 3 #define LS_MOUNTAINS_NUM 3
#define LS_NUM 128 #define LS_NUM 128
class LandScapeItem class LandScapeItem
{ {
@@ -456,7 +456,7 @@ U0 ExplosionDo(I64 x,I64 y,I64 scroll_y)
ManDie(tmpu,TRUE); ManDie(tmpu,TRUE);
} }
} }
for (i=0;i<LS_NUM_APTS;i++) { for (i=0;i<LS_APTS_NUM;i++) {
x2=ls[i].x; x2=ls[i].x;
y2=(ls[i].y-scroll_y)&(MAP_HEIGHT-1); y2=(ls[i].y-scroll_y)&(MAP_HEIGHT-1);
if (SqrI64(x-x2)+SqrI64(y-y2)<100*100) { if (SqrI64(x-x2)+SqrI64(y-y2)<100*100) {
@@ -514,7 +514,7 @@ U0 CheckCollisions()
} }
} }
if (!tmpb->dead) if (!tmpb->dead)
for (i=0;i<LS_NUM_APTS;i++) for (i=0;i<LS_APTS_NUM;i++)
if (2*SqrI64(x-ls[i].x)+ if (2*SqrI64(x-ls[i].x)+
3*SqrI64(y+35-(ls[i].y-scroll_y)&(MAP_HEIGHT-1))<2*60*60) { 3*SqrI64(y+35-(ls[i].y-scroll_y)&(MAP_HEIGHT-1))<2*60*60) {
tmpb->dead=TRUE; tmpb->dead=TRUE;
@@ -543,38 +543,38 @@ U0 Init()
é=-ã/2; é=-ã/2;
for (i=0;i<LS_NUM;i++) { for (i=0;i<LS_NUM;i++) {
ls[i].x=(Fs->pix_width-100)*RandU32/MAX_U32+50; ls[i].x=(Fs->pix_width-100)*RandU32/U32_MAX+50;
ls[i].y=(MAP_HEIGHT-100)*RandU32/MAX_U32+50; ls[i].y=(MAP_HEIGHT-100)*RandU32/U32_MAX+50;
ls[i].img=landscape_imgs[RandU16%(LS_TYPES-2)]; ls[i].img=landscape_imgs[RandU16%(LS_TYPES-2)];
} }
for (i=0;i<LS_NUM_APTS;i++) for (i=0;i<LS_APTS_NUM;i++)
ls[i].img=landscape_imgs[LS_TYPES-1]; //Apartment ls[i].img=landscape_imgs[LS_TYPES-1]; //Apartment
for (;i<LS_NUM_APTS+LS_NUM_MOUNTAINS;i++) for (;i<LS_APTS_NUM+LS_MOUNTAINS_NUM;i++)
ls[i].img=landscape_imgs[LS_TYPES-2]; //mountain ls[i].img=landscape_imgs[LS_TYPES-2]; //mountain
MemSet(u,0,sizeof(u)); MemSet(u,0,sizeof(u));
for (i=0,tmpu=u;i<U_NUM;i++,tmpu++) { for (i=0,tmpu=u;i<U_NUM;i++,tmpu++) {
if (i<U_NUM_FRIENDLY) { if (i<U_FRIENDLY_NUM) {
tmpu->friendly=TRUE; tmpu->friendly=TRUE;
if (!(i&7)) { if (!(i&7)) {
xx=(Fs->pix_width-200)*RandU32/MAX_U32; xx=(Fs->pix_width-200)*RandU32/U32_MAX;
yy=(MAP_HEIGHT-200)*RandU32/MAX_U32; yy=(MAP_HEIGHT-200)*RandU32/U32_MAX;
} }
} else { } else {
tmpu->friendly=FALSE; tmpu->friendly=FALSE;
if (!(i&31)) { if (!(i&31)) {
xx=(Fs->pix_width-200)*RandU32/MAX_U32; xx=(Fs->pix_width-200)*RandU32/U32_MAX;
yy=(MAP_HEIGHT-200)*RandU32/MAX_U32; yy=(MAP_HEIGHT-200)*RandU32/U32_MAX;
} }
if (!(i&15)) if (!(i&15))
tmpu->tank=TRUE; tmpu->tank=TRUE;
} }
tmpu->dead=FALSE; tmpu->dead=FALSE;
tmpu->x=xx+64*RandI32/MAX_I32+100; tmpu->x=xx+64*RandI32/I32_MAX+100;
tmpu->y=yy+64*RandU32/MAX_I32-64+100; tmpu->y=yy+64*RandU32/I32_MAX-64+100;
tmpu->best_dd=MAX_I64; tmpu->best_dd=I64_MAX;
tmpu->é=ã/2; tmpu->é=ã/2;
tmpu->phase=2*ã*Rand; tmpu->phase=2*ã*Rand;
} }
@@ -584,8 +584,8 @@ U0 Init()
e[i].dead=TRUE; e[i].dead=TRUE;
e[i].num=i; e[i].num=i;
} }
friendly_left=U_NUM_FRIENDLY; friendly_left=U_FRIENDLY_NUM;
enemy_left =U_NUM_ENEMY; enemy_left =U_ENEMY_NUM;
enemy_by_friendly=0; enemy_by_friendly=0;
bullets_fired=0; bullets_fired=0;
missile_bmp =15; missile_bmp =15;
@@ -661,11 +661,11 @@ Bool FireMissile(I64 n)
U0 MenMove(I64 phase_group) U0 MenMove(I64 phase_group)
{ {
I64 i,j,dd,best,best_dd; I64 i,j,dd,best,best_dd;
for (i=phase_group;i<U_NUM_FRIENDLY;i+=PHASES_GROUPS) { for (i=phase_group;i<U_FRIENDLY_NUM;i+=PHASES_GROUPS) {
if (!u[i].dead) { if (!u[i].dead) {
best=U_NUM_FRIENDLY; best=U_FRIENDLY_NUM;
best_dd=MAX_I64; best_dd=I64_MAX;
for (j=U_NUM_FRIENDLY;j<U_NUM;j++) { for (j=U_FRIENDLY_NUM;j<U_NUM;j++) {
if (!u[j].dead) { if (!u[j].dead) {
dd=SqrI64(u[i].x-u[j].x)+SqrI64(u[i].y-u[j].y); dd=SqrI64(u[i].x-u[j].x)+SqrI64(u[i].y-u[j].y);
if (dd<best_dd) { if (dd<best_dd) {
@@ -675,18 +675,18 @@ U0 MenMove(I64 phase_group)
} }
} }
u[i].best_dd=best_dd; u[i].best_dd=best_dd;
if (best_dd!=MAX_I64) { if (best_dd!=I64_MAX) {
u[i].x+=4*SignI64(u[best].x-u[i].x); u[i].x+=4*SignI64(u[best].x-u[i].x);
u[i].y+=4*SignI64(u[best].y-u[i].y); u[i].y+=4*SignI64(u[best].y-u[i].y);
u[i].é=Arg(u[best].x-u[i].x,u[best].y-u[i].y); u[i].é=Arg(u[best].x-u[i].x,u[best].y-u[i].y);
} }
} }
} }
for (i=U_NUM_FRIENDLY+phase_group;i<U_NUM;i+=PHASES_GROUPS) { for (i=U_FRIENDLY_NUM+phase_group;i<U_NUM;i+=PHASES_GROUPS) {
if (!u[i].dead) { if (!u[i].dead) {
best=0; best=0;
best_dd=MAX_I64; best_dd=I64_MAX;
for (j=0;j<U_NUM_FRIENDLY;j++) { for (j=0;j<U_FRIENDLY_NUM;j++) {
if (!u[j].dead) { if (!u[j].dead) {
dd=SqrI64(u[i].x-u[j].x)+SqrI64(u[i].y-u[j].y); dd=SqrI64(u[i].x-u[j].x)+SqrI64(u[i].y-u[j].y);
if (dd<best_dd) { if (dd<best_dd) {
@@ -696,7 +696,7 @@ U0 MenMove(I64 phase_group)
} }
} }
u[i].best_dd=best_dd; u[i].best_dd=best_dd;
if (best_dd!=MAX_I64) { if (best_dd!=I64_MAX) {
u[i].x+=4*SignI64(u[best].x-u[i].x); u[i].x+=4*SignI64(u[best].x-u[i].x);
u[i].y+=4*SignI64(u[best].y-u[i].y); u[i].y+=4*SignI64(u[best].y-u[i].y);
u[i].é=Arg(u[best].x-u[i].x,u[best].y-u[i].y); u[i].é=Arg(u[best].x-u[i].x,u[best].y-u[i].y);
@@ -708,11 +708,11 @@ U0 MenMove(I64 phase_group)
U0 MenFight(I64 phase_group) U0 MenFight(I64 phase_group)
{ {
I64 i,j,dd,best,best_dd; I64 i,j,dd,best,best_dd;
for (i=phase_group;i<U_NUM_FRIENDLY;i+=PHASES_GROUPS) { for (i=phase_group;i<U_FRIENDLY_NUM;i+=PHASES_GROUPS) {
if (!u[i].dead) { if (!u[i].dead) {
best=U_NUM_FRIENDLY; best=U_FRIENDLY_NUM;
best_dd=MAX_I64; best_dd=I64_MAX;
for (j=U_NUM_FRIENDLY;j<U_NUM;j++) { for (j=U_FRIENDLY_NUM;j<U_NUM;j++) {
if (!u[j].dead && u[i].y-u[j].y<8) { if (!u[j].dead && u[i].y-u[j].y<8) {
dd=SqrI64(u[i].x-u[j].x)+SqrI64(u[i].y-u[j].y); dd=SqrI64(u[i].x-u[j].x)+SqrI64(u[i].y-u[j].y);
if (dd<best_dd) { if (dd<best_dd) {
@@ -726,11 +726,11 @@ U0 MenFight(I64 phase_group)
ManDie(&u[best],FALSE); ManDie(&u[best],FALSE);
} }
} }
for (i=U_NUM_FRIENDLY+phase_group;i<U_NUM;i+=PHASES_GROUPS) { for (i=U_FRIENDLY_NUM+phase_group;i<U_NUM;i+=PHASES_GROUPS) {
if (!u[i].dead) { if (!u[i].dead) {
best=0; best=0;
best_dd=MAX_I64; best_dd=I64_MAX;
for (j=0;j<U_NUM_FRIENDLY;j++) { for (j=0;j<U_FRIENDLY_NUM;j++) {
if (!u[j].dead&& u[i].y-u[j].y<8) { if (!u[j].dead&& u[i].y-u[j].y<8) {
dd=SqrI64(u[i].x-u[j].x)+SqrI64(u[i].y-u[j].y); dd=SqrI64(u[i].x-u[j].x)+SqrI64(u[i].y-u[j].y);
if (dd<best_dd) { if (dd<best_dd) {
@@ -898,7 +898,7 @@ U0 Titanium()
} }
SleepUntil(next_update_jiffy); SleepUntil(next_update_jiffy);
total_score=3*(U_NUM_ENEMY-enemy_left)+5*enemy_by_friendly total_score=3*(U_ENEMY_NUM-enemy_left)+5*enemy_by_friendly
-100*friendly_fire-10*(tS-t0)-bullets_fired; -100*friendly_fire-10*(tS-t0)-bullets_fired;
if (game_over) { if (game_over) {
tf=tS; tf=tS;
+1 -1
View File
@@ -4,7 +4,7 @@ U0 PlayerIndirect()
I64 i,remaining=0,msg_code,arg1,arg2; I64 i,remaining=0,msg_code,arg1,arg2;
F64 target_x,target_y; F64 target_x,target_y;
ViewPlayerSet(cur_player); ViewPlayerSet(cur_player);
for (i=0;i<MAX_UNITS;i++) { for (i=0;i<UNITS_NUM;i++) {
tmpu=&units[cur_player][i]; tmpu=&units[cur_player][i];
if (tmpu->life>0 && tmpu->indirect_fire) if (tmpu->life>0 && tmpu->indirect_fire)
remaining++; remaining++;
+6 -6
View File
@@ -1,15 +1,15 @@
Unit *UnitNearestFind(I64 row,I64 col,I64 player,Bool in_LOS,F64 range=-1) Unit *UnitNearestFind(I64 row,I64 col,I64 player,Bool in_LOS,F64 range=-1)
{ {
I64 i; I64 i;
F64 dd,best_dd=MAX_F64,x1,y1,x2,y2; F64 dd,best_dd=F64_MAX,x1,y1,x2,y2;
Unit *best=NULL; Unit *best=NULL;
//$LK,"Sqrt",A="MN:Sqrt"$() is slow, so work with squared distances. //$LK,"Sqrt",A="MN:Sqrt"$() is slow, so work with squared distances.
if (range<0) if (range<0)
range=MAX_F64; range=F64_MAX;
else else
range*=range; range*=range;
RowCol2XY(&x1,&y1,row,col); RowCol2XY(&x1,&y1,row,col);
for (i=0;i<MAX_UNITS;i++) for (i=0;i<UNITS_NUM;i++)
if (units[player][i].life>0) { if (units[player][i].life>0) {
if (!in_LOS || LOS(row,col,units[player][i].row,units[player][i].col)) { if (!in_LOS || LOS(row,col,units[player][i].row,units[player][i].col)) {
RowCol2XY(&x2,&y2,units[player][i].row,units[player][i].col); RowCol2XY(&x2,&y2,units[player][i].row,units[player][i].col);
@@ -27,7 +27,7 @@ U0 PlayerIndirect()
{ {
Unit *target,*tmpu; Unit *target,*tmpu;
I64 i; I64 i;
for (i=0;i<MAX_UNITS;i++) { for (i=0;i<UNITS_NUM;i++) {
UserChk; UserChk;
tmpu=&units[cur_player][i]; tmpu=&units[cur_player][i];
if (tmpu->life>0 && tmpu->indirect_fire && if (tmpu->life>0 && tmpu->indirect_fire &&
@@ -43,7 +43,7 @@ U0 PlayerMove()
Unit *target,*tmpu; Unit *target,*tmpu;
I64 i; I64 i;
F64 x,y; F64 x,y;
for (i=0;i<MAX_UNITS;i++) { for (i=0;i<UNITS_NUM;i++) {
UserChk; UserChk;
tmpu=&units[cur_player][i]; tmpu=&units[cur_player][i];
if (tmpu->life>0) { if (tmpu->life>0) {
@@ -64,7 +64,7 @@ U0 PlayerDirect()
{ {
Unit *target,*tmpu; Unit *target,*tmpu;
I64 i; I64 i;
for (i=0;i<MAX_UNITS;i++) { for (i=0;i<UNITS_NUM;i++) {
UserChk; UserChk;
tmpu=&units[cur_player][i]; tmpu=&units[cur_player][i];
if (tmpu->life>0 && !tmpu->indirect_fire && if (tmpu->life>0 && !tmpu->indirect_fire &&
Binary file not shown.
+4 -4
View File
@@ -1,5 +1,5 @@
#define MAP_WIDTH 640 //Change this, if you like. #define MAP_WIDTH 640 //Change this, if you like.
#define MAX_UNITS 32 //Change this, if you like. #define UNITS_NUM 32 //Change this, if you like.
#define HEX_SIDE 11 #define HEX_SIDE 11
U0 InitDefines() U0 InitDefines()
@@ -60,10 +60,10 @@ class Unit
Bool vis[2],fired,infantry,indirect_fire,pad[3]; Bool vis[2],fired,infantry,indirect_fire,pad[3];
}; };
Unit units[2][MAX_UNITS]; Unit units[2][UNITS_NUM];
// Bt(vis_unit_bitmap,player1+player0*((MAX_UNITS+7)&~7)) // Bt(vis_unit_bitmap,player1+player0*((UNITS_NUM+7)&~7))
U8 vis_unit_bitmap[2][(((MAX_UNITS+7)&~7)*MAX_UNITS)>>3]; U8 vis_unit_bitmap[2][(((UNITS_NUM+7)&~7)*UNITS_NUM)>>3];
#define PHASE_START 0 #define PHASE_START 0
#define PHASE_INDIRECT 0 #define PHASE_INDIRECT 0
+7 -7
View File
@@ -234,7 +234,7 @@ U0 InitUnits()
I64 i,j,row,col,type; I64 i,j,row,col,type;
Unit *tmpu; Unit *tmpu;
MemSet(units,0,sizeof(units)); MemSet(units,0,sizeof(units));
alive_cnt[0]=alive_cnt[1]=MAX_UNITS; alive_cnt[0]=alive_cnt[1]=UNITS_NUM;
for (j=0;j<2;j++) for (j=0;j<2;j++)
for (i=0;i<alive_cnt[j];i++) { for (i=0;i<alive_cnt[j];i++) {
tmpu=&units[j][i]; tmpu=&units[j][i];
@@ -243,25 +243,25 @@ U0 InitUnits()
tmpu->life=100; tmpu->life=100;
tmpu->facing=RandU16%6; tmpu->facing=RandU16%6;
if (!j) { if (!j) {
if (i>=MAX_UNITS/2) { if (i>=UNITS_NUM/2) {
if (i>=15*MAX_UNITS/16) if (i>=15*UNITS_NUM/16)
type=UT_ARTILLERY; type=UT_ARTILLERY;
else else
type=UT_INFANTRY; type=UT_INFANTRY;
} else { } else {
if (i>=MAX_UNITS/4) if (i>=UNITS_NUM/4)
type=UT_MD_TANK; type=UT_MD_TANK;
else else
type=UT_LT_TANK; type=UT_LT_TANK;
} }
} else { } else {
if (i>=MAX_UNITS/2) { if (i>=UNITS_NUM/2) {
if (i>=15*MAX_UNITS/16) if (i>=15*UNITS_NUM/16)
type=UT_ARTILLERY; type=UT_ARTILLERY;
else else
type=UT_INFANTRY; type=UT_INFANTRY;
} else { } else {
if (i>=MAX_UNITS/4) if (i>=UNITS_NUM/4)
type=UT_MD_TANK; type=UT_MD_TANK;
else else
type=UT_LT_TANK; type=UT_LT_TANK;
+1 -1
View File
@@ -61,7 +61,7 @@ Unit *UnitFind(I64 row,I64 col)
{//Finds unit in a hexagon. {//Finds unit in a hexagon.
I64 i,j; I64 i,j;
for (j=0;j<2;j++) for (j=0;j<2;j++)
for (i=0;i<MAX_UNITS;i++) for (i=0;i<UNITS_NUM;i++)
if (units[j][i].life>0 && if (units[j][i].life>0 &&
units[j][i].row==row && units[j][i].row==row &&
units[j][i].col==col) units[j][i].col==col)
+20 -20
View File
@@ -22,7 +22,7 @@ U0 VRSetUp(I64 player)
Unit *ut0,*ut1; Unit *ut0,*ut1;
ut0=&units[player][0]; ut0=&units[player][0];
ut1=&units[player^1][0]; ut1=&units[player^1][0];
for (i=0;i<MAX_UNITS;i++,ut0++,ut1++) { for (i=0;i<UNITS_NUM;i++,ut0++,ut1++) {
LBtr(&ut1->vis[player],0); LBtr(&ut1->vis[player],0);
LBEqu(&ut0->vis[player],0,ut0->life>0); LBEqu(&ut0->vis[player],0,ut0->life>0);
} }
@@ -32,15 +32,15 @@ U0 VRMerge(I64 player)
{ {
I64 i,j; I64 i,j;
Unit *ut1; Unit *ut1;
U8 *dst,*src,*mask=CAlloc((MAX_UNITS+7)>>3); U8 *dst,*src,*mask=CAlloc((UNITS_NUM+7)>>3);
for (j=0;j<MAX_UNITS;j++) {//p0 for (j=0;j<UNITS_NUM;j++) {//p0
src=&vis_unit_bitmap[player][(((MAX_UNITS+7)&~7)*j)>>3]; src=&vis_unit_bitmap[player][(((UNITS_NUM+7)&~7)*j)>>3];
dst=mask; dst=mask;
for (i=0;i<(MAX_UNITS+7)>>3;i++) //player1 for (i=0;i<(UNITS_NUM+7)>>3;i++) //player1
*dst++|=*src++; *dst++|=*src++;
} }
ut1=&units[player^1][0]; ut1=&units[player^1][0];
for (j=0;j<MAX_UNITS;j++,ut1++) for (j=0;j<UNITS_NUM;j++,ut1++)
LBEqu(&ut1->vis[player],0,Bt(mask,j) && ut1->life>0); LBEqu(&ut1->vis[player],0,Bt(mask,j) && ut1->life>0);
Free(mask); Free(mask);
} }
@@ -63,7 +63,7 @@ Bool MPVisRecalc(MPCtrl1 *job)
case VR_UPDATE_FRIENDLY_UNIT: case VR_UPDATE_FRIENDLY_UNIT:
case VR_ONE_FRIENDLY_UNIT: case VR_ONE_FRIENDLY_UNIT:
if (job->mode==VR_UPDATE_FRIENDLY_UNIT) if (job->mode==VR_UPDATE_FRIENDLY_UNIT)
range=MAX_F64; range=F64_MAX;
RowCol2XY(&x1,&y1,row,col); RowCol2XY(&x1,&y1,row,col);
for (i=job->lo;i<job->hi;i++,ut1++) { for (i=job->lo;i<job->hi;i++,ut1++) {
seen=FALSE; seen=FALSE;
@@ -78,7 +78,7 @@ Bool MPVisRecalc(MPCtrl1 *job)
} }
if (job->mode==VR_UPDATE_FRIENDLY_UNIT) if (job->mode==VR_UPDATE_FRIENDLY_UNIT)
LBEqu(&vis_unit_bitmap[cur_player], LBEqu(&vis_unit_bitmap[cur_player],
i+job->tmpu->num*((MAX_UNITS+7)&~7),seen); i+job->tmpu->num*((UNITS_NUM+7)&~7),seen);
} }
break; break;
case VR_ONE_ENEMY_UNIT: case VR_ONE_ENEMY_UNIT:
@@ -87,15 +87,15 @@ Bool MPVisRecalc(MPCtrl1 *job)
if (ut1->life>0 && if (ut1->life>0 &&
LOS(row,col,ut1->row,ut1->col)) { LOS(row,col,ut1->row,ut1->col)) {
LBts(&vis_unit_bitmap[enemy_player], LBts(&vis_unit_bitmap[enemy_player],
job->tmpu->num+i*((MAX_UNITS+7)&~7)); job->tmpu->num+i*((UNITS_NUM+7)&~7));
res=TRUE; res=TRUE;
} else } else
LBtr(&vis_unit_bitmap[enemy_player], LBtr(&vis_unit_bitmap[enemy_player],
job->tmpu->num+i*((MAX_UNITS+7)&~7)); job->tmpu->num+i*((UNITS_NUM+7)&~7));
break; break;
case VR_ALL_UNITS: case VR_ALL_UNITS:
ut0=&units[cur_player][0]; ut0=&units[cur_player][0];
for (i=0;i<MAX_UNITS;i++,ut0++) for (i=0;i<UNITS_NUM;i++,ut0++)
if (ut0->life>0) { if (ut0->life>0) {
RowCol2XY(&x1,&y1,ut0->row,ut0->col); RowCol2XY(&x1,&y1,ut0->row,ut0->col);
ut1=&units[enemy_player][job->lo]; ut1=&units[enemy_player][job->lo];
@@ -103,15 +103,15 @@ Bool MPVisRecalc(MPCtrl1 *job)
if (ut1->life>0 && if (ut1->life>0 &&
LOS(ut0->row,ut0->col,ut1->row,ut1->col)) { LOS(ut0->row,ut0->col,ut1->row,ut1->col)) {
LBts(&ut1->vis[cur_player],0); LBts(&ut1->vis[cur_player],0);
LBts(&vis_unit_bitmap[cur_player],j+i*((MAX_UNITS+7)&~7)); LBts(&vis_unit_bitmap[cur_player],j+i*((UNITS_NUM+7)&~7));
} else } else
LBtr(&vis_unit_bitmap[cur_player],j+i*((MAX_UNITS+7)&~7)); LBtr(&vis_unit_bitmap[cur_player],j+i*((UNITS_NUM+7)&~7));
} }
} else } else
for (j=job->lo;j<job->hi;j++) for (j=job->lo;j<job->hi;j++)
LBtr(&vis_unit_bitmap[cur_player],j+i*((MAX_UNITS+7)&~7)); LBtr(&vis_unit_bitmap[cur_player],j+i*((UNITS_NUM+7)&~7));
ut0=&units[enemy_player][0]; ut0=&units[enemy_player][0];
for (i=0;i<MAX_UNITS;i++,ut0++) for (i=0;i<UNITS_NUM;i++,ut0++)
if (ut0->life>0) { if (ut0->life>0) {
RowCol2XY(&x1,&y1,ut0->row,ut0->col); RowCol2XY(&x1,&y1,ut0->row,ut0->col);
ut1=&units[cur_player][job->lo]; ut1=&units[cur_player][job->lo];
@@ -119,13 +119,13 @@ Bool MPVisRecalc(MPCtrl1 *job)
if (ut1->life>0 && if (ut1->life>0 &&
LOS(ut0->row,ut0->col,ut1->row,ut1->col)) { LOS(ut0->row,ut0->col,ut1->row,ut1->col)) {
LBts(&ut1->vis[enemy_player],0); LBts(&ut1->vis[enemy_player],0);
LBts(&vis_unit_bitmap[enemy_player],j+i*((MAX_UNITS+7)&~7)); LBts(&vis_unit_bitmap[enemy_player],j+i*((UNITS_NUM+7)&~7));
} else } else
LBtr(&vis_unit_bitmap[enemy_player],j+i*((MAX_UNITS+7)&~7)); LBtr(&vis_unit_bitmap[enemy_player],j+i*((UNITS_NUM+7)&~7));
} }
} else } else
for (j=job->lo;j<job->hi;j++) for (j=job->lo;j<job->hi;j++)
LBtr(&vis_unit_bitmap[enemy_player],j+i*((MAX_UNITS+7)&~7)); LBtr(&vis_unit_bitmap[enemy_player],j+i*((UNITS_NUM+7)&~7));
break; break;
} }
return res; return res;
@@ -148,13 +148,13 @@ $LK,"MAlloc",A="MN:MAlloc"$() would probably be the better choice.
if (mode==VR_FRIENDLY_UNIT_DIED) { if (mode==VR_FRIENDLY_UNIT_DIED) {
MemSet((&vis_unit_bitmap[enemy_player])(U8 *)+ MemSet((&vis_unit_bitmap[enemy_player])(U8 *)+
(tmpu->num*((MAX_UNITS+7)&~7))>>3,0,(MAX_UNITS+7)>>3); (tmpu->num*((UNITS_NUM+7)&~7))>>3,0,(UNITS_NUM+7)>>3);
VRMerge(enemy_player); VRMerge(enemy_player);
return 0; //Return any value--don't care return 0; //Return any value--don't care
} }
cnt=mp_cnt; //Cores cnt=mp_cnt; //Cores
hi=MAX_UNITS; hi=UNITS_NUM;
if (mode==VR_ONE_ENEMY_UNIT) { if (mode==VR_ONE_ENEMY_UNIT) {
for (hi--;hi>=0;hi--) for (hi--;hi>=0;hi--)
if (units[enemy_player][hi].life>0) if (units[enemy_player][hi].life>0)
+1 -1
View File
@@ -7,7 +7,7 @@ U0 TurnNew()
{ {
I64 i,j; I64 i,j;
for (j=0;j<2;j++) for (j=0;j<2;j++)
for (i=0;i<MAX_UNITS;i++) { for (i=0;i<UNITS_NUM;i++) {
units[j][i].remaining_movement=units[j][i].movement; units[j][i].remaining_movement=units[j][i].movement;
units[j][i].fired=FALSE; units[j][i].fired=FALSE;
} }
+35 -35
View File
@@ -28,9 +28,9 @@ class MySpring:CSpring
}; };
#define SPIN_GAIN 0.25 #define SPIN_GAIN 0.25
#define MAX_MASSES 8 #define MASSES_NUM 8
#define MAX_SPRINGS 16 #define SPRINGS_NUM 16
#define MAX_MISSILES 2 #define MISSILES_NUM 2
#define ST_HUMAN1 0 #define ST_HUMAN1 0
#define ST_ENEMY1 1 #define ST_ENEMY1 1
#define ST_ENEMY2 2 #define ST_ENEMY2 2
@@ -53,14 +53,14 @@ class Ship
{ {
Ship *next,*last; Ship *next,*last;
I64 type,masses,springs; I64 type,masses,springs;
MyMass p[MAX_MASSES]; MyMass p[MASSES_NUM];
MySpring s[MAX_SPRINGS]; MySpring s[SPRINGS_NUM];
F64 fire_rate; F64 fire_rate;
F64 reload_timeout,spacewalk_timeout; F64 reload_timeout,spacewalk_timeout;
F64 die_time,die_timeout; F64 die_time,die_timeout;
I64 spacewalk_side; I64 spacewalk_side;
F64 laser_temperature; F64 laser_temperature;
Missile missiles[MAX_MISSILES]; Missile missiles[MISSILES_NUM];
Bool lasering,exploding,laser_overheat; Bool lasering,exploding,laser_overheat;
} ship_head,*human; } ship_head,*human;
@@ -77,8 +77,8 @@ class Shot
F64 t_solar_storm; F64 t_solar_storm;
Bool alarm; Bool alarm;
#define MAX_THRUST 200.0 #define THRUST_MAX 200.0
#define MAX_ANTISPIN 25.0 #define ANTISPIN_MAX 25.0
#define SPACEWALK_TIME 7.5 #define SPACEWALK_TIME 7.5
#define CMD_NULL 0 #define CMD_NULL 0
@@ -89,8 +89,8 @@ Bool alarm;
#define CMD_EXIT 5 #define CMD_EXIT 5
Bool game_over,show_level_msg; Bool game_over,show_level_msg;
#define NUM_STARS 100 #define STARS_NUM 100
I64 stars_x[NUM_STARS],stars_y[NUM_STARS]; I64 stars_x[STARS_NUM],stars_y[STARS_NUM];
CMathODE *ode=NULL; CMathODE *ode=NULL;
I64 level,score,remaining; I64 level,score,remaining;
@@ -471,7 +471,7 @@ U0 DrawIt(CTask *task,CDC *dc)
(task->pix_height-FONT_HEIGHT)/2+50,"Level %d",level); (task->pix_height-FONT_HEIGHT)/2+50,"Level %d",level);
} }
for (i=0;i<NUM_STARS;i++) for (i=0;i<STARS_NUM;i++)
GrPlot(dc,stars_x[i],stars_y[i]); GrPlot(dc,stars_x[i],stars_y[i]);
tmpm=ode->next_mass; tmpm=ode->next_mass;
@@ -534,7 +534,7 @@ U0 DrawIt(CTask *task,CDC *dc)
} else } else
spin=0; spin=0;
t_left =Clamp(human_t_left+SPIN_GAIN*spin*human_antispin, t_left =Clamp(human_t_left+SPIN_GAIN*spin*human_antispin,
0,MAX_THRUST); 0,THRUST_MAX);
if (d=D3Norm(D3Sub(&p1,&tmpsp->p[0].x,&tmpsp->p[2].x))) { if (d=D3Norm(D3Sub(&p1,&tmpsp->p[0].x,&tmpsp->p[2].x))) {
D3Sub(&p2,&tmpsp->p[0].DxDt,&tmpsp->p[2].DxDt); D3Sub(&p2,&tmpsp->p[0].DxDt,&tmpsp->p[2].DxDt);
@@ -543,7 +543,7 @@ U0 DrawIt(CTask *task,CDC *dc)
} else } else
spin=0; spin=0;
t_right=Clamp(human_t_right-SPIN_GAIN*spin*human_antispin, t_right=Clamp(human_t_right-SPIN_GAIN*spin*human_antispin,
0,MAX_THRUST); 0,THRUST_MAX);
} }
D3Sub(&p1,&tmpsp->p[1].x,&tmpsp->p[0].x); D3Sub(&p1,&tmpsp->p[1].x,&tmpsp->p[0].x);
@@ -737,7 +737,7 @@ U0 Explosion(MyMass *tmpm1,MyMass *tmpm2,F64 tons)
Ship TargetGet(Missile *tmpmi) Ship TargetGet(Missile *tmpmi)
{ {
Ship *tmpsp,*res=NULL; Ship *tmpsp,*res=NULL;
F64 dd,best_dd=MAX_F64; F64 dd,best_dd=F64_MAX;
I64 i; I64 i;
CD3 p,p1,p2; CD3 p,p1,p2;
D3Unit(D3Sub(&p,&tmpmi->p_front.state->x,&tmpmi->p_back.state->x)); D3Unit(D3Sub(&p,&tmpmi->p_front.state->x,&tmpmi->p_back.state->x));
@@ -831,15 +831,15 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *)
if (0.485<d<0.515) { if (0.485<d<0.515) {
D3Unit(D3Sub(&p,&tmpsp->p[2].state->x,&tmpsp->p[1].state->x)); D3Unit(D3Sub(&p,&tmpsp->p[2].state->x,&tmpsp->p[1].state->x));
if (tmpsp->spacewalk_side==3) { if (tmpsp->spacewalk_side==3) {
tmpsp->p[3].DstateDt->DxDt-=10*MAX_THRUST*p.x; tmpsp->p[3].DstateDt->DxDt-=10*THRUST_MAX*p.x;
tmpsp->p[3].DstateDt->DyDt-=10*MAX_THRUST*p.y; tmpsp->p[3].DstateDt->DyDt-=10*THRUST_MAX*p.y;
tmpsp->p[1].DstateDt->DxDt+=10*MAX_THRUST*p.x; tmpsp->p[1].DstateDt->DxDt+=10*THRUST_MAX*p.x;
tmpsp->p[1].DstateDt->DyDt+=10*MAX_THRUST*p.y; tmpsp->p[1].DstateDt->DyDt+=10*THRUST_MAX*p.y;
} else { } else {
tmpsp->p[4].DstateDt->DxDt+=10*MAX_THRUST*p.x; tmpsp->p[4].DstateDt->DxDt+=10*THRUST_MAX*p.x;
tmpsp->p[4].DstateDt->DyDt+=10*MAX_THRUST*p.y; tmpsp->p[4].DstateDt->DyDt+=10*THRUST_MAX*p.y;
tmpsp->p[2].DstateDt->DxDt-=10*MAX_THRUST*p.x; tmpsp->p[2].DstateDt->DxDt-=10*THRUST_MAX*p.x;
tmpsp->p[2].DstateDt->DyDt-=10*MAX_THRUST*p.y; tmpsp->p[2].DstateDt->DyDt-=10*THRUST_MAX*p.y;
} }
} }
} else { } else {
@@ -851,7 +851,7 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *)
} else } else
spin=0; spin=0;
t_left =Clamp(human_t_left+SPIN_GAIN*spin*human_antispin, t_left =Clamp(human_t_left+SPIN_GAIN*spin*human_antispin,
0,MAX_THRUST); 0,THRUST_MAX);
if (d=D3Norm(D3Sub(&p1,&tmpsp->p[0].state->x, if (d=D3Norm(D3Sub(&p1,&tmpsp->p[0].state->x,
&tmpsp->p[2].state->x))) { &tmpsp->p[2].state->x))) {
@@ -861,7 +861,7 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *)
} else } else
spin=0; spin=0;
t_right=Clamp(human_t_right-SPIN_GAIN*spin*human_antispin, t_right=Clamp(human_t_right-SPIN_GAIN*spin*human_antispin,
0,MAX_THRUST); 0,THRUST_MAX);
D3Sub(&p1,&tmpsp->p[0].state->x,&tmpsp->p[1].state->x); D3Sub(&p1,&tmpsp->p[0].state->x,&tmpsp->p[1].state->x);
D3Sub(&p2,&tmpsp->p[0].state->x,&tmpsp->p[2].state->x); D3Sub(&p2,&tmpsp->p[0].state->x,&tmpsp->p[2].state->x);
@@ -905,7 +905,7 @@ U0 MyDerivative(CMathODE *ode,F64,COrder2D3 *,COrder2D3 *)
p2.x=p.x*Cos(é_thrust)-p.y*Sin(é_thrust); p2.x=p.x*Cos(é_thrust)-p.y*Sin(é_thrust);
p2.y=p.y*Cos(é_thrust)+p.x*Sin(é_thrust); p2.y=p.y*Cos(é_thrust)+p.x*Sin(é_thrust);
p2.z=0; p2.z=0;
D3AddEqu(&tmpmi->p_back.DstateDt->DxDt,D3MulEqu(&p2,MAX_THRUST)); D3AddEqu(&tmpmi->p_back.DstateDt->DxDt,D3MulEqu(&p2,THRUST_MAX));
} }
} }
} else } else
@@ -970,7 +970,7 @@ U0 CheckDamage()
human->laser_overheat=FALSE; human->laser_overheat=FALSE;
} }
if (!human->laser_overheat && human->lasering) { if (!human->laser_overheat && human->lasering) {
if (human->laser_temperature>=LASER_MAX_TEMP) { if (human->laser_temperature>=LASER_TEMP_MAX) {
human->laser_overheat=TRUE; human->laser_overheat=TRUE;
Snd; Snd;
} else { } else {
@@ -982,7 +982,7 @@ U0 CheckDamage()
p2.y=-p.x; p2.y=-p.x;
p2.z=0; p2.z=0;
best_mass=NULL; best_mass=NULL;
best_distance=MAX_F64; best_distance=F64_MAX;
tmpm=ode->next_mass; tmpm=ode->next_mass;
while (tmpm!=&ode->next_mass) { while (tmpm!=&ode->next_mass) {
D3Sub(&p1,&human->p[0].x,&tmpm->x); D3Sub(&p1,&human->p[0].x,&tmpm->x);
@@ -1050,7 +1050,7 @@ U0 CheckDamage()
} }
if (!tmpsp->exploding) { if (!tmpsp->exploding) {
for (i=0;i<tmpsp->masses;i++) for (i=0;i<tmpsp->masses;i++)
if (tmpsp->p[i].temperature>MAX_MASS_TEMP) if (tmpsp->p[i].temperature>MASS_TEMP_MAX)
death_score++; death_score++;
if (death_score) { if (death_score) {
tmpsp->exploding=TRUE; tmpsp->exploding=TRUE;
@@ -1249,7 +1249,7 @@ U0 ExpireMissiles()
while (tmpmi!=&missile_head) { while (tmpmi!=&missile_head) {
tmpm1=tmpmi->next; tmpm1=tmpmi->next;
if (tmpmi->launched) { if (tmpmi->launched) {
best_dd=MAX_F64; best_dd=F64_MAX;
if (tmpmi->target) if (tmpmi->target)
for (i=0;i<tmpmi->target->masses;i++) { for (i=0;i<tmpmi->target->masses;i++) {
dd=D3DistSqr(&tmpmi->p_front.x,&tmpmi->target->p[i].x); dd=D3DistSqr(&tmpmi->p_front.x,&tmpmi->target->p[i].x);
@@ -1331,7 +1331,7 @@ U0 Init()
QueInit(&shot_head); QueInit(&shot_head);
QueInit(&missile_head); QueInit(&missile_head);
for (i=0;i<NUM_STARS;i++) { for (i=0;i<STARS_NUM;i++) {
stars_x[i]=RandU16%GR_WIDTH; stars_x[i]=RandU16%GR_WIDTH;
stars_y[i]=RandU16%GR_HEIGHT; stars_y[i]=RandU16%GR_HEIGHT;
} }
@@ -1407,7 +1407,7 @@ U0 XCaliber()
else if (sc&SCF_SHIFT) else if (sc&SCF_SHIFT)
ctrl_panel.fuse_time+=2; ctrl_panel.fuse_time+=2;
else else
human_t_right=MAX_THRUST; human_t_right=THRUST_MAX;
break; break;
case SC_CURSOR_LEFT: case SC_CURSOR_LEFT:
if (sc&SCF_CTRL) if (sc&SCF_CTRL)
@@ -1415,21 +1415,21 @@ U0 XCaliber()
else if (sc&SCF_SHIFT) else if (sc&SCF_SHIFT)
ctrl_panel.fuse_time-=2; ctrl_panel.fuse_time-=2;
else else
human_t_left =MAX_THRUST; human_t_left =THRUST_MAX;
break; break;
case SC_CURSOR_UP: case SC_CURSOR_UP:
if (sc&SCF_SHIFT) if (sc&SCF_SHIFT)
ctrl_panel.shot_radius+=2; ctrl_panel.shot_radius+=2;
else { else {
human_t_right=MAX_THRUST; human_t_right=THRUST_MAX;
human_t_left =MAX_THRUST; human_t_left =THRUST_MAX;
} }
break; break;
case SC_CURSOR_DOWN: case SC_CURSOR_DOWN:
if (sc&SCF_SHIFT) if (sc&SCF_SHIFT)
ctrl_panel.shot_radius-=2; ctrl_panel.shot_radius-=2;
else else
human_antispin=MAX_ANTISPIN; human_antispin=ANTISPIN_MAX;
break; break;
} }
break; break;
+3 -3
View File
@@ -1,6 +1,6 @@
#define LASER_MAX_TEMP 30.0 #define LASER_TEMP_MAX 30.0
#define LASER_THRESHOLD_TEMP 10.0 #define LASER_THRESHOLD_TEMP 10.0
#define MAX_MASS_TEMP 5.0 #define MASS_TEMP_MAX 5.0
class CtrlPanelState class CtrlPanelState
{ {
@@ -82,7 +82,7 @@ U0 DrawCtrlPanelCtrl(CDC *dc,CCtrl *c)
CTRL_PANEL_RANGE-1-s->fuse_time-1,5,3); CTRL_PANEL_RANGE-1-s->fuse_time-1,5,3);
d_range=c->right-c->left-5-5; d_range=c->right-c->left-5-5;
d=s->laser_temperature*d_range/LASER_MAX_TEMP; d=s->laser_temperature*d_range/LASER_TEMP_MAX;
dc->color=BLACK; dc->color=BLACK;
GrRect(dc,c->left+5-1,c->bottom+TMP_Y-2,d_range+2,2+1+1); GrRect(dc,c->left+5-1,c->bottom+TMP_Y-2,d_range+2,2+1+1);
if (d>1.0) { if (d>1.0) {
+14 -14
View File
@@ -226,26 +226,26 @@ I64 AsmMakeArgMask(CCmpCtrl *cc,CAsmArg *arg)
if (arg->indirect) if (arg->indirect)
res&=0x00FFFF0000; res&=0x00FFFF0000;
else if (arg->num.i<0) { else if (arg->num.i<0) {
if (arg->num.i>=MIN_I8) if (arg->num.i>=I8_MIN)
res&=0x8FE; res&=0x8FE;
else if (arg->num.i>=MIN_I16) else if (arg->num.i>=I16_MIN)
res&=0x8EE; res&=0x8EE;
else if (arg->num.i>=MIN_I32) else if (arg->num.i>=I32_MIN)
res&=0x8CE; res&=0x8CE;
else else
res&=0x88E; res&=0x88E;
} else { } else {
if (arg->num.i<=MAX_I8) if (arg->num.i<=I8_MAX)
res&=0xFFE; res&=0xFFE;
else if (arg->num.i<=MAX_U8) else if (arg->num.i<=U8_MAX)
res&=0xFEE; res&=0xFEE;
else if (arg->num.i<=MAX_I16) else if (arg->num.i<=I16_MAX)
res&=0xEEE; res&=0xEEE;
else if (arg->num.i<=MAX_U16) else if (arg->num.i<=U16_MAX)
res&=0xECE; res&=0xECE;
else if (arg->num.i<=MAX_I32) else if (arg->num.i<=I32_MAX)
res&=0xCCE; res&=0xCCE;
else if (arg->num.i<=MAX_U32) else if (arg->num.i<=U32_MAX)
res&=0xC8E; res&=0xC8E;
else else
res&=0x88E; res&=0x88E;
@@ -280,7 +280,7 @@ Bool AsmStoreNum(CCmpCtrl *cc,CAsmNum2 *num2,I64 cnt,Bool U8_avail)
aotc->rip,num2->rel,num2->num.local_asm_undef_hash, aotc->rip,num2->rel,num2->num.local_asm_undef_hash,
num2->num.glbl_asm_undef_hash,cc->lex_include_stk->line_num, num2->num.glbl_asm_undef_hash,cc->lex_include_stk->line_num,
U8_avail); U8_avail);
else if (!num2->imm_flag && !(MIN_I8<=num2->num.i<=MAX_I8)) else if (!num2->imm_flag && !(I8_MIN<=num2->num.i<=I8_MAX))
LexExcept(cc,"Branch out of range at "); LexExcept(cc,"Branch out of range at ");
if (num2->imm_flag) { if (num2->imm_flag) {
if (num2->num.abs_cnts.abs_addres&1) { if (num2->num.abs_cnts.abs_addres&1) {
@@ -307,7 +307,7 @@ Bool AsmStoreNum(CCmpCtrl *cc,CAsmNum2 *num2,I64 cnt,Bool U8_avail)
aotc->rip,num2->rel,num2->num.local_asm_undef_hash, aotc->rip,num2->rel,num2->num.local_asm_undef_hash,
num2->num.glbl_asm_undef_hash,cc->lex_include_stk->line_num, num2->num.glbl_asm_undef_hash,cc->lex_include_stk->line_num,
U8_avail); U8_avail);
else if (!num2->imm_flag && !(MIN_I16<=num2->num.i<=MAX_I16)) else if (!num2->imm_flag && !(I16_MIN<=num2->num.i<=I16_MAX))
LexExcept(cc,"Branch out of range at "); LexExcept(cc,"Branch out of range at ");
if (num2->imm_flag) { if (num2->imm_flag) {
if (num2->num.abs_cnts.abs_addres&1) { if (num2->num.abs_cnts.abs_addres&1) {
@@ -334,7 +334,7 @@ Bool AsmStoreNum(CCmpCtrl *cc,CAsmNum2 *num2,I64 cnt,Bool U8_avail)
aotc->rip,num2->rel,num2->num.local_asm_undef_hash, aotc->rip,num2->rel,num2->num.local_asm_undef_hash,
num2->num.glbl_asm_undef_hash,cc->lex_include_stk->line_num, num2->num.glbl_asm_undef_hash,cc->lex_include_stk->line_num,
U8_avail); U8_avail);
else if (!num2->imm_flag && !(MIN_I32<=num2->num.i<=MAX_I32)) else if (!num2->imm_flag && !(I32_MIN<=num2->num.i<=I32_MAX))
LexExcept(cc,"Branch out of range at "); LexExcept(cc,"Branch out of range at ");
if (num2->imm_flag) { if (num2->imm_flag) {
if (num2->num.abs_cnts.abs_addres&1) { if (num2->num.abs_cnts.abs_addres&1) {
@@ -542,7 +542,7 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tmpo,I64 argcnt)
if (tmpa1->imm_or_off_present) { if (tmpa1->imm_or_off_present) {
MemCpy(&cur.disp.num,&tmpa1->num,sizeof(CAsmNum)); MemCpy(&cur.disp.num,&tmpa1->num,sizeof(CAsmNum));
if (!cur.disp.num.machine_code && if (!cur.disp.num.machine_code &&
MIN_I8<=cur.disp.num.i<=MAX_I8) { I8_MIN<=cur.disp.num.i<=I8_MAX) {
cur.ModrM|=0x40; cur.ModrM|=0x40;
cur.disp.U8_cnt=1; cur.disp.U8_cnt=1;
} else if (aotc->seg_size==16) { } else if (aotc->seg_size==16) {
@@ -689,7 +689,7 @@ Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tmpo,I64 argcnt)
if (tmpa1->imm_or_off_present) { if (tmpa1->imm_or_off_present) {
MemCpy(&cur.disp.num,&tmpa1->num,sizeof(CAsmNum)); MemCpy(&cur.disp.num,&tmpa1->num,sizeof(CAsmNum));
if (!cur.disp.num.machine_code && if (!cur.disp.num.machine_code &&
MIN_I8<=cur.disp.num.i<=MAX_I8) { I8_MIN<=cur.disp.num.i<=I8_MAX) {
cur.ModrM|=0x40; cur.ModrM|=0x40;
cur.disp.U8_cnt=1; cur.disp.U8_cnt=1;
} else if (aotc->seg_size==16) { } else if (aotc->seg_size==16) {
+1 -1
View File
@@ -194,7 +194,7 @@ U0 AsmHashLoad()
} }
Free(tmpo_max); Free(tmpo_max);
CmpCtrlDel(cc); CmpCtrlDel(cc);
for (i=0;i<NUM_INTERNAL_TYPES;i++) { for (i=0;i<INTERNAL_TYPES_NUM;i++) {
tmpit=&internal_types_table[i]; tmpit=&internal_types_table[i];
tmpc=PrsClassNew; tmpc=PrsClassNew;
tmpc->type=HTT_INTERNAL_TYPE; tmpc->type=HTT_INTERNAL_TYPE;
+2 -2
View File
@@ -18,8 +18,8 @@ U0 AsmResolve(CCmpCtrl *cc,CAsmUnresolvedRef *tmpu,U8 *label,Bool undefined)
} }
} else if (!(tmpu->type&IEF_IMM_NOT_REL)) { } else if (!(tmpu->type&IEF_IMM_NOT_REL)) {
res-=tmpu->rel_rip; res-=tmpu->rel_rip;
if (tmpu->type==IET_REL_I8 && !(MIN_I8<=res<=MAX_I8) || if (tmpu->type==IET_REL_I8 && !(I8_MIN<=res<=I8_MAX) ||
tmpu->type==IET_REL_I16 && !(MIN_I16<=res<=MAX_I16)) { tmpu->type==IET_REL_I16 && !(I16_MIN<=res<=I16_MAX)) {
PrintErr("Branch out of range at line:%04d %s\n", PrintErr("Branch out of range at line:%04d %s\n",
tmpu->line_num,label); tmpu->line_num,label);
LexExcept(cc); LexExcept(cc);
+11 -11
View File
@@ -82,17 +82,17 @@ U0 ICAddSubEctImm(CIntermediateCode *tmpi,CICType t1,I64 r1,I64 d1,
} else if (d==-1 && op.u8[0]==0x03) { } else if (d==-1 && op.u8[0]==0x03) {
ICU24(tmpi,0xC8FF00+i+(r1&7)<<16); ICU24(tmpi,0xC8FF00+i+(r1&7)<<16);
return; return;
} else if (MIN_I8<=d<=MAX_I8) { } else if (I8_MIN<=d<=I8_MAX) {
ICU24(tmpi,0xC08300+op.u8[1]<<19+i+(r1&7)<<16); ICU24(tmpi,0xC08300+op.u8[1]<<19+i+(r1&7)<<16);
ICU8(tmpi,d); ICU8(tmpi,d);
return; return;
} else if (MIN_I32<=d<=MAX_I32) { } else if (I32_MIN<=d<=I32_MAX) {
ICU24(tmpi,0xC08100+op.u8[1]<<19+i+(r1&7)<<16); ICU24(tmpi,0xC08100+op.u8[1]<<19+i+(r1&7)<<16);
ICU32(tmpi,d); ICU32(tmpi,d);
return; return;
} }
} }
if (op.u8[0]==0x03 && MIN_I32<=d<=MAX_I32 && if (op.u8[0]==0x03 && I32_MIN<=d<=I32_MAX &&
!Bt(&cmp.non_ptr_vars_mask,r2)) { !Bt(&cmp.non_ptr_vars_mask,r2)) {
i=ICModr1(r1,MDF_DISP+RT_I64,r2,d); i=ICModr1(r1,MDF_DISP+RT_I64,r2,d);
i.u8[1]|=0x48; i.u8[1]|=0x48;
@@ -141,12 +141,12 @@ U0 ICAddSubEctImm(CIntermediateCode *tmpi,CICType t1,I64 r1,I64 d1,
ICModr2(tmpi,i,,d1,rip); ICModr2(tmpi,i,,d1,rip);
return; return;
} }
if (MIN_I8<=d<=MAX_I8 || t1&(RTG_MASK-RTF_UNSIGNED)==RT_I8) { if (I8_MIN<=d<=I8_MAX || t1&(RTG_MASK-RTF_UNSIGNED)==RT_I8) {
ICSlashOp(tmpi,t1,r1,d1,SLASH_OP_IMM_U8+op.u8[1],rip+1); ICSlashOp(tmpi,t1,r1,d1,SLASH_OP_IMM_U8+op.u8[1],rip+1);
ICU8(tmpi,d); ICU8(tmpi,d);
return; return;
} }
if (MIN_I32<=d<=MAX_I32 || t1.raw_type<RT_I64) { if (I32_MIN<=d<=I32_MAX || t1.raw_type<RT_I64) {
ICSlashOp(tmpi,t1,r1,d1,SLASH_OP_IMM_U32+op.u8[1],rip); ICSlashOp(tmpi,t1,r1,d1,SLASH_OP_IMM_U32+op.u8[1],rip);
if (t1&(RTG_MASK-RTF_UNSIGNED)==RT_I16) if (t1&(RTG_MASK-RTF_UNSIGNED)==RT_I16)
ICU16(tmpi,d); ICU16(tmpi,d);
@@ -237,7 +237,7 @@ U0 ICMul(CIntermediateCode *tmpi,I64 rip)
} }
i=arg2->disp; i=arg2->disp;
if (!(tmpi->ic_class->raw_type&RTF_UNSIGNED) && if (!(tmpi->ic_class->raw_type&RTF_UNSIGNED) &&
arg2->type&MDF_IMM && MIN_I32<=i<=MAX_I32) { arg2->type&MDF_IMM && I32_MIN<=i<=I32_MAX) {
if (tmpi->res.type==MDF_REG+RT_I64) { if (tmpi->res.type==MDF_REG+RT_I64) {
ICMov(tmpi,tmpi->res.type,tmpi->res.reg,tmpi->res.disp, ICMov(tmpi,tmpi->res.type,tmpi->res.reg,tmpi->res.disp,
arg1->type,arg1->reg,arg1->disp,rip); arg1->type,arg1->reg,arg1->disp,rip);
@@ -248,7 +248,7 @@ U0 ICMul(CIntermediateCode *tmpi,I64 rip)
j=0xC0004D; j=0xC0004D;
else else
j=0xC00048; j=0xC00048;
if (MIN_I8<=i<=MAX_I8) if (I8_MIN<=i<=I8_MAX)
ICU32(tmpi,i<<24+0x6B00+j+(r&7)<<16+(r&7)<<19); ICU32(tmpi,i<<24+0x6B00+j+(r&7)<<16+(r&7)<<19);
else { else {
ICU24(tmpi,0x6900+j+(r&7)<<16+(r&7)<<19); ICU24(tmpi,0x6900+j+(r&7)<<16+(r&7)<<19);
@@ -286,7 +286,7 @@ U0 ICMulEqu(CIntermediateCode *tmpi,I64 rip)
{ {
I64 i=tmpi->arg2.disp,r=REG_RAX,j; I64 i=tmpi->arg2.disp,r=REG_RAX,j;
if (!(tmpi->ic_class->raw_type&RTF_UNSIGNED) && if (!(tmpi->ic_class->raw_type&RTF_UNSIGNED) &&
tmpi->arg2.type&MDF_IMM && MIN_I32<=i<=MAX_I32) { tmpi->arg2.type&MDF_IMM && I32_MIN<=i<=I32_MAX) {
if (tmpi->ic_flags & ICF_BY_VAL) { if (tmpi->ic_flags & ICF_BY_VAL) {
if (tmpi->arg1.type==MDF_REG+RT_I64) if (tmpi->arg1.type==MDF_REG+RT_I64)
r=tmpi->arg1.reg; r=tmpi->arg1.reg;
@@ -298,7 +298,7 @@ U0 ICMulEqu(CIntermediateCode *tmpi,I64 rip)
j=0xC0004D; j=0xC0004D;
else else
j=0xC00048; j=0xC00048;
if (MIN_I8<=i<=MAX_I8) if (I8_MIN<=i<=I8_MAX)
ICU32(tmpi,i<<24+0x6B00+j+(r&7)<<16+(r&7)<<19); ICU32(tmpi,i<<24+0x6B00+j+(r&7)<<16+(r&7)<<19);
else { else {
ICU24(tmpi,0x6900+j+(r&7)<<16+(r&7)<<19); ICU24(tmpi,0x6900+j+(r&7)<<16+(r&7)<<19);
@@ -312,7 +312,7 @@ U0 ICMulEqu(CIntermediateCode *tmpi,I64 rip)
ICMov(tmpi,MDF_REG+RT_I64,REG_RBX,0, ICMov(tmpi,MDF_REG+RT_I64,REG_RBX,0,
MDF_DISP+tmpi->arg1_type_pointed_to,REG_RCX,0,rip); MDF_DISP+tmpi->arg1_type_pointed_to,REG_RCX,0,rip);
r=REG_RBX; r=REG_RBX;
if (MIN_I8<=i<=MAX_I8) if (I8_MIN<=i<=I8_MAX)
ICU32(tmpi,i<<24+0xDB6B48); ICU32(tmpi,i<<24+0xDB6B48);
else { else {
ICU24(tmpi,0xDB6948); ICU24(tmpi,0xDB6948);
@@ -513,7 +513,7 @@ U0 ICAddSubEctEqu(CIntermediateCode *tmpi,U8 type_pointed_to,
if (t3&MDF_IMM && op.u8[2]) { if (t3&MDF_IMM && op.u8[2]) {
if (!d3.u32[1]) { if (!d3.u32[1]) {
if (tmpi->ic_flags&ICF_RES_NOT_USED && if (tmpi->ic_flags&ICF_RES_NOT_USED &&
t2&MDF_REG && d3(U64)<=MAX_I8) { t2&MDF_REG && d3(U64)<=I8_MAX) {
ICSlashOp(tmpi,MDF_DISP+type_pointed_to,r2,0,0x838000+op.u8[4],rip); ICSlashOp(tmpi,MDF_DISP+type_pointed_to,r2,0,0x838000+op.u8[4],rip);
ICU8(tmpi,d3); ICU8(tmpi,d3);
done=TRUE; done=TRUE;
+11 -11
View File
@@ -102,7 +102,7 @@ U0 ICXorXor(CIntermediateCode *tmpi,I64 rip)
U0 ICCmp(CIntermediateCode *tmpi,I64 us,I64 is,I64 rip) U0 ICCmp(CIntermediateCode *tmpi,I64 us,I64 is,I64 rip)
{ {
I64 r1,d1,r2,i=0x48,j=tmpi->arg2.disp; I64 r1,d1,r2,i=0x48,j=tmpi->arg2.disp;
if (tmpi->arg2.type&MDF_IMM && MIN_I32<=j<=MAX_I32) { if (tmpi->arg2.type&MDF_IMM && I32_MIN<=j<=I32_MAX) {
if (!(tmpi->ic_flags&(ICF_POP_CMP|ICF_PUSH_CMP)) && if (!(tmpi->ic_flags&(ICF_POP_CMP|ICF_PUSH_CMP)) &&
tmpi->arg1.type&MDF_DISP && //TODO tmpi->arg1.type&MDF_DISP && //TODO
tmpi->arg1.type.raw_type>=RT_I64 && tmpi->arg1.reg!=REG_RAX) { tmpi->arg1.type.raw_type>=RT_I64 && tmpi->arg1.reg!=REG_RAX) {
@@ -111,20 +111,20 @@ U0 ICCmp(CIntermediateCode *tmpi,I64 us,I64 is,I64 rip)
ICZero(tmpi,REG_RAX); ICZero(tmpi,REG_RAX);
if (r1>7) if (r1>7)
i++; i++;
if (MIN_I8<=j<=MAX_I8) if (I8_MIN<=j<=I8_MAX)
i+=0x388300; i+=0x388300;
else else
i+=0x388100; i+=0x388100;
if (!d1) { if (!d1) {
ICU24(tmpi,0x000000+i+(r1&7)<<16); ICU24(tmpi,0x000000+i+(r1&7)<<16);
} else if (MIN_I8<=d1<=MAX_I8) { } else if (I8_MIN<=d1<=I8_MAX) {
ICU24(tmpi,0x400000+i+(r1&7)<<16); ICU24(tmpi,0x400000+i+(r1&7)<<16);
ICU8(tmpi,d1); ICU8(tmpi,d1);
} else { } else {
ICU24(tmpi,0x800000+i+(r1&7)<<16); ICU24(tmpi,0x800000+i+(r1&7)<<16);
ICU32(tmpi,d1); ICU32(tmpi,d1);
} }
if (MIN_I8<=j<=MAX_I8) if (I8_MIN<=j<=I8_MAX)
ICU8(tmpi,j); ICU8(tmpi,j);
else else
ICU32(tmpi,j); ICU32(tmpi,j);
@@ -144,7 +144,7 @@ U0 ICCmp(CIntermediateCode *tmpi,I64 us,I64 is,I64 rip)
ICZero(tmpi,REG_RAX); ICZero(tmpi,REG_RAX);
if (r1>7) if (r1>7)
i++; i++;
if (MIN_I8<=j<=MAX_I8) { if (I8_MIN<=j<=I8_MAX) {
ICU24(tmpi,0xF88300+i+(r1&7)<<16); ICU24(tmpi,0xF88300+i+(r1&7)<<16);
ICU8(tmpi,j); ICU8(tmpi,j);
} else { } else {
@@ -475,7 +475,7 @@ U0 ICCmpAndBranch(CIntermediateCode *tmpi,Bool has_res,I64 rip,
CICArg *arg1=&tmpi->arg1,*arg2=&tmpi->arg2; CICArg *arg1=&tmpi->arg1,*arg2=&tmpi->arg2;
j=arg1->disp; j=arg1->disp;
if (arg1->type&MDF_IMM && MIN_I32<=j<=MAX_I32) { if (arg1->type&MDF_IMM && I32_MIN<=j<=I32_MAX) {
SwapI64(&arg1,&arg2); SwapI64(&arg1,&arg2);
swap=TRUE; swap=TRUE;
us=not_us; us=not_us;
@@ -487,7 +487,7 @@ U0 ICCmpAndBranch(CIntermediateCode *tmpi,Bool has_res,I64 rip,
is=us; is=us;
j=arg2->disp; j=arg2->disp;
if (arg2->type&MDF_IMM && MIN_I32<=j<=MAX_I32) { if (arg2->type&MDF_IMM && I32_MIN<=j<=I32_MAX) {
if (!has_res && arg1->type&MDG_REG_DISP_SIB_RIP) if (!has_res && arg1->type&MDG_REG_DISP_SIB_RIP)
ICAddSubEctImm(tmpi,arg1->type,arg1->reg,arg1->disp, ICAddSubEctImm(tmpi,arg1->type,arg1->reg,arg1->disp,
arg1->type,arg1->reg,arg1->disp,j,0x073B,rip2); arg1->type,arg1->reg,arg1->disp,j,0x073B,rip2);
@@ -517,7 +517,7 @@ U0 ICCmpAndBranch(CIntermediateCode *tmpi,Bool has_res,I64 rip,
} else { } else {
if (r1>7) if (r1>7)
i++; i++;
if (MIN_I8<=j<=MAX_I8) { if (I8_MIN<=j<=I8_MAX) {
ICU24(tmpi,0xF88300+i+(r1&7)<<16); ICU24(tmpi,0xF88300+i+(r1&7)<<16);
ICU8(tmpi,j); ICU8(tmpi,j);
} else { } else {
@@ -606,7 +606,7 @@ U0 ICCmpAndBranch(CIntermediateCode *tmpi,Bool has_res,I64 rip,
else else
i+=8; i+=8;
} }
if (MIN_I8<=i<=MAX_I8) if (I8_MIN<=i<=I8_MAX)
short_jmp=TRUE; short_jmp=TRUE;
} }
@@ -665,7 +665,7 @@ U0 ICTestAndBranch(CIntermediateCode *tmpi,I64 rip,I64 is,U8 *buf,I64 rip2)
i=lb->addr-(rip+2); i=lb->addr-(rip+2);
if (lb->flags&CMF_POP_CMP) if (lb->flags&CMF_POP_CMP)
i+=8; i+=8;
if (MIN_I8<=i<=MAX_I8) if (I8_MIN<=i<=I8_MAX)
short_jmp=TRUE; short_jmp=TRUE;
} }
@@ -698,7 +698,7 @@ U0 ICFlagBranch(CIntermediateCode *tmpi,I64 rip,I64 is,U8 *buf)
i=lb->addr-(rip+2); i=lb->addr-(rip+2);
if (lb->flags&CMF_POP_CMP) if (lb->flags&CMF_POP_CMP)
i+=8; i+=8;
if (MIN_I8<=i<=MAX_I8) if (I8_MIN<=i<=I8_MAX)
short_jmp=TRUE; short_jmp=TRUE;
} }
+18 -18
View File
@@ -16,7 +16,7 @@ U0 ICAndBranch(CIntermediateCode *tmpi,I64 rip,I64 is,U8 *buf,I64 rip2)
arg2=&tmpi->arg2; arg2=&tmpi->arg2;
} }
if (arg2->type&MDF_IMM && arg2->disp>MAX_U32) if (arg2->type&MDF_IMM && arg2->disp>U32_MAX)
override=TRUE; override=TRUE;
else else
override=FALSE; override=FALSE;
@@ -27,11 +27,11 @@ U0 ICAndBranch(CIntermediateCode *tmpi,I64 rip,I64 is,U8 *buf,I64 rip2)
it=arg2->type.raw_type; it=arg2->type.raw_type;
i=arg2->disp; i=arg2->disp;
if (arg2->type&MDF_IMM && i<=MAX_U32) { if (arg2->type&MDF_IMM && i<=U32_MAX) {
ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,arg1->type,arg1->reg,arg1->disp,rip2); ICMov(tmpi,MDF_REG+RT_I64,REG_RAX,0,arg1->type,arg1->reg,arg1->disp,rip2);
if (i<=MAX_U8) if (i<=U8_MAX)
ICU16(tmpi,i<<8+0xA8); ICU16(tmpi,i<<8+0xA8);
else if (i<=MAX_U16) else if (i<=U16_MAX)
ICU32(tmpi,i<<16+0xA900+OC_OP_SIZE_PREFIX); ICU32(tmpi,i<<16+0xA900+OC_OP_SIZE_PREFIX);
else { else {
ICU8(tmpi,0xA9); ICU8(tmpi,0xA9);
@@ -136,7 +136,7 @@ U0 ICAndBranch(CIntermediateCode *tmpi,I64 rip,I64 is,U8 *buf,I64 rip2)
i=lb->addr-(rip+2); i=lb->addr-(rip+2);
if (lb->flags&CMF_POP_CMP) if (lb->flags&CMF_POP_CMP)
i+=8; i+=8;
if (MIN_I8<=i<=MAX_I8) if (I8_MIN<=i<=I8_MAX)
short_jmp=TRUE; short_jmp=TRUE;
} }
@@ -317,7 +317,7 @@ U0 ICBrBitOps(CIntermediateCode *tmpi,I64 rip,
i=lb->addr-(rip+2); i=lb->addr-(rip+2);
if (lb->flags&CMF_POP_CMP) if (lb->flags&CMF_POP_CMP)
i+=8; i+=8;
if (MIN_I8<=i<=MAX_I8) if (I8_MIN<=i<=I8_MAX)
short_jmp=TRUE; short_jmp=TRUE;
} }
@@ -564,7 +564,7 @@ U0 ICOrEqu(CIntermediateCode *tmpi,I64 rip2)
tmpi->ic_flags&ICF_RES_NOT_USED) { tmpi->ic_flags&ICF_RES_NOT_USED) {
i=tmpi->arg2.disp; i=tmpi->arg2.disp;
bit=Bsf(i); bit=Bsf(i);
if (0<=bit==Bsr(i) && i>MAX_I8) { if (0<=bit==Bsr(i) && i>I8_MAX) {
tmpi->arg2.disp=bit; tmpi->arg2.disp=bit;
tmpi->arg2.reg=0; tmpi->arg2.reg=0;
tmpi->arg1.type=tmpi->arg1.type&MDG_MASK+RT_I64; tmpi->arg1.type=tmpi->arg1.type&MDG_MASK+RT_I64;
@@ -618,12 +618,12 @@ U0 ICSwitch(CIntermediateCode *tmpi,I64 rip,
j=tmpi->arg2.disp; j=tmpi->arg2.disp;
ICMov(tmpi,MDF_REG+RT_I64,r,0, ICMov(tmpi,MDF_REG+RT_I64,r,0,
tmpi->arg1.type,tmpi->arg1.reg,tmpi->arg1.disp,rip2); tmpi->arg1.type,tmpi->arg1.reg,tmpi->arg1.disp,rip2);
if (MIN_I8<=j<=MAX_I8) { if (I8_MIN<=j<=I8_MAX) {
i=0xF88348+(r&7)<<16; i=0xF88348+(r&7)<<16;
if (r>7) i++; if (r>7) i++;
ICU24(tmpi,i); ICU24(tmpi,i);
ICU8(tmpi,j); ICU8(tmpi,j);
} else if (MIN_I32<=j<=MAX_I32) { } else if (I32_MIN<=j<=I32_MAX) {
i=0xF88148+(r&7)<<16; i=0xF88148+(r&7)<<16;
if (r>7) i++; if (r>7) i++;
ICU24(tmpi,i); ICU24(tmpi,i);
@@ -650,7 +650,7 @@ U0 ICSwitch(CIntermediateCode *tmpi,I64 rip,
short_jmp=ToBool(tmpi->ic_flags&ICF_SHORT_JMP); short_jmp=ToBool(tmpi->ic_flags&ICF_SHORT_JMP);
if (!buf && lb->addr!=INVALID_PTR) { if (!buf && lb->addr!=INVALID_PTR) {
i=lb->addr-(rip+2); i=lb->addr-(rip+2);
if (MIN_I8<=i<=MAX_I8) if (I8_MIN<=i<=I8_MAX)
short_jmp=TRUE; short_jmp=TRUE;
} }
if (short_jmp) { if (short_jmp) {
@@ -666,12 +666,12 @@ U0 ICSwitch(CIntermediateCode *tmpi,I64 rip,
lb=tmpi->ic_data; lb=tmpi->ic_data;
begin=lb->begin->addr; begin=lb->begin->addr;
if (!buf && begin!=INVALID_PTR) { if (!buf && begin!=INVALID_PTR) {
min=MAX_I64; min=I64_MAX;
max=MIN_I64; max=I64_MIN;
for (i=0;i<lb->range;i++) { for (i=0;i<lb->range;i++) {
if (lb->jmp_table[i]->addr==INVALID_PTR) { if (lb->jmp_table[i]->addr==INVALID_PTR) {
min=MIN_I64; min=I64_MIN;
max=MAX_I64; max=I64_MAX;
break; break;
} else { } else {
j=lb->jmp_table[i]->addr-begin; j=lb->jmp_table[i]->addr-begin;
@@ -679,13 +679,13 @@ U0 ICSwitch(CIntermediateCode *tmpi,I64 rip,
max=MaxI64(max,j); max=MaxI64(max,j);
} }
} }
if (MIN_I8<=min<=max<=MAX_I8) if (I8_MIN<=min<=max<=I8_MAX)
lb->flags|=CMF_I8_JMP_TABLE; lb->flags|=CMF_I8_JMP_TABLE;
else if (MIN_U8<=min<=max<=MAX_U8) else if (U8_MIN<=min<=max<=U8_MAX)
lb->flags|=CMF_U8_JMP_TABLE; lb->flags|=CMF_U8_JMP_TABLE;
else if (MIN_I16<=min<=max<=MAX_I16) else if (I16_MIN<=min<=max<=I16_MAX)
lb->flags|=CMF_I16_JMP_TABLE; lb->flags|=CMF_I16_JMP_TABLE;
else if (MIN_U16<=min<=max<=MAX_U16) else if (U16_MIN<=min<=max<=U16_MAX)
lb->flags|=CMF_U16_JMP_TABLE; lb->flags|=CMF_U16_JMP_TABLE;
} }
+2 -2
View File
@@ -309,7 +309,7 @@ U0 ICFPow(CCmpCtrl *cc,CIntermediateCode *tmpi,U8 *buf,I64 rip)
throw('Compiler'); throw('Compiler');
else { else {
i=tmpex->val-(rip+tmpi->ic_cnt+5); i=tmpex->val-(rip+tmpi->ic_cnt+5);
if (!(MIN_I32<=i<=MAX_I32)) { if (!(I32_MIN<=i<=I32_MAX)) {
throw('Compiler'); throw('Compiler');
// ICU16(tmpi,0xBB48); // ICU16(tmpi,0xBB48);
// ICU64(tmpi,tmpex->val); // ICU64(tmpi,tmpex->val);
@@ -322,7 +322,7 @@ U0 ICFPow(CCmpCtrl *cc,CIntermediateCode *tmpi,U8 *buf,I64 rip)
} }
} else { } else {
i=tmpex->val-(rip+tmpi->ic_cnt+5); i=tmpex->val-(rip+tmpi->ic_cnt+5);
if (!(MIN_I32<=i<=MAX_I32)) { if (!(I32_MIN<=i<=I32_MAX)) {
ICU16(tmpi,0xBB48); ICU16(tmpi,0xBB48);
ICU64(tmpi,tmpex->val); ICU64(tmpi,tmpex->val);
ICU16(tmpi,0xD3FF); ICU16(tmpi,0xD3FF);
+1 -1
View File
@@ -457,7 +457,7 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tmpi,I64 rip,
else else
i+=8; i+=8;
} }
if (MIN_I8<=i<=MAX_I8) if (I8_MIN<=i<=I8_MAX)
short_jmp=TRUE; short_jmp=TRUE;
} }
+15 -15
View File
@@ -99,18 +99,18 @@ U0 ICAddRSP(CIntermediateCode *tmpi,I64 i,Bool optimize=TRUE)
} }
last_start=tmpi->ic_cnt; last_start=tmpi->ic_cnt;
if (i>0) { if (i>0) {
if (i<=MAX_I8) if (i<=I8_MAX)
ICU32(tmpi,0xC48348+i<<24); ICU32(tmpi,0xC48348+i<<24);
else if (i<=MAX_I32) { else if (i<=I32_MAX) {
ICU24(tmpi,0xC48148); ICU24(tmpi,0xC48148);
ICU32(tmpi,i); ICU32(tmpi,i);
} else } else
throw('Compiler'); throw('Compiler');
} else if (i<0) { } else if (i<0) {
i=-i; i=-i;
if (i<=MAX_I8) if (i<=I8_MAX)
ICU32(tmpi,0xEC8348+i<<24); ICU32(tmpi,0xEC8348+i<<24);
else if (i<=MAX_I32) { else if (i<=I32_MAX) {
ICU24(tmpi,0xEC8148); ICU24(tmpi,0xEC8148);
ICU32(tmpi,i); ICU32(tmpi,i);
} else } else
@@ -166,7 +166,7 @@ I64 ICModr1(I64 r,CICType t2,I64 r2,I64 d2)
if (!d2 && r2!=REG_RBP) { if (!d2 && r2!=REG_RBP) {
res.u8[2]=r<<3+r2; res.u8[2]=r<<3+r2;
res.u8[0]=MODR_INDIRECT_REG; res.u8[0]=MODR_INDIRECT_REG;
} else if (MIN_I8<=d2<=MAX_I8) { } else if (I8_MIN<=d2<=I8_MAX) {
res.u8[2]=0x40+r<<3+r2; res.u8[2]=0x40+r<<3+r2;
res.u8[0]=MODR_D8_INDIRECT_REG; res.u8[0]=MODR_D8_INDIRECT_REG;
} else { } else {
@@ -190,7 +190,7 @@ I64 ICModr1(I64 r,CICType t2,I64 r2,I64 d2)
if (!d2 && r2.u8[0]&7!=REG_RBP) { if (!d2 && r2.u8[0]&7!=REG_RBP) {
res.u8[2]=4+r<<3; res.u8[2]=4+r<<3;
res.u8[0]=MODR_SIB_INDIRECT_REG; res.u8[0]=MODR_SIB_INDIRECT_REG;
} else if (MIN_I8<=d2<=MAX_I8) { } else if (I8_MIN<=d2<=I8_MAX) {
res.u8[2]=0x44+r<<3; res.u8[2]=0x44+r<<3;
res.u8[0]=MODR_SIB_D8_INDIRECT_REG; res.u8[0]=MODR_SIB_D8_INDIRECT_REG;
} else { } else {
@@ -319,9 +319,9 @@ U0 ICPush(CIntermediateCode *tmpi,CICType t1,I64 r1,I64 d1,I64 rip)
ICU8(tmpi,0x50+r1); ICU8(tmpi,0x50+r1);
return; return;
case MDf_IMM: case MDf_IMM:
if (MIN_I8<=d1<=MAX_I8) if (I8_MIN<=d1<=I8_MAX)
ICU16(tmpi,0x6A+d1<<8); ICU16(tmpi,0x6A+d1<<8);
else if (MIN_I32<=d1<=MAX_I32) { else if (I32_MIN<=d1<=I32_MAX) {
ICU8(tmpi,0x68); ICU8(tmpi,0x68);
ICU32(tmpi,d1); ICU32(tmpi,d1);
} else { } else {
@@ -350,7 +350,7 @@ U0 ICPush(CIntermediateCode *tmpi,CICType t1,I64 r1,I64 d1,I64 rip)
U0 ICPushRegs(CIntermediateCode *tmpi,I64 mask) U0 ICPushRegs(CIntermediateCode *tmpi,I64 mask)
{ {
I64 i; I64 i;
for (i=0;i<NUM_REGS;i++) { for (i=0;i<REG_REGS_NUM;i++) {
if (Bt(&mask,i)) { if (Bt(&mask,i)) {
if (i>7) if (i>7)
ICU16(tmpi,0x5049+(i&7)<<8); ICU16(tmpi,0x5049+(i&7)<<8);
@@ -391,7 +391,7 @@ U0 ICPop(CIntermediateCode *tmpi,CICType t1,I64 r1,I64 d1,I64 rip)
U0 ICPopRegs(CIntermediateCode *tmpi,I64 mask) U0 ICPopRegs(CIntermediateCode *tmpi,I64 mask)
{ {
I64 i; I64 i;
for (i=NUM_REGS-1;i>=0;i--) { for (i=REG_REGS_NUM-1;i>=0;i--) {
if (Bt(&mask,i)) { if (Bt(&mask,i)) {
if (i>7) if (i>7)
ICU16(tmpi,0x5849+(i&7)<<8); ICU16(tmpi,0x5849+(i&7)<<8);
@@ -454,7 +454,7 @@ U0 ICMov(CIntermediateCode *tmpi,
if (t2&MDF_IMM) { if (t2&MDF_IMM) {
if (!d2) if (!d2)
ICZero(tmpi,r1); ICZero(tmpi,r1);
else if (0<=d2<=MAX_U8) { else if (0<=d2<=U8_MAX) {
ICZero(tmpi,r1); ICZero(tmpi,r1);
if (r1>7) if (r1>7)
ICU24(tmpi,d2<<16+(0xB0+r1&7)<<8+0x41); ICU24(tmpi,d2<<16+(0xB0+r1&7)<<8+0x41);
@@ -462,7 +462,7 @@ U0 ICMov(CIntermediateCode *tmpi,
ICU24(tmpi,d2<<16+(0xB0+r1)<<8+0x40); ICU24(tmpi,d2<<16+(0xB0+r1)<<8+0x40);
else else
ICU16(tmpi,d2<<8+0xB0+r1); ICU16(tmpi,d2<<8+0xB0+r1);
} else if (MIN_I8<=d2<0) { } else if (I8_MIN<=d2<0) {
if (r1>7) { if (r1>7) {
r1&=7; r1&=7;
ICU24(tmpi,d2<<16+(0xB0+r1)<<8+0x41); ICU24(tmpi,d2<<16+(0xB0+r1)<<8+0x41);
@@ -474,7 +474,7 @@ U0 ICMov(CIntermediateCode *tmpi,
ICU16(tmpi,d2<<8+0xB0+r1); ICU16(tmpi,d2<<8+0xB0+r1);
ICU32(tmpi,0xC0BE0F48+r1<<24+r1<<27); ICU32(tmpi,0xC0BE0F48+r1<<24+r1<<27);
} }
} else if (0<=d2<=MAX_U32) { } else if (0<=d2<=U32_MAX) {
if (r1>7) { if (r1>7) {
r1&=7; r1&=7;
ICU16(tmpi,(0xB8+r1)<<8+0x41); ICU16(tmpi,(0xB8+r1)<<8+0x41);
@@ -483,7 +483,7 @@ U0 ICMov(CIntermediateCode *tmpi,
ICU8(tmpi,0xB8+r1); ICU8(tmpi,0xB8+r1);
ICU32(tmpi,d2); ICU32(tmpi,d2);
} }
} else if (MIN_I32<=d2<0) { } else if (I32_MIN<=d2<0) {
if (r1>7) { if (r1>7) {
r1&=7; r1&=7;
ICU16(tmpi,(0xB8+r1)<<8+0x41); ICU16(tmpi,(0xB8+r1)<<8+0x41);
@@ -550,7 +550,7 @@ U0 ICMov(CIntermediateCode *tmpi,
case MDf_DISP: case MDf_DISP:
case MDf_RIP_DISP32: case MDf_RIP_DISP32:
case MDf_SIB: case MDf_SIB:
if (t2&MDF_IMM && (t1.raw_type<RT_I64 || (MIN_I32<=d2<=MAX_I32))) { if (t2&MDF_IMM && (t1.raw_type<RT_I64 || (I32_MIN<=d2<=I32_MAX))) {
ICSlashOp(tmpi,t1,r1,d1,SLASH_OP_MOV_IMM,rip); ICSlashOp(tmpi,t1,r1,d1,SLASH_OP_MOV_IMM,rip);
switch (t1.raw_type) { switch (t1.raw_type) {
case RT_I8: case RT_I8:
+15 -15
View File
@@ -1,9 +1,9 @@
#define NUM_INTERNAL_TYPES 17 #define INTERNAL_TYPES_NUM 17
class CInternalType class CInternalType
{ {
U8 type,size,name[8]; U8 type,size,name[8];
} internal_types_table[NUM_INTERNAL_TYPES]={ } internal_types_table[INTERNAL_TYPES_NUM]={
{RT_I0,0,"I0i"},{RT_I0,0,"I0"},{RT_U0,0,"U0i"},{RT_U0,0,"U0"}, {RT_I0,0,"I0i"},{RT_I0,0,"I0"},{RT_U0,0,"U0i"},{RT_U0,0,"U0"},
{RT_I8,1,"I8i"},{RT_I8,1,"I8"},{RT_I8,1,"Bool"}, {RT_I8,1,"I8i"},{RT_I8,1,"I8"},{RT_I8,1,"Bool"},
{RT_U8,1,"U8i"},{RT_U8,1,"U8"}, {RT_U8,1,"U8i"},{RT_U8,1,"U8"},
@@ -13,7 +13,7 @@ class CInternalType
{RT_F64,8,"F64i"},{RT_F64,8,"F64"}, {RT_F64,8,"F64i"},{RT_F64,8,"F64"},
}; };
CIntermediateStruct intermediate_code_table[IC_NUM_ENTRIES]={ CIntermediateStruct intermediate_code_table[IC_ICS_NUM]={
{IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"END"}, {IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"END"},
{IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"NOP1"}, {IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"NOP1"},
{IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"END_EXP"}, {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"END_EXP"},
@@ -185,10 +185,10 @@ CIntermediateStruct intermediate_code_table[IC_NUM_ENTRIES]={
{IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"SWAP_U64"}, {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"SWAP_U64"},
{IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"ABS_I64"}, {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"ABS_I64"},
{IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"SIGN_I64"}, {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"SIGN_I64"},
{IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"MIN_I64"}, {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"I64_MIN"},
{IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"MIN_U64"}, {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"U64_MIN"},
{IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"MAX_I64"}, {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"I64_MAX"},
{IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"MAX_U64"}, {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"U64_MAX"},
{IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"MOD_U64"}, {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"MOD_U64"},
{IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"SQRI64"}, {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"SQRI64"},
{IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"SQRU64"}, {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"SQRU64"},
@@ -241,21 +241,21 @@ U0 CmpFillTables()
I64 i; I64 i;
U32 *d; U32 *d;
cmp.to_reg_vars_map=CAlloc(NUM_REGS*sizeof(U8)); cmp.to_reg_vars_map=CAlloc(REG_REGS_NUM*sizeof(U8));
cmp.num_reg_vars=0; cmp.num_reg_vars=0;
cmp.reg_vars_mask=REGG_LOCAL_VARS; cmp.reg_vars_mask=REGG_LOCAL_VARS;
for (i=0;i<NUM_REGS;i++) for (i=0;i<REG_REGS_NUM;i++)
if (Bt(&cmp.reg_vars_mask,i)) if (Bt(&cmp.reg_vars_mask,i))
cmp.to_reg_vars_map[cmp.num_reg_vars++]=i; cmp.to_reg_vars_map[cmp.num_reg_vars++]=i;
cmp.non_ptr_vars_map=CAlloc(NUM_REGS*sizeof(U8)); cmp.non_ptr_vars_map=CAlloc(REG_REGS_NUM*sizeof(U8));
cmp.num_non_ptr_vars=0; cmp.num_non_ptr_vars=0;
cmp.non_ptr_vars_mask=REGG_LOCAL_NON_PTR_VARS; cmp.non_ptr_vars_mask=REGG_LOCAL_NON_PTR_VARS;
for (i=0;i<NUM_REGS;i++) for (i=0;i<REG_REGS_NUM;i++)
if (Bt(&cmp.non_ptr_vars_mask,i)) if (Bt(&cmp.non_ptr_vars_mask,i))
cmp.non_ptr_vars_map[cmp.num_non_ptr_vars++]=i; cmp.non_ptr_vars_map[cmp.num_non_ptr_vars++]=i;
cmp.dual_U16_tokens1=d=CAlloc(sizeof(U32)*TK_NUM_TK); cmp.dual_U16_tokens1=d=CAlloc(sizeof(U32)*TK_TKS_NUM);
d['!']=TK_NOT_EQU<<16+'='; d['!']=TK_NOT_EQU<<16+'=';
d['&']=TK_AND_AND<<16+'&'; d['&']=TK_AND_AND<<16+'&';
d['*']=TK_MUL_EQU<<16+'='; d['*']=TK_MUL_EQU<<16+'=';
@@ -270,7 +270,7 @@ U0 CmpFillTables()
d['|']=TK_OR_OR<<16+'|'; d['|']=TK_OR_OR<<16+'|';
d['%']=TK_MOD_EQU<<16+'='; d['%']=TK_MOD_EQU<<16+'=';
cmp.dual_U16_tokens2=d=CAlloc(sizeof(U32)*TK_NUM_TK); cmp.dual_U16_tokens2=d=CAlloc(sizeof(U32)*TK_TKS_NUM);
d['&']=TK_AND_EQU<<16+'='; d['&']=TK_AND_EQU<<16+'=';
d['+']=TK_ADD_EQU<<16+'='; d['+']=TK_ADD_EQU<<16+'=';
d['-']=TK_MINUS_MINUS<<16+'-'; d['-']=TK_MINUS_MINUS<<16+'-';
@@ -280,11 +280,11 @@ U0 CmpFillTables()
d['^']=TK_XOR_XOR<<16+'^'; d['^']=TK_XOR_XOR<<16+'^';
d['|']=TK_OR_EQU<<16+'='; d['|']=TK_OR_EQU<<16+'=';
cmp.dual_U16_tokens3=d=CAlloc(sizeof(U32)*TK_NUM_TK); cmp.dual_U16_tokens3=d=CAlloc(sizeof(U32)*TK_TKS_NUM);
d['-']=TK_SUB_EQU<<16+'='; d['-']=TK_SUB_EQU<<16+'=';
d['/']=TK_DIV_EQU<<16+'='; d['/']=TK_DIV_EQU<<16+'=';
cmp.binary_ops=d=CAlloc(sizeof(U32)*TK_NUM_TK); cmp.binary_ops=d=CAlloc(sizeof(U32)*TK_TKS_NUM);
d['`'] =(PREC_EXP+ASSOCF_RIGHT)<<16+IC_POWER; d['`'] =(PREC_EXP+ASSOCF_RIGHT)<<16+IC_POWER;
d[TK_SHL]=(PREC_EXP+ASSOCF_LEFT)<<16+IC_SHL; d[TK_SHL]=(PREC_EXP+ASSOCF_LEFT)<<16+IC_SHL;
d[TK_SHR]=(PREC_EXP+ASSOCF_LEFT)<<16+IC_SHR; d[TK_SHR]=(PREC_EXP+ASSOCF_LEFT)<<16+IC_SHR;
+7 -7
View File
@@ -255,7 +255,7 @@ U0 CmpFixUpJITAsm(CCmpCtrl *cc,CAOT *tmpaot)
case IET_IMM_U0: case IET_IMM_U0:
break; break;
case IET_REL_I8: case IET_REL_I8:
if (!(MIN_I8<=i-ptr-1<=MAX_I8)) if (!(I8_MIN<=i-ptr-1<=I8_MAX))
LexExcept(cc,"Branch out of range at "); LexExcept(cc,"Branch out of range at ");
*ptr(U8 *) =i-ptr-1; *ptr(U8 *) =i-ptr-1;
break; break;
@@ -263,7 +263,7 @@ U0 CmpFixUpJITAsm(CCmpCtrl *cc,CAOT *tmpaot)
*ptr(U8 *) =i; *ptr(U8 *) =i;
break; break;
case IET_REL_I16: case IET_REL_I16:
if (!(MIN_I16<=i-ptr-2<=MAX_I16)) if (!(I16_MIN<=i-ptr-2<=I16_MAX))
LexExcept(cc,"Branch out of range at "); LexExcept(cc,"Branch out of range at ");
*ptr(U16 *)=i-ptr-2; *ptr(U16 *)=i-ptr-2;
break; break;
@@ -271,7 +271,7 @@ U0 CmpFixUpJITAsm(CCmpCtrl *cc,CAOT *tmpaot)
*ptr(U16 *)=i; *ptr(U16 *)=i;
break; break;
case IET_REL_I32: case IET_REL_I32:
if (!(MIN_I32<=i-ptr-4<=MAX_I32)) if (!(I32_MIN<=i-ptr-4<=I32_MAX))
LexExcept(cc,"Branch out of range at "); LexExcept(cc,"Branch out of range at ");
*ptr(U32 *)=i-ptr-4; *ptr(U32 *)=i-ptr-4;
break; break;
@@ -355,7 +355,7 @@ U0 CmpFixUpAOTAsm(CCmpCtrl *cc,CAOT *tmpaot)
case IET_IMM_U0: case IET_IMM_U0:
break; break;
case IET_REL_I8: case IET_REL_I8:
if (!(MIN_I8<=i-ptr-1<=MAX_I8)) if (!(I8_MIN<=i-ptr-1<=I8_MAX))
LexExcept(cc,"Branch out of range at "); LexExcept(cc,"Branch out of range at ");
*ptr(U8 *) =i-ptr-1; *ptr(U8 *) =i-ptr-1;
break; break;
@@ -363,7 +363,7 @@ U0 CmpFixUpAOTAsm(CCmpCtrl *cc,CAOT *tmpaot)
*ptr(U8 *) =i; *ptr(U8 *) =i;
break; break;
case IET_REL_I16: case IET_REL_I16:
if (!(MIN_I16<=i-ptr-2<=MAX_I16)) if (!(I16_MIN<=i-ptr-2<=I16_MAX))
LexExcept(cc,"Branch out of range at "); LexExcept(cc,"Branch out of range at ");
*ptr(U16 *)=i-ptr-2; *ptr(U16 *)=i-ptr-2;
break; break;
@@ -371,7 +371,7 @@ U0 CmpFixUpAOTAsm(CCmpCtrl *cc,CAOT *tmpaot)
*ptr(U16 *)=i; *ptr(U16 *)=i;
break; break;
case IET_REL_I32: case IET_REL_I32:
if (!(MIN_I32<=i-ptr-4<=MAX_I32)) if (!(I32_MIN<=i-ptr-4<=I32_MAX))
LexExcept(cc,"Branch out of range at "); LexExcept(cc,"Branch out of range at ");
*ptr(U32 *)=i-ptr-4; *ptr(U32 *)=i-ptr-4;
break; break;
@@ -538,7 +538,7 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv_let=0)
size=(sizeof(CBinFile)+aot_U8s+i+15)&-16; size=(sizeof(CBinFile)+aot_U8s+i+15)&-16;
bfh=MAlloc(size); bfh=MAlloc(size);
bfh->jmp=0xEB+256*(sizeof(CBinFile)-2); bfh->jmp=0xEB+256*(sizeof(CBinFile)-2);
#assert sizeof(CBinFile)-2<=MAX_I8 #assert sizeof(CBinFile)-2<=I8_MAX
bfh->reserved=0; bfh->reserved=0;
bfh->bin_signature=BIN_SIGNATURE_VAL; bfh->bin_signature=BIN_SIGNATURE_VAL;
bfh->module_org=tmpaot->module_org; bfh->module_org=tmpaot->module_org;
Binary file not shown.
+79 -84
View File
@@ -7,7 +7,7 @@ $LK,"CmpRawTypePointed",A="FL:::/Compiler/OptLib.HC.Z,517",BI=6$
$LK,"OptFixupBinaryOp1",A="FL:::/Compiler/OptLib.HC.Z,96",BI=7$ $LK,"OptFixupBinaryOp1",A="FL:::/Compiler/OptLib.HC.Z,96",BI=7$
$LK,"OptFixupBinaryOp2",A="FL:::/Compiler/OptLib.HC.Z,182",BI=8$ $LK,"OptFixupBinaryOp2",A="FL:::/Compiler/OptLib.HC.Z,182",BI=8$
$LK,"COCInit",A="FL:::/Compiler/PrsLib.HC.Z,99",BI=9$ $LK,"COCInit",A="FL:::/Compiler/PrsLib.HC.Z,99",BI=9$
$LK,"IsLexExpression2Bin",A="FL:::/Compiler/PrsExp.HC.Z,1129",BI=10$ $LK,"IsLexExpression2Bin",A="FL:::/Compiler/PrsExp.HC.Z,1135",BI=10$
$LK,"CSubSwitch",A="FL:::/Compiler/PrsStmt.HC.Z,566"$ $LK,"CSubSwitch",A="FL:::/Compiler/PrsStmt.HC.Z,566"$
$LK,"LexFilePop",A="FL:::/Compiler/Lex.HC.Z,11",BI=11$ $LK,"LexFilePop",A="FL:::/Compiler/Lex.HC.Z,11",BI=11$
$LK,"ExePutS",A="FL:::/Compiler/CMain.HC.Z,571",BI=12$ $LK,"ExePutS",A="FL:::/Compiler/CMain.HC.Z,571",BI=12$
@@ -57,25 +57,24 @@ $LK,"PE_POP_ALL1",A="FL:::/Compiler/PrsExp.HC.Z,12"$
$LK,"PE_POP_ALL2",A="FL:::/Compiler/PrsExp.HC.Z,13"$ $LK,"PE_POP_ALL2",A="FL:::/Compiler/PrsExp.HC.Z,13"$
$LK,"COCAppend",A="FL:::/Compiler/PrsLib.HC.Z,126",BI=46$ $LK,"COCAppend",A="FL:::/Compiler/PrsLib.HC.Z,126",BI=46$
$LK,"LexFilePush",A="FL:::/Compiler/Lex.HC.Z,1",BI=47$ $LK,"LexFilePush",A="FL:::/Compiler/Lex.HC.Z,1",BI=47$
$LK,"PrsUnaryModifier",A="FL:::/Compiler/PrsExp.HC.Z,955",BI=48$ $LK,"PrsUnaryModifier",A="FL:::/Compiler/PrsExp.HC.Z,960",BI=48$
$LK,"OptFixupUnaryOp",A="FL:::/Compiler/OptLib.HC.Z,196",BI=49$ $LK,"OptFixupUnaryOp",A="FL:::/Compiler/OptLib.HC.Z,196",BI=49$
$LK,"LexPush",A="FL:::/Compiler/LexLib.HC.Z,12",BI=50$ $LK,"LexPush",A="FL:::/Compiler/LexLib.HC.Z,12",BI=50$
$LK,"SLASH_OP_MOV",A="FL:::/Compiler/BackLib.HC.Z,267"$ $LK,"SLASH_OP_MOV",A="FL:::/Compiler/BackLib.HC.Z,267"$
$LK,"ICPopRegs",A="FL:::/Compiler/BackLib.HC.Z,391",BI=51$ $LK,"ICPopRegs",A="FL:::/Compiler/BackLib.HC.Z,391",BI=51$
$LK,"SLASH_OP_MUL",A="FL:::/Compiler/BackLib.HC.Z,264"$ $LK,"SLASH_OP_MUL",A="FL:::/Compiler/BackLib.HC.Z,264"$
$LK,"SLASH_OP_NOT",A="FL:::/Compiler/BackLib.HC.Z,260"$ $LK,"SLASH_OP_NOT",A="FL:::/Compiler/BackLib.HC.Z,260"$
$LK,"NUM_INTERNAL_TYPES",A="FL:::/Compiler/CInit.HC.Z,1"$
$LK,"SLASH_OP_POP",A="FL:::/Compiler/BackLib.HC.Z,270"$ $LK,"SLASH_OP_POP",A="FL:::/Compiler/BackLib.HC.Z,270"$
$LK,"ICFOp",A="FL:::/Compiler/BackFA.HC.Z,339",BI=52$ $LK,"ICFOp",A="FL:::/Compiler/BackFA.HC.Z,339",BI=52$
$LK,"CN_A1",A="FL:::/Compiler/BackFA.HC.Z,2"$ $LK,"CN_A1",A="FL:::/Compiler/BackFA.HC.Z,2"$
$LK,"CN_A2",A="FL:::/Compiler/BackFA.HC.Z,1"$ $LK,"CN_A2",A="FL:::/Compiler/BackFA.HC.Z,1"$
$LK,"LexExpressionF64",A="FL:::/Compiler/PrsExp.HC.Z,1148",BI=53$ $LK,"LexExpressionF64",A="FL:::/Compiler/PrsExp.HC.Z,1154",BI=53$
$LK,"ICAdd",A="FL:::/Compiler/PrsLib.HC.Z,79",BI=54$ $LK,"ICAdd",A="FL:::/Compiler/PrsLib.HC.Z,79",BI=54$
$LK,"CmpRawType",A="FL:::/Compiler/OptLib.HC.Z,508",BI=55$ $LK,"CmpRawType",A="FL:::/Compiler/OptLib.HC.Z,508",BI=55$
$LK,"ICFOpEqu",A="FL:::/Compiler/BackFB.HC.Z,1",BI=56$ $LK,"ICFOpEqu",A="FL:::/Compiler/BackFB.HC.Z,1",BI=56$
$LK,"LexExpressionI64",A="FL:::/Compiler/PrsExp.HC.Z,1134",BI=57$ $LK,"LexExpressionI64",A="FL:::/Compiler/PrsExp.HC.Z,1140",BI=57$
$LK,"ICQueInsRev",A="FL:::/Compiler/BackC.HC.Z,378",BI=58$ $LK,"ICQueInsRev",A="FL:::/Compiler/BackC.HC.Z,378",BI=58$
$LK,"LexExpression",A="FL:::/Compiler/PrsExp.HC.Z,1162",BI=59$ $LK,"LexExpression",A="FL:::/Compiler/PrsExp.HC.Z,1168",BI=59$
$LK,"PrsExpression",A="FL:::/Compiler/PrsExp.HC.Z,264",BI=60$ $LK,"PrsExpression",A="FL:::/Compiler/PrsExp.HC.Z,264",BI=60$
$LK,"PrsClassNew",A="FL:::/Compiler/PrsLib.HC.Z,40",BI=61$ $LK,"PrsClassNew",A="FL:::/Compiler/PrsLib.HC.Z,40",BI=61$
$LK,"LexInStr",A="FL:::/Compiler/Lex.HC.Z,367",BI=62$ $LK,"LexInStr",A="FL:::/Compiler/Lex.HC.Z,367",BI=62$
@@ -105,7 +104,7 @@ $LK,"Ui",A="FL:::/Compiler/UAsm.HC.Z,245",BI=81$
$LK,"ICSlashOp",A="FL:::/Compiler/BackLib.HC.Z,282",BI=82$ $LK,"ICSlashOp",A="FL:::/Compiler/BackLib.HC.Z,282",BI=82$
$LK,"OptBrZero",A="FL:::/Compiler/OptLib.HC.Z,230",BI=83$ $LK,"OptBrZero",A="FL:::/Compiler/OptLib.HC.Z,230",BI=83$
$LK,"Un",A="FL:::/Compiler/UAsm.HC.Z,668",BI=84$ $LK,"Un",A="FL:::/Compiler/UAsm.HC.Z,668",BI=84$
$LK,"PrsSizeOf",A="FL:::/Compiler/PrsExp.HC.Z,298",BI=85$ $LK,"PrsSizeOf",A="FL:::/Compiler/PrsExp.HC.Z,303",BI=85$
$LK,"ICToI64",A="FL:::/Compiler/BackB.HC.Z,277",BI=86$ $LK,"ICToI64",A="FL:::/Compiler/BackB.HC.Z,277",BI=86$
$LK,"ICMod",A="FL:::/Compiler/BackA.HC.Z,425",BI=87$ $LK,"ICMod",A="FL:::/Compiler/BackA.HC.Z,425",BI=87$
$LK,"OptSetNOP1",A="FL:::/Compiler/OptLib.HC.Z,17",BI=88$ $LK,"OptSetNOP1",A="FL:::/Compiler/OptLib.HC.Z,17",BI=88$
@@ -154,7 +153,7 @@ $LK,"ICModr1",A="FL:::/Compiler/BackLib.HC.Z,136",BI=120$
$LK,"ICModr2",A="FL:::/Compiler/BackLib.HC.Z,214",BI=121$ $LK,"ICModr2",A="FL:::/Compiler/BackLib.HC.Z,214",BI=121$
$LK,"SLASH_OP_FMUL",A="FL:::/Compiler/BackLib.HC.Z,274"$ $LK,"SLASH_OP_FMUL",A="FL:::/Compiler/BackLib.HC.Z,274"$
$LK,"ICPreIncDec",A="FL:::/Compiler/BackB.HC.Z,304",BI=122$ $LK,"ICPreIncDec",A="FL:::/Compiler/BackB.HC.Z,304",BI=122$
$LK,"PrsUnaryTerm",A="FL:::/Compiler/PrsExp.HC.Z,588",BI=123$ $LK,"PrsUnaryTerm",A="FL:::/Compiler/PrsExp.HC.Z,593",BI=123$
$LK,"MemberLstDel",A="FL:::/Compiler/LexLib.HC.Z,183",BI=124$ $LK,"MemberLstDel",A="FL:::/Compiler/LexLib.HC.Z,183",BI=124$
$LK,"SLASH_OP_FSUB",A="FL:::/Compiler/BackLib.HC.Z,272"$ $LK,"SLASH_OP_FSUB",A="FL:::/Compiler/BackLib.HC.Z,272"$
$LK,"ICAndAnd",A="FL:::/Compiler/BackB.HC.Z,30",BI=125$ $LK,"ICAndAnd",A="FL:::/Compiler/BackB.HC.Z,30",BI=125$
@@ -187,7 +186,7 @@ $LK,"StreamPrint",A="FL:::/Compiler/CMisc.HC.Z,68",BI=146$
$LK,"_LAST_FUN",A="FL:::/Compiler/CMisc.HC.Z,12"$ $LK,"_LAST_FUN",A="FL:::/Compiler/CMisc.HC.Z,12"$
$LK,"ICFCvt",A="FL:::/Compiler/BackFA.HC.Z,123",BI=147$ $LK,"ICFCvt",A="FL:::/Compiler/BackFA.HC.Z,123",BI=147$
$LK,"StreamDir",A="FL:::/Compiler/CMisc.HC.Z,82",BI=148$ $LK,"StreamDir",A="FL:::/Compiler/CMisc.HC.Z,82",BI=148$
$LK,"PrsOffsetOf",A="FL:::/Compiler/PrsExp.HC.Z,348",BI=149$ $LK,"PrsOffsetOf",A="FL:::/Compiler/PrsExp.HC.Z,353",BI=149$
$LK,"GetOption",A="FL:::/Compiler/CMisc.HC.Z,6",BI=150$ $LK,"GetOption",A="FL:::/Compiler/CMisc.HC.Z,6",BI=150$
$LK,"PrsDoWhile",A="FL:::/Compiler/PrsStmt.HC.Z,506",BI=151$ $LK,"PrsDoWhile",A="FL:::/Compiler/PrsStmt.HC.Z,506",BI=151$
$LK,"ICShift",A="FL:::/Compiler/BackA.HC.Z,573",BI=152$ $LK,"ICShift",A="FL:::/Compiler/BackA.HC.Z,573",BI=152$
@@ -200,7 +199,7 @@ $LK,"LexPopRestore",A="FL:::/Compiler/LexLib.HC.Z,23",BI=156$
$LK,"ICUnaries",A="FL:::/Compiler/BackB.HC.Z,1",BI=157$ $LK,"ICUnaries",A="FL:::/Compiler/BackB.HC.Z,1",BI=157$
$LK,"ICFMul",A="FL:::/Compiler/BackFB.HC.Z,488",BI=158$ $LK,"ICFMul",A="FL:::/Compiler/BackFB.HC.Z,488",BI=158$
$LK,"ICShiftEqu",A="FL:::/Compiler/BackA.HC.Z,603",BI=159$ $LK,"ICShiftEqu",A="FL:::/Compiler/BackA.HC.Z,603",BI=159$
$LK,"LexExpression2Bin",A="FL:::/Compiler/PrsExp.HC.Z,1111",BI=160$ $LK,"LexExpression2Bin",A="FL:::/Compiler/PrsExp.HC.Z,1117",BI=160$
$LK,"ICFPow",A="FL:::/Compiler/BackFA.HC.Z,266",BI=161$ $LK,"ICFPow",A="FL:::/Compiler/BackFA.HC.Z,266",BI=161$
$LK,"MapFileWrite",A="FL:::/Compiler/CHash.HC.Z,90",BI=162$ $LK,"MapFileWrite",A="FL:::/Compiler/CHash.HC.Z,90",BI=162$
$LK,"ICFSub",A="FL:::/Compiler/BackFB.HC.Z,551",BI=163$ $LK,"ICFSub",A="FL:::/Compiler/BackFB.HC.Z,551",BI=163$
@@ -245,6 +244,7 @@ $LK,"ICOrOr",A="FL:::/Compiler/BackB.HC.Z,51",BI=191$
$LK,"LexExcept",A="FL:::/Compiler/CExcept.HC.Z,81",BI=192$ $LK,"LexExcept",A="FL:::/Compiler/CExcept.HC.Z,81",BI=192$
$LK,"cmp_templates",A="FL:::/Compiler/CExts.HC.Z,42"$ $LK,"cmp_templates",A="FL:::/Compiler/CExts.HC.Z,42"$
$LK,"CmpF2PushPop",A="FL:::/Compiler/OptLib.HC.Z,542",BI=193$ $LK,"CmpF2PushPop",A="FL:::/Compiler/OptLib.HC.Z,542",BI=193$
$LK,"INTERNAL_TYPES_NUM",A="FL:::/Compiler/CInit.HC.Z,1"$
$LK,"CmpJoin",A="FL:::/Compiler/CMain.HC.Z,35",BI=194$ $LK,"CmpJoin",A="FL:::/Compiler/CMain.HC.Z,35",BI=194$
$LK,"PrsPop2",A="FL:::/Compiler/PrsLib.HC.Z,16",BI=195$ $LK,"PrsPop2",A="FL:::/Compiler/PrsLib.HC.Z,16",BI=195$
$LK,"CMP_TEMPLATES",A="FL:::/Compiler/Templates.HC.Z,4"$ $LK,"CMP_TEMPLATES",A="FL:::/Compiler/Templates.HC.Z,4"$
@@ -303,7 +303,7 @@ $LK,"LexDocRead",A="FL:::/Compiler/Lex.HC.Z,305",BI=238$
$LK,"CmpFixUpJITAsm",A="FL:::/Compiler/CMain.HC.Z,174",BI=239$ $LK,"CmpFixUpJITAsm",A="FL:::/Compiler/CMain.HC.Z,174",BI=239$
$LK,"COCPopNoFree",A="FL:::/Compiler/PrsLib.HC.Z,114",BI=240$ $LK,"COCPopNoFree",A="FL:::/Compiler/PrsLib.HC.Z,114",BI=240$
$LK,"ParenWarning",A="FL:::/Compiler/CExcept.HC.Z,110",BI=241$ $LK,"ParenWarning",A="FL:::/Compiler/CExcept.HC.Z,110",BI=241$
$LK,"PrsFunCall",A="FL:::/Compiler/PrsExp.HC.Z,378",BI=242$ $LK,"PrsFunCall",A="FL:::/Compiler/PrsExp.HC.Z,383",BI=242$
$LK,"SLASH_OP_IMM_U32",A="FL:::/Compiler/BackLib.HC.Z,263"$ $LK,"SLASH_OP_IMM_U32",A="FL:::/Compiler/BackLib.HC.Z,263"$
$LK,"ICDerefPostIncDec",A="FL:::/Compiler/BackB.HC.Z,384",BI=243$ $LK,"ICDerefPostIncDec",A="FL:::/Compiler/BackB.HC.Z,384",BI=243$
$LK,"Option",A="FL:::/Compiler/CMisc.HC.Z,1",BI=244$ $LK,"Option",A="FL:::/Compiler/CMisc.HC.Z,1",BI=244$
@@ -344,85 +344,80 @@ $LK,"PrsDotDotDot",A="FL:::/Compiler/PrsVar.HC.Z,381",BI=266$
$LK,"ICMulEqu",A="FL:::/Compiler/BackA.HC.Z,285",BI=267$ $LK,"ICMulEqu",A="FL:::/Compiler/BackA.HC.Z,285",BI=267$
$LK,"AsmPrsInsFlags",A="FL:::/Compiler/AsmInit.HC.Z,1",BI=268$ $LK,"AsmPrsInsFlags",A="FL:::/Compiler/AsmInit.HC.Z,1",BI=268$
$LK,"PrsNoWarn",A="FL:::/Compiler/PrsStmt.HC.Z,791",BI=269$ $LK,"PrsNoWarn",A="FL:::/Compiler/PrsStmt.HC.Z,791",BI=269$
H2@2#2#;#A#\#a#Œ#Ž#Ã#­#Ó#Ú#ë#þ#¨­ÓŸ`Ÿ`µ`½`È`Ô`ô`Ö`a a a3a:aeasasa aÂaÚaÇaéabb,b3b^b^beb‰bŸbŸbŸb©bH>L�ý�ý©ý³ý·ý»ýÀýÂýÚýòýòýüýp©ÁŸŸÉËÒØÞàæì$)+0:Oex�¯(åå2åSåWåWå_å8îäîä÷äüäåååååd`µÖØÖØôØøØÙÙÙÙ"Ù"Ù/Ù1Ù>Ù@ÙLÙLÙgÙuÙuـهٖ١٧٬ٮٺÙÁÙÐÙÛÙáÙæÙèÙôÙ$ÚJÚZÚjÚzÚ|ڌڜڬڬڱÚÄÚËÚÒÚÒÚÒÚÒÚÙÚïÚûÚÛÛ ÛÛÛÛ>ÛEÛ[ÛgÛmÛsÛyÛ{Û{Û‰ÛDÃŽÛŽÛ¤Û§ÛªÛ·Û½ÛÊÛÍÛÐÛÖÛØÛâÛ ,cjàŠàŠîŠøŠ‹‹‹‹ H2@2#2#;#A#\#a#Œ#Ž#Ã#­#Ó#Ú#ë#þ#¨­Óç`ç`ý`aaa<aaKaQaQa{a‚a­a»a»aèa
imfft‰� P ‚7‚7�7Ÿ7»7Á7Ó7Ó7Þ7ç7í7ô7ú7 ”;\÷K÷KÿKLL6LSLtL}LŽL²LÉLÉLèL÷LM MMFMWM[McMcMvM†MŠMŽM Œ×öÞÞþ b"bb1b]bJbtb{b¦b¦b­bÑbçbçbçbñbH>L×ý×ýñýûýÿýþþ
$$PfzˆŸ¥±Äàéùû     |1’"’"¨"±"¼"Ö"Ö"Ù"è"î"÷"ù"ÿ"# þ"þ:þ:þDþp©Áçç &(.4J]lqsx‚—­Àå÷(åå2åSåWåWå_å8îäîä÷äüäåååååd`µÖØÖØôØøØÙÙÙÙ"Ù"Ù/Ù1Ù>Ù@ÙLÙLÙgÙuÙuـهٖ١٧٬ٮٺÙÁÙÐÙÛÙáÙæÙèÙôÙ$ÚJÚZÚjÚzÚ|ڌڜڬڬڱÚÄÚËÚÒÚÒÚÒÚÒÚÙÚïÚûÚÛÛ ÛÛÛÛ>ÛEÛ[ÛgÛmÛsÛyÛ{Û{Û‰ÛDÃŽÛŽÛ¤Û§ÛªÛ·Û½ÛÊÛÍÛÐÛÖÛØÛâÛ ,cjàŠàŠîŠøŠ‹‹‹‹
###!#$#$#.#0 '(‰(‰6‰V‰\‰b‰b‰h‰„“°È¡È¡Ü¡ã¡ê¡î¡¢%¢,¢=¢b¢m¢x¢z¢…¢ª¢µ¢À¢Â¢É¢Ò¢Ô¢ß¢æ¢£("·à·àÆàÝàøàøàþà WàWàfà|à‚à ˆP´P´u´|´“´Ÿ´ª´¼´Í´¾´¼´í´µµµ!µ-µ7µ>µEµIµKµQµ]µgµnµuµyµyµƒµˆµ“µ¥µ¶µ§µ¥µÖµ÷µ osžž¬ÁÇ P ‚7‚7�7Ÿ7»7Á7Ó7Ó7Þ7ç7í7ô7ú7 ”;\?L?LGLKLdL~L›L¼LÅLÖLúLMM0M?MHMUM\MŽMŸM£M«M«M¾MÎMÒMÖM Œ×ö6>BPV\\ˆž²À×Ýéîü ! 1 3 : : @ @ P |1’"’"¨"±"¼"Ö"Ö"Ù"è"î"÷"ù"ÿ"#
###!#$#$#.#0 '(‰(‰6‰V‰\‰b‰b‰h‰„“°È¡È¡Ü¡ã¡ê¡î¡¢%¢,¢=¢b¢m¢x¢z¢…¢ª¢µ¢À¢Â¢É¢Ò¢Ô¢ß¢æ¢£("ÿàÿàá%á@á@áFá ŸàŸà®àÄàÊà ˆP´P´u´|´“´Ÿ´ª´¼´Í´¾´¼´í´µµµ!µ-µ7µ>µEµIµKµQµ]µgµnµuµyµyµƒµˆµ“µ¥µ¶µ§µ¥µÖµ÷µ
&¶-¶4¶8¶:¶@¶L¶V¶]¶d¶h¶h¶u¶ƒ¶“¶¥¶¶¶§¶¥¶Ö¶÷¶· &¶-¶4¶8¶:¶@¶L¶V¶]¶d¶h¶h¶u¶ƒ¶“¶¥¶¶¶§¶¥¶Ö¶÷¶·
···&·-·4·8·:·@·L·V·]·d·h·h·r·‚·”·¥·–·”·Å·Ì·Ò·Þ·è·ï·ö·ú·ü·¸¸¸ ¸&¸*¸*¸4¸B¸K¸d¸p¸t¸t¸w¸€¸ö¸ÔoƒoƒŒƒZ©”ƒ£ƒƃуãƒêƒûƒ„„ ···&·-·4·8·:·@·L·V·]·d·h·h·r·‚·”·¥·–·”·Å·Ì·Ò·Þ·è·ï·ö·ú·ü·¸¸¸ ¸&¸*¸*¸4¸B¸K¸d¸p¸t¸t¸w¸€¸ö¸Ô·ƒ·ƒÔƒ¢©܃냄„+„2„C„K„O„R„`„d„�„�„¥„§„§„³„»„¿„̄̄؄à„ä„ñ„ñ„ñ„ ……)…)….…F…U…Z…`…k…p…p…u…�…œ…¡…§…²…·…·…Å…Î…Ú…â…ê…ò…õ…û…† ††$†5†E†E†J†R†Z†]†c†c†h†h†h†n†q†x†ƒ†˜†½†Ô†á†é†ñ†ý† ‡‡‡ ‡#‡&‡2‡8‡?‡D‡D‡R‡b‡b‡o‡o‡w‡‡ˆ‡—‡œ‡œ‡£‡®‡´‡¼‡‡͇Ò‡Ò‡á‡ì‡þ‡ˆ ˆˆˆ"ˆ4ˆ:ˆBˆHˆMˆMˆaˆgˆrˆxˆzˆŠˆ�ˆ�ˆµˆ܈áˆáˆõˆûˆ‰"‰(‰-‰F‰L‰\‰d‰l‰r‰w‰w‰‹‰‘‰§‰¸‰¾‰É܉â‰ò‰ú‰ŠŠ Š Š#Š)Š?ŠPŠVŠ[ŠjŠpŠ�Š‰Š‘Š—ŠžŠ£Š£Š¹Š¿ŠÕŠæŠìŠîŠýŠ‹ ‹‹‹#‹*‹*‹*‹<‹E‹V‹f‹f‹k‹k‹y‹�‹’‹¥‹¬‹²‹º‹À‹ЋÖ‹Þ‹ä‹ä‹ä‹é‹é‹é‹é‹é‹ŒŒŒŒ(Œ1Œ<ŒEŒPŒ[Œ`Œ`ŒvŒ|Œ’Œ£Œ©Œ®ŒÀŒÆŒËŒäŒ�������$�*�/�/�S�[�c�s�y�����®�®�³�³�¿�Ç�Ê�Ñ�×�Ü�Ü�ü�ŽŽŽ!Ž?ŽNŽVŽnŽvŽyŽ€Ž†ŽžŽ¦Ž¾ŽÆŽÉŽÐŽÖŽÖŽÖŽõŽ����#�)�9�H�T�o�w�z���‡�Ÿ�«�Æ�Î�Ñ�Ø�Þ�Þ�Þ�Þ�ã�ã�ì�ü���0�C�I�N�`�f�k�‡���™�¡�¤�«�±�Ú�â�ò�ø�ÿ�ÿ�ÿ�‘‘ ‘%‘;‘A‘Y‘l‘r‘w‘¢‘¨‘»‘ò‘’!’)’/’4’4’N’Z’f’q’q’v’v’�’œ’¨’³’³’¸’¸’Ò’Þ’ê’õ’õ’ú’ú’““"“(“-“?“E“J“Y“e“q“w“}“„“—“¢“«“·“¿““È“ΓÓ“ç“ö“þ“””!”'”-”E”M”m”‡”�”’”˜”ž”ž”¯”¸”Ĕ̔ϔ֔ܔá”ó”•
„„„H„H„]„_„_„k„s„w„„„„„�„˜„œ„©„©„©„Å„Єá„á„æ„þ„ ………#…(…(…-…E…T…Y…_…j…o…o…}…†…’…š…¢…ª…­…³…¸…Á…Ó…Ü…í…ý…ý…† •"•*•-•4•:•R•Z•y•“•›•ž•¥•«•«•»•Ä•ЕØ•Û•á•ç•ì•–––1–9–<–B–H–`–h–Š–¦–®–±–·–½–½–Ζ×–ã–ë–î–õ–û–——!—)—D—L—O—V—\—t—|—ž—»—ׯ—͗ӗӗӗӗӗؗؗî—ô—˜˜ ˜˜#˜(˜6˜B˜K˜W˜_˜b˜i˜o˜t˜†˜•˜�˜µ˜½˜À˜ǘ͘å˜í˜ ™&™.™1™8™>™>™>™O™X™d™l™o™v™|™“™¢™®™É™Ñ™Ô™Û™á™ù™š'šDšLšOšVš\š\š\š\š\šašaštš�š•š š¥š¥š¸šΚÔšßšášášôš››(›(›:›C›T›Y›k›{›{›€›€›“›©›¯›½›Ì›Ñ›Ñ›ä›ú›œœœ"œ"œ8œ>œ[œsœsœ�œ£œ¨œ´œ½œÌœÌœÑœÑœçœíœ
††††† † † †&†)†0†;†P†u†Œ†™†¡†©†µ†Á†džΆ׆Û†Þ†ê†ð†÷†ü†ü† �"�"�L�R�W�c�l�{�{�€�€�–�œ�¹�Ñ�Ñ�û�žžžž*ž*ž/ž/žEžKžhž€ž€žªž°ž²ž¾žÇžÒžÒžÒžÒžמåžîžÿžŸŸ Ÿ Ÿ Ÿ0Ÿ@ŸEŸiŸuŸvŸ{Ÿ�Ÿ­Ÿ½ŸáŸñŸ÷Ÿ÷Ÿ÷ŸüŸ  ) g w }  „ • ¤ Ö Þ ä æ ë ò ò û  ¡ ¡)¡8¡8¡=¡B¡Q¡Z¡e¡g¡p¡{¡{¡œ¡£¡©¡±¡¼¡¡Ò¡Ø¡à¡ë¡ñ¡ñ¡ö¡û¡¢ ¢¢¢ ¢/¢/¢/¢4¢4¢4¢F¢K¢K¢]¢h¢p¢x¢~¢~¢~¢ƒ¢ƒ¢Ž¢Ÿ¢¢¢®¢·¢âÊ¢ТÕ¢Õ¢à¢ñ¢ô¢£ £££"£'£'£'£'£,£1£1£<£@£@£L£U£X£X£c£e£{£‚£ˆ£—£¢£­£³£¿£ããϣأۣۣæ£è£þ£¤ ¤¤¤)¤/¤9¤<¤@¤@¤H¤O¤R¤T¤_¤c¤l¤o¤o¤z¤|¤š¤¡¤¬¤·¤º¤À¤ŤŤФÔ¤Ô¤à¤é¤ì¤ì¤÷¤ù¤¥¥¥+¥6¥A¥G¥S¥W¥W¥c¥l¥o¥o¥z¥|¥’¥™¥Ÿ¥§¥²¥½¥Ã¥Í¥Ð¥Ô¥Ô¥Ü¥ã¥æ¥è¥ó¥÷¥¦¦¦¦¦.¦5¦@¦K¦N¦T¦Y¦Y¦k¦o¦o¦{¦„¦‡¦‡¦’¦”¦ª¦±¦·¦ɦÔ¦ߦå¦ê¦ê¦õ¦ú¦ú¦§
‡‡‡'‡'‡/‡7‡@‡O‡T‡T‡[‡f‡l‡t‡z‡…‡ЇЇ™‡¤‡¶‡¼‡ćʇχÚ‡ì‡ò‡ú‡ˆˆˆˆ ˆ*ˆ0ˆ2ˆBˆHˆHˆmˆ”ˆ™ˆ™ˆ­ˆ³ˆɈÚˆàˆåˆþˆ‰‰‰$‰*‰/‰/‰C‰I‰_‰p‰v‰{‰”‰š‰ª‰²‰º‰À‰ʼnʼnÛ‰á‰÷‰ŠŠŠ"Š(Š9ŠAŠIŠOŠVŠ[Š[ŠqŠwŠ�ŠžŠ¤Š¦ŠµŠ»ŠÅŠÍŠÕŠÛŠâŠâŠâŠôŠýŠ‹‹‹#‹#‹1‹9‹J‹]‹d‹j‹r‹x‹ˆ‹Ž‹–‹œ‹œ‹œ‹¡‹¡‹¡‹¡‹¡‹À‹Ì‹Ñ‹Ñ‹à‹é‹ô‹ý‹ŒŒŒŒ.Œ4ŒJŒ[ŒaŒfŒxŒ~ŒƒŒœŒºŒºŒ¿Œ¿ŒËŒÓŒÖŒÜŒâŒçŒçŒ ���+�1�7�7�H�f�f�k�k�w��‚�‰���”�”�´�¼�Ì�Ò�Ù�÷�ŽŽ&Ž.Ž1Ž8Ž>ŽVŽ^ŽvŽ~Ž�ŽˆŽŽŽŽŽŽŽ­Ž½ŽÉŽÑŽÔŽÛŽáŽñŽ� �'�/�2�9�?�W�c�~�†�‰���–�–�–�–�›�›�¤�´�Ê�Ð�è�û�����#�?�E�Q�Y�\�c�i�’�š�ª�°�·�·�·�¼�¼�Å�Ý�ó�ù�‘$‘*‘/‘Z‘`‘s‘ª‘¼‘Ù‘á‘ç‘ì‘ì‘’’’)’)’.’.’H’T’`’k’k’p’p’Š’–’¢’­’­’²’²’È’Î’Ú’à’å’÷’ý’“““)“/“5“<“O“Z“c“o“w“z“€“†“‹“Ÿ“®“¶“ΓÖ“Ù“ß“å“ý“”%”?”G”J”P”V”V”g”p”|”„”‡”Ž”””™”«”º””Ú”â”å”ì”ò” §
••1•K•S•V•]•c•c•s•|•ˆ•�•“•™•Ÿ•¤•¸•Ǖϕé•ñ•ô•ú•–– –B–^–f–i–o–u–u–†–�–›–£–¦–­–³–¸–Ê–Ù–á–ü–————,—4—V—s—{—~—…—‹—‹—‹—‹—‹—�—�—¦—¬—¸—¾—×Õ—Û—à—î—ú—˜˜˜˜!˜'˜,˜>˜M˜U˜m˜u˜x˜˜…˜�˜¥˜ĘÞ˜æ˜é˜ð˜ö˜ö˜ö˜™™™$™'™.™4™K™Z™f™�™‰™Œ™“™™™±™½™ß™ü™šššššššššš,šGšMšXš]š]špš†šŒš—š™š™š¬šÏšÕšàšàšòšûš ››#›3›3›8›8›K›a›g›u›„›‰›‰›œ›²›¸›Æ›Õ›Ú›Ú›ð›ö›œ+œ+œUœ[œ`œlœuœ„œ„œ‰œ‰œŸœ¥œœÚœÚœ� §§§§#§(§-§2§2§F§K§K§X§\§m§u§y§�§”§˜§˜§¥§±§¹§¿§ϧÓ§ä§ö§¨¨¨¨¨"¨(¨(¨(¨(¨(¨*¨*¨8¨?¨L¨X¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨f¨h¨h¨¨‡¨“¨“¨´¨èÛ¨ݨé¨ö¨ö¨©&©1©:©C©N©U©U©_©_©b©t©’©ž©ž©É«xÝ÷Z5Z5l5n5r5{5‡5“5¨5¨5×5Û5à5ì5ÿ5 6 666"6,6lby¯|¯|Å|Ô|Ù|î|Û|ý|}} }"}}1}7}P}i}‚}›}´}¾}„žïlïl mmm"m)m+m.m5m<m<mMmQmWmWmlmvmvm~m—mºmÛmàmnnnn"n2n5nInOnTnZn\nbnenknpnsn{n„n”n·nÅnÝnânæn oo#o1oIoNoRowo‡oªo½oÂoÈoÍoÐoÒoØoÞoäoéoïo÷o÷op
���$�3�3�8�8�N�T�q�‰�‰�³�¹�¾�Ê�Ó�â�â�ç�ç�ý�ž ž8ž8žbžhžjžvžžŠžŠžŠžŠž�ž�ž¦ž·ž¹žËžØžØžØžèžøžýž!Ÿ-Ÿ.Ÿ3ŸHŸeŸuŸ™Ÿ©Ÿ¯Ÿ¯Ÿ¯Ÿ´Ÿ¹ŸΟ០ / 5 7 < M \ Ž – œ ž £ ª ª ³ Å Ø á ð ð õ ú  ¡¡¡ ¡(¡3¡3¡T¡[¡a¡i¡t¡z¡Š¡�¡˜¡£¡©¡©¡®¡³¡º¡Á¡È¡Ï¡Ø¡ç¡ç¡ç¡ì¡ì¡ì¡þ¡¢¢¢ ¢(¢0¢6¢6¢6¢;¢;¢F¢W¢Z¢f¢o¢{¢‚¢ˆ¢�¢�¢˜¢©¢¬¢¸¢Á¢Í¢Ô¢Ú¢ߢߢߢߢä¢é¢é¢ô¢ø¢ø¢£ £££££3£:£@£O£Z£e£k£w£{£{£‡£�£“£“£ž£ £¶£½£ãË£Ö£á£ç£ñ£ô£ø£ø£¤¤ pp0p5p9p^pnp‘p¤p©p¹pÜpêpqq q0qCqCq^q^q^qlq„q†q†q†q”q¬q®q®q¼qÔqÔqåqåqîqûqr1rKrSr^rqrururur|r‚rœr¤r¯rÊrÌrÒrìrôrÿr sss2sH�›x†x†�†¥†µ†¼†Ó†î†‡‡G‡L’¡Ï~Ï~ã~ð~ò~0IT_g4IR^Ø^ØgØgØjØx؆؉؎Øì=·û·ûßûâûüü(ü(üCüIüNüNüiüoütütü}ü‹ü¨üÀüÅüÌüÒüÔüñüýý ýýýý(ý.ý.ý.ý>ý3ýOý_ýqývývývý}ý„ý‹ý ý§ýÃýÃýÕýÌM¼ˆ¦ˆ¦¢¦­¦¸¦Á¦É¦Ì¦Ó¦×¦à¦ó¦÷¦ý¦ §(§5§D§I§U§Z§a§m§r§u§§w§�§˜§©§§§Ÿ§·§À§Æ§Æ§Ô§×§ë§ô§ý§¨¨ ¨$¨<¨E¨S¨o¨{¨{¨“¨¤¨¤¨«¨Ä¨Ð¨Ø¨ë¨ò¨©©©©%©*©1©N©{©‚©†©ˆ©“©Ÿ©£©¸©º©Ë©Õ©à©ê©ù©ª!ª!ª$ª,ª1ª³ªPw‡×N×NóNOO.OKOfOlOuOƒO‰OŒO˜OŒ xbxbˆb¬b¬bºbºbºbºbÃbÃbÊbåbúbcc c cc+c+c9c?c?cWcWc]cƒc (kq ‹ ‹.‹:‹J‹Q‹W‹ @^jëë�ë•ëœë»ëÈëÈëËëÍëÓë!$/4§á§á´áÉáÎáÔá"$).wáwá„á™ážá¤á#$#(GáGáVáláqáwá$€ïK**4DZbl‡Œœ²ºÄßäú   " , 6 @ J T ^ h r | ’ œ ¦ ° º Ä Î Ø â ø  " , 6 @ J T ^ h r | † � š ¤ ® ¸ Â Ì Ö à ê ô þ !!!&!0!:!D!N!\!%¤CÈ�È�Þ�å�ú� žž ž&ž,ž<žGžQž\žsžvžxžŠž�ž žªž´ž»žÆžÛžãžãžùžùžùž Ÿ&$5:×á×áåáúáÿáâ'¤DiŸŸ&Ÿ-Ÿ4ŸBŸSŸeŸgŸnŸtŸ„Ÿ�Ÿ™Ÿ¤Ÿ»Ÿ¾ŸÀŸÒŸÙŸéŸóŸýŸ  # + + A A A V ((&,ú/ú/000 0%0)0]e×M×MíMNNNN N*ø Úv%v%˜% %¦%³%º%Ö%Ü%Ü%ç%ñ%ñ%þ%&&!&'&1&7&H&H&S&]&]&o&u&…&‹&�&—&—&¸&¾&Ð&ã&é&ì&ò&ò&ô&ú&''''''"'"'7'A'A'U'^'d'j'€'…'�'£'§'§'¯'µ'»'Å'Ì'Ó'Ü'î'î'(((#(5(H(N(R(X(^(d(d(f(j(p(v(|(�(�(�(�(¬(½(½(Ô(á(å(í(ÿ( ) )%)(),)2)2)D)U)j)~)†)—)›)¡)®)°)¼)Ú)à)ë)** *%*+*4*:*L*]*e*i*o*|*~*Š*¨*®*´*º*Ã*É*æ*Ù*+ +++$+)+)+0+:+O+T+T+T+q+s+�+’+¯+µ+½+Á+È+ë+ñ+÷+,,!,',2,7,7,>,B,L,Z,\,d,i,q,|,‚,‘,–,œ,¡,©,®,½,Ô,ä,ñ,ü,--6-6-=-R-W-`-m-r-x-}-}-„-ˆ-’- -¢-ª-®-²-½-Ç-Ç-Ñ-Ý-ä-è-ð-ø-.. .%.1.1.9.9.\.\.j.p.u.y.~.~.~.~.„.†.†.©.¯.µ.¼.Ò.Ô.Ô.Ô.ß.ß.ß.ä. 0+4.w6Ê6ÊPÊTÊlÊtÊ|Ê†ÊŠÊ‘Ê—Ê«Ê³Ê¸Ê»ÊÆÊÑÊÙÊäÊïÊñÊËËË Ë+Ë-Ë8ËCËEËQËZËZËpË{˓˙ˢ˳˹ËÂËÔËÚËÚËâËæËñËöËÌÌÌ%Ì'Ì+Ì:Ì:Ì:ÌKÌKÌPÌbÌhÌÖÌ,Ô@fæfæ|æƒæ†æªæªæÇæÚæíæççç#ç1çDçWç_ç_çaçaçaçtçvçvçvç}ç�ç£ç£ç£ç¶çÁçÔçêçïçóçúçè"è)è)è,èQè-LAP$$$!$-$H$M$m$o$Š$¥$¥$­$´$Û$.P~ލ‹¨‹¶‹Ã‹Ñ‹ã‹î‹ü‹ ŒŒ)Œ4ŒBŒHŒNŒ/4
¤ ¤¤¤$¤'¤'¤2¤4¤R¤Y¤d¤o¤r¤x¤}¤}¤ˆ¤Œ¤Œ¤˜¤¡¤¤¤¤¤¯¤±¤ǤΤÔ¤ã¤î¤ù¤ÿ¤ ¥¥¥¥$¥'¥'¥2¥4¥J¥Q¥W¥_¥j¥u¥{¥…¥ˆ¥Œ¥Œ¥”¥›¥ž¥ ¥«¥¯¥¸¥»¥»¥Æ¥È¥æ¥í¥ø¥¦¦ ¦¦¦#¦'¦'¦3¦<¦?¦?¦J¦L¦b¦i¦o¦�¦Œ¦—¦�¦¢¦¢¦­¦²¦²¦½¦¦¦ͦЦÔ¦Û¦à¦å¦ê¦ê¦þ¦§§§§%§-§1§E§L§P§P§]§i§q§w§‡§‹§œ§®§¹§½§½§ʧÒ§Ú§à§à§à§à§à§â§â§ð§÷§¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨ ¨7¨?¨K¨K¨l¨{¨“¨•¨¡¨®¨®¨ѨÞ¨é¨ò¨û¨© © ©©©©,©J©V©V©�«xÝ÷Z5Z5l5n5r5{5‡5“5¨5¨5×5Û5à5ì5ÿ5 6 666"6,6lbyg|g|}|Œ|‘|¦|“|µ|¸|¸|Å|Ú|Ç|é|ï|}!}:}S}l}v}„ž§l§lÅlÍlÓlÚlálãlælílôlôlm mmm$m.m.m6mOmrm“m˜m¹m¾mÊmÕmÚmêmímnn nnnnn#n(n+n3n<nLnon}n•nšnžnÃnÖnÛnénoo "7"707<7M7_7h7v7|70€À\ž ž À Ç Õ à       D K K Z i … � � � ¥  ¿ Ý è ê    $ 6 ? J O U \ „ ‰ —     § Í Í Ü å ù  %KT[`kw†šŸ§³ÅÅáèð!!06JO_s…Šš­µÉçþ%ASYdp€�–ŸŸ±µÁØô #3CU[[`bbggv|‚‚†ÿ1ŒÄãæÛæÛÜÜÜÜÜ$Ü3Ü>ÜDÜIÜKÜWÜ^ÜfÜlÜrÜvÜv܅܌ܔܚܠܢܢܮÜ28 2/2/@/F/R/]/n/x//…/3@‡“ßìßìíìøìÿìí+í+í.í0í6í4ÜSgg� §®µ»½ÄËÎÎààòý  " * / 5 K [ p u Ž ¦ ª ª ¯ ¸  Ö Þ ç ï ô û 
o/o?obouozo€o…oˆoŠo�o–oœo¡o§o¯o¯o¹oÂoÐoèoíoñop&pIp\papqp”p¢pºp¿pÃpèpûpûpqqq$q<q>q>q>qLqdqfqfqtqŒqŒq�q�q¦q³qÉqéqr rr)r-r-r-r4r:rTr\rgr‚r„rŠr¤r¬r·rÅrÐrÐrêrH�›x†x†�†¥†µ†¼†Ó†î†‡‡G‡L’¡‡~‡~›~¨~¾~ª~Í~Ï~è~  4IR^Ø^ØgØgØjØx؆؉؎Øì=oûoû—ûšû¸ûÏûàûàûûûüüü!ü'ü,ü,ü5üCü`üxü}ü„üŠüŒü©ü¹ü¾üÅüËüÍüÍüàüæüæüæüöüëüýý)ý.ý.ý.ý5ý<ýCýXý_ý{ý{ý�ýÌM¼ˆ¦ˆ¦¢¦­¦¸¦Á¦É¦Ì¦Ó¦×¦à¦ó¦÷¦ý¦ §(§5§D§I§U§Z§a§m§r§u§§w§�§˜§©§§§Ÿ§·§À§Æ§Æ§Ô§×§ë§ô§ý§¨¨ ¨$¨<¨E¨S¨o¨{¨{¨“¨¤¨¤¨«¨Ä¨Ð¨Ø¨ë¨ò¨©©©©%©*©1©N©{©‚©†©ˆ©“©Ÿ©£©¸©º©Ë©Õ©à©ê©ù©ª!ª!ª$ª,ª1ª³ªPw‡�N�N«N¼NÏNæNOO$O-O;OAODOPOŒ xbxbˆb¬b¬bºbºbºbºbÃbÃbÊbåbúbcc c cc+c+c9c?c?cWcWc]cƒc (kq ‹ ‹.‹:‹J‹Q‹W‹ @^j7ë7ëEëMëTësë€ë€ëƒë…ë‹ë!$/4_á_álá�á†áŒá"$)./á/á<áQáVá\á#$#(ÿàÿàá$á)á/á$€ïK**4DZbl‡Œœ²ºÄßäú   " , 6 @ J T ^ h r | ’ œ ¦ ° º Ä Î Ø â ø  " , 6 @ J T ^ h r | † � š ¤ ® ¸ Â Ì Ö à ê ô þ !!!&!0!:!D!N!\!%¤CÈ�È�Þ�å�ú� žž ž&ž,ž<žGžQž\žsžvžxžŠž�ž žªž´ž»žÆžÛžãžãžùžùžùž Ÿ&$5:�á�á�á²á·á½á'¤DiŸŸ&Ÿ-Ÿ4ŸBŸSŸeŸgŸnŸtŸ„Ÿ�Ÿ™Ÿ¤Ÿ»Ÿ¾ŸÀŸÒŸÙŸéŸóŸýŸ  # + + A A A V ((&,ú/ú/000 0%0)0]e�M�M¥M¸MÇMÍMÐMØM*ä Õ>%>%`%h%n%{%‚%ž%¤%¤%¯%¹%¹%Æ%Ï%Þ%é%ï%ù%ÿ%&&&%&%&7&=&M&S&X&_&_&€&†&˜&«&±&´&º&º&¼&Â&È&Ê&Ê&Ê&Û&å&ê&ê&ÿ& ' ''&','2'H'M'U'k'o'o'w'}'ƒ'�'”'›'¤'¶'¶'Û'ß'å'ë'ý'((( (&(,(,(.(2(8(>(D(I(I(I(I(t(…(…(œ(©(­(µ(Ç(ç(ç(í(ð(ô(ú(ú( ))2)F)N)_)c)i)v)x)„)¢)¨)³)Ö)á)ç)í)ó)ü)**%*-*1*7*D*F*R*p*v*|*‚*‹*‘*®*¡*È*Ñ*×*×*ì*ñ*ñ*ø*+++++9+;+X+Z+w+}+…+‰+�+³+¹+¿+Ë+â+é+ï+ú+ÿ+ÿ+, 
,,",$,,,1,9,D,J,Y,^,d,i,q,v,…,œ,¬,¹,Ä,à,â,þ,þ,-- -(-5-:-@-E-E-L-P-Z-h-j-r-v-z-„-�-—-›-£-«-³-Å-Ó-Ø-ä-ä-ì-ì-...#.(.,.1.1.1.1.7.9.9.\.b.h.o.….‡.‡.‡.’.’.’.—.À/+4.w6Ê6ÊPÊTÊlÊtÊ|Ê†ÊŠÊ‘Ê—Ê«Ê³Ê¸Ê»ÊÆÊÑÊÙÊäÊïÊñÊËËË Ë+Ë-Ë8ËCËEËQËZËZËpË{˓˙ˢ˳˹ËÂËÔËÚËÚËâËæËñËöËÌÌÌ%Ì'Ì+Ì:Ì:Ì:ÌKÌKÌPÌbÌhÌÖÌ,Ô@fæfæ|æƒæ†æªæªæÇæÚæíæççç#ç1çDçWç_ç_çaçaçaçtçvçvçvç}ç�ç£ç£ç£ç¶çÁçÔçêçïçóçúçè"è)è)è,èQè-LAP$$$!$-$H$M$m$o$Š$¥$¥$­$´$Û$.P~ލ‹¨‹¶‹Ã‹Ñ‹ã‹î‹ü‹ ŒŒ)Œ4ŒBŒHŒNŒ/4 2
"7"707<7M7_7h7v7|70|»Vf f ˆ � � ¨ Î Î × Ù Ù à    " 1 M X X e m ~ ‡ ¥ ° ² Ë Ñ Ü ì þ     $ L Q _ h h o ~ • • ¤ ­ Á È Ï Ô ß å í #(3?Nbgo{��©°¸ÈÚàééøþ';MRbu}‘¯ÆÊÖí !,8HX^ggy}‰ ¼ÎÔßëû ##(**//>DJJNÇ1ŒÄãæÛæÛÜÜÜÜÜ$Ü3Ü>ÜDÜIÜKÜWÜ^ÜfÜlÜrÜvÜv܅܌ܔܚܠܢܢܮÜ28 2/2/@/F/R/]/n/x//…/3@‡“—ì—ì¥ì°ì·ìÖìãìãìæìèìîì4ÜS  EX_fmsu|ƒ††˜˜ªµÉÑÚâçí  ( - F ^ b b g p z Ž – Ÿ § ¬ ³ Å Õ ê ì  4
 M
! e
! i
5 i
= }
F …
N Ž
S –
Y ›
o ¡
 ·
” Ç
™ Ü
²
Ê
Î
á á
á ú
á   ) ) ) ; . ] P r } ƒ › ³ ¸ Ã × ß è ð ò ø 
ó  / 1 J b f f z ‚ ‹ “ ˜ Ÿ µ Å Ú ß ø   ' ' ' 9 , [ N p { � ™ ± ± ± ½ à Í Ø ê ú (?VVi„„„¥µÃÃÌÖãý %'FUNm}——°5D‚�&&6JSYkkorz6\Ob8Š8ŠXŠgŠpŠyŠ}Š�Š�ВЗЗЍЬдŠÌŠÏŠÛŠ70üÆäÆäÏäÔäÝäääæäëä8�á''IPWbxxŠ££®²½êÑÄù!59>Skpx|Ž�­ÁÅÅÊèÛ#
æ ý2P[au�’¦®·¿ÄËÝí6::Ogltx‡z¦º¾ÍÍÍÍàæð÷
  * 5 ; S k p { � —   ¨ ª °  Ò ç é     2 : C K P W m } ’ — ° È Ì ß ß ß ñ ä   ( 3 9 Q i i i u { … � ¢ ² É à ÷ !<<<]m{{„Ž›µÃÊÝßþ %5OOh5D|‰îîþ!337:B6\Ob8Š8ŠXŠgŠpŠyŠ}Š�Š�ВЗЗЍЬдŠÌŠÏŠÛŠ70üÆäÆäÏäÔäÝäääæäëä8�áßß00B[[fju¢‰|±ÈÙíñö #(04F9ey}}‚ “Ûµê-EJ^fow|ƒ•¥»½Öîòò $,0?2^rv…………˜ž¨¯ÂÝÝù +9G\ot“¢›ºÊÑâù.0\\\tg¥ªµ»Æèï(9Thlq�‚±¤ÙÆè+CH\dmuz�“£¹»Ôìððð+?CRRReku|�ªªªÆÖääø 2EJixq� ±ÏÏññø;9Dn{––¦ºÃÉÛÛßâê:lz‘w}w}�}œ}¡}}£}Å}È}È}Õ}ê}×}ù}ÿ}~1~J~c~|~†~;<Š•FFVgpvz…<”)ïïï"ï.ï?ïAïQï\ïnïyï„ï“ï¤ï«ïÄïÈïÙïÙïãïêïýïðð(ðDðIðfð=d(=h‰h‰t‰ˆ‰‹‰Ÿ‰§‰«‰µ‰¿‰Ç‰Ê‰Ð‰>4o¸GG.G1G5GBGKGVGfGnGxG G G°GµGµGÅGÊGÊGÚGßGßGïGôGôGH H HHHH.H3H3HCHHHHHXH]H]H]H`HiH‚H�H§HºH¼HÂHÄHÇHØHÝHÝHãHóHóHþHII3I;IAIAIUIUI^IaI!J?Ä n‡«‡«¤«¬«¯«½«Ë«à«é«¬¬/¬:¬K¬O¬a¬d¬o¬x¬„¬—¬Ȭ½¬£¬جשּׂ­­>­S­w­‹­�­®­”­É­Ì­Ñ­Ô­Ô­Û­ñ­ø­® %%AQ__s��¤·¼Ûêã*PAvx¤¤¤¼¯íòý0J7Yp�œ°´¹×Êùì!0NY_s‹�¤¬µ½ÂÉÛë4888Zs‡‹ššš­³½Ä×òòò,,@Ng\z�’±À¹Øèù99@cccƒ9Dt�ÎÎÞòû":lz‘¿}¿}Õ}ä}é}þ}ë} ~~~~2~ ~A~G~`~y~’~«~Ä~Î~;<�›~~ŽŸ¨®²½<¨.ïïï"ï.ï?ïAïQï\ïnïyï„ï“ï¤ï«ïÄïÈïÙïÙïãïêïýïð ð(ð7ðNðNðjðoð›ð=d(=h‰h‰t‰ˆ‰‹‰Ÿ‰§‰«‰µ‰¿‰Ç‰Ê‰Ð‰>4o¸GG.G1G5GBGKGVGfGnGxG G G°GµGµGÅGÊGÊGÚGßGßGïGôGôGH H HHHH.H3H3HCHHHHHXH]H]H]H`HiH‚H�H§HºH¼HÂHÄHÇHØHÝHÝHãHóHóHþHII3I;IAIAIUIUI^IaI!J?Ä nϫϫì«ô«÷«¬¬(¬1¬L¬e¬w¬‚¬“¬—¬©¬¬¬·¬À¬̬߬­­ë¬ ­7­K­W­e­†­›­¿­Ó­Õ­ö­Ü­®®®®®#®9®@®M®R®a®n®�®�®™®�®Ê®Ê®â®ç®ç®÷®û® ¯¯'¯1¯D¯I¯I¯Y¯]¯n¯x¯‰¯“¯¦¯²¯·¯·¯·¯Ù¯ê¯ï¯ü¯°°° °/°4°:°?°?°D°N°]°b°h°m°m°s°y°~°~°†°™°¥°²°¾°Ͱ×°ݰæ°ý°±"±/±4±L±_±v±ƒ±‹±š±¤±ª±³±¼±¼±Á±Á±Á±Á±Á±ѱѱѱé±ÿ±²"²3²@²B²O²T²T²T²_²m²r²r²y²‡²Œ²¤²°²²βÔ²ܲâ²ë²³³#³)³8³@³H³u³†³“³•³£³£³¨³¨³¯³½³³Õ³á³í³ó³ù³´´´´´´ ´$´$´$´$´$´5´5´5´5´5´5´5´5´5´5´M´c´k´†´—´¤´¦´³´ôÈ´È´È´Ñ´ë´÷´ü´µ*µ*µ/µ/µ/µ/µ/µ/µ/µ/µDµIµIµIµZµaµfµfµqµƒµ›µ°µѵòµýµB¶K¶\¶b¶ƒ¶œ¶¤¶¬¶º¶ä¶í¶ó¶·-·-·-·-·-·O·ˆ·‘·—·�·¢·«·´·¹·¹·¹·¹·È·Ü·ú·
®®&®9®9®Q®U®‚®‚®š®Ÿ®Ÿ®¯®³®Ä®ήß®é®ü®¯¯¯¯&¯0¯A¯K¯^¯j¯o¯o¯o¯‘¯¢¯§¯´¯ɯɯίدç¯ì¯ò¯÷¯÷¯ü¯°°° °%°%°+°1°6°6°>°Q°]°j°v°…°�°•°ž°µ°ɰÚ°ç°ì°±±.±;±C±R±\±b±k±t±t±y±y±y±y±y±‰±‰±‰±¡±·±¿±Ú±ë±ø±ú±² ² ² ²²%²*²*²1²?²D²\²h²z²†²Œ²”²š²£²ɲÕ²Û²á²ð²ø²³-³>³K³M³[³[³`³`³g³u³z³�³™³¥³«³±³º³¿³¿³¿³¿³¿³׳ܳܳܳܳܳí³í³í³í³í³í³í³í³í³í³´´#´>´O´\´^´k´{´€´€´€´‰´£´¯´´´Ö´â´â´ç´ç´ç´ç´ç´ç´ç´ç´ü´µµµµµµµ)µ;µSµhµ‰µªµµµƵ˵˵˵Ôµúµ;¶T¶\¶d¶r¶œ¶¥¶«¶̶å¶å¶å¶å¶å¶·@·I·O·U·Z·c·l·q·q·q·q·€·”·²··È·Í·Í·à·ô·¸-¸3¸3¸8¸8¸G¸[¸y¸‰¸�¸”¸”¸§¸»¸á¸ô¸ú¸ú¸ÿ¸ÿ¸ÿ¸¹-¹5¹P¹a¹n¹p¹¹�¹�¹�¹�¹�¹•¹•¹•¹•¹•¹•¹•¹•¹•¹•¹•¹•¹•¹•¹•¹•¹¤¹³¹¾¹À¹À¹ɹ˹˹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹߹á¹á¹ø¹º º ººº%ºAºYºhºtºŠº¤º§º±º½ºãº»#»G»I»\»Š»b»¥»¥»¨»¸»À»Û»ì»ï» ¼¼#¼;¼;¼f¼i¼x¼Œ¼­¼Á¼ݼɼù¼½,½a½_½T½I½:½o½o½o½r½w½z½”½¢½нò½ò½¾ ¾/¾C¾d¾x¾”¾€¾°¾°¾ξ¿¿ö¾ë¾ܾ¿¿¿¿¿¿ ¿0¿Q¿]¿®Â@Ä…²/Ç/ÇEÇIÇTÇ[ÇfÇzÇzÇ…Ç–Ç�ǪǶÇÃÇÇÇØÇØÇáÇæÇîÇþÇ ÈÈ&È9È9ÈQÈQÈlȘȘȬȮȮȸÈÀÈÀÈÊÈÒÈÒÈÒÈãÈãÈãÈéÈñÈ÷ÈüÈüÈÉ ¸¸¸¸(¸<¸b¸u¸{¸{¸€¸€¸�¸£¸Á¸Ѹ׸ܸܸ︹)¹<¹B¹B¹G¹G¹G¹_¹u¹}¹˜¹©¹¶¹¸¹ǹɹɹɹɹɹݹݹݹݹݹݹݹݹݹݹݹݹݹݹݹݹì¹û¹ºººººº'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º'º)º)º@ºHºTºTºXº]ºmº‰º¡º°º¼ºÒºìºïºùº»+»K»k»�»‘»¤»Ò»ª»í»í»ð»¼¼#¼4¼7¼Q¼_¼k¼ƒ¼ƒ¼®¼±¼À¼Ô¼õ¼ ½%½½A½V½t½©½§½œ½‘½‚½·½·½·½º½¿½½ܽê½¾:¾:¾e¾h¾w¾‹¾¬¾À¾ܾȾø¾ø¾¿K¿I¿>¿3¿$¿Y¿Y¿Y¿\¿a¿a¿h¿x¿™¿¥¿öÂ@Ä…²wÇwÇ�ǑǜǣǮÇÂÇÂÇÍÇÞÇåÇòÇþÇ ÈÈ È È)È.È6ÈFÈTÈcÈnÈ�È�șșȴÈàÈàÈôÈöÈöÈÉÉÉÉÉÉÉ+É+É+É1É9É?ÉDÉDÉJÉRÉVÉ\ÉaÉaÉwɇɑɠɥɭɭɲɲɹÉÏÉßÉéÉñÉ÷ÉÊ ÊÊÊÊÊ%Ê0ÊdÊsÊ}ʅʋʠʦʫʫʫʫʫʫʫʫʫʶÊÄÊÔÊÚÊâÊñÊöÊË ËËËËË!Ë*Ë7Ë?ËKËVˊ˒ˡ˫ËÅËËËÐËÐË×ËêËòËÌÌÌ,Ì.Ì9ÌAÌVÌVÌ^ÌoÌwÌ~̗̜̄̊̎ÌÀÌÌÌÔÌéÌõÌúÌÍÍÍÍÍ,ÍIÍNÍVÍgÍoÍw͌͑ͤ͜͹;;ÍâÍîÍöÍ ÎÎÎ(Î3Î8Î8Î8Î8Î8Î8ÎCÎCÎCÎCÎCÎCÎCÎCÎCÎCÎCÎCÎNÎ]Î`ÎnÎ~΄ΌΛΠΨΰβκÎÉÎÏÎ×ÎßÎáÎéÎÏÏÏ Ï&Ï:ÏCÏLÏTÏ^ÏhÏpÏ~σψϚÏÎÏÖÏåÏïÏ ÐÐÐÐÐ Ð(Ð+Ð5ÐCÐUÐWÐiÐ{Ð{Ð{Ð†Ð‹Ð¨Ð­Ð­Ð¶Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»Ð»ÐÆÐÒÐêÐýÐÑÑÑ!Ñ(Ñ5Ñ>ÑGÑOÑVÑ[Ñ[ÑcÑkщёєіѦѰѰѰѲÑÇÑØÑÛÑÞÑæÑëÑëÑôÑùÑÒÒÒ*Ò1ÒBÒNÒkÒ„Ò™Ò®ÒµÒµÒºÒºÒºÒºÒºÒºÒºÒÂÒÍÒÙÒèÒíÒíÒõÒýÒ
ÉÉÉÉÉ/É?ÉIÉXÉ]ÉeÉeÉjÉjÉqɇɗɡɩɯɾÉÃÉËÉÑÉÑÉÖÉÝÉèÉÊ+Ê5Ê=ÊCÊXÊ^ÊcÊcÊcÊcÊcÊcÊcÊcÊcÊnÊ|ʌʒʚʩʮʻÊÃÊÈÊÈÊÈÊÐÊÙÊâÊïÊ÷ÊËËBËJËYËcË}˃ˈˈË�ˢ˪˿ËÇËÏËäËæËñËùËÌÌÌ'Ì/Ì6Ì<ÌBÌFÌOÌTÌx̡̭̲̄̌̾ÌÉÌÎÌÎÌÎÌäÌÍÍÍ Í'Í/ÍDÍIÍTÍ\ÍqÍvÍv͚ͦͮÍÃÍÏÍÔÍàÍëÍðÍðÍðÍðÍðÍðÍûÍûÍûÍûÍûÍûÍûÍûÍûÍûÍûÍûÍÎÎÎ&Î6Î<ÎDÎSÎXÎ`ÎhÎjÎrÎ�·Î�ΗΙΡξÎÇÎÏÎ×ÎÞÎòÎûÎÏ ÏÏ Ï(Ï6Ï;Ï@ÏRφώÏ�ϧÏÁÏÉÏÎÏÎÏÎÏ×ÏàÏãÏíÏûÏ ÐÐ!Ð3Ð3Ð3Ð>ÐCÐ`ÐeÐeÐnÐsÐsÐsÐsÐsÐsÐsÐsÐsÐsÐsÐsÐsÐsÐsÐsÐ~ЊТенÐÌÐÑÐÙÐàÐíÐöÐÿÐÑÑÑÑÑ#ÑAÑIÑLÑNÑ^ÑhÑhÑhÑjÑÑ�ѓіўѣѣѬѱѹÑÀÑÍÑâÑéÑúÑÒ#Ò<ÒQÒfÒmÒmÒrÒrÒrÒrÒrÒrÒrÒzÒ…Ò‘Ò Ò¥Ò¥Ò­ÒµÒÂÒÇÒÇÒÇÒËÒÐÒÐÒàÒåÒåÒåÒñÒøÒþÒÓ Ó$Ó3Ó;ÓLÓTÓwÓ}ӄӆӌӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӓӕӕӰӺÓÈÓÈÓÍÓØÓßÓûÓÔÔÔ ÔÔ5ÔCÔ7ÖAx[7Ö7ÖMÖTÖ[ÖfÖmÖ~ÖˆÖ�Ö™Ö¬Ö´Ö´ÖÏÖéÖïÖøÖÿÖ× ××× ×%×0×:×L×R×h×o×w×�×”×”×”×¢×É×Ò×Ú×ì×ô×ô×ô×ÿ× ØØ!Ø7Ø>ØFØMØbØsØsØzØzØz؈دؼØÅØÍØߨçØçØçØõØýØýØÙ Ù%Ù1ÙvÙBx`º‡Ü‡ÜŸÜ¯Ü¶Ü½ÜÈÜÛÜÞÜæÜíÜðÜÝÝÝ$Ý'Ý2ÝHÝSÝ^ÝiÝtÝ{ݎݚݷÝÀÝÈÝèÝëÝñÝöÝÞ ÞÞ"Þ(Þ0Þ0Þ<ÞJÞYÞaÞpÞxÞ›Þ¡Þ§Þ©Þ¯ÞµÞµÞµÞÚÞßÞüÞÿÞÿÞßßß"ß<ßHßXßk߇ߜߤ߮ßÍßáßáßUàC ?Cç0ç0ñ0ù0þ0DôÑÊgZgZˆZ“Z¤Z“Z¾ZÌZÌZÜZåZìZðZùZùZ[[%[3[?[E[P[t[t[…[�[–[�[¢[¢[µ[À[Ñ[Ü[ç[î[ø[\\\\\*\/\/\@\@\S\X\i\o\x\�\¡\¡\¦\¦\´\¹\¹\¾\Å\Í\Ô\Ö\Þ\å\å\ô\ú\]]]:]:]B]Q]\]c]e]y]ˆ]�]’]’]’]¥]ª]¹]À]É]Þ]ò]ò]÷]÷]ÿ]^^.^5^:^:^F^U^g^v^‘^œ^¶^È^Ú^é^___'_;_B_I_\_^_l__�_�_�_­_´_Ë_Ò_Þ_ë_ë_ö_ ÓÓÓÓÓÓÓ(Ó-Ó-Ó-Ó9Ó@ÓFÓPÓUÓlÓ{ӃӔӜӿÓÅÓÌÓÎÓÔÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÛÓÝÓÝÓøÓÔÔÔÔ Ô'ÔCÔPÔPÔPÔTÔ_Ô}Ô‹ÔÖAx[ÖÖ•ÖœÖ£Ö®ÖµÖÆÖÐÖ×ÖáÖôÖüÖüÖ×1×7×@×G×J×U×^×e×h×m×xׂהךװ׷׿×Õ×Ü×Ü×Ü×êרØ"Ø4Ø<Ø<Ø<ØGØQØcØiØØ†ØŽØ•تػػØÂØÂØÂØÐØ÷ØÙ ÙÙ'Ù/Ù/Ù/Ù=ÙEÙEÙHÙSÙmÙyÙ¾ÙBx`ºÏÜÏÜçÜ÷ÜþÜÝÝ#Ý&Ý.Ý5Ý8ÝHÝVÝaÝlÝoÝzÝ�ݛݦݱݼÝÃÝÖÝâÝÿÝÞÞ0Þ3Þ9Þ>ÞMÞSÞ[ÞjÞpÞxÞxÞ„Þ’Þ¡Þ©Þ¸ÞÀÞãÞéÞïÞñÞ÷ÞýÞýÞýÞ"ß'ßDßGßGßNß[ß_ßjß„ß�ß ß³ßÏßäßìßößà)à)à�àC ?C/1/191A1F1DôÑʯZ¯ZÐZÛZìZÛZ[[[$[-[4[8[A[A[I[M[m[{[‡[�[˜[¼[¼[Í[Ø[Þ[å[ê[ê[ý[\\$\/\6\@\M\M\_\d\d\r\w\w\ˆ\ˆ\›\ \±\·\À\Õ\é\é\î\î\ü\]]] ]]]]&]-]-]<]B]O]V]^]‚]‚]Š]™]¤]«]­]Á]Ð]Õ]Ú]Ú]Ú]í]ò]^^^&^:^:^?^?^G^]^b^v^}^‚^‚^Ž^�^¯^¾^Ù^ä^þ^_"_1_P_[_`_o_ƒ_Š_‘_¤_¦_´_Ç_É_×_å_õ_ü_``&`3`3`>`R`_`g`i`}`�`–`§`µ`×`Þ`ê`aaaaa a'a+a3a:aJaUasaxa�aŒa•a�a¢a¢a±a¾aÌa×aâaðaöaüab bb b8b8bIbTbVbbb€b†bŒb’b›b¬bÓbÛbåbób ccc-cBcBcOcTcfclclclclcvdEDTa/|/|C|P|f|R|u|w|�|§|¯|FœfɯR¯RÑRÛRSSS6S;S?SGSPS_SfSoStS‰SšS¹SÁSÃSâSêSùST TTT T&T(T9T>TTT@TcTiTiTqTzT‰T¨T¯T±TÐT×T×T×TîT÷TUUU+U UCUHUYU^UtU`UƒU‰U�U˜UžU U±U¶UÌU¸UÛUáUáUéUòUòUüUüUVDVMVYV]VkV�VvV™V™V«VG ;zââ&â/â2âDâZâ\âeâjâ‹â©â¸âÖâêâã ã/ãMã\ãyãŠã¡ã¥ã¥ã©ã®ã³ã½ãÀãÊãÏãèãëãëãëãëãðãöãä ä,ä5äIäQäZävä�ä�ä–äªäªä¹ä¾ä¾äÌäHPcs‡@‡@¨@•@Ê@·@Ù@è@ð@û@ý@AAA5A;AIPµÅûûû û/û/û6ûcûyûeû–ûˆû®û¶ûJŒ•´‡ù‡ùºùæùæùùùýù ú/ú4ú4ú;úCúKú`úlú}ú‚ú“ú§ú¬ú®ú®ú®úÊúèúèúûKP�­g=g=�=’= =¦=Á=Ð=ß=î=ü=>
`` `!`5`G`N`_`m`�`–`¢`À`À`À`È`Ó`×`ß`ã`ë`ò`a a+a0a9aDaMaUaZaZaiava„a�aša¨a®a´aºaÃaÉaØaðaðab bbb8b>bDbJbSbdb‹b“b�b«bÃbÊbÖbåbúbúbc cc$c$c$c$c.dEDTaç{ç{û{|| >>Lè7?/?/j/m/p/v/{/’/©/À/ä/00"0<0N0[0q0‚0‡0’0š0š0¤0¤0¯0´0É0Ï0î0 11$1*1I1h1p1{1{1…1…1—1Õ1í1ÿ1M$ WZWZ‚ZkZŒZ”ZNLx‡ÖÌÖÌèÌýÌÍ Í&Í.Í>ÍIÍZÍ`Í’ÍOTHY0e0eBeDeMeVedeiereuezeˆe’e•eŸeP¨!Gˆcˆc˜c¡c´cÁcÍcÙcåcñcddd"d+d2d;dRdidnd€d�d›d­d­d¶dÙdÙdÛdîdðd
|-|/|G|_|g|FœfÉgRgR‰R“R»RÊRÕRîRóR÷RÿRSSS'S,SASRSqSyS{SšS¢S±S¸SÄSÉSÐSØSÞSàSñSöS TøST!T!T)T2TAT`TgTiTˆT�T�T�T¦T¯T»T¿TÍTãTØTûTUUU,UU;UAUHUPUVUXUiUnU„UpU“U™U™U¡UªUªU´U´UÌUüUVVV#V9V.VQVQVcVG ;z¿á¿áÞáçáêáüáâââ"âCâaâpâŽâ¢âºâÁâçâãã1ãBãYã]ã]ãaãfãkãuãxã‚ã‡ã ã£ã£ã£ã£ã¨ã®ãÊãØãäãíãä ää.ä9äEäNäbäbäqävävä„äHPcs?@?@`@M@‚@o@‘@ @¨@³@µ@À@Ë@Ë@í@ó@IPµÅ¿ú¿úÓúØúçúçúîúû1ûûNû@ûfûnûJŒ•´?ù?ùrùžùžù±ùµù×ùçùìùìùóùûùúú$ú5ú:úKú_údúfúfúfú‚ú ú ú½úKP�­ = =H=J=X=^=y=ˆ=—=¦=´=¿=Â=Ò=Lè7÷.÷."/%/(/./3/J/a/x/œ/¸/»/Ú/ô/00)0:0?0J0R0R0\0\0g0l0�0‡0¦0Å0Ç0Ü0â01 1(13131=1=1O1�1¥1·1M$ ZZ:Z#ZDZLZNLx‡ÖÌÖÌèÌýÌÍ Í&Í.Í>ÍIÍZÍ`Í’ÍOTHY0e0eBeDeMeVedeiereuezeˆe’e•eŸeP¨!Gˆcˆc˜c¡c´cÁcÍcÙcåcñcddd"d+d2d;dRdidnd€d�d›d­d­d¶dÙdÙdÛdîdðd eee0eQlõŒ p p9pDpTp�p¤p¸p¿pÇpÏpØpàpèpêpòpúpqq'q?qHqHq}q§q°qÒqìq r3r?rarcrjrqrqr”r°r×rórs6s]sys s¼sãsÿs&t&t5tBtGtGtVtcththtotztŒt¤t¼tÔtÖtÖtÖtÝtÝtêtïtïtïtuu!u6uruyuyuyu�užu¬uÊuÓuÜuéu÷uv-v-v-v?vMviv‡v‡v‡v’v•vÄvÆvÝvãvôvývÿv wwww*w*wNwPwWwhwqwsw�wƒw‘w“w¡w¡wÁwÁwÁwÁwáwx;xCxGxOxSxaxoxqxyx}x�x‰x—x¥x¥x¿xÊxàxôxy-y8yByIybynyuyŽyŽy y¥y§y­y¾yÏyÞyåyöyÿyzzz z!z/z/z/zSzSzrzyz€zƒz�z’z z¤z²z¶zÄzÈzÈzázèzízûz{{0{P{c{r{t{ƒ{…{”{ž{ž{¬{µ{Ë{Ò{÷{ü{%|U|Z|h|j|x|�|›|�|Ÿ|¦|·|À|Â|Ð|Ò|à|â|ð|ð|}}}}}/}/}/}:}V}{}”}™}™}™}»}À}À}À}à}å}å}å}~ ~ ~~~~~~~#~#~&~+~J~`~…~¡~µ~º~º~Õ~â~ä~ó~ü~>@@HCƒƒƒ¢¢¢ÃÈÈÈêïï€€3€8€8€S€a€c€r€{€•€—€—€œ€—€½€¿€¿€Ç€Â€��� � �7�7�a�y�‘�œ�²�Æ�ß�÷�‚-‚/‚@‚]‚t‚{‚s†R„7wèwè•è£è¹èÓèáèÿè
eee0eQlõŒ p p9pDpTp�p¤p¸p¿pÇpÏpØpàpèpêpòpúpqq'q?qHqHq}q§q°qÒqìq r3r?rarcrjrqrqr”r°r×rórs6s]sys s¼sãsÿs&t&t5tBtGtGtVtcththtotztŒt¤t¼tÔtÖtÖtÖtÝtÝtêtïtïtïtuu!u6uruyuyuyu�užu¬uÊuÓuÜuéu÷uv-v-v-v?vMviv‡v‡v‡v’v•vÄvÆvÝvãvôvývÿv wwww*w*wNwPwWwhwqwsw�wƒw‘w“w¡w¡wÁwÁwÁwÁwáwx;xCxGxOxSxaxoxqxyx}x�x‰x—x¥x¥x¿xÊxàxôxy-y8yByIybynyuyŽyŽy y¥y§y­y¾yÏyÞyåyöyÿyzzz z!z/z/z/zSzSzrzyz€zƒz�z’z z¤z²z¶zÄzÈzÈzázèzízûz{{0{P{c{r{t{ƒ{…{”{ž{ž{¬{µ{Ë{Ò{÷{ü{%|U|Z|h|j|x|�|›|�|Ÿ|¦|·|À|Â|Ð|Ò|à|â|ð|ð|}}}}}/}/}/}:}V}{}”}™}™}™}»}À}À}À}à}å}å}å}~ ~ ~~~~~~~#~#~&~+~J~`~…~¡~µ~º~º~Õ~â~ä~ó~ü~>@@HCƒƒƒ¢¢¢ÃÈÈÈêïï€€3€8€8€S€a€c€r€{€•€—€—€œ€—€½€¿€¿€Ç€Â€��� � �7�7�a�y�‘�œ�²�Æ�ß�÷�‚-‚/‚@‚]‚t‚{‚s†R„7/è/èMè[èqè‹è™è·èÂèÞèÞèÞèëèééééé0é2é2é@éMéhéhé�é‘é¥é·éSæd®Ü®ÜÈÜÑÜñÜñÜ÷ÜÿÜÝÝÝÝ*Ý*ÝDÝIÝIÝOÝTÝTÝZÝ_Ý_ÝeÝjÝj݂ݕݛݠݠݩÝÉÝÉÝÉÝÐÝÒÝÒÝÙÝÛÝÛÝáÝáÝèÝêÝêÝðÝðÝ÷ÝùÝùÝÿÝÿÝÞÞÞÞÞ"Þ"Þ"Þ"Þ.Þ6Þ>ÞFÞNÞVÞ^ÞdÞ|Þ‹Þ•Þ˜Þ˜Þ¢Þ¨Þ®Þ®Þ²ÞºÞÁÞÅÞÍÞÕÞÛÞãÞêÞòÞúÞþÞßßß"ß.ß4ß<ß@ßGßOßWß[ßaßißpßx߀߄ߊߕߚ߰ßÁ߯ßÉßnàTLœ«H‡H‡a‡c‡j‡€‡�‡–‡®‡Æ‡É‡Û‡#ˆUÔ*[fðfðzð�ðžð¢ð°ð¹ðÈðÈð×ðâðíðøðÿðñ&ñ=ñCñHñLñ_ñ_ñuñwñ�ñ¥ñ°ñ²ñËñÏñÝñâñâñéñøñòò}òV$ÏYÏYúYãYZ ZWP©¹gCgCˆCuCªC—C¹CÈCÐCÛCÝCèCóCóCDDX,>×>×G×M×U×^×g×l×Y�wŽwŽ˜Ž­Ž»ŽÈŽûŽ��:�J�J�W�W�^�q�o���Š�”�š� �£�±�¸�Ð�×�Ú�ï�ô�ÿ� é&é&é&é3éNéPéPéPé]éxézézéˆé•é°é°éÕéÙéíéÿéSæd®Ü®ÜÈÜÑÜñÜñÜ÷ÜÿÜÝÝÝÝ*Ý*ÝDÝIÝIÝOÝTÝTÝZÝ_Ý_ÝeÝjÝj݂ݕݛݠݠݩÝÉÝÉÝÉÝÐÝÒÝÒÝÙÝÛÝÛÝáÝáÝèÝêÝêÝðÝðÝ÷ÝùÝùÝÿÝÿÝÞÞÞÞÞ"Þ"Þ"Þ"Þ.Þ6Þ>ÞFÞNÞVÞ^ÞdÞ|Þ‹Þ•Þ˜Þ˜Þ¢Þ¨Þ®Þ®Þ²ÞºÞÁÞÅÞÍÞÕÞÛÞãÞêÞòÞúÞþÞßßß"ß.ß4ß<ß@ßGßOßWß[ßaßißpßx߀߄ߊߕߚ߰ßÁ߯ßÉßnàTLœ«H‡H‡a‡c‡j‡€‡�‡–‡®‡Æ‡É‡Û‡#ˆUÔ/`žðžð²ðÇðÖðÚðèðñðññññ%ñ0ñ7ñGñ^ñuñ{ñ€ñ„ñ—ñ—ñ­ñ¯ñ¹ñÝñèñêñòòòòò!ò0ò8òKòµòV$ZZBZ+ZLZTZWP©¹¯C¯CÐC½CòCßCDDD#D%D0D;D;D]DcDX,>×>×G×M×U×^×g×l×Y�¿Ž¿ŽàŽõŽ��C�P�b�‚�’�’�Ÿ�Ÿ�¦�¹�·�Ç�Ç�Ò�Ü�â�è�ë�ù��� �"�7�<�G�R�l�†�—���£�ª�Á�°�Ñ�×�Ý�å�‘í�‘‘‘"‘"‘)‘@‘/‘P‘V‘\‘d‘„‘l‘�‘“‘™‘¡‘¡‘¡‘·‘·‘·‘·‘‘̑Ցõ‘’’’(’<’A’A’L’T’_’h’t’ˆ’˜’­’Â’ß’ä’ä’ï’÷’““ “.“K“`“u“€“…“…“�“¦“»“Ǔؓݓ” ””%”*”*”9”>”>”M”R”R”c”h”h”y”~”~”‘” ”¥”¥”¸”ǔ̔ڔ̔î”ó”•ó”••(••<•A•O•A•c•h•h•…•Š•¬•±•¿•±•ӕؕؕõ•ú•–!–/–!–C–H–H–e–j–Œ–‘–Ÿ–‘–³–¸–¸–Õ–Ú–ü–———#—(—(—C—H—H—c—h—h—ƒ—ˆ—ˆ—£—¨—¨—×È—È—ã—è—è—˜˜˜#˜(˜(˜9˜>˜>˜O˜T˜T˜`˜k˜€˜…˜…˜‘˜ª˜¯˜Õ˜ܘæ˜ë˜ü˜™™&™+™<™G™O™T™T™X™\™c™m™w™w™Š™�™�™�™“™¬™µ™µ™Û™à™à™è™ü™š š,š7šBšMš_škštšyšyšyšŠš§š²š¼šÇšÌšךßšäšäšïš÷š› ››3›K›_›d›d›o›‚›Œ›—›¸›Ä›Õ›Ú›ë›ï›ô›ô›œœœœ'œ7œFœcœxœ�œ˜œ�œ¨œ°œµœÀœМßœüœ�&�&�&�&�+�0�0�<�M�M�r�t�‘�‘�›�¯�¹�»�Ç�Ï�ì�ý�žž5žFžWžhžsž‹ž›ž ž ž«ž°ž°ž¸žÞȞȞОÛžàžàžèž Ÿòžðž!Ÿ&Ÿ&Ÿ.ŸOŸ8Ÿ6ŸgŸlŸ€ŸlŸ˜Ÿ�Ÿ�ŸªŸ¯Ÿ¯Ÿ·Ÿ¼Ÿ¼ŸΟàŸåŸåŸùŸåŸ    # # 6 ; ; N S S m } ‚ ‚ œ ¬ ± ± Ë Û à à ú 
�$�>�O�U�[�b�y�h�‰���•���½�¥�Æ�Ì�Ò�Ú�Ú�á�ø�ç�‘‘‘‘<‘$‘E‘K‘Q‘Y‘Y‘Y‘o‘o‘o‘o‘z‘„‘�‘­‘¹‘ʑϑà‘ô‘ù‘ù‘’ ’’ ’,’@’P’e’z’—’œ’œ’§’¯’¼’Ç’×’æ’““-“8“=“=“H“^“s““�“•“¦“º“º“Å“º“Ý“â“â“ñ“ö“ö“” ¡¡&¡¡>¡C¡C¡N¡S¡�¡}¡k¡S¡§¡¬¡è¡Ö¡Ä¡¬¡¢¢¢¢$¢)¢)¢8¢H¢M¢M¢\¢j¢o¢—¢…¢o¢¯¢´¢Ü¢Ê¢´¢ô¢ù¢!££ù¢9£>£>£[£E£…£•£š£š£µ£¡£ߣï£ô£ô£¤¤¤¤¤¤)¤9¤>¤>¤Q¤a¤f¤f¤y¤‰¤ޤޤ¡¤±¤¶¤¶¤¾¤ääˤФФؤݤݤå¤ê¤ê¤ý¤¥¥¥¥h¥V¥D¥2¥¥u¥z¥È¥¶¥¤¥’¥z¥Õ¥Ú¥Ú¥é¥¦ ¦ ¦¦5¦:¦:¦K¦Y¦^¦^¦f¦k¦k¦s¦x¦x¦€¦…¦…¦½¦«¦™¦Œ¦ܦ÷¦ü¦ü¦4§"§§§S§n§s§¨§–§‹§s§À§ŧú§è§ݧŧ¨¨1¨¨¨I¨N¨k¨U¨N¨ƒ¨ˆ¨ˆ¨”¨­¨½¨ΨΨó¨õ¨ ©©©.©;©l©�©‹©À©È©È©È©Ô©Ù©Ù©ì©÷©ªªªª ª ª:ª?ª?ªGªLª`ªLªoªzªª“ªª¢ª­ª²ª²ª½ªΪÓªÓªÞªéªîªîªÿª«««)«.«9«.«H«M«a«M«p«u«€«u«�«”«¨«”«·«¼«¼«Ы¼«ß«ß«ß«ä«ð«ä«¬¬¬¬¬'¬,¬,¬8¬,¬K¬P¬P¬\¬P¬o¬t¬ˆ¬t¬—¬£¬®¬¹¬¾¬Ò¬¾¬á¬í¬ø¬­­­­3­+­<­A­A­I­N­N­W­\­\­e­j­j­s­x­x­ƒ­ˆ­ˆ­“­˜­˜­£­¨­¨­³­¸­¸­íȭȭӭححã­è­ü­è­ ®®!®,®1®1®;®@®@®J®O®O®Y®^®^®h®m®m®u®z®z®‡®Œ®Œ®™®ž®ž®ž®ž®ž®¦®«®«®³®¸®¸®À®Å®Å®Í®Ò®Ò®Ú®ß®ó®ß®¯¯¯¯ ¯*¯J¯O¯e¯p¯‰¯u¯˜¯£¯®¯³¯³¯º¯ůå¯ê¯° °$°°3°>°I°N°N°U°`°€°…°›°¦°¿°«°ΰÙ°ä°é°é°±ð°±3±8±N±Y±r±^±•±�±¤±¯±´±´±ϱ»±Þ±þ±²²$²=²)²`²L²o²z²²²š²†²©²ɲβä²ï²³ô²+³³:³E³J³J³Y³^³^³m³r³r³r³x³}³}³}³‡³‰³‰³“³š³½³¿³¿³ɳɳɳɳɳ˳˳â³é³ô³ô³ÿ³´ ´´"´-´'´H´e´Z´}´}´‹´…´±´¦´É´É´É´Ò´Ù´ì´ñ´ÿ´µµ1µ<µSµsµsµsµ”µ¤µ¹µ˵ÛµÛµ(¶(¶,¶1¶8¶H¶g¶g¶k¶‚¶‰¶޶޶’¶�©¶·¶ä¶í¶þ¶ ·?·K·P·f·~·Š·›· ·±·зþ·'¸*¸:¸<¸<¸@¸_¸j¸j¸m¸~¸¯¸Ò¸Ò¸Õ¸úºZ, n×n×|ׂ׆×�טמ×[`EYφφå†ó†ú†þ† ‡&‡*‡0‡F‡c‡e‡e‡–‡„‡e‡µ‡¿‡\8
” §Y§YÈYµY×YâYíYøYZZZ]\’¡¡¡ ¡+¡3¡>¡I¡T¡V¡l¡l¡~¡Š¡“¡–¡Å¡^l½”§î§îÌîÑîÞî
”” ” ”1”6”6”I”X”]”]”p””„”’”„”¦”«”¹”«”͔Ҕà”Ò”ô”ù”•ù”• • •=•B•d•i•w•i•‹•�•�•­•²•Ô•Ù•ç•Ù•û•–––"–D–I–W–I–k–p–p–�–’–´–¹–Ç–¹–Û–à–à–û–——— — —;—@—@—[—`—`—{—€—€—›— — —»—À—À—Û—à—à—ñ—ö—ö—˜ ˜ ˜˜#˜8˜=˜=˜I˜b˜g˜�˜”˜ž˜£˜´˜¾˜Ó˜Þ˜ã˜ô˜ÿ˜™ ™ ™™™™%™/™/™B™G™G™G™K™d™m™m™“™˜™˜™ ™´™½™×™ä™ï™ú™šš#š,š1š1š1šBš_šjštšš„š�š—šœšœš§š¯š¸šÚÓšëš››››'›:›D›O›p›|›�›’›£›§›¬›¬›¼›Ç›Ï›Ô›ß›ï›þ›œ0œEœPœUœ`œhœmœxœˆœ—œ´œÉœÞœÞœÞœÞœãœèœèœôœ��*�,�I�I�S�g�q�s��‡�¤�µ�¿�Ê�í�þ�ž ž+žCžSžXžXžcžhžhžpž{ž€ž€žˆž“ž˜ž˜ž žÁžªž¨žÙžÞžÞžæžŸðžîž Ÿ$Ÿ8Ÿ$ŸPŸUŸUŸbŸgŸgŸoŸtŸtŸ†Ÿ˜Ÿ�Ÿ�Ÿ±Ÿ�ŸÉŸΟΟÖŸÛŸÛŸîŸóŸóŸ     % 5 : : T d i i ƒ “ ˜ ˜ ²  Ç Þ Ç ö û û ¡ ¡G¡5¡#¡ ¡_¡d¡ ¡Ž¡|¡d¡¸¡½¡½¡Ì¡Ü¡á¡á¡ð¡¢¢¢¢"¢'¢O¢=¢'¢g¢l¢”¢‚¢l¢¬¢±¢Ù¢Ç¢±¢ñ¢ö¢ö¢£ý¢=£M£R£R£m£Y£—£§£¬£¬£¸£½£½£É£ΣΣá£ñ£ö£ö£ ¤¤¤¤1¤A¤F¤F¤Y¤i¤n¤n¤v¤{¤{¤ƒ¤ˆ¤ˆ¤�¤•¤•¤�¤¢¤¢¤µ¤º¤º¤ͤÒ¤ ¥¥ü¤ê¤Ò¤-¥2¥€¥n¥\¥J¥2¥�¥’¥’¥¡¥¼¥Á¥Á¥Ò¥í¥ò¥ò¥¦¦¦¦¦#¦#¦+¦0¦0¦8¦=¦=¦u¦c¦Q¦D¦”¦¯¦´¦´¦ì¦Ú¦Ȧ»¦ §&§+§`§N§C§+§x§}§²§ §•§}§ʧϧé§Ó§ϧ¨¨#¨ ¨¨;¨@¨@¨L¨e¨u¨†¨†¨«¨­¨èɨɨæ¨ó¨$©U©C©x©€©€©€©Œ©‘©‘©¤©¯©¹©¾©É©Ó©Ø©Ø©ò©÷©÷©ÿ©ªªª'ª2ª7ªKª7ªZªeªjªjªuª†ª‹ª‹ª–ª¡ª¦ª¦ª·ª¼ª¼ªÖªáªæªñªæª««««(«-«8«-«G«L«`«L«o«t«t«ˆ«t«—«—«—«œ«¨«œ«»«À«À«Ì«À«ß«ä«ä«ð«ä«¬¬¬¬¬'¬,¬@¬,¬O¬[¬f¬q¬v¬Ьv¬™¬¥¬°¬»¬À¬Ô¬À¬ë¬ã¬ô¬ù¬ù¬­­­­­­­"­"­+­0­0­;­@­@­K­P­P­[­`­`­k­p­p­{­€­€­‹­�­�­›­ ­´­ ­íέÙ­ä­é­é­ó­ø­ø­®®®®®® ®%®%®-®2®2®?®D®D®Q®V®V®V®V®V®^®c®c®k®p®p®x®}®}®…®Š®Š®’®—®«®—®º®Ë®ЮЮ׮⮯¯¯(¯A¯-¯P¯[¯f¯k¯k¯r¯}¯�¯¢¯¸¯ïܯȯë¯ö¯°°° °°8°=°S°^°w°c°†°‘°œ°¡°¡°¼°¨°˰ë°ð°±±*±±M±9±\±g±l±l±‡±s±–±¶±»±ѱܱõ±á±²²'²2²7²7²R²>²a²�²†²œ²§²À²¬²ã²ϲò²ý²³³³³³%³*³*³*³0³5³5³5³?³A³A³K³R³u³w³w³�³�³�³�³�³ƒ³ƒ³š³¡³¬³¬³·³½³ijϳÚ³å³ß³´´´5´5´C´=´i´^´�´�´�´Š´‘´¤´©´·´Ê´Ê´é´ô´ µ+µ+µ+µLµ\µqµƒµ“µ“µ¸µ¿µεàµàµäµéµðµ#¶:¶A¶F¶F¶J¶U¶a¶o¶œ¶¥¶¶¶Ķ÷¶···6·B·S·X·i·ˆ·¶·ß·â·ò·ô·ô·ø·¸"¸"¸%¸6¸g¸ЏЏ�¸²ºZ, n×n×|ׂ׆×�טמ×[`EY‡†‡†�†«†²†¶†ņÞ†â†è†þ†‡‡‡N‡<‡‡m‡w‡\8 ï
_Y_Y€YmY�YšY¥Y°Y»YÇYÍY]\’¡¡¡ ¡+¡3¡>¡I¡T¡V¡l¡l¡~¡Š¡“¡–¡Å¡^l½”_î_î„î‰î–îÂîÂîÍîÚîøîï-ï2ï[ï{ï—ï�ï¡ïÄïêïïïð5ð[ðrðxð|ð•ð�ð¢ð³ð»ðÚðàðäðýðñ$ñ)ñ:ñBñañfñnñtñxñ|ñŽñ–ñ›ñ¹ñ¾ñËñÐñÐñÝñõñòò1ò1òHòMòMòdòfòfòzò|ò|ò“ò•ò•ò¬ò®ò®òÅòÅò×òÜòÜòëòëò$ó=ó=óPóUóUóUóUóxó”ó°ó°ó°ó¸ó½ó½ó½óÅóÊóÊóÒóÒóÔóþóô ô@ô@ô@ô@ô@ôZô]ôrôyô{ô„ô—ô™ô¥ô¥ô­ô¿ô¿ôËôÞôõôÿô'õ9õUõuõ–õ®õÍõóõö öEö]ölöƒöŸö¤ö¤öØöÝöÝöðöðöüö÷÷÷+÷J÷p÷÷�÷Â÷â÷ñ÷ ø2ø<ø^ø`ø`ø`øløløløŠøºø¼ø¼øËøËøÐøÐøÐøÐøÐøçøìøÿø>ù_\ ïï"ï@ïHïuïzï£ïÃïßïåïéï ð2ð7ð`ð}ð£ðºðÀðÄðÝðåðêðûðñ"ñ(ñ,ñEñMñlñqñ‚ñŠñ©ñ®ññ¼ñÀñÄñÖñÞñãñòòòòò%ò=òLòYòyòyò�ò•ò•ò¬ò®ò®òÂòÄòÄòÛòÝòÝòôòöòöò ó ó ó$ó$ó3ó3óló…ó…ó˜ó�ó�ó�ó�óÀóÜóøóøóøóôôôô ôôôôôôFôHôhôˆôˆôˆôˆôˆô¢ô¥ôºôÁôÃôÌôßôáôíôíôõôõõõ&õ=õGõoõ�õ�õ½õÞõöõö;öJöhö�ö¥ö´öËöçöìöìö ÷%÷%÷8÷8÷D÷V÷[÷[÷s÷’÷¸÷Ç÷å÷
¯N¯NÁN×NóNOO,O7OLO9O[OcOnO„OzOœO¢O`àï9ï9 ::::%:):+:2:9:=:A:T:|:—:„:¯:´:Ø:Ø:ä:ì:û:5;:;g;o;t;};‰;‘;˜;º;À;â;ä;<%<<4<:<A<A<G<J<N<_<_<‚<”<a$‡à‡à–à±à±à·àb|k†�ë�ë©ëÕëÕëôëììììì ìì0ìIìKìKìKìSìnìpìpìzìzì’ìc”"_5_5�5‹5—5œ5¬5²5Ç5Û5ë5ù566&606?6G6T6\6_6_6_6a6p6z6ƒ6‹6Ž6 6dô¦ßß6ß6777!7'7>7U7l7w7­7Í7Ò7×7â7ü78818C8Z8_8q8v8y8™8¹8Á8É8Î8î8999 9@9H9M9R9]9]9h9h9t9t9†9Æ9ß9ß9ï9ed¤¹����#�)�1�?�R�^�x�…�…�ˆ�–�¦�À�Ä�Ì�f(¸þr*r*ˆ*�*¡*Ð*à*ç*÷*+ ø*ø9øgøzø„ø¦ø¨ø¨ø¨ø´ø´ø´øÒøùùùùùùùùùù/ù4ùGù†ù_\
++8+b+s+�+�+ˆ+˜+¤+´+½+Ô+Ô+ê+ê+,,,,,,,,B,B,X,X,n,n,„,„,›,›,²,²,É,É,à,à,÷,÷,--%-%-<-D-O-`-k-|--�-˜-Ÿ-æ.g¬÷  8 > E M U X c u u Œ “ – ˜ ¤ µ µ ¸ À Ö Ù ç ê í ô ø    3 6 … h(Èη€·€Þ€Ë€í€ÿ€�i=‡Q‡QªQ¿QÄQÌQÔQÜQéQïQøQþQR"R;R@RFRHRJRWRWR\ReRmRvR~R€RˆR�R˜R¥R«R¶R½RÍRØRçRSSS#S4S8S@S@STSdSlSoSÕSj8-7*0*0>0B0G0R0]0`0d0l0kˆZøw‡w‡‘‡¬‡²‡¹‡¹‡À‡å‡ê‡õ‡ˆý‡"ˆ5ˆGˆPˆXˆbˆ€ˆ’ˆ›ˆ£ˆ­ˆȈ²ˆ׈éˆóˆûˆ‰ýˆ8‰"‰G‰Y‰c‰k‰k‰t‰|‰’‰«‰½‰̉ЉЉ׉܉ú‰ü‰Š Š"Š"Š"Š&Š2ŠSŠ]ŠgŠpБЛХЧЧŠÄŠÒŠàŠãŠüŠ‹‹ ‹>‹B‹]‹a‹a‹a‹g‹u‹‹˜‹ž‹©‹µ‹·‹¿‹Å‹Þ‹é‹÷‹ŒŒŒ%Œ1Œ3Œ;Œ>ŒWŒYŒeŒgŒoŒuŒŽŒ¦Œ²ŒÇŒÌŒáŒñŒ ÷N÷N O O;OHO_OtOO”O�O£O«O¶OÌOÂOäOêO`à7:7:U:X:_:f:m:q:s:z:�:…:‰:œ:Ä:ß:Ì:÷:ü: ; ;,;4;C;};‚;¯;·;¼;Å;Ñ;Ù;à;<<*<,<N<m<Z<|<‚<‰<‰<�<’<–<§<§<Ê<Ü<a$ÏàÏàÞàùàùàÿàb|k†×ë×ëñëìì<ìLìNìNìNìNìUì]ìxì‘ì“ì“ì“ì›ì¶ì¸ì¸ìÂìÂìÚìc”"§5§5É5Ó5ß5ä5ô5ú56#636A6O6f6n6x6‡6�6œ6¤6§6§6§6©6¸6Â6Ë6Ó6Ö6è6dô¦ß'7'7P7]7`7i7o7†7�7´7¿7õ788 8*8D8V8c8y8‹8¢8§8¹8¾8Á8á89 99969V9^9f9h9ˆ9�9•9š9¥9¥9°9°9¼9¼9Î9:':':7:ed¤¹����#�)�1�?�R�^�x�…�…�ˆ�–�¦�À�Ä�Ì�f(¸þr*r*ˆ*�*¡*Ð*à*ç*÷*+
���&�1�I�U�j�o�„�”�­�¾�¾�Ä�Ï�×�å�ì�þ�leãnànàˆà‘à±à±à·à¿àÇàÏà×àÝàêàêàøàýàýàááááááááá6áIáOáTáTá]á}á}á}á„á†á†á�á�á�á•á•áœážážá¤á¤á«á­á­á³á³áºáºáÂáÈáÎáÖáÖáÖáÖáâáêáòáúáâ ++8+b+s+�+�+ˆ+˜+¤+´+½+Ô+Ô+ê+ê+,,,,,,,,B,B,X,X,n,n,„,„,›,›,²,²,É,É,à,à,÷,÷,--%-%-<-D-O-`-k-|--�-˜-Ÿ-æ.g¬÷V V p v } … � � › ­ ­ Ä Ë Î Ð Ü í í ð ø    " % , 0 8 F X k n ½ h(ÈÎÿ€ÿ€&��5�G�O�i=ÏQÏQòQR RRR$R1R7R@RFRKRjRƒRˆRŽR�R’RŸRŸR¤R­RµR¾RÆRÈRÐRØRàRíRóRþRSS S/SPSWSbSkS|S€SˆSˆSœS¬S´S·STj8-7*0*0>0B0G0R0]0`0d0l0kˆZø¿‡¿‡Ù‡ô‡ú‡ˆˆˆ-ˆ2ˆ=ˆ[ˆEˆjˆ}ˆ�ˆ˜ˆ ˆªˆȈÚˆãˆëˆõˆ‰úˆ ‰1‰;‰C‰[‰E‰€‰j‰�‰¡‰«‰³‰³‰¼‰ĉÚ‰ó‰ŠŠŠŠ Š$ŠBŠDŠIŠTŠjŠjŠjŠnŠzЛХНЏŠÙŠãŠíŠïŠïŠ ‹‹(‹+‹D‹H‹c‹g‹†‹Š‹¥‹©‹©‹©‹¯‹½‹Ç‹à‹æ‹ñ‹ý‹ÿ‹Œ Œ&Œ1Œ?ŒIŒbŒeŒmŒyŒ{ŒƒŒ†ŒŸŒ¡Œ­Œ¯Œ·Œ½ŒÖŒîŒúŒ��)�9�R�c�c�n�y�‘���²�·�Ì�Ü�õ�ŽŽ ŽŽ Ž-Ž4ŽFŽleãnànàˆà‘à±à±à·à¿àÇàÏà×àÝàêàêàøàýàýàááááááááá6áIáOáTáTá]á}á}á}á„á†á†á�á�á�á•á•áœážážá¤á¤á«á­á­á³á³áºáºáÂáÈáÎáÖáÖáÖáÖáâáêáòáúáâ
âââ0â?âIâLâLâVâ\âbâbâfânâuâ}â…â‰â�â—âžâ¦â®â²â¸âÃâÉâÖâââèâðâôâûâã ãããã$ã,ã4ã8ã>ãIãNãdãuãzã}ã"äm`b!b!k!r!†!š!Ÿ!½!Â!à!â!"""-"6"8"L"\"�"n�2Ò8•8•N•_•p•�•’•£•¶•¾•Ì•ê•õ•û•–––0–A–G–\–w–w–ƒ–‹–“–™–®–¶–º––Ж֖ۖۖ𖗠———"—E—X—d—h—r—‹—‘—“— —¢—´—´—»—×՗՗˜˜'˜+˜5˜9˜E˜I˜U˜Y˜e˜i˜i˜˜’˜˜˜œ˜¦˜ª˜¹˜½˜Ì˜Ð˜ã˜ç˜ç˜ç˜ç˜þ˜ ™™!™8™H™V™a™w™„™“™›™¨™Ã™Ó™ã™è™è™è™è™õ™š šš'š6šKš\šlšršršrš„šŠš–šœš©šÄšÔšàšæšóš››5›¿œoÔÃô0n0nBnSn^nin‚n”n¬n±nÀnÇnÔnÛnénðnònõnúnünoo6oLodoioxooŒo£oÁoÈoÊoÍoÒoõop pp$hm&& &4&;&U&qxKewQwQŸQ‹Q®QÉQµQØQÝQäQìQóQþQ RRR$R/RER:R]ReRrJ‡otot‹t’tªtÂtÌt×t×tÜtçtótþt uu,u3u9uNucucuwuu�uœu«u¸uÉuÚuèuöuýuvv-v-vAvNv_vovxv‰v‰v�v�v®v»vËv-ws8³½7Q7Q;Q@QEQVQdQmQrQwQyQt88Br0r0†0Š0�0š0¤0§0«0³0u0ˆ�WOWOmO€O�O“O–OžOvÜt††¨³¾Ç×éïõû%25=OUZ}�”š±·ÇÍÙçìú!*:<CHPo}‰£ÂÉÓâèîôú1EQhs‚�Ÿ¬¼Êáíò.ENT_dj�Œ™  ®½¿ÍÜîîö$Xw`0D‡…‡…�…¯…¶…º…É…è…ì…ò…†%†'†'†X†F†'†w†�†xDˆÕ‡ä‡ä™ä¡ä¬ä²ä¸ä¼äÀäìäìäóäöäûä åå8å<åAåAåHåKåPå\åmåqå‚å”å˜åšå¬å°åÌåÐåÕåÕåéåìåúåæ æ1æ<æ@æEæ{æ”æŸæ£æ´æ¿æÃæÅæÐæÔæÔæèæìæîæîæùæýæççççç;çy¼Ö?ç?çSçiçiçiçnçnçuçzçzç�ç†ç†ç“ç˜ç˜ç¥ç¬ç®ç®ç»çÂçÄçÄçàçàçàçãçåçåçåçéçëçëçïçïçïç èèè)èz°0X¿Z¿Z×ZßZêZN[4[)[[øZT[f[V[†[†[�[‘[Ï[Ô[à[õ[â[\ âââ0â?âIâLâLâVâ\âbâbâfânâuâ}â…â‰â�â—âžâ¦â®â²â¸âÃâÉâÖâââèâðâôâûâã ãããã$ã,ã4ã8ã>ãIãNãdãuãzã}ã"äm`b!b!k!r!†!š!Ÿ!½!Â!à!â!"""-"6"8"L"\"�"n�2Ò8•8•N•_•p•�•’•£•¶•¾•Ì•ê•õ•û•–––0–A–G–\–w–w–ƒ–‹–“–™–®–¶–º––Ж֖ۖۖ𖗠———"—E—X—d—h—r—‹—‘—“— —¢—´—´—»—×՗՗˜˜'˜+˜5˜9˜E˜I˜U˜Y˜e˜i˜i˜˜’˜˜˜œ˜¦˜ª˜¹˜½˜Ì˜Ð˜ã˜ç˜ç˜ç˜ç˜þ˜ ™™!™8™H™V™a™w™„™“™›™¨™Ã™Ó™ã™è™è™è™è™õ™š šš'š6šKš\šlšršršrš„šŠš–šœš©šÄšÔšàšæšóš››5›¿œoÔÃô0n0nBnSn^nin‚n”n¬n±nÀnÇnÔnÛnénðnònõnúnünoo6oLodoioxooŒo£oÁoÈoÊoÍoÒoõop pp$hm&& &4&;&U&qxKe¿Q¿QçQÓQöQRýQ R%R,R4R;RFRQRYRaRlRwR�R‚R¥R­RrJ‡·t·tÓtÚtòt
\\5\$\\L\N\j\j\q\›\›\›\§\{ÈLºüü,ü7üBühühüjüwü‚üˆü™ü¨ü·üÄüÄüÊüÏüÔüêüýüý ýý+ý3ý>ý:ýUýcýcýcýný‰ýtý‘ý¤ý¦ýÂý®ýÊýØýØýÚýöýöýýýþ þþþ8þLþ?þTþZþcþcþcþvþ{þ{þƒþƒþŽþ£þ¬þ¬þ¬þ¬þÈþßþåþêþêþÿþÿ uu u u$u/u;uFuTudutu{u�u–u«u«u¿uÇu×uäuóuvv"v0v>vEvKv`vuvuv‰v–v§v·vÀvÑvÑv×våvövwwuws8³½QQƒQˆQ�QžQ¬QµQºQ¿QÁQt88Br0r0†0Š0�0š0¤0§0«0³0u0ˆ�ŸOŸOµOÈOÕOÛOÞOæOvÜt¾¾àëöÿ!'-3I8]jmu‡�’µÈÌÒéïÿ $2KYbrt{€ˆ§µÁÛú  &,2Hi}‰ «ºÈ×äô%*8Tf}†Œ—œ¢¹ÄÑØØæõ÷&&.Q\�w`0DÏ…Ï…å…÷…þ…††0†4†:†P†m†o†o† †ކo†¿†ɆxDˆÕÏäÏäáäéäôäúäååå4å4å;å>åCåUåYå€å„å‰å‰å�å“å˜å¤åµå¹åÊåÜåàåâåôåøåææææ1æ4æBæLæSæyæ„æˆæ�æÃæÜæçæëæüæç ç çççç0ç4ç6ç6çAçEçYç]ç]ç]çaçƒçy¼Ö‡ç‡ç›ç±ç±ç±ç¶ç¶ç½çÂçÂçÉçÎçÎçÛçàçàçíçôçöçöçè
ÿ è è è(è(è(è+è-è-è-è1è3è3è7è7è7èSèXèXèqèz°0X[[ ['[2[–[|[q[W[@[œ[®[ž[Î[Î[å[Ù[\\(\=\*\L\R\Y\}\l\`\”\–\²\²\¹\ã\ã\ã\ï\{ÈQ¿FüFüdüoüzü ü ü¢ü¯üºüÀüÑüàüïüüüüüýý ý"ý5ý@ýDýVýcýkývýrý�ý›ý›ý›ý¦ýÁý¬ýÉýÜýÞýúýæýþþþþ.þ.þ5þ;þDþKþNþpþ„þwþŒþ’þ›þ›þ›þ®þ³þ³þ»þ»þÆþÛþäþäþäþäþÿÿÿ"ÿ"ÿ7ÿ=ÿBÿBÿNÿkÿ‹ÿ�ÿ•ÿ•ÿ¡ÿ¾ÿÍÿÜÿäÿéÿïÿôÿôÿûÿ%BDLavv||‰’’°ÆÑÖãî÷ÿ&&66HN}††ˆ�””¡¬²»»ÎÛíø>GRW^fyŽ“š§®ÀÕÜâëëô(8FFLS\\o�„„•�¥±ÎÕâäëÿ888EEZew„��¨·¾¾×êìû 55;DDQWiivy„–�¨­µ¼ÇÌáãý!2@RRX_hm‘šš ©©ÈÈÕØáêòý  -09BJUgmxx…ˆ‘šœ¾Ñæì÷ "› |t·ÐR4R4d4m4p4y4‚4”4”4À4Ä4É4Ì4Õ4ä4ê4í4õ4ø4ý45}`2ïOïOPP&PKP7PZP_PfPnPuP€PˆP“P©PžPÁPÉP~À-¸g¸gÖgægðgðgúgúghh#h&h(h1h>h>hLh`h`h„h‘h‘h¡h®h®hÑhÞhÞhóhi*iLiUibibi…i�i�iÂiõiûiûiûi jt�Z3Z3n3�3¡3µ3¼3È3â3ë3ñ34 4 4!4!4$4'4<4B4D4D4L4€¸ºäÐ�Ð�è�ê�ö�ú�Ž
ÿÿ3ÿSÿXÿ]ÿ]ÿiÿ†ÿ•ÿ¤ÿ¬ÿ±ÿ·ÿ¼ÿ¼ÿÃÿÊÿíÿ Ž$Ž$Ž$Ž*Ž.Ž6ŽAŽUŽaŽcŽcŽlŽnŽnŽwŽyŽyނބބŽ�Ž�Ž–ŽœŽŸŽ©ŽºŽÀŽÌŽÌŽ4��œ&ï(ï( ))6)=)Y)N)q)‘)}) )±)¶)×)Ã)ï) **/*$*G*g*S*v*‡*�*‰*µ*Â*Â*Ú*Ú*ä*‚¨¥Ç3Ç3Ó3ã3î34H4Y4j4|4ƒ4Š4ž4¥4¥4´4Â4Ñ4é4ø455!5$5)5@5P5`5d5k5¡5ƒx± (±(±>±E±L±k±z±‰±˜±§±¶±À±À±Å±Ì±ß±î±ó±²(²(²>²P²T²b²i²n²n²u²‡²�²’² ²²²²²²²Ä²Ï²á²ì²ù²þ²³³#³/³4³A³F³V³[³k³m³}³³�³‘³¢³«³«³­³½³Ä³Ô³Ô³ï³´´%´5´5´5´8´K´„\åø8�8�S�Z�_�m�‚�‰�“�¡�¤�¦�°�Â�Â�É�ÿ�…0ÎÖžžöêÀ¾
 )>>DDQZZxŽ™ž«¿Ç×îîþþENNPW\\itzƒƒ–£µÀÎ×Ü &.AV[bovˆ�¤ª³³¼ÖÝâð$$7ILL]emy–�ª¬³ÇÖÖÖ  "-?LWep††Ÿ²´ÃØÚèýý   11>AL^epu}„�”©«ÅÚÚÚÜãéú '05Ybbhqq��� ©²ºÅ×Ýèèõø †`/ττå„÷„þ„……0…4…:…P…m…o…o… …Ž…o…¿…É…‡L[j?2?2M2_2e2m22…2Ž2 2¦2©2å2ˆ(–œ*3*383G3K3N3T3‰\k~ç2ç2õ23 33'3-363H3N3W3i3o3r3À3Š, ××$×+×3×8×>׋„$··Õçîõ ++0RgTv…‡©©©¸ÔÊìöŒ`B?i?i\idiki�iži i®i»iÁiÌiãiòiýij jj j+jBjYjljƒj�j›j­j¯j½jÏjÏjØjéjïjÿjÿjkk<k<kAkAkJkVkckok„k›kªkµkÇkÓkêkl#l#l,l1l1l1l1lAlJlRlWlelslƒlˆlˆl–l–l›l›l¥l°lÂlÈlÔlälïlùlýlm m"m2m9mWm`m`momm�m–mœm¨m°m»mÂmÆmÙmßmìm÷mým nnnJnhntn|n‡nŽn™n©n¹n¹nÉnÎnÎnØnãnõnûn oo#o-o1o:oSoVofomororo†o†o‹o�oŸo¨oºoÀoÂoÂoÐoÖoßoðoùoppppp2p2pApDpXpvp�pªp¼pÇpÙpÝpâpépûp q&q-q1q7q?qJqYr�8øO(O(i(~(”(µ(¢(Í(å(å(ï(Ž`j~X X x  ‡ ’ œ § ¯ ¾ È Ë ð ò ¡¡¡�_×Ú×ÚùÚÛÛ Û#Û5Û?ÛEÛWÛ\ÛhÛpÛsÛuÛÛ‰Û‰Û�Û•Û�Û¥Û¯Û¸ÛÀÛÃÛÌÛçÛøÛÿÛÜÜÜÜ$Ü$Ü+Ü.Ü3ÜBÜHÜPÜPÜ^ÜaÜfÜu܀܈܈ܓܧܮܵÜÌÜ�83=ö×ö×ÿ×ÿ× ØØ Ø"Ø'Ø‘8>H.Ø.Ø7Ø7ØEØIØPØSØXØ’DDQG1G1a1t1~1…1‘1©1²1¶1È1Î1í1“Ä{¨©¬³¸¾ÀÅËËÝäú "$+1;;OQX^hhh‘˜§©¿ÒÒä”0RZï1ï1ø12/25252=2•„a~¶ò¶òÈòÝòçòðòòòùò óóó ó ó)ó:ó=ó=óaólónó‡óŽó’ó¡ó´óô– 
/5@@MPYbd†™®´¿Ñ×ßßßßêc |t·ÐR4R4d4m4p4y4‚4”4”4À4Ä4É4Ì4Õ4ä4ê4í4õ4ø4ý45}`2§O§OÏO»OÞOPïOPPP&P-P8P@PKPaPVPyP�P~À-¸g¸gÖgægðgðgúgúghh#h&h(h1h>h>hLh`h`h„h‘h‘h¡h®h®hÑhÞhÞhóhi*iLiUibibi…i�i�iÂiõiûiûiûi jt�Z3Z3n3�3¡3µ3¼3È3â3ë3ñ34 4 4!4!4$4'4<4B4D4D4L4€¸ºäÐ�Ð�è�ê�ö�ú�Ž >0>0G0d0i0—hú—f—f­f¸fÃfÑfÜfåföfÿfgg"g9g9gKg\gigrgƒg‰g×g˜„=Z—J—JÇJÍJÖJâJêJñJõJþJþJK
Ž$Ž$Ž$Ž*Ž.Ž6ŽAŽUŽaŽcŽcŽlŽnŽnŽwŽyŽyނބބŽ�Ž�Ž–ŽœŽŸŽ©ŽºŽÀŽÌŽÌŽ4��œ&§(§(Å(Ö(î(õ())))I)5)X)i)n)�){)§)Ä)Ë)ç)Ü)ÿ) * *.*?*U*A*m*z*z*’*’*œ*‚¨¥33‹3›3¦3Ð344"444;4B4V4]4]4l4z4‰4¡4°4½4À4Ù4Ü4á4ø4555#5Y5ƒx± (±(±>±E±L±k±z±‰±˜±§±¶±À±À±Å±Ì±ß±î±ó±²(²(²>²P²T²b²i²n²n²u²‡²�²’² ²²²²²²²Ä²Ï²á²ì²ù²þ²³³#³/³4³A³F³V³[³k³m³}³³�³‘³¢³«³«³­³½³Ä³Ô³Ô³ï³´´%´5´5´5´8´K´„\åø8�8�S�Z�_�m�‚�‰�“�¡�¤�¦�°�Â�Â�É�ÿ�…0ÎÖff~¾²ˆ†ÒÚ†`/‡„‡„�„¯„¶„À„Ï„è„ì„ò„…%…'…'…X…F…'…w…�…‡L[j÷1÷1222%272=2F2X2^2a2�2ˆ(–œ*3*383G3K3N3T3‰\k~Ÿ2Ÿ2­2¿2Å2Í2ß2å2î2333!3'3*3x3Š, ××$×+×3×8×>׋„$oo�Ÿ¦­¼Áããè K"KLKQKuK}KK—K¯KÓKòKL™lò §§¿ÑØß%:'\Ikk}„¦¦®š y}ˆ‹ˆ‹‘‹�‹¢‹›(AVèVèxè€è†èŽè�è�è¡è¡è¡è©è±èÃèÒèÃèçèéèéèééééé0é5é5é5éJéLéYé[éhéjéwéé‡éŽé¢é¯é±éÂéÏéÏéÏéØéêéýéê ê êêê/ê/ê/ê:êDê\êaêaêaêoêuêzê‚ê�êŸêªê¯ê¯ê¶êºêÈêÌêÕêÜêúêëëë3ë8ë8ë8ë8ë@ëKëYëYëyëyëyë€ëŽë�ë°ëÃëÅëÅëÅëØëØëßëæëëëñëì ì)ìSìYìYìmìrì–ì�ì©ìÇìÚìåìììðìðìðìðìûìíí5í@í]ígígíuí“íÃíÖíçíþíîîîîî)î;îFîKîKîKî]î‡î�î�î�î˜î¢î®î¹î»î»î»îÀîÌîÌîïœH%Š/Š/˜/Ÿ/ª/·/Â/Ê/Ê/â/ì/ò/ø/�0 NN¦N“NµNÑNÇNéNñNžLè÷?'?'Y'n'„'¥'’'½'Â'í'(û'&(>(>(H(Ÿð[“LL<LELQLYLdLƒLƒL�L�LªL’L¹L¹LÇLÑLØLøLúLMMM7M7M^McM‚M›M¸M»MÃMÊMêMìMN N N)N)NFNFNmNN T]n)/5FTbtx~Œ�™¡0
  .=?aaapŒ‚¤®Œ`B÷h÷hii#iHiViXifisiyi„i›iªiµi¹iÄiÐi×iãiúij$j;jEjSjejgjuj‡j‡j�j¡j§j·j·jÏjÏjôjôjùjùjkkk'k<kSkbkmkk‹k¢kºkÛkÛkäkékékékékùkl R¯¯ÞÓÿë"1=BN^er}‰”œ¡­²ÆÍÑÜáì 3:>>C\az�¡¦±¹¹¹»Ôéôþ  .#Ff¢àZŽ e eºeÈeÍeÚeèeñe ff?fHfXfsf~fŽf�f’fœf¨f¬f¹fÅf×fßf÷fûfûfûfûfgg8g8g?gBgJgVg_gµg£d'<ç*ç*++.+5+Q+F+i+‰+u+˜+©+¿+«+×+ä+ä+ü+ü+,¤ü%`÷÷!,Y?3h‰ž‹Ó¹­âÿÿÿ..czn¬±Ä¸ìÚû4!OCwe†£££µÒÒóú$¥(fåfåtå—å�å¢å¢å¨å¦(!'ž×ž×§×µ×»×½×Â×§D]j : :::A:J:V:k:s:y::�:�:‘:¨„½Ú¸ª¸ªëª÷ªûª« ««««"«&«.«3«7«H«Y«[«_«p«�«�«£«««¶«¶«¶«È«©€ÀœÀœÙœàœçœîœôœ���$�;�>�@�[�e�o�v���“�›�›�±�±�Ã�ª Ê ¯V¯VÕVòVúVWWW"W=WSWlWrWzW}W’W—W©WËWÑWÙWÞWäWçWýWXX*X2XGXLX[X}XƒXˆXˆXˆX•X¦X±X¾XÊXÝXêX÷XY#Y-Y/YFYVY[YfYmY�Y�Y�Y¢Y«<ÑÜ
lll+l;l@l@lNlNlSlSl]lhlzl€lŒlœl§l±lµl¾l×lÚlêlñlmmm'm7mGmNmTm`mhmsmzm~m‘m—m¤m¯mµmÅmÕmÕmn n,n4n?nFnQnanqnqn�n†n†n�n›n­n³nÁnÎnÛnånénòn ooo%o*o*o>o>oCoGoWo`oroxozozoˆoŽo—o¨o±o½oÍoÍoÍoÒoêoêoùoüop.p9pbptpp‘p•pšp¡p³pÃpÞpåpépïp÷pqr�8ø((!(6(L(m(Z(…(�(�(§(Ž`j~X X x  ‡ ’ œ § ¯ ¾ È Ë ð ò ¡¡¡�_�Ú�Ú±Ú¸Ú¿ÚÄÚÛÚíÚ÷ÚýÚÛÛ Û(Û+Û-Û7ÛAÛAÛEÛMÛUÛ]ÛgÛpÛxÛ{Û„ÛŸÛ°Û·ÛºÛ¿ÛÎÛÔÛÜÛÜÛãÛæÛëÛúÛÜÜÜÜÜÜ-Ü8Ü@Ü@ÜKÜ_ÜfÜmÜ„Ü�83=ö×ö×ÿ×ÿ× ØØ Ø"Ø'Ø‘8>H.Ø.Ø7Ø7ØEØIØPØSØXØ’DDQÿ0ÿ01,161=1I1a1j1n1€1†1¥1“Ä{¨77adkpvx}ƒƒ•œ²ÅÔÚÜãéóó    7IP_awŠŠœ”0RZ§1§1°1Ö1ç1í1í1õ1•„\y~ò~ò�ò¥ò¯ò¸òºòÁòÑòÜòÞòèòèòñòóóó)ó4ó6óOóVóZóió|óÏó– 
ö/ö/ÿ/0!0—húOfOfefpf{f‰f”f�f®f·fÈfÎfÚfñfñfgg!g*g;gAg�g˜„=ZOJOJJ…JŽJšJ¢J©J­J¶J¶J»JÂJÚJK K-K5K7KOKgK‹KªK¼K™lò __w‰�—¹»Ýòß##5<^^fš y}ˆ‹ˆ‹‘‹�‹¢‹›(AVèVèxè€è†èŽè�è�è¡è¡è¡è©è±èÃèÒèÃèçèéèéèééééé0é5é5é5éJéLéYé[éhéjéwéé‡éŽé¢é¯é±éÂéÏéÏéÏéØéêéýéê ê êêê/ê/ê/ê:êDê\êaêaêaêoêuêzê‚ê�êŸêªê¯ê¯ê¶êºêÈêÌêÕêÜêúêëëë3ë8ë8ë8ë8ë@ëKëYëYëyëyëyë€ëŽë�ë°ëÃëÅëÅëÅëØëØëßëæëëëñëì ì)ìSìYìYìmìrì–ì�ì©ìÇìÚìåìììðìðìðìðìûìíí5í@í]ígígíuí“íÃíÖíçíþíîîîîî)î;îFîKîKîKî]î‡î�î�î�î˜î¢î®î¹î»î»î»îÀîÌîÌîïœH%Š/Š/˜/Ÿ/ª/·/Â/Ê/Ê/â/ì/ò/ø/�0 7N7N^NKNmN‰NN¡N©NžLè÷÷&÷&'&'<']'J'u'z'¥'Æ'³'Þ'ö'ö'(Ÿð[“¿K¿KôKýK LLL;L;LELGLbLJLqLqLL‰L�L°L²LÌLÓLÓLïLïLMM:MSMpMsM{M‚M¢M¤M¾MÅMÅMáMáMþMþM%N7N TWhÎÎäñ÷ý*<@FTWa¡0
Rgg–‹·£ÚÆéõú*5ALTYej~…‰”™¤½ÆÒ×ëòööû2GY^iqqqsŒ¡¬ÁÃÎÖÖæÛþ¢àZŽ e eºeÈeÍeÚeèeñe ff?fHfXfsf~fŽf�f’fœf¨f¬f¹fÅf×fßf÷fûfûfûfûfgg8g8g?gBgJgVg_gµg£d'<Ÿ*Ÿ*½*Õ*æ*í* +þ*!+A+-+P+a+w+c+�+œ+œ+´+´+¾+¤ü%`¯¯ÇÙä÷ë AVC‹qeš···Éææ2&di|p¤’³ÔìÙû/>[[[mŠŠ«²ÔÔÜ¥(fåfåtå—å�å¢å¢å¨å¦(!'ž×ž×§×µ×»×½×Â×§D]j : :::A:J:V:k:s:y::�:�:‘:¨„½Ú¸ª¸ªëª÷ªûª« ««««"«&«.«3«7«H«Y«[«_«p«�«�«£«««¶«¶«¶«È«©€ÀœÀœÙœàœçœîœôœ���$�;�>�@�[�e�o�v���“�›�›�±�±�Ã�ª Ê gVgV�VªV²V½VÍVÖVÚVõV W$W*W2W5WJWOWaWƒW‰W‘W–WœWŸWµW¾WÀWâWêWÿWXX5X;X@X@X@XMX^XiXvX‚X•X¢X¯XÆXÛXåXçXþXYYY%YHYHYHYZY«<ÑÜ
5 5
555$5,545<5C5S5S5X5¬´*££3£@£E£I£R£a£m£x£ƒ£‹£–£�£¡£­£µ£Ï£õ£ï£¤¤C¤/¤S¤S¤k¤v¤’¤™¤½¤Ä¤ö¤ö¤ö¤ö¤W¥­˜‹-ş¸ş¸¹"¹*¹5¹L¹V¹V¹m¹w¹’¹¨¹¶¹º¹Ú¹î¹º º º&º0ºAºNºNºUº\ºaºfºkºrºyº“ºšºªº®º®º¸ºÎºÒºÒºãºöº » »»»!»)»4»;»C»N»U»U»`»~»‚»š»‹»µ»µ»»»Â»Ñ»Û»é»ğ»ô»ö»¼¼¼¼"¼H¼V¼V¼Z¼o¼w¼‡¼’¼§¼¬¼º¼É¼Ó¼á¼ì¼ğ¼õ¼ı¼½½½!½#½2½4½C½J½N½b½l½z½�½…½•½ ½¥½Ã½Í½Û½â½æ½ğ½ş½¾ ¾¾'¾/¾:¾>¾>¾>¾I¾T¾d¾p¾†¾�¾™¾¨¾°¾»¾À¾È¾Ó¾ß¾ã¾î¾ó¾¿¿¿¿¿¿7¿T¿`¿h¿x¿ˆ¿¦¿ª¿Ù¿Î¿¿¿é¿é¿ó¿ú¿ ÀÀ"À0À7À;À=ÀLÀVÀdÀkÀoÀoÀqÀƒÀƒÀ•À•À•À›À§À¹ÀÁÀÙÀÁÁÁ5Á<ÁCÁNÁdÁiÁpÁƒÁ�Á›Á¢Á¦Á¨Á»ÁÅÁÓÁÚÁŞÁŞÁŞÁŞÁìÁ÷ÁÂÂÂ)Â-Â-Â2Â:Â>ÂMÂOÂ^Â`ÂoÂq€‡‹Ÿ©·¾ÂÂÂÒÂİÂâÂà 555$5,545<5C5S5S5X5¬´*££3£@£E£I£R£a£m£x£ƒ£‹£–£�£¡£­£µ£Ï£õ£ï£¤¤C¤/¤S¤S¤k¤v¤’¤™¤½¤Ä¤ö¤ö¤ö¤ö¤W¥­˜‹-ş¸ş¸¹"¹*¹5¹L¹V¹V¹m¹w¹’¹¨¹¶¹º¹Ú¹î¹º º º&º0ºAºNºNºUº\ºaºfºkºrºyº“ºšºªº®º®º¸ºÎºÒºÒºãºöº » »»»!»)»4»;»C»N»U»U»`»~»‚»š»‹»µ»µ»»»Â»Ñ»Û»é»ğ»ô»ö»¼¼¼¼"¼H¼V¼V¼Z¼o¼w¼‡¼’¼§¼¬¼º¼É¼Ó¼á¼ì¼ğ¼õ¼ı¼½½½!½#½2½4½C½J½N½b½l½z½�½…½•½ ½¥½Ã½Í½Û½â½æ½ğ½ş½¾ ¾¾'¾/¾:¾>¾>¾>¾I¾T¾d¾p¾†¾�¾™¾¨¾°¾»¾À¾È¾Ó¾ß¾ã¾î¾ó¾¿¿¿¿¿¿7¿T¿`¿h¿x¿ˆ¿¦¿ª¿Ù¿Î¿¿¿é¿é¿ó¿ú¿ ÀÀ"À0À7À;À=ÀLÀVÀdÀkÀoÀoÀqÀƒÀƒÀ•À•À•À›À§À¹ÀÁÀÙÀÁÁÁ5Á<ÁCÁNÁdÁiÁpÁƒÁ�Á›Á¢Á¦Á¨Á»ÁÅÁÓÁÚÁŞÁŞÁŞÁŞÁìÁ÷ÁÂÂÂ)Â-Â-Â2Â:Â>ÂMÂOÂ^Â`ÂoÂq€‡‹Ÿ©·¾ÂÂÂÒÂİÂâÂÃ
Ãà Ã#Ã-Ã;ÃBÃFÃPÃdÃlÃwÃ{Ã{Ã{ÆÃ�ÛõÃÅÃÐÃåÃêÃõÃÄÄ'Ä/Ä:ÄIÄQÄ\ÄaÄiÄtĀĄÄ�ĔĨİĻĻĻĻÄÏÄßÄôÄÅÅÅ*Å?ÅLÅPÅ^ÅsŃŚųÅÌÅÎÅÙÅáÅáÅêÅÆÆ/ÆHÆVÆaÆmÆuÆwƂƊƊƊƧƵÆÃÆÚÆñÆÇ Ç-Ç4Ç4ÇDÇXÇrÇrÇvnjǛǶÇÁÇØÇàÇàÇÈÈÈ3È<ÈSÈmÈ|ȉȩȷÈÍÈéÈùÈÉÉ)É)É5ÉPÉhÉqÉqÉqÉ}ɎɦɯɯɶɿÉÅÉÑÉ0Ê®<ùD��%�1�<�F�L�V�\�f�t�~���š� �ª�°�º�Á�Í�Ó�Ü�‘‘‘‘%‘7‘A‘S‘]‘r‘r‘u‘‘”‘™‘©‘´‘¹‘͑ϑà‘’’ ’"’0’9’A’O’`’p’�’Ž’Ž’›’›’£’±’ø’¯$› PP+P3P>PDP°l£:_F_FxF�F FÀFÒFêFGG/G7G;G>GBGGGQGTG[GaGhGnGrGwG�G’G™G G¢G¦G¯G¹G¼GÇGÓGÖGçGòGøGÿGH!H2H;HDHLHWHbHnHH�HœHªH¬H³HºH¿HÃHÐH×HúHIII%I>IOIXIaIiIrIxI|I�I…I’I™I§I±IÆIÐIÙIòIJ JJJ&J,J0J5J;JEJOJnJ|J‚J‡J�J—JŸJ¬J´JÓJÆJèJñJ K K3K:KCKLKSK\KeKnK‡KwK—K›KõK±  €ˆ€ˆŽˆ°ˆ¶ˆ²¸�·z'z'ˆ'�'È'Ê'ÿ'*(*(:(?(?(S(X(X(t(y(y(™(ž(ž(²(·(·(Ô(Ô(â(),)L)^)p)‚)’)’)’)’)™)r*³$bgÊ%Ê%Î%æ%ø%&´„¯Â¯ÂÁÂÐÂÐÂÓÂÜÂèÂèÂþÂÃ&Ã-Ã1ÃAÃaÃsÃyÈÑÕÛäúþÃÛÃùà ÄÄ Ä2Ä>Ä@ÄLÄTÄXÄ^ÄgÄgÄgÄyĄĊĠħįÄÅÄÌÄÌÄÌÄÚÄÅ Ãà Ã#Ã-Ã;ÃBÃFÃPÃdÃlÃwÃ{Ã{Ã{ÆÃ�ÛõÃÅÃÐÃåÃêÃõÃÄÄ'Ä/Ä:ÄIÄQÄ\ÄaÄiÄtĀĄÄ�ĔĨİĻĻĻĻÄÏÄßÄôÄÅÅÅ*Å?ÅLÅPÅ^ÅsŃŚųÅÌÅÎÅÙÅáÅáÅêÅÆÆ/ÆHÆVÆaÆmÆuÆwƂƊƊƊƧƵÆÃÆÚÆñÆÇ Ç-Ç4Ç4ÇDÇXÇrÇrÇvnjǛǶÇÁÇØÇàÇàÇÈÈÈ3È<ÈSÈmÈ|ȉȩȷÈÍÈéÈùÈÉÉ)É)É5ÉPÉhÉqÉqÉqÉ}ɎɦɯɯɶɿÉÅÉÑÉ0Ê®<ùD��%�1�<�F�L�V�\�f�t�~���š� �ª�°�º�Á�Í�Ó�Ü�‘‘‘‘%‘7‘A‘S‘]‘r‘r‘u‘‘”‘™‘©‘´‘¹‘͑ϑà‘’’ ’"’0’9’A’O’`’p’�’Ž’Ž’›’›’£’±’ø’¯$› _P_PsP{P†PŒP°l£:§F§FÀFØFèFGG2GMGMGwGGƒG†GŠG�G™GœG£G©G°GGºG¿GÉGÚGáGèGêGîG÷GHHHHH/H:H@HGHPHiHzHƒHŒH”HŸHªHHÇHØHäHòHôHûHII II IBIPIZIdImI†I—I I©I±IºIÀIÄIÉIÍIÚIáIïIùIJJ!J:JKJTJ]JeJnJtJxJ}JƒJ�J—JJÄJÊJÏJ×JßJçJôJüJKK0K9KTKhK{K‚K‹K”K›K¤K­KKÏK¿KßKãK=L±  €ˆ€ˆŽˆ°ˆ¶ˆ²¸�·z'z'ˆ'�'È'Ê'ÿ'*(*(:(?(?(S(X(X(t(y(y(™(ž(ž(²(·(·(Ô(Ô(â(),)L)^)p)‚)’)’)’)’)™)r*³$bgÊ%Ê%Î%æ%ø%&´„÷Â÷ ÃÃÃÃ$Ã0Ã0ÃFÃ\ÃnÃuÃyÉéûÃÁÃÐÃÙÃÝÃãÃìÃÄÄ#ÄAÄSÄYÄhÄzĆĈĔĜĠĦįįįÄÁÄÌÄÒÄèÄïÄ÷Ä ÅÅÅÅ"ÅIÅRÅZÅlÅtÅ}ňŎŤūųźÅÏÅàÅàÅçÅçÅçÅõÅÆ)Æ2Æ:ÆLÆTÆ]Æ]ÆhÆoÆ}Æ�Æ�ƥƭƳÆÂÆËÆÏÆׯàÆàÆîÆöÆüÆÇ"Ç*Ç0Ç6Ç6Ç6Ç=ÇDÇSÇ[ÇaÇgÇgÇiÇsǵx¿Ù¿ÙÍÙâÙéÙôÙ
ÅÅ$Å,Å5Å@ÅFÅ\ÅcÅkÅrŇŘŘşşşŭÅÔÅáÅêÅòÅÆ ÆÆÆ Æ'Æ5Æ9ÆEÆ]ÆeÆkÆzƃƇÆ�ƘƘƦƮƴÆÑÆÚÆâÆèÆîÆîÆîÆõÆüÆ ÇÇÇ Ç Ç!Ç+ǵxwÙwمٚ١٬ÙÂÙìÙÚÚ'Ú-Ú<ÚEÚMÚUÚWÚ]ÚcÚrÚzÚ€Ú‚ÚˆÚ¼Ô¯b¯bÒbÚbêbòbc-c1c9cAcGcPc\cdcdclcœcÛc¶cþcd dd2ddKdQdZdadidqd}d…d�d d¨d­d·d×dÞdàdêdùde e"eBeIeIeIeReYerexe€e€e…e‰e•eže§e³eÖeùeäeff1f>fRfhflf‹f™fºf¥fÓfÙfðfÛf g g g(g5gIg_gggkgvg~gŽg¥g�g¾gÁgÉgÙgðgÛg hhhhh$hUh]h]h]h]hfhrhˆh¡h´h»hÇhÎhÎháhåhåhåhìhñhi iiii8i:i?iRiYieililiyiƒiƒiˆi«i«i½i·àt¨÷@÷@ A*AA_AEA9AnA}A…A�A’A�A¨A¨A­AâAçAB4B!BVBCBjBeB†B•B�B¨BªBµBÀBÀBÅBæBèB C CCC7C9C[C[C[CcC¸\æù_e_eue‡e�e˜e¦e²eÉeÉeÛeáeìeüeff"fNf¹$âç??]pw~…‰‹’™��¥¾ÈÈÜçõ  Ú4ÚPÚWÚoÚuÚ„Ú�Ú•Ú�ÚŸÚ¥Ú«ÚºÚÂÚÈÚÊÚÐÚ¼Ô÷b÷bc"c2c:c^cucyc�c‰c�c˜c¤c¬c¬c´cäc#dþcFdKdSdcdzded“d™d¢d©d±d¹dÅdÍdÕdèdðdõdÿd e&e(e2eAeaehejeŠe‘e‘e‘eše¡eºeÀeÈeÈeÍeÑeÝeæeïeûefAf,fZf]fyf†fšf°f´fÓfáfgífg!g8g#gQgTgTgpg}g‘g§g¯g³g¾gÆgÖgígØgh hh!h8h#hQhWhWhahahlh�h¥h¥h¥h¥h®hºhÐhéhühiiii)i-i-i-i4i9iLiSi_ififi€i‚i‡iši¡i­i´i´iÁiËiËiÐióióij·àt¨?A?ATArA_A§A�A�A¶AÅAÍAØAÚAåAðAðAõA*B/BdB|BiBžB‹B²B­BÎBÝBåBðBòBýBCC C.C0CQCQCXC]CC�C£C£C£C«C¸\æù§e§e½eÏeÕeàeîeúeff#f)f4fDfOf]fjf–f¹$â燇¥¸¿ÆÍÑÓÚáååí   $ / = N R W k o x | � ‡ ¤ ¤ ² É Î ç ø ü ü ü     0 4 9 M U ^ b d k } � ¤ ¦ ¿ Ò Ö Ö Ö ê î ÷ û !!#!#!1!H!M!f!w!{!�!�!�!’!¡!£!Å!Å!ç!ò!ø!" "$"/"C"G"P"T"V"\"u"u"ƒ"š"œ"µ"Æ"Ê"Ê"Ñ"ä"è"ú"ÿ"##$#(#-#4#J#Z#q#v#�#¢#¦#¸#¸#¸#¸#Ê#½#ß#î#ð#$$#$9$J$J$J$Q$d$}$}$}$Œ$Œ$Ÿ$¶$Á$Ò$×$Ý$ç$é$õ$õ$ü$%%%)%>%J%L%W%c%s%z%�%‹%“%—%›%�%¢%ª%®%À%Â%Ç%Ï%Ó%Õ%Õ%Þ%ë%&!&;&I&U&\&\&o&s&s&s&z&&™&§&³&º&º&Ô&Ö&Û&õ&''''#'-'-'?'º¤ ¹ž(J(JEJTJTJTJqJqJ‚J‚JˆJŠJŠJ�J’J’J˜JšJšJ¡J¥JªJªJªJªJªJªJ²JÊJÊJßJêJôJKKK:K<K[K`KK„KŠKŠK£K¦KÍKÚKòKLLL L>L,LDLSLXL_LhL{LƒL‹L�L�L�L™L²L¸L¸LÑLßLüLMM M%M-M2M2M8M8MAMRMTMiMkMsMyM�M†M†M†M†M”M«M­MÁMÁMÉMÏM×MÜMåMíMöMüMNNNN N NN1N5N7NCNEN`NfNnNsN|N‡N‹N‘N•NžN¡N¡N¯NÀNÂNêNO OOO#O(O(O-O/O7O7OROdOiOuO{O~O•O—OšOªO®OµO¾OÍOÛOáOéOîOöOûOûOPPP4P9PCPkPvP�PŒP—P¢P­P¸PÃPÎPÎPÎPÖPßPøPQ#Q<Q>QDQFQIQTQVQVQ\QbQbQjQsQyQ…Q…QŒQ�Q®Q¹QÁQÉQÎQÎQÕQÙQÞQðQõQÿQ R RR=R=RFRTReRqRxR†R•R«R±R¶R¶R»RÑRÝRåRõRÿRSSS S(S(S2S@SLScSyS�S–S˜S¯S´S´SÔSÔSæSìSõSûSTTTT.T4T6TATSTiTiT}T�TŸT¤T°T¶T¹TÐTÒTÕTåTïTòTòTUU*U/U;UAUDU[U]U`UpUtU|UŠU�U”U”UšU¢U§U§U­U­U»UÁUÇUÑUÛUéUþUVV V VVVV!V&V&V,V4V9V9V>VIVNVSV^VcV‰V‹V�V•VšVŸV¤V©V®V®V³V¸VÔVÞVòVW WWW"W(W.W8WBWPWeWhWjWtWƒWˆWˆWˆW�W•WžWžW£W£W©W±W¶W¶W»WÆWËWÐWÕWäWäWõWûWûW XXX X)X7XLXOXQX[XjXoXoXoXwX|X…XŠXŠX�X˜X�X�X¢X­X²X·X¼XËXËXÜXâXâXðXöXüXYYY3Y6Y8YBYQYVYVYVY^YcYlYqYqYwYY„Y„Y‘Y—Y—Y¥Y«Y±Y»YÅYÓYèYëYíY÷YZ Z Z ZZZ!Z&Z&Z,Z4Z9Z9ZFZLZLZZZ`ZfZpZzZˆZ�Z Z¢Z¬Z»ZÀZÀZÀZÈZÍZÖZÛZÛZåZíZòZòZòZøZ[[[![!['[1[7[<[<[E[S[\[j[o[o[x[†[’[£[°[·[¿[É[×[×[Ü[Ü[ç[ç[ç[ë[ð[ð[÷[û[\\\\\(\0\5\;\;\C\L\Z\e\j\p\x\}\}\}\}\}\}\}\}\}\}\–\œ\¥\«\³\¸\½\Æ\Ñ\Ú\â\ç\ç\ç\í\õ\ú\ú\þ\]] ]]&]/]5]5]>]T]T]Z]c]y]y]‚]„]Š]“]©]©]²]Line truncated
 # ' 0 4 9 ? \ \ j � † Ÿ ° ´ ´ ´ ¹ Ä Î Õ è ì ñ      # 5 E \ ^ w Š Ž Ž Ž ¢ ¦ ¯ ³ ¸ ¾ Û Û é !!!/!3!E!E!E!J!Y![!}!}!Ÿ!ª!°!Æ!×!Ü!ç!û!ÿ!" """-"-";"R"T"m"~"‚"‚"‰"œ" "²"·"Ë"Ó"Ü"à"å"ì"##)#.#G#Z#^#p#p#p#p#‚#u#—#¦#¨#Ê#Õ#Û#ñ#$$$ $$5$5$5$D$D$W$n$y$Š$�$•$Ÿ$¡$­$­$´$¿$Ô$Ö$á$ö$%%%%+%2%9%C%K%O%S%U%Z%b%f%x%z%%‡%‹%�%�%–%£%¹%Ù%ó%& &&&'&+&+&+&2&7&Q&_&k&r&r&Œ&Ž&“&­&»&Ç&Î&Î&Û&å&å&÷&º¤ ¹ž(J(JEJTJTJTJqJqJ‚J‚JˆJŠJŠJ�J’J’J˜JšJšJ¡J¥JªJªJªJªJªJªJ²JÊJÊJßJêJôJKKK:K<K[K`KK„KŠKŠK£K¦KÍKÚKòKLLL L>L,LDLSLXL_LhL{LƒL‹L�L�L�L™L²L¸L¸LÑLßLüLMM M%M-M2M2M8M8MAMRMTMiMkMsMyM�M†M†M†M†M”M«M­MÁMÁMÉMÏM×MÜMåMíMöMüMNNNN N NN1N5N7NCNEN`NfNnNsN|N‡N‹N‘N•NžN¡N¡N¯NÀNÂNêNO OOO#O(O(O-O/O7O7OROdOiOuO{O~O•O—OšOªO®OµO¾OÍOÛOáOéOîOöOûOûOPPP4P9PCPkPvP�PŒP—P¢P­P¸PÃPÎPÎPÎPÖPßPøPQ#Q<Q>QDQFQIQTQVQVQ\QbQbQjQsQyQ…Q…QŒQ�Q®Q¹QÁQÉQÎQÎQÕQÙQÞQðQõQÿQ R RR=R=RFRTReRqRxR†R•R«R±R¶R¶R»RÑRÝRåRõRÿRSSS S(S(S2S@SLScSyS�S–S˜S¯S´S´SÔSÔSæSìSõSûSTTTT.T4T6TATSTiTiT}T�TŸT¤T°T¶T¹TÐTÒTÕTåTïTòTòTUU*U/U;UAUDU[U]U`UpUtU|UŠU�U”U”UšU¢U§U§U­U­U»UÁUÇUÑUÛUéUþUVV V VVVV!V&V&V,V4V9V9V>VIVNVSV^VcV‰V‹V�V•VšVŸV¤V©V®V®V³V¸VÔVÞVòVW WWW"W(W.W8WBWPWeWhWjWtWƒWˆWˆWˆW�W•WžWžW£W£W©W±W¶W¶W»WÆWËWÐWÕWäWäWõWûWûW XXX X)X7XLXOXQX[XjXoXoXoXwX|X…XŠXŠX�X˜X�X�X¢X­X²X·X¼XËXËXÜXâXâXðXöXüXYYY3Y6Y8YBYQYVYVYVY^YcYlYqYqYwYY„Y„Y‘Y—Y—Y¥Y«Y±Y»YÅYÓYèYëYíY÷YZ Z Z ZZZ!Z&Z&Z,Z4Z9Z9ZFZLZLZZZ`ZfZpZzZˆZ�Z Z¢Z¬Z»ZÀZÀZÀZÈZÍZÖZÛZÛZåZíZòZòZòZøZ[[[![!['[1[7[<[<[E[S[\[j[o[o[x[†[’[£[°[·[¿[É[×[×[Ü[Ü[ç[ç[ç[ë[ð[ð[÷[û[\\\\\(\0\5\;\;\C\L\Z\e\j\p\x\}\}\}\}\}\}\}\}\}\}\–\œ\¥\«\³\¸\½\Æ\Ñ\Ú\â\ç\ç\ç\í\õ\ú\ú\þ\]] ]]&]/]5]5]>]T]T]Z]c]y]y]‚]„]Š]“]©]©]²]²]²]»]À]À]È]Í]Í]ê]ø]^ ^^^!^&^&^&^:^C^I^[^e^e^m^m^u^w^w^�^š^£^¥^¥^¥^«^¯^±^±^±^±^¶^¼^Â^Æ^=b»Ì€¯¿i¿iáiìijj+jBjWjbjxjdj‡j�j�jžjžj¦j²jÈjÝjìj÷j 77$787G7d7q7ƒ7¥7Í7Û7÷7 8!888C8d8‚8‘8¬8·8Ò8ë8ë89/9I9d9v9…9”9”9Ÿ9²9Ã9Ö9æ9ó9ÿ9:+:+:3:3:3:D:Q:X:w:€:‘:•:�:¨:À:Ø:á:ñ:ù:þ:";2;B;M;a;f;n;”;–;¡;Ô;î;î;<<<,<5<=<O<q<y<�<Œ<Ž<ž<¶<Î<æ<þ<='=0=9=K=Y=]=a=à ¸ˆ¸ˆÁˆàˆåˆÄ\ˆ[–͖ͰͷÍÄÍÏÍÔÍÚÍìÍòÍ
kkkkkk)k4kNkPkUkdkok|k†k†k”k¼”+LX¥X¥p¥w¥~¥�¥Š¥�¥�¥”¥™¥»¥¨¥Ë¥Ó¥Û¥Þ¥à¥ð¥ù¥¦¦ ¦¦:¦K¦V¦ˆ¦½à.¢oBoB�B˜B©B¬B°B¹BÀBÎBÝBóBCC'C9CHCWChCwCwC…C‰C�C’C–C£CªC¸CÌCÕCÛCéCDDDDDDDDDD+D4D<DRDRDRDWDWDoD{D†D‹D‹DŽD“D“D²D¾DËDÍDÍDÑDÓDÓDòDþD
E E EEEEE E E#E#E,E2E7ESESESESESESESESESESESESEUEfExE‡E–E–EšEšE¢E»E¿EÄE_F¾,îÖîÖüÖ× ××׿l3J‡P‡P�P·P£PÆPëP×PúPÿPQQ QQQQ3Q>QTQIQlQvQÀPQaâ$â$ð$þ$%%&%+%H%N%U%\%j%v%ˆ%Ä%ÁD+®å®åÂåÐåÖåùåÿåæ*æ0æ6æ<æ<æDæÂô#œ§6§6¯6¾6Â6Ï6Ü6ð6ÿ67)7;7]7…7“7¯7Á7Ù7ð7û78:8I8d8o8Š8£8£8¾8ç899.9=9L9L9W9j9{9Ž9ž9«9·9Æ9ã9ã9ë9ë9ë9ü9 ::/:8:I:M:U:`:x:�:™:©:±:¶:Ú:ê:ú:;;;&;L;N;Y;Œ;¦;¦;¾;Í;Õ;ä;í;õ;<)<1<9<D<F<V<n<†<ž<¶<È<ß<è<ñ<====à ¸ˆ¸ˆÁˆàˆåˆÄ\ˆ[–͖ͰͷÍÄÍÏÍÔÍÚÍìÍòÍ
ÎÎ.ÎDÎOÎUÎwÎw·ΜÎ�ΡέενÎÅÎÓÎÙÎâÎîÎîÎğÎÏÏ Ï Ï$Ï$ÏBÏBÏUÏbÏgÏgÏ~χϖϬϷÏÅÏĞÏàÏíÏÿÏĞĞĞ(Ğ*Ğ*Ğ2Ğ7Ğ7Ğ?ĞDĞDĞLĞQĞQĞYĞ^Ğ^ĞdĞiĞiĞpĞuĞuĞ|Ğ�Ğ�ЌББМССЬббммĞ×ĞŞĞäĞçĞòĞõĞ ÑÑ%Ñ,Ñ/ÑAÑCÑIÑ]ÑjÑyÑyÑyÑyуÑ�ѲÑÄÑÕÑŞÑïÑõÑúÑÒÒ(Ò7Ò=ÒNÒYÒcÒsÒ‚ÒˆÒ“Ò™Ò®Ò´ÒÅÒĞÒÖÒæÒæÒöÒ ÓÓÓ-Ó4Ó:ÓKÓVÓ[ÓxÓ�Ó›Ó«Ó·ÓÉÓÔÓãÓåÓ÷ÓÿÓÔ ÔÔÔ'Ô-Ô7Ô=ÔHÔNÔPÔ]ÔjÔtÔ�Ô›Ô›Ô¡Ô¨ÔìÖÅD#°ø¬ø¬­9­A­A­O­b­|­­ˆ­¤­¤­¤­¬­®­®­¶­¸­¸­À­Â­Â­Ê­Ê­Ó­Ù­Ş­Ş­ç­ö­ú­ÿ­® ÎÎ.ÎDÎOÎUÎwÎw·ΜÎ�ΡέενÎÅÎÓÎÙÎâÎîÎîÎğÎÏÏ Ï Ï$Ï$ÏBÏBÏUÏbÏgÏgÏ~χϖϬϷÏÅÏĞÏàÏíÏÿÏĞĞĞ(Ğ*Ğ*Ğ2Ğ7Ğ7Ğ?ĞDĞDĞLĞQĞQĞYĞ^Ğ^ĞdĞiĞiĞpĞuĞuĞ|Ğ�Ğ�ЌББМССЬббммĞ×ĞŞĞäĞçĞòĞõĞ ÑÑ%Ñ,Ñ/ÑAÑCÑIÑ]ÑjÑyÑyÑyÑyуÑ�ѲÑÄÑÕÑŞÑïÑõÑúÑÒÒ(Ò7Ò=ÒNÒYÒcÒsÒ‚ÒˆÒ“Ò™Ò®Ò´ÒÅÒĞÒÖÒæÒæÒöÒ ÓÓÓ-Ó4Ó:ÓKÓVÓ[ÓxÓ�Ó›Ó«Ó·ÓÉÓÔÓãÓåÓ÷ÓÿÓÔ ÔÔÔ'Ô-Ô7Ô=ÔHÔNÔPÔ]ÔjÔtÔ�Ô›Ô›Ô¡Ô¨ÔìÖÅD#°ø¬ø¬­9­A­A­O­b­|­­ˆ­¤­¤­¤­¬­®­®­¶­¸­¸­À­Â­Â­Ê­Ê­Ó­Ù­Ş­Ş­ç­ö­ú­ÿ­®
® ®
® ®
® ®
®®®!®&®&®+®8®Q®p®s®‰®¨®¨®¨®°®²®²®²®º®¼®¼®¼®Ä®Æ®Æ®Æ®Î®Ğ®Ğ®Û®Û®á®æ®æ®æ®æ®í®ø® ®®®!®&®&®+®8®Q®p®s®‰®¨®¨®¨®°®²®²®²®º®¼®¼®¼®Ä®Æ®Æ®Æ®Î®Ğ®Ğ®Û®Û®á®æ®æ®æ®æ®í®ø®
¯¯&¯0¯0¯0¯@¯@¯G¯K¯Q¯i¯w¯Š¯—¯À¯Ã¯Ì¯Ó¯ç¯ï¯ø¯°°°°°°° °&°;°C°I°T°k°‚°Ž°”°™°™° °«°«°°°Â°È°È°È°È°$±Æd$àCàCD DDDD,D.D;D=DHD\DdDtDyDD‡DŠDœDÇLWf"1"161:1?1J1J1T1Z1Z1^1f1È\CVº0º0Ð0Ð0Ô0Ù0ì0ï0ô0ô0þ011111É8(2Æ×Æ×Ï×Ï×Ý×á×è×ë×ð×ʨY§\§\¿\Ç\Ò\å\Ù\]{]a]V]<]%]�]–]†]]»]Ø]Ý]ò]ß]^^^^8^c^F^z^˜^˜^˜^¤^ËlQhß,ß,ù,"--1-Q-m-c-…-�-Š-¬-Å-å-÷-...9.9.C.Ì4�¦OíOícíhíníríví•í�íÍxÏé��2� �A�K�R�h�m�r�v�x�~�„�š�‡�©�Â�Ê�Ü�ÿ�õ�‚‚Δ"ȫȫ֫è«ì«ô«ü«¬¬¬%¬0¬5¬K¬R¬Y¬d¬o¬q¬|¬‡¬‰¬•¬ ¬«¬´¬¼¬¼¬À¬÷¬Ï€ø2626P6T6X6`6n6q6t6Š6�6’6¤6¨6¬6´6¼6È6Ý6î6õ6ü6ü6 77к< D DODZDDaD™DÏDÔDÔD×DáDùDE ¯¯&¯0¯0¯0¯@¯@¯G¯K¯Q¯i¯w¯Š¯—¯À¯Ã¯Ì¯Ó¯ç¯ï¯ø¯°°°°°°° °&°;°C°I°T°k°‚°Ž°”°™°™° °«°«°°°Â°È°È°È°È°$±Æd$àCàCD DDDD,D.D;D=DHD\DdDtDyDD‡DŠDœDÇLWf"1"161:1?1J1J1T1Z1Z1^1f1È\CVº0º0Ð0Ð0Ô0Ù0ì0ï0ô0ô0þ011111É8(2Æ×Æ×Ï×Ï×Ý×á×è×ë×ð×ʨYï\ï\]]]-]!]_]Ã]©]ž]„]m]É]Þ]Î]þ]^ ^%^:^'^I^O^O^V^€^«^Ž^Â^à^à^à^ì^ËlQh'-'-A-j-L-y-™-µ-«-Í-å-Ò-ô- .-.?.X.X._.�.�.‹.Ì4�¦—í—í«í°ííºí¾íÝíåíÍxÏéO�O�z�g�‰�“�š�°�µ�º�¾�À�Æ�Ì�â�Ï�ñ�
EE4EUEgEtE�EŸE¤E¾EÈEÊEÏEæE F F,FGFcFYF}FƒFƒFŒF¬F¸F»F½FØFÂFçFçFùFùFGG<G2GVGVG[G^GtG€G•G¹GÃGÉGÙGHðGHH$H8HLHBHaHgHvHžH�H­H¯HÁHËHßHéHòH III)I3I3IRIXIXIXIaI�I©I˜I¸I½IÏI×IJøIJJJ=J=JOJÑÄ8¥·1·1î1õ1ý1222025282;2D2R2\2a2‰2Ž2›2Ç2Ì2Ù2ù2þ2 393A3F3[3‡3�3”3”3§3º3Í3Ñ3ó34444444444444H4`4e4h4k4k4˜4�4�4ª4®4É4ä4ò4ý4555&5=5?5?5?5L5c5e5e5r5‰5‰5™5ž5Á5ä5ì5ñ5 6-6;6I6S6U6U6U6q6y6{6{6£6Ù6Ò¤8]·é·éÑéýéýéê,ê1ê1ê@êRêlêtê{ê€ê›ê£ê£ê£ê¥ê¥ê¥ê¥êÁêÁêÁêÁêØêÚêÚêÚêÚêõêë5ëÓÐê ‚ ‚5‚A‚F‚F‚R‚W‚\‚g‚l‚l‚l‚¡‚Ž‚°‚ׂׂð‚ ƒ"ƒ;ƒ@ƒ@ƒYƒrƒ‹ƒ¤ƒ©ƒ©ƒƒÛƒôƒ „„„(„A„Z„s„s„s„…„Ô0”œïìïìýìíí&íGíGíMíÕ<:E"9"9+969D9P9\9e9n9w9}9‚9ÖluŒª&ª&¸&Â&É&à&à&å&ç&ó&ý& '('*':':'?'A'H'z'×ПÏïrïrs-s"ssMssesXsªs¯sºsÈs×sæsîs tdtWtLt8tjtut¡t¦t®tÍtÕtútïtÛt u&uuIu5u`ugu“u“u“u“u›uØLixG.G.e.w.~. . .².¿.Ï.Å.ç.ñ.Ù$qv_N_NsN{N†NŒNÚÈg•j1j1Ž1’1±1Ó1ß1æ1ñ1ÿ1 2222$2<2G2W2c2j2u2†2ˆ2™2›2�2�2�2¥2¥2¯2¯2·2¿2Ç2Ï2Ó2Þ2*3Û (ˆ(ˆ6ˆMˆSˆÜ`FZ‚9‚9’9™9›9 9¯9µ9Ê9Ê9Ø9Ø9ä9í9ð9þ9: ::Ý<ùÿ�ÿ�ŽŽŽ)Ž4Ž>Ž\ŽgŽwŽÞ 5�g�g§g¹g¿gËgÖgägðghh"h4h:h@hFhYh_hhhnh€h†h‘h™h§h´hñhß,29w0w0…0–0¯0Ã0Æ0Ì0à4èˆèˆöˆ‰ ‰‰‰!‰!‰'‰áÄMzÿýÿý+þ.þ3þ@þEþWþYþ]þaþdþwþ�þ¶þ¿þÊþÑþêþÿÿ.ÿTÿYÿ`ÿyÿŸÿ¡ÿºÿàÿàÿàÿøÿ!3â ˆÇ/w/wMwPwVwjwrwƒw�w–w›w›w¨w±w·wÇwÕw×wöw ‚‚$‚G‚=‚V‚b‚Δ"ȫȫ֫è«ì«ô«ü«¬¬¬%¬0¬5¬K¬R¬Y¬d¬o¬q¬|¬‡¬‰¬•¬ ¬«¬´¬¼¬¼¬À¬÷¬Ï€ø2626P6T6X6`6n6q6t6Š6�6’6¤6¨6¬6´6¼6È6Ý6î6õ6ü6ü6 77к<gDgD—D¢DÇD©DáDEEE E)EAEPEREZE|E�E¯E¼E×EçEìEFFFF.FUFgFtF�F«F¡FÅFËFËFÔFôFGGG G
xxx-x-x;xNxYx]xnxnxnxsxsxxŽx¡x§x¬xÀxÆxÎxàxæxèx÷xy G/G/GAGAGOGYG„GzGžGžG£G¦G¼GÈGÝGH HH!HIH8HXHZHlH€H”HŠH©H¯H¾HæHÕHõH÷H II'I1I:IQI[I]IqI{I{IšI I I I©IÉIñIàIJJJ JJJ@J_J_J_J…J…J—JÑÄ8¥ÿ1ÿ162=2E2N2Y2`2x2}2€2ƒ2Œ2š2¤2©2Ñ2Ö2ã233!3A3F3U3�3‰3Ž3£3Ï3×3Ü3Ü3ï3444;4K4P4P4|4|4|4|4|4�4¨4­4°4³4³4à4å4å4ò4ö45,5:5E5a5a5a5n5…5‡5‡5‡5”5«5­5­5º5Ñ5Ñ5á5æ5 6,64696U6u6ƒ6‘6›6�6�6�6¹6Á6Ã6Ã6ë6!7Ò¤8]ÿéÿéêEêEêdêtêyêyêˆêšê´ê¼êÃêÈêãêëêëêëêíêíêíêíê ë ë ë ë ë"ë"ë"ë"ë=ëHë}ëÓÐêg‚g‚}‚‰‚Ž‚Ž‚š‚Ÿ‚¤‚¯‚´‚´‚´‚é‚Ö‚ø‚ ƒ ƒ8ƒQƒjƒƒƒˆƒˆƒ¡ƒºƒÓƒìƒñƒñƒ
yyyy!y(y4y;y=yByJyLyQy]y_ydylynysy{y}y‚yŠyŒy‘y™y™y™y©y©y©yÀyÆyÌy×yÜyõyûyzzzz"z;zFzQzWzdziznznzƒz‹z•z�z¥zÆzÑzÜzèzâzñzúzÿz{{ {){5{;{G{K{P{U{`{k{v{x{~{‹{�{•{®{¹{Ä{Ä{Ê{×{Ù{Þ{ç{| |||)|)|-|2|2|C|E|E|X|Z|Z|m|o|o|‚|„|„|—|™|™|«|«|±|||Í|á|Ö|î|ö|ý|} }})} }9}9};}S}V}X}g}y}‰}•}¬}Æ}Ë}ß}ï}~~~~$~6~A~I~Q~U~c~i~n~n~t~ˆ~˜~�~�~£~©~®~®~®~´~Ã~Ö~ã~ç~ì~ì~ð~õ~õ~ú~+AMMS`bo{Š��ªº¿Ðâíõýÿ€€$€3€9€F€F€]€m€m€�€�€�€˜€¤€»€»€Á€΀Ѐâ€â€í€í€í€í€í€iƒã ŒÐ�V�V­V»VÒV×VüVWW WW"W1W6WBWTWTWrW}W�W—W±WÎWÚWõW X)X2XAXIXVX_XdXtX‚X¢X§X¯XÈXÚXêXðXûXY „#„<„U„W„W„p„‰„¢„»„»„»„Í„Ô0”œ7í7íEíKíOíní�í�í•íÕ<:E"9"9+969D9P9\9e9n9w9}9‚9ÖluŒª&ª&¸&Â&É&à&à&å&ç&ó&ý& '('*':':'?'A'H'z'×ПÏ7s7sKsusjsVs•sÇs­s sòs÷stt t.t6tSt¬tŸt”t€t²t½tétîtötuuBu7u#uUunuZu‘u}u¨u¯uÛuÛuÛuÛuãuØLix�.�.­.¿.Æ.è.è.ú.// ///9/Ù$qv§N§N»NÃNÎNÔNÚÈg•j1j1Ž1’1±1Ó1ß1æ1ñ1ÿ1 2222$2<2G2W2c2j2u2†2ˆ2™2›2�2�2�2¥2¥2¯2¯2·2¿2Ç2Ï2Ó2Þ2*3Û (ˆ(ˆ6ˆMˆSˆÜ`FZ‚9‚9’9™9›9 9¯9µ9Ê9Ê9Ø9Ø9ä9í9ð9þ9: ::Ý<ùGŽGŽPŽ[ŽfŽqŽ|Ž†Ž¤Ž¯Ž¿ŽÞ 5×g×gïghhhh,h8hOhZhjh|h‚hˆhŽh¡h§h°h¶hÈhÎhÙháhïhüh9iß,29¿0¿0Í0Þ0÷0 111à4èˆèˆöˆ‰ ‰‰‰!‰!‰'‰áÄMzGþGþsþvþ{þˆþ�þŸþ¡þ¥þ©þ¬þ¿þØþþþÿÿÿ2ÿXÿ]ÿvÿœÿ¡ÿ¨ÿÁÿçÿéÿ(((@Zi{â ˆÇwwww•w˜wžw²wºwËwØwÞwãwãwðwùwÿwxx x>xRxYxexuxuxƒx–x¡x¥x¶x¶x¶x»x»xÇxÖxéxïxôxyyy(y.y0y?yLyRyXy]ycyiypy|yƒy…yŠy’y”y™y¥y§y¬y´y¶y»yÃyÅyÊyÒyÔyÙyáyáyáyñyñyñyzzz z$z=zCzNzVz`zdzjzƒzŽz™zŸz¬z±zzzËzÓzÝzåzíz{{${0{*{9{B{G{L{a{h{q{}{ƒ{�{“{˜{�{¨{³{¾{À{Æ{Ó{Ø{Ý{ö{| | || |!|&|/|H|S|^|d|q|q|u|z|z|‹|�|�| |¢|¢|µ|·|·|Ê|Ì|Ì|ß|á|á|ó|ó|ù|þ|þ|})}}6}>}E}K}S}f}q}h}�}�}ƒ}›}ž} }¯}Á}Ñ}Ý}ô}~~'~7~J~O~O~X~l~~~‰~‘~™~�~«~±~~~¼~Ð~à~å~å~ë~ñ~ö~ö~ö~ü~ +/448==BMYs‰••›¨ª·ÃÒååòþþþþ€€€*€5€=€E€G€Y€^€l€{€�€Ž€Ž€¥€µ€µ€É€Õ€×€à€ì€�� ���*�*�5�5�5�5�5�±ƒã ŒÐ×V×VõVWW WDWJWOWUWcWjWyW~WŠWœWœWºWÅWØWßWùWX"X=XUXqXzX‰X‘XžX§X¬X¼XÊXêXïX÷XY"Y2Y8YCYLYRY˜Y‚YsY¨YãYÍY¾YóYöYZªZä<%0 D DÁDÇDÐDâDûDEE)Eå„ |¾ ¾ à ë ò ú ý ý  !!!!"!)!/!5!;!B!H!Y!Y![!d!p!v!›!Ÿ!¢!²!º!¿!¿!Æ!Ï!à!æ!ï!ú! " """#"*"1"9"?"A"O"f"i"x"…"’"’"’"’"˜"ª"³"Ä"å"ö"## #'#.#.#7#>#J#Z#e#e#e#y#�#�# #[$æ„9ú7ú78%8,808F8s8‰8š8£8±8Ã8Ü8Ü8î8999 9çX{Í––ÁËÞéû  '/EM`u…�‘¡±ºÀÅÌÒØÞéô÷þ :O\_gk}Œ“›Ó×àçù )@NTXZgggi€††˜è 
YPY:Y+Y`Y›Y…YvY«Y®YÓYbZä<%0 D DÁDÇDÐDâDûDEE)Eå„ |† † ¨ ³ º  Å Å Õ à à ã ê ñ ÷ ý ! XˆXˆaˆuˆzˆé¤¢Çggƒ‰› ¦©­­ÐÕ€î€*€€9€O€;€^€f€k€q€t€x€z€“€€¢€¢€¢€½€ì€ø€ê˜Ìîââëææúõ ""11@@OO^^m�|‹‹š©¸#ëxËåwdwd•d§d­d¹dÐdÐdâdèdódeeee$e/e=eJeVedesese£eìd§¼çíçíëíþíþíî î+î+îBîBîYîYîpîpî‡î‡îžî î î¤îíÌÂñ÷÷ +AAS^rv{�‡™¥º¼Õäèèèû",7EL[]v��¢îP1A0E0EFEREZE^EoE}EƒE�E—E¢E¨E«EµEï ®- > >9>D>H>Q>X>_>u>†>—>©>»>Ê>Ù>ê>ù>ù>?? ??!?*?1?5?U?U?U?U?U?a?e?h?p?~?†?“?›?£?´?¿?Ä?Ä?Ñ?×?æ?ý?ÿ?
!!!!!!#!,!8!>!c!g!j!z!‚!‡!‡!Ž!—!¨!®!·!Â!Ó!Ó!Ü!á!ë!ò!ù!"" ""."1"@"M"Z"Z"Z"Z"`"r"{"Œ"­"¾"Ö"Ý"ç"ï"ö"ö"ÿ"##"#-#-#-#A#U#e#h##$æ„9ú7ú78%8,808F8s8‰8š8£8±8Ã8Ü8Ü8î8999 9çX{Í^^‰“¦±ÃÑ×èï÷ (=MWYiy‚ˆ�”𠦱¼¿Æàè$'/3ET[c~›Ÿ¨¯ÁÉÐÔÝßñ "///1HNN`è  @@"@%@+@'@?@V@X@f@h@s@y@y@�@�@“@š@°@°@°@µ@µ@Í@Û@æ@ë@ë@î@ó@ó@A A-A/A/A3A5A5ATAbAnApApAsAuAuA‚A„A„A‡A‡A‡A‡A‡A�A–AšA¦AÆAÓAáAèA°Bð(rxX‹X‹f‹m‹}‹€‹†‹ñ(ntZ&Z&c&m&~&‰&‰&§&òTPôô,ô2ô5ô>ôHô`ôpôyôô‚ô†ôˆô ô°ô½ôÃôÇôÍôÏôÒôÖôÖôùôýôõõ
XˆXˆaˆuˆzˆé¤¢Ç  ;ASX^aeeˆ�º¦ÉâÎñ€ó€€#€)€,€0€2€K€7€Z€Z€Z€u€¤€°€ê˜Ìîââëææúõ ""11@@OO^^m�|‹‹š©¸#ëxËå/d/dMd_dedqdˆdˆdšd d«d»dÇdÐdÖdÜdçdõdeee+e+e[eìd§¼ŸíŸí£í¶í¶íÐí×íãíãíúíúíîî(î(î?î?îVîXîXî\îíÌÂñ¯¯ÑØãùù *.379?Q]rt�œ   ³ÈÈÔÚäïý.HHZîP1A0E0EFEREZE^EoE}EƒE�E—E¢E¨E«EµEï ®-×=×=ñ=ü=> >>>->>>O>a>s>‚>‘>¢>±>±>¸>¼>Å>Ò>Ù>â>é>í> ? ? ? ? ??? ?(?6?>?K?S?[?l?w?|?|?‰?�?ž?µ?·?Â?Ï?Ú?Ý?ã?ß?÷?@@@ @+@1@1@9@9@K@R@h@h@h@m@m@…@“@ž@£@£@¦@«@«@Ê@Ø@å@ç@ç@ë@í@í@ AA&A(A(A+A-A-A:A<A<A?A?A?A?A?AHANARA^A~A‹A™A AhBð(rxX‹X‹f‹m‹}‹€‹†‹ñ(ntZ&Z&c&m&~&‰&‰&§&òTzKÖóÖóôóúóýóôô(ô8ôAôGôJôNôPôhôxô…ô‹ô�ô•ô—ôšôžôžôÁôÅôËôËôÒôùôõ!õ4õ:õAõLõVõZõ]õdõjõnõtõ…õ‹õ�õ•õ¢õ¤õõ¸õ¿õÌõÎõàõàõàõàõàõööö2ö2öGöSöpö”ö®ö³öÊöÏöÝöôöùöÿö÷%÷+÷;÷H÷\÷c÷o÷‡÷“÷“÷“÷™÷œ÷Ÿ÷¸÷¾÷Ò÷Ø÷Ý÷è÷è÷í÷ú÷øø øø2ø8ø;ø>øEøNøUøUøZøgøtøtøzøˆøŸø¥ø¨ø«ø²ø²øÃøÊø×øäøäøëøõøüøù ùù(ù(ùBùGùNùVù]ùmùqùzù’ù—ùžùÀùËùÑùÙùòùúú!ú!ú;úIúPúWúyúŒú°ú²ú¼úÞúÞúÞú÷úûû3û7û üóÀ€¬§^§^¿^Ã^È^×^â^î^_ð^_#_#_H_y_\_O_œ_¡_Ê_Ï_Û_ü_Ý_ ``)`0`S`i`i`�`�`›`ô Æ/Æ/Õ/î/ô/õ4‘šŸOŸO·OÚOçOíOóOöOPö8 ê.ê.ø.ÿ. õ1õFõYõlõrõyõ„õŽõ’õ•õœõ¢õ¦õ¬õ½õÃõÈõÍõÚõÜõîõðõ÷õööööööö<öGöSöjöjöö‹ö¨öÌöæöëö÷÷÷,÷1÷7÷H÷]÷c÷s÷€÷”÷›÷§÷¿÷Ë÷Ë÷Ë÷Ñ÷Ô÷×÷ð÷ö÷
/// /%/%/+/÷ :>Ï0Ï0Ù0á0æ0øÐSŸuŸu½uÍuØuîu vv>vlvrvxv€v‚vŠvŸv¢v­v¹vÏvìvûv wMwSwYwawfwnwƒw†w‘w�w¢w¨w®w¶w¾wÆwÖwîwüw*x0x5x=xMxOxsx¡x§x¬x¬x½xÈxÓxðxyyy*y*y/yByYy[yxy�yœy¤y²y²y·yÊy×yáyøyz*z<zIzkz‚z›z©z«zÂzØzØzázíz{{/{:{M{Q{Q{Q{X{]{p{{{•{—{œ{¯{º{Ç{Ñ{Ñ{ã{ù€k˜:˜:®:º:º:Ð:Û:Ý:ý:ý:ý:;;;;;;";&;<;<;r;~;�; ;·;¼;¿;Ä;Ä;Ä;à;ç;ô;û;<<<$<0<8<=<=<Y<e<n<v<~<Š< <«<Î<Ò<à<è<í<í< =#=-=9=A=F=F=e=q=ƒ=ˆ=¤=°=¿=Ä=Ó=à=å=å=å=å=è=í=í=í= >>*>,>/>4>4>4>>>F>M>U>^>i>o>|>Š>Š>”>�>¥>Ú>à>ç>ö>???(?0?0?2?2?7?7?>?D?H?O?S?S?S?S?b?b?‡?�?�?”?¯Cú(°C°C¾CÇCÕCÛCû�°Ð—k—kµk½kÉkßkôkl ll"l"l"l'l,l:lEl^l`lelsl~l‹l’l lü\=P¿+¿+Ù+þ+à+ ,), ,A,V,C,e,~,�,©,©,°,Ò,Ò,Ü,ý8fpßMßM÷MNN)N/N5N8NXNþ0�—PŒPŒdŒpŒ~Œ�Œ™ŒœŒ¤Œÿ0S[ŽØŽØ¢ØªØ·ØÁØÔØP>NЉЉ܉ð‰ó‰ŠŠŠŠ'Š/Š2Š8ŠT¡²GPGPaPtPwP�PŽP£P¥P·PÁPÕPÕPÛPÞP2Q<˜£¨Œ¨Œ¼ŒÃŒÏŒÛŒëŒðŒóŒ÷ŒÿŒ 26FæFæTæ`æH!/OZOZcZoZ…ZqZ”Z–Z�Z¨Z´Z¼ZD>‹×S×SùST TT+T2T4T4TPTVTXTcTjTjTnT}T†TŽT—TŸT¦T­T±T¸TÀTÆTËTÓTêTîTUUU1U6UCUCUWUbUiUrU€U‰U¬U²U¶U»UÀUÃUÍUÒUÞUçUûUVV(V/V/V6V9V‹Vläû&ä&ä:äPä^äiämätäxä�ä�ä’ä’ä¦ä¨ä±ä·ä·ä·ä·ä¿ä´EnÀEÀEæE÷EüEF F FF(F,F1FFFHFKFOFVFjFnFvF‚F‰F�F•F—FŸF­FµF·FºFÓFÛFãFñFõFG %I¯r¯r¿rËr×rçrÿrss$s,s3sLsys“s s­s½sÃsÅsÖsøsÿsttt1t<tBtHtkt BÂjj*j-j4j?jNjPj[jjjjjwj…jˆjŠjŠj�j”j�j¨j®j·jÊjÏjäjïjùjùjkk<kFkPkgkmkrkykk†k‹k‹k‘k—kœkœk¯k½kËkÕkÛkàkêkôkþklll"l=lClHlHlslxlxl£lÊlÏlÏlÏlÒlÙlßlælëlëlñl÷lülülmm'm-m;mPmVmfmrmxm†m�m�m™m£m©m°m°m²m²m²m·m½mÂmÆmÈmËmÖmåmèmêmîmîmómómn+n øøø ø ø%ø2ø?ø?øEøSøjøpøsøvø}ø†ø�ø�ø’øŸø¬ø¬ø²øÀø×øÝøàøãøêøêøûøùùùù#ù-ù4ù:ùAùLù`ù`ùzùù†ùŽù•ù¥ù©ù²ùÊùÏùÖùøùú úú*ú>ú>úYúYúsú�úˆú�ú±úÄúèúêúôúûûû/û;ûLûkûoûDüóÀ€¬ï^ï^_ __ _*_6_W_8_f_k_k_�_Á_¤_—_ä_é_``#`D`%`S`X`q`x`›`±`±`×`×`ã`ô 00060<0õ4‘šçOçOÿO"P/P5P;P>P^Pö8 ê.ê.ø.ÿ.
˜}Ÿ&$&$B$G$N$X$^$i$y$�$‰$Ž$™$£$©$´$Ä$Ì$Ü$ã$ë$ó$û$%%%!%!%7% $b—<—<¯<¶<É<ñ<ü< == =@=@=L=T=c=�=Ÿ=Ì=Ô=Ô= >!>>B>0>Q>W>f>{>}>ˆ>�>�>±>¶>¿>Ë>Ó>ñ>Þ>&? ??5?R?=?r?Š?w?¬?™?Í?»?Ü?î?ä?@@@ @.@.@:@ Ð1ø’ø’ “ “2“2“R“V“[“[“[“g“l“|“�“�“�“†“†“Ÿ“¦“µ“Ó̓ܓå“ç“ç“ç“ç“î“õ“ü“” /// /%/%/+/÷ :>11!1)1.1øÐSçuçuvv v6vSvbv†v´vºvÀvÈvÊvÒvçvêvõvww4wCwgw•w›w¡w©w®w¶wËwÎwÙwåwêwðwöwþwxxx6xDxrxxx}x…x•x—x»xéxïxôxôxyyy8yPy\ydyryrywyŠy¡y£yÀyØyäyìyúyúyÿyz z)z@zYzrz„z‘z³zÊzãzñzóz
””” ” ”!”!”'”,”3• D$rr%r/r9rIrNrWrcrerwrwryr©r { { {){5{K{d{w{‚{•{™{™{™{ {¥{¸{Ã{Ý{ß{ä{÷{||||+|ù€k˜:˜:®:º:º:Ð:Û:Ý:ý:ý:ý:;;;;;;";&;<;<;r;~;�; ;·;¼;¿;Ä;Ä;Ä;à;ç;ô;û;<<<$<0<8<=<=<Y<e<n<v<~<Š< <«<Î<Ò<à<è<í<í< =#=-=9=A=F=F=e=q=ƒ=ˆ=¤=°=¿=Ä=Ó=à=å=å=å=å=è=í=í=í= >>*>,>/>4>4>4>>>F>M>U>^>i>o>|>Š>Š>”>�>¥>Ú>à>ç>ö>???(?0?0?2?2?7?7?>?D?H?O?S?S?S?S?b?b?‡?�?�?”?¯Cú(°C°C¾CÇCÕCÛCû�°Ðßkßkýkll'l<lJlUldljljljloltl‚l�l¦l¨l­l»lÆlÓlÚlèlü\=P,,!,F,(,U,q,g,‰,ž,‹,­,Æ,Ø,ñ,ñ,ø,--$-ý8fp'N'N?NNNbNqNwN}N€N Nþ0�—PŒPŒdŒpŒ~Œ�Œ™ŒœŒ¤Œÿ0S[ŽØŽØ¢ØªØ·ØÁØÔØP>NЉЉ܉ð‰ó‰ŠŠŠŠ'Š/Š2Š8ŠT¡²�P�P©P¼P¿PÉPÖPëPíPÿP QQQ#Q&QzQ<˜£¨Œ¨Œ¼ŒÃŒÏŒÛŒëŒðŒóŒ÷ŒÿŒ 26FæFæTæ`æH!/—Z—Z«Z·ZÍZ¹ZÜZÞZåZðZüZ[D>‹ T TATLTQTYTsTzT|T|T˜TžT T«T²T²T¶TÅTÎTÖTßTçTîTõTùTUUUUU2U6ULU_UeUyU~U‹U‹UŸUªU±UºUÈUÑUôUúUþUVV VVV&V/VCVJV\VpVwVwV~V�VÓVläû&ä&ä:äPä^äiämätäxä�ä�ä’ä’ä¦ä¨ä±ä·ä·ä·ä·ä¿ä´EnÀEÀEæE÷EüEF F FF(F,F1FFFHFKFOFVFjFnFvF‚F‰F�F•F—FŸF­FµF·FºFÓFÛFãFñFõFG %I÷r÷rss s/sGsMs[slsts{s”sÁsÛsèsõst t tt@tGtMt[tctyt„tŠt�t³t BÂjj*j-j4j?jNjPj[jjjjjwj…jˆjŠjŠj�j”j�j¨j®j·jÊjÏjäjïjùjùjkk<kFkPkgkmkrkykk†k‹k‹k‘k—kœkœk¯k½kËkÕkÛkàkêkôkþklll"l=lClHlHlslxlxl£lÊlÏlÏlÏlÒlÙlßlælëlëlñl÷lülülmm'm-m;mPmVmfmrmxm†m�m�m™m£m©m°m°m²m²m²m·m½mÂmÆmÈmËmÖmåmèmêmîmîmómómn+n
˜}Ÿ^$^$z$$†$�$–$¡$±$¹$Á$Æ$Ñ$Û$á$ì$ü$%%%#%+%3%;%@%K%Y%Y%o% $bß<ß<÷<þ<=9=D=Q=_=S=ˆ=ˆ=”=œ=«=å=ç=>>>Q>i>V>Š>x>™>Ÿ>®>Ã>Å>Ð>Ø>Ø>ù>þ>???9?&?n?T?H?}?š?…?º?Ò?¿?ô?á?@@$@6@,@M@M@M@T@v@v@‚@ Ð1ø’ø’ “ “2“2“R“V“[“[“[“g“l“|“�“�“�“†“†“Ÿ“¦“µ“Ó̓ܓå“ç“ç“ç“ç“î“õ“ü“”
””” ” ”!”!”'”,”3• D$_r_rmrwr�r‘r–rŸr«r­r¿r¿rÁrñr
+2 -2
View File
@@ -234,7 +234,7 @@ class CIntermediateStruct
#define IC_COS 0xB6 #define IC_COS 0xB6
#define IC_TAN 0xB7 #define IC_TAN 0xB7
#define IC_ATAN 0xB8 #define IC_ATAN 0xB8
#define IC_NUM_ENTRIES 0xB9 #define IC_ICS_NUM 0xB9
#define KW_INCLUDE 0 #define KW_INCLUDE 0
#define KW_DEFINE 1 #define KW_DEFINE 1
@@ -310,7 +310,7 @@ class CIntermediateStruct
#define AKW_LIST 86 #define AKW_LIST 86
#define AKW_NOLIST 87 #define AKW_NOLIST 87
#define AKW_BINFILE 88 #define AKW_BINFILE 88
#define KW_NUM_KEYWORDS 89 #define KW_KWS_NUM 89
#define CMP_TEMPLATE_INC 0x00 #define CMP_TEMPLATE_INC 0x00
#define CMP_TEMPLATE_DEC 0x01 #define CMP_TEMPLATE_DEC 0x01
-1
View File
@@ -21,7 +21,6 @@ extern U0 StreamDir();
public extern I64 StreamExePrint(U8 *fmt,...); public extern I64 StreamExePrint(U8 *fmt,...);
public extern U0 StreamPrint(U8 *fmt,...); public extern U0 StreamPrint(U8 *fmt,...);
public extern Bool Trace(Bool val=ON); public extern Bool Trace(Bool val=ON);
#help_index "Compiler/Lex" #help_index "Compiler/Lex"
#help_file "::/Doc/Lex" #help_file "::/Doc/Lex"
extern U0 ClassMemberLstDel(CHashClass *c); extern U0 ClassMemberLstDel(CHashClass *c);
Loaded 100 of 219 files, more files were not shown because too many files have changed in this diff. Show more