Home » Archimedes archive » Archimedes World » AW-1994-08-Disc2.adf » Disk2Aug94 » !AWAug94/Goodies/MathsCard/!MathsCard/Sums/Resources/Data
!AWAug94/Goodies/MathsCard/!MathsCard/Sums/Resources/Data
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
| Tape/disk: | Home » Archimedes archive » Archimedes World » AW-1994-08-Disc2.adf » Disk2Aug94 |
| Filename: | !AWAug94/Goodies/MathsCard/!MathsCard/Sums/Resources/Data |
| Read OK: | ✔ |
| File size: | 1C13A bytes |
| Load address: | 0000 |
| Exec address: | 0000 |
File contents
20DEFFNstart_:PROCshut_:=FNwindow("Main")
40DEFFNmainW_:=FNwindow("Main")
70DEFFNdummy_:=TRUE
110DEFFNm_:LOCALH$:H$=$mn%:CASEH$OF
150WHEN"GrafIt":IFAnswer_%THENPROCpMI("GrafIt",0,"Answers off")ELSEPROCpMI("GrafIt",0,"Answers on")
170ENDCASE:=TRUE
200DEFFNsm_:LOCALH$:H$=$mn%:CASEH$OF
240WHEN"CreChoices":IFChoices_%=1PROCtMIx("CreChoices",0)
260IFChoices_%=2PROCtMIx("CreChoices",1)
270IFChoices_%=3PROCtMIx("CreChoices",2)
280ENDCASE:=TRUE
310DEFFNsma_:=FALSE
350DEFFNw_:CASE$wn%OF
370WHEN"Main":PROCshut_:WindowMain_%=FNfWS("Main")
380WHEN"GrafIt":GrafIt_%=FNfWS("GrafIt")
390WHEN"TakeCards":PROCTakeCards
400WHEN"AddCards":PROCAddCards
410WHEN"TimesCards":PROCTimesCards
420WHEN"DivCards":PROCDivCards
430WHEN"Add":PROCAdd
440WHEN"Subtract":PROCsubtract
450WHEN"Multiply":PROCmultiply
460WHEN"Divide":PROCDivide
470WHEN"Madd":PROCMadd
480WHEN"MetricSub":PROCMsub
490WHEN"Magic":PROCMagic
500WHEN"Sadd":PROCSadd
510WHEN"Wadd":PROCWadd
520WHEN"FrMD":PROCFrMD
530WHEN"LongMul":PROCLongMulty
540WHEN"LongDiv":PROCLongDivy
550WHEN"MetricSub":PROCMsub
560WHEN"MetricMul":PROCMmul
570WHEN"MetDiv":PROCMdiv
580WHEN"Choices":PROCchoices
590ENDCASE:=TRUE
640DEFFNb_:=TRUE
680DEFFNe_:=TRUE
710DEFFNpK_:=FALSE
740DEFFNh_:CASE$wn%OF
750WHEN"GrafIt":="This is the main window of the 'New_Appln' application."
760ENDCASE:IF!h%=-2THEN="This is the 'New_Appln' icon.|MClick SELECT to open the main window."
780=""
800DEFFNrM_:=TRUE
820DEFFNrB_:=TRUE
850DEFFNpB_:=TRUE
880DEFPROCiBasic_g:ENDPROC
890DEFPROCiSprite_g:ENDPROC
900DEFPROCiAnimate_g:ENDPROC
1010DEFFNi_(A$,B%):LOCALA%,C$:many_=12:last_=12:quit_=FALSE:SecAns_%=TRUE:Lda_%=TRUE:Lma_%=TRUE:DIMqual_$(10),qual_(10),act_$(10),gc_%(12),scoot_(10):EqSign_=TRUE:EqEquals_=FALSE:DIMLineType_(3):LineType_(3)=TRUE:LineType_(2)=FALSE:LineType_(1)=FALSE:DIMfinder_%(12)
1160maxsub=6:DIMsub_$(maxsub),sub_(maxsub):sub_$(1)="-":sub_(1)=TRUE:sub_$(2)="subtract":sub_(2)=FALSE:sub_$(3)="minus":sub_(3)=FALSE:sub_$(4)="take":sub_(4)=FALSE:sub_$(5)="take away":sub_(5)=FALSE:sub_$(6)="less":sub_(6)=FALSE
1200Takemaxy_=20:Takeminny_=10:maxadd=4:DIMadd_$(maxadd),add_(maxadd):add_$(1)="+":add_(1)=TRUE:add_$(2)="add":add_(2)=FALSE:add_$(3)="plus":add_(3)=FALSE:add_$(4)="and":add_(4)=FALSE:Addmaxy_=10:Addminy_=1
1280maxtimes=4:DIMtime_$(maxtimes),times_(maxtimes):time_$(1)="x":times_(1)=TRUE:time_$(2)="times":times_(2)=FALSE:time_$(3)="multiplied by":times_(3)=FALSE:maxtims=9:DIMtim_$(maxtims),tim_(maxtims)
1310tim_$(1)="2":tim_$(2)="3":tim_$(3)="4":tim_$(4)="5":tim_$(5)="6":tim_$(6)="7":tim_$(7)="8":tim_$(8)="9":tim_$(9)="10":tim_(1)=TRUE:tim_(2)=FALSE:tim_(3)=FALSE:tim_(4)=FALSE:tim_(5)=FALSE:tim_(6)=FALSE:tim_(7)=FALSE:tim_(8)=FALSE:tim_(9)=FALSE
1360maxdiv=3:DIMdive_$(maxdiv),dive_(maxdiv):DIMtempa_(10):dive_$(1)="�":dive_(1)=TRUE:dive_$(2)="shared by":dive_(2)=FALSE:dive_$(3)="divided by":dive_(3)=FALSE:maxdivs=9:DIMdiv_$(maxdivs),div_(maxdivs)
1390div_$(1)="2":div_$(2)="3":div_$(3)="4":div_$(4)="5":div_$(5)="6":div_$(6)="7":div_$(7)="8":div_$(8)="9":div_$(9)="10":div_(1)=TRUE:div_(2)=FALSE:div_(3)=FALSE:div_(4)=FALSE:div_(5)=FALSE:div_(6)=FALSE:div_(7)=FALSE:div_(8)=FALSE:div_(9)=FALSE
1440DIMaddy_(6):addy_(1)=TRUE:FORt_=2TO6:addy_(t_)=FALSE:NEXT:maxaddcarry_=3:DIMaddcarry_(maxaddcarry_):addcarry_(1)=FALSE:addcarry_(2)=FALSE:addcarry_(3)=TRUE:DIMaddytype_(6),lineaddy_(12):Anowts_%=FALSE:DIMsubby_(6):subby_(1)=TRUE:FORt_=2TO6:subby_(t_)=FALSE:NEXT
1510maxsubcarry_=3:DIMsubcarry_(maxsubcarry_):subcarry_(1)=TRUE:subcarry_(2)=FALSE:subcarry_(3)=FALSE:DIMsubbytype_(6),linesubby_(12):nowts_%=FALSE:DIMmulty_(6):multy_(1)=TRUE:FORt_=2TO6:multy_(t_)=FALSE:NEXT:maxmults=9:DIMmult_$(maxmults),mult_(maxmults)
1580FORt_=1TO9:mult_$(t_)=STR$(t_+1):NEXT:mult_(1)=TRUE:FORt_=2TO9:mult_(t_)=FALSE:NEXT:DIMmultytype_(6),linemulty_(12):Mnowts_%=FALSE:Remainder_$="Ran":DIMdvy_(5):dvy_(1)=TRUE:dvy_(2)=FALSE:dvy_(3)=FALSE:dvy_(4)=FALSE:dvy_(5)=FALSE:maxdvs=9:DIMdv_$(maxdvs),dv_(maxdvs)
1660dv_$(1)="2":dv_$(2)="3":dv_$(3)="4":dv_$(4)="5":dv_$(5)="6":dv_$(6)="7":dv_$(7)="8":dv_$(8)="9":dv_$(9)="10":dv_(1)=TRUE:dv_(2)=FALSE:dv_(3)=FALSE:dv_(4)=FALSE:dv_(5)=FALSE:dv_(6)=FALSE:dv_(7)=FALSE:dv_(8)=FALSE:dv_(9)=FALSE
1690DIMdvytype_(6),linedvy_(12):Dnowts_%=FALSE:DIMcz_$(12):Fracadd_=TRUE:Fractake_=FALSE:addoms_=FALSE:AddReps_=FALSE:subdoms_=FALSE:SubReps_=FALSE:maxfrac_=12:DIMf_(maxfrac_),frac_(maxfrac_):DIMFU1_(12),FD1_(12),FU2_(12),FD2_(12),FU3_(12),FD3_(12)
1780f_(1)=TRUE:f_(2)=FALSE:f_(3)=TRUE:f_(4)=FALSE:f_(5)=FALSE:f_(6)=FALSE:f_(7)=TRUE:FORr_=8TO12:f_(r_)=FALSE:NEXT:FORr_=1TO9:frac_(r_)=r_+1:NEXT:frac_(10)=12:frac_(11)=15:frac_(12)=20:DIMSadcarry_(3):Sadcarry_(1)=FALSE:Sadcarry_(2)=FALSE:Sadcarry_(3)=TRUE:DIMFracsign_$(12)
1850WFracadd_=TRUE:WFractake_=FALSE:Waddoms_=FALSE:WAddReps_=FALSE:Wsubdoms_=FALSE:WSubReps_=FALSE:Wmaxfrac_=12:DIMwf_(Wmaxfrac_),wfrac_(Wmaxfrac_):DIMWFU1_(12),WFD1_(12),WFU2_(12),WFD2_(12),WFU3_(12),WFD3_(12),Whole_(12,2)
1900f_(1)=TRUE:wf_(2)=FALSE:wf_(3)=TRUE:wf_(4)=FALSE:wf_(5)=FALSE:wf_(6)=FALSE:wf_(7)=TRUE:FORr_=8TO12:wf_(r_)=FALSE:NEXT:FORr_=1TO9:wfrac_(r_)=r_+1:NEXT:wfrac_(10)=12:wfrac_(11)=15:wfrac_(12)=20:DIMWSadcarry_(3):WSadcarry_(1)=FALSE:WSadcarry_(2)=FALSE:WSadcarry_(3)=TRUE
1940DIMWSTakecar_(3):WSTakecar_(1)=FALSE:WSTakecar_(2)=FALSE:WSTakecar_(3)=FALSE:Fracmult_=TRUE:Fracdiv_=FALSE:Frtdom_=FALSE:Frtrep_=FALSE:Frddom_=FALSE:Frdrep_=FALSE:DIMmf_(12),mfv_(12):FORr_=1TO9:mfv_(r_)=r_+1:NEXT:mfv_(10)=12:mfv_(11)=15:mfv_(12)=20
2020mf_(1)=TRUE:mf_(2)=TRUE:FORr_=3TO12:mf_(r_)=FALSE:NEXT:Frmwhole_=FALSE:Frdwhole_=FALSE:DIMLongMul_(6):LongMul_(1)=TRUE:FORt_=2TO6:LongMul_(t_)=FALSE:NEXT:Longstyle_=1:DIMLongchoice_$(8),froc_(8):DIMLongDiv_(7):LongDiv_(1)=TRUE:FORt_=2TO7:LongDiv_(t_)=FALSE:NEXT:LRemainder_$="Ran"
2170DIMmaddy_(6):maddy_(1)=TRUE:FORw_=2TO6:maddy_(w_)=FALSE:NEXT:maddcarry_$="Ran":DIMmt_(6):FORw_=1TO6:mt_(w_)=FALSE:NEXT:DIMthou_$(3),hun_$(3),top_$(12):DIMmsub_(6):msub_(1)=TRUE:FORw_=2TO6:msub_(w_)=FALSE:NEXT:msubcarry_$="Ran":DIMst_(6):FORw_=1TO6:st_(w_)=FALSE:NEXT
2280DIMmmul_(6):mmul_(1)=TRUE:FORw_=2TO6:mmul_(w_)=FALSE:NEXT:DIMmmt_(6):FORw_=1TO6:mmt_(w_)=FALSE:NEXT:DIMMmult_$(9),Mmult_(9):FORt_=1TO9:Mmult_$(t_)=STR$(t_+1):NEXT:Mmult_(1)=TRUE:FORt_=2TO9:Mmult_(t_)=FALSE:NEXT:DIMmd_(6):md_(1)=TRUE:FORw_=2TO6:md_(w_)=FALSE:NEXT
2360DIMmdt_(6):FORw_=1TO6:mdt_(w_)=FALSE:NEXT:DIMMdiv_$(9),Mdiv_(9):FORt_=1TO9:Mdiv_$(t_)=STR$(t_+1):NEXT:Mdiv_(1)=TRUE:FORt_=2TO9:Mdiv_(t_)=FALSE:NEXT:LineTypeards_%=FALSE:TakeCard_%=FALSE:DIMdunk_$(10):started_%=FALSE:twoxc=TRUE:threexc=FALSE:fourxc=FALSE:fivexc=FALSE:sixxc=FALSE
2460sevenxc=FALSE:eightxc=FALSE:ninexc=FALSE:tenxc=FALSE:EqSign_=TRUE:EqEquals_=FALSE:Addadd=FALSE:Addplus=FALSE:Addsign=TRUE:DIMNa_%(12),Nb_%(12),Nc_%(12),linetype_(10),equal_$(10)
2530save_%=OPENIN"<MathsSys$Path>Numbers":INPUT#save_%,rite_,StartY,Maintitle_$,Title_$,Choices_%,Sign_%,SecAns_%,Lda_%,Lma_%,direct_%,remmy_,pwon_:CLOSE#save_%:DefStartX=rite_:DefStartY=StartY:DefaultStartX=100:DefaultStartY=1240
2570DIMa_(12),b_(12),c_(12),rem_(12),a_$(12),b_$(12),c_$(12),rem_$(12):DIMmagic_(9,9):MagRange_$="1 to 25":DIMbas_(9),baa_(9):DIMpat_$(9),pattern_(9),bas_$(9):Answer_%=FALSE:mult_=2:gap_=0:Clue_$="":Zero_$="Random":metric_$="�":PROCiRes(A$,B%)
2690PROCiGraphics("",B%):=TRUE
2770DEFPROCshut_:IFFNgWx("GrafIt"):PROCcloseW(GrafIt_%)
2790IFFNfWS("TakeCards")PROCcloseW(TakeCard_%)
2800IFFNfWS("AddCards")PROCcloseW(AddCard_%)
2810IFFNfWS("TimesCards")PROCcloseW(TimesCard_%)
2820IFFNfWS("DivCards")PROCcloseW(DivCard_%)
2830IFFNfWS("Add")PROCcloseW(WAdd_%)
2840IFFNfWS("Subtract")PROCcloseW(WSub_%)
2850IFFNfWS("Multiply")PROCcloseW(WMult_%)
2860IFFNfWS("Divide")PROCcloseW(WDiv_%)
2870IFFNfWS("Magic")PROCcloseW(Magic_%)
2880IFFNfWS("Sadd")PROCcloseW(Sad_%)
2890IFFNfWS("Wadd")PROCcloseW(Wad_%)
2900IFFNfWS("FrMD")PROCcloseW(FrMD_%)
2910IFFNfWS("LongMul")PROCcloseW(LongMul_%)
2920IFFNfWS("LongDiv")PROCcloseW(LongDiv_%)
2930IFFNfWS("Madd")PROCcloseW(Madd_%)
2940IFFNfWS("MetricSub")PROCcloseW(Msub_%)
2950IFFNfWS("MetricMul")PROCcloseW(Mmul_%)
2960IFFNfWS("MetDiv")PROCcloseW(Mdiv_%)
2970IFFNfWS("Choices")PROCcloseW(Choice_%)
2980AddCard_%=FALSE:TakeCard_%=FALSE:TimesCard_%=FALSE:DivCard_%=FALSE:started_%=FALSE:ENDPROC:IFFNgWx("GrafIt"):PROCcloseW(GrafIt_%)
3020IFFNgWx("Add"):PROCcloseW(WAdd_%)
3030IFFNgWx("Subtract"):PROCcloseW(WSub_%)
3040IFFNgWx("Multiply"):PROCcloseW(WMult_%)
3050IFFNgWx("Divide"):PROCcloseW(WDiv_%)
3060IFFNgWx("Magic"):PROCcloseW(Magic_%)
3070IFFNgWx("MetricAdd"):PROCcloseW(Madd_%)
3080IFFNgWx("MetricSub"):PROCcloseW(Msub_%)
3090IFFNgWx("MetricMul"):PROCcloseW(Mmul_%)
3100IFFNgWx("LongMul"):PROCcloseW(LongMul_%)
3110IFFNgWx("StartX"):PROCcloseW(Start_X%)
3120IFFNgWx("AddCards"):PROCcloseW(AddCard_%)
3130IFFNgWx("TakeCards"):PROCcloseW(TakeCard_%)
3140IFFNgWx("TimesCards"):PROCcloseW(TimesCard_%)
3150IFFNgWx("DivCards"):PROCcloseW(DivCard_%)
3160AddCard_%=FALSE:TakeCard_%=FALSE:TimesCard_%=FALSE:DivCard_%=FALSE:started_%=FALSE:ENDPROC
3200DEFFNChoices_:PROCusI(WindowMain_%,"Choices"):=FNwindow("Choices")
3210DEFFNTakecards_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open1_%=FNwindow("TakeCards"):open2_%=FNwindow("GrafIt"):=TRUE
3230DEFFNAddcards_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open1_%=FNwindow("AddCards"):open2_%=FNwindow("GrafIt"):=TRUE
3250DEFFNTimesCards_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open1_%=FNwindow("TimesCards"):open2_%=FNwindow("GrafIt"):=TRUE
3270DEFFNDivCards_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open1_%=FNwindow("DivCards"):open2_%=FNwindow("GrafIt"):=TRUE
3290DEFFNAdd_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open1_%=FNwindow("Add"):open2_%=FNwindow("GrafIt"):=TRUE
3310DEFFNSubtract_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open1_%=FNwindow("Subtract"):open2_%=FNwindow("GrafIt"):=TRUE
3330DEFFNMultiply_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open1_%=FNwindow("Multiply"):open2_%=FNwindow("GrafIt"):=TRUE
3350DEFFNDivide_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open1_%=FNwindow("Divide"):open2_%=FNwindow("GrafIt"):=TRUE
3370DEFFNMagic_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open1_%=FNwindow("Magic"):open2_%=FNwindow("GrafIt"):=TRUE
3390DEFFNSadd_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open1_%=FNwindow("Sadd"):open2_%=FNwindow("GrafIt"):=TRUE
3410DEFFNWadd_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open1_%=FNwindow("Wadd"):open2_%=FNwindow("GrafIt"):=TRUE
3430DEFFNFrMD_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open1_%=FNwindow("FrMD"):open2_%=FNwindow("GrafIt"):=TRUE
3450DEFFNMadd_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open1_%=FNwindow("Madd"):open2_%=FNwindow("GrafIt"):=TRUE
3470DEFFNMetricSub_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open_%=FNwindow("MetricSub"):open2_%=FNwindow("GrafIt"):=TRUE
3490DEFFNMetricMul_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open_%=FNwindow("MetricMul"):open2_%=FNwindow("GrafIt"):=TRUE
3510DEFFNMetricDiv_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open_%=FNwindow("MetDiv"):open2_%=FNwindow("GrafIt"):=TRUE
3530DEFFNLongMul_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open1_%=FNwindow("LongMul"):open2_%=FNwindow("GrafIt"):=TRUE
3560DEFFNLongDiv_:Clue_$="":PROCshut_:started_%=FALSE:PROCcloseW(WindowMain_%):open1_%=FNwindow("LongDiv"):open2_%=FNwindow("GrafIt"):=TRUE
3620DEFPROCwhatqual:IFTakeCard_% tot_=maxsub:FORr_=1TOtot_:qual_$(r_)=sub_$(r_):qual_(r_)=sub_(r_):NEXT
3640IFAddCard_% tot_=maxadd:FORr_=1TOtot_:qual_$(r_)=add_$(r_):qual_(r_)=add_(r_):NEXT
3650IFTimesCard_% tot_=maxtimes:FORr_=1TOtot_:qual_$(r_)=time_$(r_):qual_(r_)=times_(r_):NEXT
3660IFDivCard_% tot_=maxdiv:FORr_=1TOtot_:qual_$(r_)=dive_$(r_):qual_(r_)=dive_(r_):NEXT
3670got_%=0:FORr_%=1TOtot_:IFqual_(r_%)=TRUEgot_%=got_%+1:gc_%(got_%)=r_%
3690NEXT:PROCqual(got_%):ENDPROC
3720DEFPROCqual(g_%):IFg_%=1THENFORtr_%=1TO10:act_$(tr_%)=qual_$(gc_%(g_%)):NEXT:ENDPROC
3740needed_%=10DIVg_%:REPEAT:FORy_=1TOg_%:finder_%(y_)=0:NEXT:flag_=TRUE:FORtr_%=1TO10:REPEAT:flig_=TRUE:ran_=RND(g_%):act_$=qual_$(gc_%(ran_)):IFtr_%>1ANDact_$(tr_%-1)=act_$ flig_=FALSE
3820UNTILflig_=TRUE:act_$(tr_%)=qual_$(gc_%(ran_)):finder_%(ran_)=finder_%(ran_)+1:NEXT:FORb_%=1TOg_%:IFfinder_%(b_%)<needed_% flag_=FALSE
3860NEXT:UNTILflag_=TRUE:ENDPROC
3880DEFPROCwhatlines_:got_%=0:FORr_%=1TO3:IFLineType_(r_%)=TRUEgot_%=got_%+1:gc_%(got_%)=r_%
3900NEXT:IFgot_%=1THENFORtr_%=1TO10:linetype_(tr_%)=gc_%(got_%):NEXT:ENDPROC
3920needed_%=10DIVgot_%:REPEAT:FORy_=1TOgot_%:finder_%(y_)=0:NEXT:flag_=TRUE:FORtr_%=1TO10:REPEAT:flig_=TRUE:ran_=RND(got_%):linetype_=gc_%(ran_):IFtr_%>1ANDlinetype_(tr_%-1)=linetype_ flig_=FALSE
4000UNTILflig_=TRUE:linetype_(tr_%)=gc_%(ran_):finder_%(ran_)=finder_%(ran_)+1:NEXT:FORy_=1TOgot_%:IFfinder_%(y_)<needed_% flag_=FALSE
4040NEXT:UNTILflag_=TRUE:ENDPROC
4080DEFPROCwhatequals:IFEqSign_=TRUEANDEqEquals_=FALSEFORtr_%=1TO10:equal_$(tr_%)="=":NEXT:ENDPROC
4100IFEqSign_=FALSEANDEqEquals_=TRUEFORtr_%=1TO10:equal_$(tr_%)="equals":NEXT:ENDPROC
4110PROCtwo("equals","="):equal_$()=dunk_$():ENDPROC
4130DEFPROCtwo(a_$,b_$):REPEAT:aa_=0:ap_=0:FORtr_%=1TO10:REPEAT:flug_=TRUE:r_=RND(2):IFr_=1 dunk_$=a_$ELSEdunk_$=b_$
4180IFtr_%>1ANDdunk_$(tr_%-1)=dunk_$ flug_=FALSE
4190UNTILflug_=TRUE:IFr_=1 dunk_$(tr_%)=a_$:aa_=aa_+1ELSEdunk_$(tr_%)=b_$:ap_=ap_+1
4210NEXT:UNTILaa_>4ANDap_>4:ENDPROC
4230DEFFNEqSign_:IFEqSign_=TRUEANDEqEquals_=FALSEEqSign_=TRUE:PROCselectEq:=TRUE
4250IFEqSign_=TRUEEqSign_=FALSE:PROCUnselectEq:=TRUE
4260IFEqSign_=FALSEEqSign_=TRUE:PROCselectEq:=TRUE
4270
4280DEFFNEqEquals_:IFEqEquals_=TRUEANDEqSign_=FALSEEqEquals_=TRUE:PROCselectEquals:=TRUE
4300IFEqEquals_=TRUEEqEquals_=FALSE:PROCUnselectEquals:=TRUE
4310IFEqEquals_=FALSEEqEquals_=TRUE:PROCselectEquals:=TRUE
4320
4330DEFPROCselectEq:IFAddCard_%PROCsI(AddCard_%,"EqSign")
4350IFTakeCard_%PROCsI(TakeCard_%,"EqSign")
4360IFTimesCard_%PROCsI(TimesCard_%,"EqSign")
4370IFDivCard_%PROCsI(DivCard_%,"EqSign")
4380ENDPROC
4400DEFPROCUnselectEq:IFAddCard_%PROCusI(AddCard_%,"Eq")
4420IFTakeCard_%PROCusI(TakeCard_%,"Eq")
4430IFTimesCard_%PROCusI(TimesCard_%,"EqSign")
4440IFDivCard_%PROCusI(DivCard_%,"EqSign")
4450ENDPROC
4470DEFPROCselectEquals:IFAddCard_%PROCsI(AddCard_%,"EqEquals")
4490IFTakeCard_%PROCsI(TakeCard_%,"EqEquals")
4500IFTimesCard_%PROCsI(TimesCard_%,"EqEquals")
4510IFDivCard_%PROCsI(DivCard_%,"EqEquals")
4520ENDPROC
4540DEFPROCUnselectEquals:IFAddCard_%PROCusI(AddCard_%,"EqEquals")
4560IFTakeCard_%PROCusI(TakeCard_%,"EqEquals")
4570IFTimesCard_%PROCusI(TimesCard_%,"EqEquals")
4580IFDivCard_%PROCusI(DivCard_%,"EqEquals")
4590ENDPROC
4610DEFFNLineType1_:IFLineType_(2)=FALSEANDLineType_(3)=FALSETHENLineType_(1)=TRUE:PROCselectline1:=TRUE
4630IFLineType_(1)=FALSELineType_(1)=TRUE:PROCselectline1:=TRUE
4640IFLineType_(1)=TRUELineType_(1)=FALSE:PROCUnselectline1:=TRUE
4650DEFFNLineType2_:IFLineType_(1)=FALSEANDLineType_(3)=FALSETHENLineType_(2)=TRUE:PROCselectline2:=TRUE
4670IFLineType_(2)=FALSELineType_(2)=TRUE:PROCselectline2:=TRUE
4680IFLineType_(2)=TRUELineType_(2)=FALSE:PROCUnselectline2:=TRUE
4690DEFFNLineType3_:IFLineType_(1)=FALSEANDLineType_(2)=FALSETHENLineType_(3)=TRUE:PROCselectline3:=TRUE
4710IFLineType_(3)=FALSELineType_(3)=TRUE:PROCselectline3:=TRUE
4720IFLineType_(3)=TRUELineType_(3)=FALSE:PROCUnselectline3:=TRUE
4730
4740DEFPROCselectline1:IFTakeCard_%PROCsI(TakeCard_%,"LineType1")
4760IFAddCard_%PROCsI(AddCard_%,"LineType1")
4770IFTimesCard_%PROCsI(TimesCard_%,"LineType1")
4780IFDivCard_%PROCsI(DivCard_%,"LineType1")
4790ENDPROC
4800DEFPROCUnselectline1:IFTakeCard_%PROCusI(TakeCard_%,"LineType1")
4820IFAddCard_%PROCusI(AddCard_%,"LineType1")
4830IFTimesCard_%PROCusI(TimesCard_%,"LineType1")
4840IFDivCard_%PROCusI(DivCard_%,"LineType1")
4850ENDPROC
4860DEFPROCselectline2:IFTakeCard_%PROCsI(TakeCard_%,"LineType2")
4880IFAddCard_%PROCsI(AddCard_%,"LineType2")
4890IFTimesCard_%PROCsI(TimesCard_%,"LineType2")
4900IFDivCard_%PROCsI(DivCard_%,"LineType2")
4910ENDPROC
4920DEFPROCUnselectline2:IFTakeCard_%PROCusI(TakeCard_%,"LineType2")
4940IFAddCard_%PROCusI(AddCard_%,"LineType2")
4950IFTimesCard_%PROCusI(TimesCard_%,"LineType2")
4960IFDivCard_%PROCusI(DivCard_%,"LineType2")
4970ENDPROC
4980DEFPROCselectline3:IFTakeCard_%PROCsI(TakeCard_%,"LineType3")
5000IFAddCard_%PROCsI(AddCard_%,"LineType3")
5010IFTimesCard_%PROCsI(TimesCard_%,"LineType3")
5020IFDivCard_%PROCsI(DivCard_%,"LineType3")
5030ENDPROC
5040DEFPROCUnselectline3:IFTakeCard_%PROCusI(TakeCard_%,"LineType3")
5060IFAddCard_%PROCusI(AddCard_%,"LineType3")
5070IFTimesCard_%PROCusI(TimesCard_%,"LineType3")
5080IFDivCard_%PROCusI(DivCard_%,"LineType3")
5090ENDPROC
5110DEFFNAnswers_:IFAnswer_%=FALSEAnswer_%=TRUE:PROCpMI("GrafIt",0,"Answers off")ELSEIFAnswer_%=TRUEAnswer_%=FALSE:PROCpMI("GrafIt",0,"Answers on")
5130=FNsums
5200DEFPROCAddCards:AddCard_%=FNfWS("AddCards"):$!Addmaxy_%=STR$(Addmaxy_):PROCrI(AddCard_%,"Addmaxy"):$!Addminy_%=STR$(Addminy_):PROCrI(AddCard_%,"Addminy"):IFLineType_(1)PROCsI(AddCard_%,"LineType1")
5240IFLineType_(2)PROCsI(AddCard_%,"LineType2")
5250IFLineType_(3)PROCsI(AddCard_%,"LineType3")
5260IFEqSign_PROCsI(AddCard_%,"EqSign")
5270IFEqEquals_PROCsI(AddCard_%,"EqEquals")
5280IFadd_(1)PROCsI(AddCard_%,"add1")
5290IFadd_(2)PROCsI(AddCard_%,"add2")
5300IFadd_(3)PROCsI(AddCard_%,"add3")
5310IFadd_(4)PROCsI(AddCard_%,"add4")
5320ENDPROC
5360DEFFNadd_:c_=0:FORh_=1TO4:IFadd_(h_)c_=c_+1
5370NEXT:=c_
5380DEFFNadd1_:IFadd_(1)ANDFNadd_=1 add_(1)=TRUE:PROCsI(AddCard_%,"add1"):=TRUE
5390IFadd_(1)add_(1)=FALSEELSEadd_(1)=TRUE
5400=TRUE
5410DEFFNadd2_:IFadd_(2)ANDFNadd_=1 add_(2)=TRUE:PROCsI(AddCard_%,"add2"):=TRUE
5420IFadd_(2)add_(2)=FALSEELSEadd_(2)=TRUE
5430=TRUE
5440DEFFNadd3_:IFadd_(3)ANDFNadd_=1 add_(3)=TRUE:PROCsI(AddCard_%,"add3"):=TRUE
5450IFadd_(3)add_(3)=FALSEELSEadd_(3)=TRUE
5460=TRUE
5470DEFFNadd4_:IFadd_(4)ANDFNadd_=1 add_(4)=TRUE:PROCsI(AddCard_%,"add4"):=TRUE
5480IFadd_(4)add_(4)=FALSEELSEadd_(4)=TRUE
5490=TRUE
5500DEFFNAddmaxy_:PROCgetaddmax:PROCsCI(!(AddCard_%+12),20):=TRUE
5510DEFPROCgetaddmax:Addmaxy_=VAL($!Addmaxy_%):IFAddmaxy_<4 Addmaxy_=4
5530IFAddmaxy_>500 Addmaxy_=500
5540$!Addmaxy_%=STR$(Addmaxy_):PROCrI(AddCard_%,"Addmaxy"):ENDPROC
5550DEFFNAddminy_:PROCgetaddmax:PROCgetaddmin:PROCsCI(!(AddCard_%+12),20):=TRUE
5560DEFPROCgetaddmin:Addminy_=VAL($!Addminy_%):IFAddminy_<1 Addminy_=0
5580IFAddminy_>Addmaxy_-4 Addminy_=Addmaxy_-4
5590$!Addminy_%=STR$(Addminy_):PROCrI(AddCard_%,"Addminy"):ENDPROC
5630DEFFNAddcGo_:PROCGetTitles:dummy_=RND(-TIME):PROCwhatlines_:PROCwhatqual:PROCwhatequals:PROCcalcadd:PROCusI(AddCard_%,"AddcGo"):last_=3:quit_=FALSE:Clue_$="CardsAdd":started_%=TRUE:=FNsums
5690DEFPROCcalcadd:SYS"Hourglass_On":PROCgetaddmax:PROCgetaddmin:FORtr_%=1TO10:SYS"Hourglass_Percentage",tr_%/10*100:REPEAT:flag_=0:REPEAT:dif_%=Addmaxy_-Addminy_:wh_=RND(2):IFwh_=1THENdd_%=RND(dif_%):Na_%=Addminy_+dd_%:dd_%=RND(dif_%)-1:Nb_%=Addminy_+dd_%
5760IFwh_=2THENdd_%=RND(dif_%)-1:Na_%=Addminy_+dd_%:dd_%=RND(dif_%)
5770Nb_%=Addminy_+dd_%:UNTILNa_%>=Addminy_ANDNb_%>=Addminy_:IFtr_%>1THEN
5810FORe_%=1TOtr_%-1:IFNa_%=Na_%(e_%)ANDNb_%=Nb_%(e_%)flag_=1
5820NEXT
5830ENDIF:UNTILflag_=0:Na_%(tr_%)=Na_%:Nb_%(tr_%)=Nb_%:Nc_%(tr_%)=Na_%(tr_%)+Nb_%(tr_%):NEXT:SYS"Hourglass_Off":ENDPROC
5920DEFPROCTakeCards:TakeCard_%=FNfWS("TakeCards"):$!Takemaxy_%=STR$(Takemaxy_):PROCrI(TakeCard_%,"Takemaxy"):$!Takeminny_%=STR$(Takeminny_):PROCrI(TakeCard_%,"Takeminny"):IFLineType_(1)PROCsI(TakeCard_%,"LineType1")
5960IFLineType_(2)PROCsI(TakeCard_%,"LineType2")
5970IFLineType_(3)PROCsI(TakeCard_%,"LineType3")
5980IFEqEquals_PROCsI(TakeCard_%,"EqEquals")
5990IFEqSign_PROCsI(TakeCard_%,"EqSign")
6000IFsub_(1)PROCsI(TakeCard_%,"sub1")
6010IFsub_(2)PROCsI(TakeCard_%,"sub2")
6020IFsub_(3)PROCsI(TakeCard_%,"sub3")
6030IFsub_(4)PROCsI(TakeCard_%,"sub4")
6040IFsub_(5)PROCsI(TakeCard_%,"sub5")
6050IFsub_(6)PROCsI(TakeCard_%,"sub6")
6060ENDPROC
6100DEFFNsub_:c_=0:FORh_=1TO6:IFsub_(h_)c_=c_+1
6110NEXT:=c_
6120DEFFNsub1_:IFsub_(1)ANDFNsub_=1 sub_(1)=TRUE:PROCsI(TakeCard_%,"sub1"):=TRUE
6130IFsub_(1)sub_(1)=FALSEELSEsub_(1)=TRUE
6140=TRUE
6150DEFFNsub2_:IFsub_(2)ANDFNsub_=1 sub_(2)=TRUE:PROCsI(TakeCard_%,"sub2"):=TRUE
6160IFsub_(2)=TRUEsub_(2)=FALSEELSEsub_(2)=TRUE
6170=TRUE
6180DEFFNsub3_:IFsub_(3)ANDFNsub_=1 sub_(3)=TRUE:PROCsI(TakeCard_%,"sub3"):=TRUE
6190IFsub_(3)=TRUEsub_(3)=FALSEELSEsub_(3)=TRUE
6200=TRUE
6210DEFFNsub4_:IFsub_(4)ANDFNsub_=1 sub_(4)=TRUE:PROCsI(TakeCard_%,"sub4"):=TRUE
6220IFsub_(4)=TRUEsub_(4)=FALSEELSEsub_(4)=TRUE
6230=TRUE
6240DEFFNsub5_:IFsub_(5)ANDFNsub_=1 sub_(5)=TRUE:PROCsI(TakeCard_%,"sub5"):=TRUE
6250IFsub_(5)=TRUEsub_(5)=FALSEELSEsub_(5)=TRUE
6260=TRUE
6270DEFFNsub6_:IFsub_(6)ANDFNsub_=1 sub_(6)=TRUE:PROCsI(TakeCard_%,"sub6"):=TRUE
6280IFsub_(6)sub_(6)=FALSEELSEsub_(6)=TRUE
6290=TRUE
6310DEFFNTakemaxy_:PROCgettakemax:PROCsCI(!(TakeCard_%+12),19):=TRUE
6320DEFPROCgettakemax:Takemaxy_=VAL($!Takemaxy_%):IFTakemaxy_<4 Takemaxy_=4
6330$!Takemaxy_%=STR$(Takemaxy_):PROCrI(TakeCard_%,"Takemaxy"):ENDPROC
6360DEFFNTakeminny_:PROCgettakemax:PROCgettakemin:PROCsCI(!(TakeCard_%+12),19):=TRUE
6380DEFPROCgettakemin:Takeminny_=VAL($!Takeminny_%):IFTakeminny_<0 Takeminny_=0
6400IFTakeminny_>Takemaxy_-4 Takeminny_=Takemaxy_-4
6410$!Takeminny_%=STR$(Takeminny_):PROCrI(TakeCard_%,"Takeminny"):ENDPROC
6460DEFFNTakecGo_:PROCGetTitles:dummy_=RND(-TIME):PROCwhatlines_:PROCwhatqual:PROCwhatequals:PROCcalctake:PROCusI(TakeCard_%,"TakecGo"):last_=3:quit_=FALSE:Clue_$="CardsTake":started_%=TRUE:=FNsums
6520DEFPROCcalctake:SYS"Hourglass_On":PROCgettakemax:PROCgettakemin:many_=10:FORtr_%=1TO10:REPEAT:flag_=0:SYS"Hourglass_Percentage",tr_%/10*100:REPEAT:REPEAT:Na_%=RND(Takemaxy_):UNTILNa_%>=Takeminny_:REPEAT:Nb_%=RND(Takemaxy_+1):Nb_%=Nb_%-1:UNTILNb_%>=Takeminny_:UNTILNa_%-Nb_%>-1
6600IFtr_%>1THEN
6610FORe_%=1TOtr_%-1:IFNa_%=Na_%(e_%)ANDNb_%=Nb_%(e_%)flag_=1
6620NEXT
6630ENDIF:UNTILflag_=0:Na_%(tr_%)=Na_%:Nb_%(tr_%)=Nb_%:Nc_%(tr_%)=Na_%(tr_%)-Nb_%(tr_%):NEXT:SYS"Hourglass_Off":ENDPROC
6730DEFPROCTimesCards:TimesCard_%=FNfWS("TimesCards"):IFtim_(1)PROCsI(TimesCard_%,"tim1")
6750IFtim_(2)PROCsI(TimesCard_%,"tim2")
6760IFtim_(3)PROCsI(TimesCard_%,"tim3")
6770IFtim_(4)PROCsI(TimesCard_%,"tim4")
6780IFtim_(5)PROCsI(TimesCard_%,"tim5")
6790IFtim_(6)PROCsI(TimesCard_%,"tim6")
6800IFtim_(7)PROCsI(TimesCard_%,"tim7")
6810IFtim_(8)PROCsI(TimesCard_%,"tim8")
6820IFtim_(9)PROCsI(TimesCard_%,"tim9")
6830IFLineType_(1)PROCsI(TimesCard_%,"LineType1")
6840IFLineType_(2)PROCsI(TimesCard_%,"LineType2")
6850IFLineType_(3)PROCsI(TimesCard_%,"LineType3")
6860IFEqSign_PROCsI(TimesCard_%,"EqSign")
6870IFEqEquals_PROCsI(TimesCard_%,"EqEquals")
6880IFtimes_(1)PROCsI(TimesCard_%,"times1")
6890IFtimes_(2)PROCsI(TimesCard_%,"times2")
6900IFtimes_(3)PROCsI(TimesCard_%,"times3")
6910ENDPROC
6950DEFFNtim_:c_=0:FORh_=1TO9:IFtim_(h_)c_=c_+1
6960NEXT:=c_
6970DEFFNtim1_:IFtim_(1)ANDFNtim_=1 tim_(1)=TRUE:PROCsI(TimesCard_%,"tim1"):=TRUE
6980IFtim_(1)tim_(1)=FALSEELSEtim_(1)=TRUE
6990=TRUE
7000DEFFNtim2_:IFtim_(2)ANDFNtim_=1 tim_(2)=TRUE:PROCsI(TimesCard_%,"tim2"):=TRUE
7010IFtim_(2)tim_(2)=FALSEELSEtim_(2)=TRUE
7020=TRUE
7030DEFFNtim3_:IFtim_(3)ANDFNtim_=1 tim_(3)=TRUE:PROCsI(TimesCard_%,"tim3"):=TRUE
7040IFtim_(3)tim_(3)=FALSEELSEtim_(3)=TRUE
7050=TRUE
7060DEFFNtim4_:IFtim_(4)ANDFNtim_=1 tim_(4)=TRUE:PROCsI(TimesCard_%,"tim4"):=TRUE
7070IFtim_(4)tim_(4)=FALSEELSEtim_(4)=TRUE
7080=TRUE
7090DEFFNtim5_:IFtim_(5)ANDFNtim_=1 tim_(5)=TRUE:PROCsI(TimesCard_%,"tim5"):=TRUE
7100IFtim_(5)tim_(5)=FALSEELSEtim_(5)=TRUE
7110=TRUE
7120DEFFNtim6_:IFtim_(6)ANDFNtim_=1 tim_(6)=TRUE:PROCsI(TimesCard_%,"tim6"):=TRUE
7130IFtim_(6)tim_(6)=FALSEELSEtim_(6)=TRUE
7140=TRUE
7150DEFFNtim7_:IFtim_(7)ANDFNtim_=1 tim_(7)=TRUE:PROCsI(TimesCard_%,"tim7"):=TRUE
7160IFtim_(7)tim_(7)=FALSEELSEtim_(7)=TRUE
7170=TRUE
7180DEFFNtim8_:IFtim_(8)ANDFNtim_=1 tim_(8)=TRUE:PROCsI(TimesCard_%,"tim8"):=TRUE
7190IFtim_(8)tim_(8)=FALSEELSEtim_(8)=TRUE
7200=TRUE
7210DEFFNtim9_:IFtim_(9)ANDFNtim_=1 tim_(9)=TRUE:PROCsI(TimesCard_%,"tim9"):=TRUE
7220IFtim_(9)tim_(9)=FALSEELSEtim_(9)=TRUE
7230=TRUE
7250DEFFNtimes1_:IFtimes_(1)ANDtimes_(2)+times_(3)=FALSEtimes_(1)=TRUE:PROCsI(TimesCard_%,"times1"):=TRUE
7260IFtimes_(1)times_(1)=FALSEELSEtimes_(1)=TRUE
7270=TRUE
7280DEFFNtimes2_:IFtimes_(2)ANDtimes_(1)+times_(3)=FALSEtimes_(2)=TRUE:PROCsI(TimesCard_%,"times2"):=TRUE
7290IFtimes_(2)=TRUEtimes_(2)=FALSEELSEtimes_(2)=TRUE
7300=TRUE
7310DEFFNtimes3_:IFtimes_(3)ANDtimes_(1)+times_(2)=FALSEtimes_(3)=TRUE:PROCsI(TimesCard_%,"times3"):=TRUE
7320IFtimes_(3)=TRUEtimes_(3)=FALSEELSEtimes_(3)=TRUE
7330=TRUE
7370DEFFNTimescGo_:PROCGetTitles:dummy_=RND(-TIME):PROCwhatlines_:PROCwhatqual:PROCwhatequals:PROCwhattimes:PROCcalctimes:last_=3:quit_=FALSE:Clue_$="CardsTimes":started_%=TRUE:PROCusI(TimesCard_%,"TimescGo"):=FNsums
7440DEFPROCwhattimes:SYS"Hourglass_On":got_%=0:FORr_%=1TO9:IFtim_(r_%)=TRUETHENgot_%=got_%+1:gc_%(got_%)=r_%
7460NEXT:IFgot_%=1PROConetimes:SYS"Hourglass_Off":ENDPROC
7480IFgot_%>4PROCtimes(got_%,10):FORr_=1TO10:Nb_%(r_)=VAL(tim_$(finder_%(r_))):NEXT:SYS"Hourglass_Off":ENDPROC
7490needed_%=10DIVgot_%:FORr_=1TO10:gc_%(r_)=0:NEXT:got_%=0:FORr_%=1TO9:IFtim_(r_%)=TRUETHENgot_%=got_%+1:gc_%(got_%)=r_%
7520NEXT:REPEAT:flag_=TRUE:FORr_=1TO10:finder_%(r_)=0:NEXT:FORr_=1TO10:SYS"Hourglass_Percentage",r_/10*100:REPEAT:flig_=TRUE:ran_%=RND(got_%):IFr_>1ANDVAL(tim_$(gc_%(ran_%)))=Nb_%(r_-1)flig_=FALSE
7600UNTILflig_=TRUE:Nb_%(r_)=VAL(tim_$(gc_%(ran_%))):finder_%(ran_%)=finder_%(ran_%)+1:NEXT:FORt_=1TOgot_%:IFfinder_%(t_)<needed_% flag_=FALSE
7630NEXT:UNTILflag_=TRUE:SYS"Hourglass_Off":ENDPROC
7650DEFPROConetimes:FORr_%=1TO9:IFtim_(r_%)=TRUETHENFORtr_%=1TO10:Nb_%(tr_%)=VAL(tim_$(r_%)):NEXT
7680NEXT:ENDPROC
7700DEFPROCtimes(git_%,top_%):FORr_=1TOtop_%:finder_%(r_)=0:NEXT:FORh_=1TOgit_%:REPEAT:tf_=TRUE:h_%=gc_%(RND(git_%)):FORj_=1TOh_:IFfinder_%(j_)=h_% tf_=FALSE
7770NEXT:UNTILtf_=TRUE:finder_%(h_)=h_%:NEXT:k_=git_%+1:FORh_=k_TOtop_%:REPEAT:tf_=TRUE:REPEAT:h_%=gc_%(RND(git_%)):UNTILh_%<>finder_%(h_-1):IFh_>k_THEN
7860FORj_=k_TOh_:IFfinder_%(j_)=h_% tf_=FALSE
7880NEXT
7890ENDIF:UNTILtf_=TRUE:finder_%(h_)=h_%:NEXT:ENDPROC
7950DEFPROCcalctimes:SYS"Hourglass_On":FORtr_%=1TO10:SYS"Hourglass_Percentage",tr_%/10*100:REPEAT:flag_=0:Na_%=RND(10):Nb_%=Nb_%(tr_%):IFtr_%>1THEN
8020FORe_%=1TOtr_%-1:IFNa_%=Na_%(e_%)ANDNb_%=Nb_%(e_%)flag_=1
8030NEXT
8040ENDIF:UNTILflag_=0:Na_%(tr_%)=Na_%:Nb_%(tr_%)=Nb_%:Nc_%(tr_%)=Na_%(tr_%)*Nb_%(tr_%):NEXT:SYS"Hourglass_Off":ENDPROC
8130DEFPROCDivCards:DivCard_%=FNfWS("DivCards"):IFdiv_(1)=TRUEPROCsI(DivCard_%,"div1")
8150IFdiv_(2)=TRUEPROCsI(DivCard_%,"div2")
8160IFdiv_(3)=TRUEPROCsI(DivCard_%,"div3")
8170IFdiv_(4)=TRUEPROCsI(DivCard_%,"div4")
8180IFdiv_(5)=TRUEPROCsI(DivCard_%,"div5")
8190IFdiv_(6)=TRUEPROCsI(DivCard_%,"div6")
8200IFdiv_(7)=TRUEPROCsI(DivCard_%,"div7")
8210IFdiv_(8)=TRUEPROCsI(DivCard_%,"div8")
8220IFdiv_(9)=TRUEPROCsI(DivCard_%,"div9")
8230IFLineType_(1)=TRUEPROCsI(DivCard_%,"LineType1")
8240IFLineType_(2)=TRUEPROCsI(DivCard_%,"LineType2")
8250IFLineType_(3)=TRUEPROCsI(DivCard_%,"LineType3")
8260IFEqSign_=TRUEPROCsI(DivCard_%,"EqSign")
8270IFEqEquals_=TRUEPROCsI(DivCard_%,"EqEquals")
8280IFdive_(1)=TRUEPROCsI(DivCard_%,"dive1")
8290IFdive_(2)=TRUEPROCsI(DivCard_%,"dive2")
8300IFdive_(3)=TRUEPROCsI(DivCard_%,"dive3")
8310ENDPROC
8350DEFFNdiv_:c_=0:FORh_=1TO9:IFdiv_(h_)c_=c_+1
8360NEXT:=c_
8370DEFFNdiv1_:IFdiv_(1)ANDFNdiv_=1 div_(1)=TRUE:PROCsI(DivCard_%,"div1"):=TRUE
8380IFdiv_(1)div_(1)=FALSEELSEdiv_(1)=TRUE
8390=TRUE
8400DEFFNdiv2_:IFdiv_(2)ANDFNdiv_=1 div_(2)=TRUE:PROCsI(DivCard_%,"div2"):=TRUE
8410IFdiv_(2)div_(2)=FALSEELSEdiv_(2)=TRUE
8420=TRUE
8430DEFFNdiv3_:IFdiv_(3)ANDFNdiv_=1 div_(3)=TRUE:PROCsI(DivCard_%,"div3"):=TRUE
8440IFdiv_(3)div_(3)=FALSEELSEdiv_(3)=TRUE
8450=TRUE
8460DEFFNdiv4_:IFdiv_(4)ANDFNdiv_=1 div_(4)=TRUE:PROCsI(DivCard_%,"div4"):=TRUE
8470IFdiv_(4)div_(4)=FALSEELSEdiv_(4)=TRUE
8480=TRUE
8490DEFFNdiv5_:IFdiv_(5)ANDFNdiv_=1 div_(5)=TRUE:PROCsI(DivCard_%,"div5"):=TRUE
8500IFdiv_(5)div_(5)=FALSEELSEdiv_(5)=TRUE
8510=TRUE
8520DEFFNdiv6_:IFdiv_(6)ANDFNdiv_=1 div_(6)=TRUE:PROCsI(DivCard_%,"div6"):=TRUE
8530IFdiv_(6)div_(6)=FALSEELSEdiv_(6)=TRUE
8540=TRUE
8550DEFFNdiv7_:IFdiv_(7)ANDFNdiv_=1 div_(7)=TRUE:PROCsI(DivCard_%,"div7"):=TRUE
8560IFdiv_(7)div_(7)=FALSEELSEdiv_(7)=TRUE
8570=TRUE
8580DEFFNdiv8_:IFdiv_(8)ANDFNdiv_=1 div_(8)=TRUE:PROCsI(DivCard_%,"div8"):=TRUE
8590IFdiv_(8)div_(8)=FALSEELSEdiv_(8)=TRUE
8600=TRUE
8610DEFFNdiv9_:IFdiv_(9)ANDFNdiv_=1 div_(9)=TRUE:PROCsI(DivCard_%,"div9"):=TRUE
8620IFdiv_(9)div_(9)=FALSEELSEdiv_(9)=TRUE
8630=TRUE
8650DEFFNdive1_:IFdive_(1)ANDdive_(2)+dive_(3)=FALSEdive_(1)=TRUE:PROCsI(DivCard_%,"dive1"):=TRUE
8660IFdive_(1)=TRUEdive_(1)=FALSEELSEdive_(1)=TRUE:PROCsI(DivCard_%,"dive1")
8670=TRUE
8680DEFFNdive2_:IFdive_(2)=TRUEANDdive_(1)+dive_(3)=FALSEdive_(2)=TRUE:PROCsI(DivCard_%,"dive2"):=TRUE
8690IFdive_(2)=TRUEdive_(2)=FALSEELSEdive_(2)=TRUE:PROCsI(DivCard_%,"dive2")
8700=TRUE
8710DEFFNdive3_:IFdive_(3)=TRUEANDdive_(1)+dive_(2)=FALSEdive_(3)=TRUE:PROCsI(DivCard_%,"dive3"):=TRUE
8720IFdive_(3)=TRUEdive_(3)=FALSEELSEdive_(3)=TRUE:PROCsI(DivCard_%,"dive3")
8730=TRUE
8770DEFFNDivcGo_:PROCGetTitles:dummy_=RND(-TIME):PROCwhatlines_:PROCwhatqual:PROCwhatequals:PROCwhatdiv:PROCcalcdiv:last_=3:quit_=FALSE:Clue_$="CardsDiv":started_%=TRUE:PROCusI(DivCard_%,"DivcGo"):=FNsums
8840DEFPROCcalcdiv:SYS"Hourglass_On":FORtr_%=1TO10:REPEAT:flag_=0:SYS"Hourglass_Percentage",tr_%/10*100:Na_%=RND(10):Nb_%=Nb_%(tr_%):IFtr_%>1THEN
8910FORe_%=1TOtr_%-1:IFNa_%=Na_%(e_%)ANDNb_%=Nb_%(e_%)flag_=1
8920NEXT
8930ENDIF:UNTILflag_=0:tempa_(tr_%)=Na_%:NEXT:FORr_=1TO10:Na_%(r_)=tempa_(r_)*Nb_%(r_):Nc_%(r_)=tempa_(r_):NEXT:SYS"Hourglass_Off":ENDPROC
8980DEFPROCwhatdiv:SYS"Hourglass_On":got_%=0:FORr_%=1TO9:IFdiv_(r_%)=TRUETHENgot_%=got_%+1:gc_%(got_%)=r_%
9000NEXT:IFgot_%=1PROConediv:SYS"Hourglass_Off":ENDPROC
9020IFgot_%>4PROCtimes(got_%,10):FORr_=1TO10:Nb_%(r_)=VAL(div_$(finder_%(r_))):NEXT:SYS"Hourglass_Off":ENDPROC
9030needed_%=10DIVgot_%:FORr_=1TO10:gc_%(r_)=0:NEXT:got_%=0:FORr_%=1TO9:IFdiv_(r_%)=TRUETHENgot_%=got_%+1:gc_%(got_%)=r_%
9060NEXT:REPEAT:flag_=TRUE:FORr_=1TO10:finder_%(r_)=0:NEXT:FORr_=1TO10:SYS"Hourglass_Percentage",r_/10*100:ran_%=RND(got_%):Nb_%(r_)=VAL(div_$(gc_%(ran_%))):finder_%(ran_%)=finder_%(ran_%)+1:NEXT:FORt_=1TOgot_%:IFfinder_%(t_)<needed_% flag_=FALSE
9140NEXT:UNTILflag_=TRUE:SYS"Hourglass_Off":ENDPROC
9160DEFPROConediv:FORr_%=1TO9:IFdiv_(r_%)=TRUETHENFORtr_%=1TO10:Nb_%(tr_%)=VAL(div_$(r_%)):NEXT
9180NEXT:ENDPROC
9240DEFPROCAdd:WAdd_%=FNfWS("Add"):IFaddy_(1)PROCsI(WAdd_%,"Add1")
9260IFaddy_(2)PROCsI(WAdd_%,"Add2")
9270IFaddy_(3)PROCsI(WAdd_%,"Add3")
9280IFaddy_(4)PROCsI(WAdd_%,"Add4")
9290IFaddy_(5)PROCsI(WAdd_%,"Add5")
9300IFaddy_(6)PROCsI(WAdd_%,"Add6")
9310IFaddcarry_(1)PROCsI(WAdd_%,"AddCarry1")
9320IFaddcarry_(2)PROCsI(WAdd_%,"AddCarry2")
9330IFaddcarry_(3)PROCsI(WAdd_%,"AddCarry3")
9340IFAnowts_%PROCsI(WAdd_%,"Anowts")
9350ENDPROC
9390DEFFNAnowts_:IFaddcarry_(2)Anowts_%=FALSE:PROCusI(WAdd_%,"Anowts"):=TRUE
9400IFAnowts_%=FALSEAnowts_%=TRUEELSEAnowts_%=FALSE
9410PROCAcz:=TRUE
9430DEFPROCAcz:IFaddy_(1)ANDFNaddy_=1 Anowts_%=FALSE:PROCusI(WAdd_%,"Anowts")
9440ENDPROC
9460DEFFNaddy_:c_=0:FORt_=1TO6:IFaddy_(t_)c_=c_+1
9470NEXT:=c_
9480DEFFNAdd1_:IFaddy_(1)ANDFNaddy_=1 addy_(1)=TRUE:PROCsI(WAdd_%,"Add1"):=TRUE
9490IFaddy_(1)addy_(1)=FALSEELSEaddy_(1)=TRUE
9500PROCAcz:=TRUE
9510DEFFNAdd2_:IFaddy_(2)ANDFNaddy_=1 addy_(2)=TRUE:PROCsI(WAdd_%,"Add2"):=TRUE
9520IFaddy_(2)addy_(2)=FALSEELSEaddy_(2)=TRUE
9530PROCAcz:=TRUE
9540DEFFNAdd3_:IFaddy_(3)ANDFNaddy_=1 addy_(3)=TRUE:PROCsI(WAdd_%,"Add3"):=TRUE
9550IFaddy_(3)addy_(3)=FALSEELSEaddy_(3)=TRUE
9560PROCAcz:=TRUE
9570DEFFNAdd4_:IFaddy_(4)ANDFNaddy_=1 addy_(4)=TRUE:PROCsI(WAdd_%,"Add4"):=TRUE
9580IFaddy_(4)addy_(4)=FALSEELSEaddy_(4)=TRUE
9590PROCAcz:=TRUE
9600DEFFNAdd5_:IFaddy_(5)ANDFNaddy_=1 addy_(5)=TRUE:PROCsI(WAdd_%,"Add5"):=TRUE
9610IFaddy_(5)addy_(5)=FALSEELSEaddy_(5)=TRUE
9620PROCAcz:=TRUE
9630DEFFNAdd6_:IFaddy_(6)ANDFNaddy_=1 addy_(6)=TRUE:PROCsI(WAdd_%,"Add6"):=TRUE
9640IFaddy_(6)addy_(6)=FALSEELSEaddy_(6)=TRUE
9650PROCAcz:=TRUE
9670DEFFNAddCarry1_:IFaddcarry_(1)ANDaddcarry_(2)+addcarry_(3)=FALSEaddcarry_(1)=TRUE:PROCsI(WAdd_%,"AddCarry1"):=TRUE
9680IFaddcarry_(1)=FALSEaddcarry_(1)=TRUE:PROCsI(WAdd_%,"AddCarry1"):addcarry_(2)=FALSE:PROCusI(WAdd_%,"AddCarry2"):addcarry_(3)=FALSE:PROCusI(WAdd_%,"AddCarry3"):=TRUE
9690DEFFNAddCarry2_:IFaddcarry_(2)ANDaddcarry_(1)+addcarry_(3)=FALSEaddcarry_(2)=TRUE:PROCsI(WAdd_%,"AddCarry2"):=TRUE
9700IFaddcarry_(2)=FALSEaddcarry_(2)=TRUE:PROCsI(WAdd_%,"AddCarry2"):addcarry_(1)=FALSE:PROCusI(WAdd_%,"AddCarry1"):addcarry_(3)=FALSE:PROCusI(WAdd_%,"AddCarry3"):Anowts_%=FALSE:PROCusI(WAdd_%,"Anowts"):=TRUE
9710DEFFNAddCarry3_:IFaddcarry_(3)ANDaddcarry_(1)+addcarry_(2)=FALSEaddcarry_(3)=TRUE:PROCsI(WAdd_%,"AddCarry3"):=TRUE
9720IFaddcarry_(3)=FALSEaddcarry_(3)=TRUE:PROCsI(WAdd_%,"AddCarry3"):addcarry_(1)=FALSE:PROCusI(WAdd_%,"AddCarry1"):addcarry_(2)=FALSE:PROCusI(WAdd_%,"AddCarry2"):=TRUE
9730
9760DEFFNAddgo_:PROCGetTitles:many_=12:PROCwhatadds:PROCaddup:started_%=TRUE:PROCusI(WAdd_%,"Addgo"):SYS"Hourglass_Off":last_=3:quit_=FALSE:Clue_$="Add1a":=FNsums
9810DEFPROCwhatadds:got_%=0:FORr_=1TO6:IFaddy_(r_)got_%=got_%+1:addytype_(got_%)=r_:gc_%(got_%)=r_
9830NEXT:IFgot_%=1FORr_=1TO12:lineaddy_(r_)=addytype_(got_%):NEXT:ENDPROC
9850IFgot_%=6PROCtimes(got_%,12):FORr_=1TO12:lineaddy_(r_)=gc_%(finder_%(r_)):NEXT:SYS"Hourglass_Off":ENDPROC
9860needed_%=12DIVgot_%:SYS"Hourglass_On":REPEAT:FORr_=1TO12:finder_%(r_)=0:NEXT:flag_=TRUE:FORr_=1TO12:SYS"Hourglass_Percentage",r_/12*100:REPEAT:flig_=TRUE:ran_%=RND(got_%):IFr_>1ANDgc_%(ran_%)=lineaddy_(r_-1)flig_=FALSE
9970UNTILflig_=TRUE:lineaddy_(r_)=gc_%(ran_%):finder_%(ran_%)=finder_%(ran_%)+1:NEXT:FORt_=1TOgot_%:IFfinder_%(t_)<needed_% flag_=FALSE
10000NEXT:UNTILflag_=TRUE:SYS"Hourglass_Off":ENDPROC
10030DEFPROCaddup:dummy_=RND(-TIME):FORt_=1TO12:a_(t_)=-1:b_(t_)=-1:NEXT:SYS"Hourglass_On":FORt_=1TO12:IFlineaddy_(t_)=1 ran_%=9
10080IFlineaddy_(t_)=2 ran_%=99
10090IFlineaddy_(t_)=3 ran_%=999
10100IFlineaddy_(t_)=4 ran_%=9999
10110IFlineaddy_(t_)=5 ran_%=99999
10120IFlineaddy_(t_)=6 ran_%=999999
10130SYS"Hourglass_Percentage",t_/10*100:REPEAT:flag_=0:a_=RND(ran_%):b_=RND(ran_%):IFAnowts_%PROCAnoughts
10150IFaddcarry_(1)PROCnoaddcarry
10170IFaddcarry_(2)PROCalladdcarry
10180IFt_>1THEN
10190FORe_=1TOt_-1:IFa_=a_(e_)ANDb_=b_(e_)flag_=1
10200NEXT
10210ENDIF:UNTILflag_=0:a_(t_)=a_:b_(t_)=b_:c_(t_)=a_+b_:NEXT:ENDPROC
10270DEFPROCAnoughts:n_=RND(2):IFn_=1THEN
10300v_$=STR$(a_):FORw_=2TOLEN(v_$):rr_=RND(4):IFrr_=1ORrr_=2ORrr_=3THENMID$(v_$,w_,1)="0"
10320NEXT:a_=VAL(v_$)
10330ENDIF:IFn_=2THEN
10350v_$=STR$(b_):FORw_=2TOLEN(v_$):rr_=RND(4):IFrr_=1ORrr_=2ORrr_=3THENMID$(v_$,w_,1)="0"
10370NEXT:b_=VAL(v_$)
10380ENDIF:ENDPROC
10400DEFPROCnoaddcarry:a_$=STR$(a_):b_$=STR$(b_):la_=LEN(a_$):lb_=LEN(b_$):z_=la_:IFlb_<la_ z_=lb_
10420FORr_=z_TO1STEP-1:IFVAL(MID$(a_$,r_,1))+VAL(MID$(b_$,r_,1))>9 flag_=1
10440NEXT:ENDPROC
10460DEFPROCalladdcarry:a_$=STR$(a_):b_$=STR$(b_):la_=LEN(a_$):lb_=LEN(b_$):z_=la_:IFlb_>la_ z_=lb_
10480FORr_=z_TO1STEP-1:IFVAL(MID$(a_$,r_,1))+VAL(MID$(b_$,r_,1))<10 flag_=1
10490NEXT:ENDPROC
10550DEFPROCsubtract:WSub_%=FNfWS("Subtract"):IFsubby_(1)PROCsI(WSub_%,"Take1")
10570IFsubby_(2)PROCsI(WSub_%,"Take2")
10580IFsubby_(3)PROCsI(WSub_%,"Take3")
10590IFsubby_(4)PROCsI(WSub_%,"Take4")
10600IFsubby_(5)PROCsI(WSub_%,"Take5")
10610IFsubby_(6)PROCsI(WSub_%,"Take6")
10620IFsubcarry_(1)PROCsI(WSub_%,"SubCarry1")
10630IFsubcarry_(2)PROCsI(WSub_%,"SubCarry2")
10640IFsubcarry_(3)PROCsI(WSub_%,"SubCarry3")
10650IFnowts_%PROCsI(WSub_%,"nowts")
10660ENDPROC
10700DEFFNsubby_:c_=0:FORm_=1TO6:IFsubby_(m_)=TRUEc_=c_+1
10710NEXT:=c_
10720DEFFNTake1_:IFsubby_(1)ANDFNsubby_=1 subby_(1)=TRUE:PROCsI(WSub_%,"Take1"):PROCcz:=TRUE
10730IFsubby_(1)subby_(1)=FALSEELSEsubby_(1)=TRUE
10740PROCcz:=TRUE
10750DEFFNTake2_:IFsubby_(2)ANDFNsubby_=1 subby_(2)=TRUE:PROCsI(WSub_%,"Take2"):PROCcz:=TRUE
10760IFsubby_(2)subby_(2)=FALSEELSEsubby_(2)=TRUE
10770PROCcz:=TRUE
10780DEFFNTake3_:IFsubby_(3)ANDFNsubby_=1 subby_(3)=TRUE:PROCsI(WSub_%,"Take3"):PROCcz:=TRUE
10790IFsubby_(3)subby_(3)=FALSEELSEsubby_(3)=TRUE
10800PROCcz:=TRUE
10810DEFFNTake4_:IFsubby_(4)ANDFNsubby_=1 subby_(4)=TRUE:PROCsI(WSub_%,"Take4"):PROCcz:=TRUE
10820IFsubby_(4)subby_(4)=FALSEELSEsubby_(4)=TRUE
10830PROCcz:=TRUE
10840DEFFNTake5_:IFsubby_(5)ANDFNsubby_=1 subby_(5)=TRUE:PROCsI(WSub_%,"Take5"):PROCcz:=TRUE
10850IFsubby_(5)subby_(5)=FALSEELSEsubby_(5)=TRUE
10860PROCcz:=TRUE
10870DEFFNTake6_:IFsubby_(6)ANDFNsubby_=1 subby_(6)=TRUE:PROCsI(WSub_%,"Take6"):PROCcz:=TRUE
10880IFsubby_(6)subby_(6)=FALSEELSEsubby_(6)=TRUE
10890PROCcz:=TRUE
10910DEFFNSubCarry1_:IFsubcarry_(1)ANDsubcarry_(2)+subcarry_(3)=FALSEsubcarry_(1)=TRUE:PROCsI(WSub_%,"SubCarry1"):PROCcz:=TRUE
10920IFsubcarry_(1)=FALSEsubcarry_(1)=TRUE:PROCsI(WSub_%,"SubCarry1"):subcarry_(2)=FALSE:PROCusI(WSub_%,"SubCarry2"):subcarry_(3)=FALSE:PROCusI(WSub_%,"SubCarry3"):nowts_%=FALSE:PROCusI(WSub_%,"nowts"):PROCcz:=TRUE
10930DEFFNSubCarry2_:IFsubcarry_(2)ANDsubcarry_(1)+subcarry_(3)=FALSEsubcarry_(2)=TRUE:PROCsI(WSub_%,"SubCarry2"):PROCcz:=TRUE
10940IFsubcarry_(2)=FALSEsubcarry_(2)=TRUE:PROCsI(WSub_%,"SubCarry2"):subcarry_(1)=FALSE:PROCusI(WSub_%,"SubCarry1"):subcarry_(3)=FALSE:PROCusI(WSub_%,"SubCarry3"):PROCcz:=TRUE
10950DEFFNSubCarry3_:IFsubcarry_(3)ANDsubcarry_(2)+subcarry_(3)=FALSEsubcarry_(3)=TRUE:PROCsI(WSub_%,"SubCarry3"):PROCcz:=TRUE
10960IFsubcarry_(3)=FALSEsubcarry_(3)=TRUE:PROCsI(WSub_%,"SubCarry3"):subcarry_(1)=FALSE:PROCusI(WSub_%,"SubCarry1"):subcarry_(2)=FALSE:PROCusI(WSub_%,"SubCarry2"):PROCcz:=TRUE
10970
10980DEFFNnowts_:IFsubcarry_(1)nowts_%=FALSE:PROCusI(WSub_%,"nowts"):=FALSE
10990IFnowts_%=FALSEnowts_%=TRUE:PROCsI(WSub_%,"nowts")ELSEIFnowts_%=TRUEnowts_%=FALSE:PROCusI(WSub_%,"nowts")
11000PROCcz:=TRUE
11020DEFPROCcz:z_%=0:FORg_%=1TO6:IFsubby_(g_%)=TRUEz_%=z_%+1
11030NEXT:IFz_%=1ANDsubby_(1)=TRUEnowts_%=FALSE:PROCusI(WSub_%,"nowts"):subcarry_(1)=TRUE:PROCsI(WSub_%,"SubCarry1"):subcarry_(2)=FALSE:PROCusI(WSub_%,"SubCarry2"):subcarry_(3)=FALSE:PROCusI(WSub_%,"SubCarry3")
11040ENDPROC
11080DEFFNTakego_:PROCGetTitles:PROCwhattakes:PROCtakeup:last_=3:quit_=FALSE:Clue_$="Sub1a":started_%=TRUE:SYS"Hourglass_Off":PROCusI(WSub_%,"Takego"):=FNsums
11150DEFPROCwhattakes:got_%=0:FORr_=1TO6:IFsubby_(r_)got_%=got_%+1:subbytype_(got_%)=r_:gc_%(got_%)=r_
11170NEXT:IFgot_%=1FORr_=1TO12:linesubby_(r_)=subbytype_(got_%):NEXT:ENDPROC
11190IFgot_%=6PROCtimes(got_%,12):FORr_=1TO12:linesubby_(r_)=gc_%(finder_%(r_)):NEXT:SYS"Hourglass_Off":ENDPROC
11200needed_%=12DIVgot_%:REPEAT:FORr_=1TO12:finder_%(r_)=0:NEXT:flag_=TRUE:FORr_=1TO12:SYS"Hourglass_Percentage",r_/12*100:REPEAT:flig_=TRUE:ran_%=RND(got_%):IFr_>1ANDgc_%(ran_%)=linesubby_(r_-1)flig_=FALSE
11300UNTILflig_=TRUE:linesubby_(r_)=gc_%(ran_%):finder_%(ran_%)=finder_%(ran_%)+1:NEXT:FORt_=1TOgot_%:IFfinder_%(t_)<needed_% flag_=FALSE
11330NEXT:UNTILflag_=TRUE:SYS"Hourglass_Off":ENDPROC
11360DEFPROCtakeup:dummy_=RND(-TIME):FORt_=1TO12:a_(t_)=-1:b_(t_)=-1:NEXT:SYS"Hourglass_On":FORt_=1TO12:IFlinesubby_(t_)=1 ran_%=9
11410IFlinesubby_(t_)=2 ran_%=99
11420IFlinesubby_(t_)=3 ran_%=999
11430IFlinesubby_(t_)=4 ran_%=9999
11440IFlinesubby_(t_)=5 ran_%=99999
11450IFlinesubby_(t_)=6 ran_%=999999
11460SYS"Hourglass_Percentage",t_/10*100:REPEAT:flag_=0:REPEAT:a_=RND(ran_%):PROCnoughts:b_=RND(ran_%):UNTILa_>b_:IFsubcarry_(1)=TRUEPROCnosubcarry
11510IFsubcarry_(2)=TRUEPROCallsubcarry
11520IFt_>1THEN
11530FORe_=1TOt_-1:IFa_=a_(e_)ANDb_=b_(e_)flag_=1
11540NEXT
11550ENDIF:UNTILflag_=0:a_(t_)=a_:b_(t_)=b_:c_(t_)=a_-b_:NEXT:ENDPROC
11610DEFPROCnosubcarry:a_$=STR$(a_):b_$=STR$(b_):FORr_=1TOLEN(a_$):PROCcheckvall:NEXT:ENDPROC
11650DEFPROCallsubcarry:a_$=STR$(a_):b_$=STR$(b_):zz_=LEN(a_$):FORr_=zz_TO1STEP-1:IFr_<>1PROCcheckval
11680NEXT:ENDPROC
11700DEFPROCcheckval:IFVAL(MID$(b_$,r_,1))<=VAL(MID$(a_$,r_,1))flag_=1
11710ENDPROC
11730DEFPROCcheckvall:IFVAL(MID$(a_$,r_,1))<=VAL(MID$(b_$,r_,1))flag_=1
11740ENDPROC
11760DEFPROCnoughts:IFnowts_%=FALSEENDPROC
11770v_$=STR$(a_):FORw_=2TOLEN(v_$):rr_=RND(4):IFrr_=1ORrr_=2ORrr_=3THENMID$(v_$,w_,1)="0"
11790NEXT:a_=VAL(v_$):ENDPROC
11850DEFPROCmultiply:WMult_%=FNfWS("Multiply"):IFmulty_(1)PROCsI(WMult_%,"Multy1")
11870IFmulty_(2)PROCsI(WMult_%,"Multy2")
11880IFmulty_(3)PROCsI(WMult_%,"Multy3")
11890IFmulty_(4)PROCsI(WMult_%,"Multy4")
11900IFmulty_(5)PROCsI(WMult_%,"Multy5")
11910IFmulty_(6)PROCsI(WMult_%,"Multy6")
11920IFmult_(1)PROCsI(WMult_%,"mult1")
11930IFmult_(2)PROCsI(WMult_%,"mult2")
11940IFmult_(3)PROCsI(WMult_%,"mult3")
11950IFmult_(4)PROCsI(WMult_%,"mult4")
11960IFmult_(5)PROCsI(WMult_%,"mult5")
11970IFmult_(6)PROCsI(WMult_%,"mult6")
11980IFmult_(7)PROCsI(WMult_%,"mult7")
11990IFmult_(8)PROCsI(WMult_%,"mult8")
12000IFmult_(9)PROCsI(WMult_%,"mult9")
12010IFMnowts_%PROCsI(WMult_%,"Mnowts")
12020ENDPROC
12060DEFFNMnowts_:IFMnowts_%=FALSEMnowts_%=TRUEELSEMnowts_%=FALSE
12070PROCMcz:=TRUE
12090DEFPROCMcz:IFmulty_(1)ANDFNmulty_=1 Mnowts_%=FALSE:PROCusI(WMult_%,"Mnowts")
12100ENDPROC
12120DEFFNmulty_:c_=0:FORm_=1TO6:IFmulty_(m_)=TRUEc_=c_+1
12130NEXT:=c_
12140DEFFNMulty1_:IFmulty_(1)ANDFNmulty_=1 multy_(1)=TRUE:PROCsI(WMult_%,"Multy1"):=TRUE
12150IFmulty_(1)multy_(1)=FALSEELSEmulty_(1)=TRUE
12160PROCMcz:=TRUE
12170DEFFNMulty2_:IFmulty_(2)ANDFNmulty_=1 multy_(2)=TRUE:PROCsI(WMult_%,"Multy2"):=TRUE
12180IFmulty_(2)multy_(2)=FALSEELSEmulty_(2)=TRUE
12190PROCMcz:=TRUE
12200DEFFNMulty3_:IFmulty_(3)ANDFNmulty_=1 multy_(3)=TRUE:PROCsI(WMult_%,"Multy3"):=TRUE
12210IFmulty_(3)multy_(3)=FALSEELSEmulty_(3)=TRUE
12220PROCMcz:=TRUE
12230DEFFNMulty4_:IFmulty_(4)ANDFNmulty_=1 multy_(4)=TRUE:PROCsI(WMult_%,"Multy4"):=TRUE
12240IFmulty_(4)multy_(4)=FALSEELSEmulty_(4)=TRUE
12250PROCMcz:=TRUE
12260DEFFNMulty5_:IFmulty_(5)ANDFNmulty_=1 multy_(5)=TRUE:PROCsI(WMult_%,"Multy5"):=TRUE
12270IFmulty_(5)multy_(5)=FALSEELSEmulty_(5)=TRUE
12280PROCMcz:=TRUE
12290DEFFNMulty6_:IFmulty_(6)ANDFNmulty_=1 multy_(6)=TRUE:PROCsI(WMult_%,"Multy6"):=TRUE
12300IFmulty_(6)multy_(6)=FALSEELSEmulty_(6)=TRUE
12310PROCMcz:=TRUE
12320DEFFNmult_:c_=0:FORm_=1TO9:IFmult_(m_)=TRUEc_=c_+1
12330NEXT:=c_
12340DEFFNmult1_:IFmult_(1)ANDFNmult_=1mult_(1)=TRUE:PROCsI(WMult_%,"mult1"):=TRUE
12350IFmult_(1)mult_(1)=FALSEELSEmult_(1)=TRUE
12360=TRUE
12370DEFFNmult2_:IFmult_(2)ANDFNmult_=1 mult_(2)=TRUE:PROCsI(WMult_%,"mult2"):=TRUE
12380IFmult_(2)mult_(2)=FALSEELSEmult_(2)=TRUE
12390=TRUE
12400DEFFNmult3_:IFmult_(3)ANDFNmult_=1 mult_(3)=TRUE:PROCsI(WMult_%,"mult3"):=TRUE
12410IFmult_(3)mult_(3)=FALSEELSEmult_(3)=TRUE
12420=TRUE
12430DEFFNmult4_:IFmult_(4)ANDFNmult_=1 mult_(4)=TRUE:PROCsI(WMult_%,"mult4"):=TRUE
12440IFmult_(4)mult_(4)=FALSEELSEmult_(4)=TRUE
12450=TRUE
12460DEFFNmult5_:IFmult_(5)ANDFNmult_=1 mult_(5)=TRUE:PROCsI(WMult_%,"mult5"):=TRUE
12470IFmult_(5)mult_(5)=FALSEELSEmult_(5)=TRUE
12480=TRUE
12490DEFFNmult6_:IFmult_(6)ANDFNmult_=1 mult_(6)=TRUE:PROCsI(WMult_%,"mult6"):=TRUE
12500IFmult_(6)mult_(6)=FALSEELSEmult_(6)=TRUE
12510=TRUE
12520DEFFNmult7_:IFmult_(7)ANDFNmult_=1 mult_(7)=TRUE:PROCsI(WMult_%,"mult7"):=TRUE
12530IFmult_(7)mult_(7)=FALSEELSEmult_(7)=TRUE
12540=TRUE
12550DEFFNmult8_:IFmult_(8)ANDFNmult_=1 mult_(8)=TRUE:PROCsI(WMult_%,"mult8"):=TRUE
12560IFmult_(8)mult_(8)=FALSEELSEmult_(8)=TRUE
12570=TRUE
12580DEFFNmult9_:IFmult_(9)ANDFNmult_=1 mult_(9)=TRUE:PROCsI(WMult_%,"mult9"):=TRUE
12590IFmult_(9)mult_(9)=FALSEELSEmult_(9)=TRUE
12600=TRUE
12640DEFFNMultygo_:PROCGetTitles:dummy_=RND(-TIME):PROCwhatmultlines:PROCwhatmult:PROCcalcmult:last_=3:quit_=FALSE:Clue_$="Multy":started_%=TRUE:PROCusI(WMult_%,"Multygo"):SYS"Hourglass_Off":=FNsums
12690DEFPROCwhatmultlines:got_%=0:FORr_=1TO6:IFmulty_(r_)got_%=got_%+1:multytype_(got_%)=r_:gc_%(got_%)=r_
12710NEXT:IFgot_%=1FORr_=1TO12:linemulty_(r_)=multytype_(got_%):NEXT:ENDPROC
12730IFgot_%=6PROCtimes(got_%,12):FORr_=1TO12:linemulty_(r_)=gc_%(finder_%(r_)):NEXT:SYS"Hourglass_Off":ENDPROC
12740needed_%=12DIVgot_%:SYS"Hourglass_On":REPEAT:FORr_=1TO12:finder_%(r_)=0:NEXT:flag_=TRUE:FORr_=1TO12:SYS"Hourglass_Percentage",r_/12*100:REPEAT:flig_=TRUE:ran_%=RND(got_%):IFr_>1ANDgc_%(ran_%)=linemulty_(r_-1)flig_=FALSE
12840UNTILflig_=TRUE:linemulty_(r_)=gc_%(ran_%):finder_%(ran_%)=finder_%(ran_%)+1:NEXT:FORt_=1TOgot_%:IFfinder_%(t_)<needed_% flag_=FALSE
12870NEXT:UNTILflag_=TRUE:SYS"Hourglass_Off":ENDPROC
12900DEFPROCcalcmult:IFFNmult_=1ANDFNmulty_=1ANDmulty_(1)many_=9ELSEmany_=12
12920SYS"Hourglass_On":FORt_=1TOmany_:IFlinemulty_(t_)=1 ran_%=9:rn_%=0
12950IFlinemulty_(t_)=2 ran_%=99:rn_%=9
12960IFlinemulty_(t_)=3 ran_%=999:rn_%=99
12970IFlinemulty_(t_)=4 ran_%=9999:rn_%=999
12980IFlinemulty_(t_)=5 ran_%=99999:rn_%=9999
12990IFlinemulty_(t_)=6 ran_%=999999:rn_%=99999
13000SYS"Hourglass_Percentage",t_/12*100:REPEAT:flag_=0:REPEAT:a_=RND(ran_%):UNTILa_>rn_%:b_=Nb_%(t_):IFt_>1THEN
13040FORe_=1TOt_-1:IFa_=a_(e_)ANDb_=b_(e_)flag_=1
13050NEXT
13060ENDIF:IFMnowts_%PROCMnoughts
13080UNTILflag_=0:a_(t_)=a_:b_(t_)=b_:c_(t_)=a_*b_:NEXT:started_%=TRUE:SYS"Hourglass_Off":ENDPROC
13130DEFPROCMnoughts:v_$=STR$(a_):FORw_=2TOLEN(v_$):rr_=RND(4):IFrr_=1ORrr_=2ORrr_=3THENMID$(v_$,w_,1)="0"
13150NEXT:a_=VAL(v_$):ENDPROC
13170DEFPROConemult:FORr_%=1TO9:IFmult_(r_%)=TRUETHENFORtr_%=1TO12:Nb_%(tr_%)=VAL(mult_$(r_%)):NEXT
13180NEXT:ENDPROC
13200DEFPROCwhatmult:FORr_=1TO12:gc_%(r_)=0:NEXT:got_%=0:FORr_%=1TO9:IFmult_(r_%)=TRUEgot_%=got_%+1:gc_%(got_%)=r_%
13230NEXT:IFgot_%=1PROConemult:ENDPROC
13250IFgot_%>5PROCtimes(got_%,12):FORr_=1TO12:Nb_%(r_)=VAL(mult_$(finder_%(r_))):NEXT:ENDPROC
13260SYS"Hourglass_On":needed_%=12DIVgot_%:REPEAT:flag_=TRUE:FORr_=1TO12:finder_%(r_)=0:NEXT:FORr_=1TO12:SYS"Hourglass_Percentage",r_/12*100:ran_%=RND(got_%):Nb_%(r_)=VAL(mult_$(gc_%(ran_%))):finder_%(ran_%)=finder_%(ran_%)+1:NEXT
13340FORt_=1TOgot_%:IFfinder_%(t_)<needed_% flag_=FALSE
13350NEXT:UNTILflag_=TRUE:SYS"Hourglass_Off":ENDPROC
13410DEFPROCDivide:WDiv_%=FNfWS("Divide"):IFdvy_(1)PROCsI(WDiv_%,"Divy1")
13440IFdvy_(2)PROCsI(WDiv_%,"Divy2")
13450IFdvy_(3)PROCsI(WDiv_%,"Divy3")
13460IFdvy_(4)PROCsI(WDiv_%,"Divy4")
13470IFdvy_(5)PROCsI(WDiv_%,"Divy5")
13480IFdv_(1)PROCsI(WDiv_%,"dv1")
13490IFdv_(2)PROCsI(WDiv_%,"dv2")
13500IFdv_(3)PROCsI(WDiv_%,"dv3")
13510IFdv_(4)PROCsI(WDiv_%,"dv4")
13520IFdv_(5)PROCsI(WDiv_%,"dv5")
13530IFdv_(6)PROCsI(WDiv_%,"dv6")
13540IFdv_(7)PROCsI(WDiv_%,"dv7")
13550IFdv_(8)PROCsI(WDiv_%,"dv8")
13560IFdv_(9)PROCsI(WDiv_%,"dv9")
13570IFDnowts_%PROCsI(WDiv_%,"Dnowts")
13580PROCremainders:ENDPROC
13620DEFFNDnowts_:IFDnowts_%=FALSEDnowts_%=TRUEELSEDnowts_%=FALSE
13630PROCDcz:=TRUE
13650DEFPROCDcz:IFdvy_(1)ANDFNdvy=1 Dnowts_%=FALSE:PROCusI(WDiv_%,"Dnowts")
13660ENDPROC
13680DEFPROCremainders:IFRemainder_$="No"PROCsI(WDiv_%,"Drem1"):PROCusI(WDiv_%,"Drem2"):PROCusI(WDiv_%,"Drem3")
13700IFRemainder_$="All"PROCsI(WDiv_%,"Drem2"):PROCusI(WDiv_%,"Drem1"):PROCusI(WDiv_%,"Drem3")
13710IFRemainder_$="Ran"PROCsI(WDiv_%,"Drem3"):PROCusI(WDiv_%,"Drem1"):PROCusI(WDiv_%,"Drem2")
13720ENDPROC
13740DEFFNDrem1_:Remainder_$="No":PROCremainders:=TRUE
13750DEFFNDrem2_:Remainder_$="All":PROCremainders:=TRUE
13760DEFFNDrem3_:Remainder_$="Ran":PROCremainders:=TRUE
13780DEFFNdvy:c_=0:FORh_=1TO5:IFdvy_(h_)=TRUEc_=c_+1
13790NEXT:=c_
13800DEFFNDivy1_:IFdvy_(1)ANDFNdvy=1 dvy_(1)=TRUE:PROCsI(WDiv_%,"Divy1"):=TRUE
13820IFdvy_(1)dvy_(1)=FALSEELSEdvy_(1)=TRUE
13830PROCDcz:=TRUE
13840DEFFNDivy2_:IFdvy_(2)ANDFNdvy=1 dvy_(2)=TRUE:PROCsI(WDiv_%,"Divy2"):=TRUE
13860IFdvy_(2)dvy_(2)=FALSEELSEdvy_(2)=TRUE
13870PROCDcz:=TRUE
13880DEFFNDivy3_:IFdvy_(3)ANDFNdvy=1 dvy_(3)=TRUE:PROCsI(WDiv_%,"Divy3"):=TRUE
13900IFdvy_(3)dvy_(3)=FALSEELSEdvy_(3)=TRUE
13910PROCDcz:=TRUE
13920DEFFNDivy4_:IFdvy_(4)ANDFNdvy=1 dvy_(4)=TRUE:PROCsI(WDiv_%,"Divy4"):=TRUE
13940IFdvy_(4)dvy_(4)=FALSEELSEdvy_(4)=TRUE
13950PROCDcz:=TRUE
13960DEFFNDivy5_:IFdvy_(5)ANDFNdvy=1 dvy_(5)=TRUE:PROCsI(WDiv_%,"Divy5"):=TRUE
13980IFdvy_(5)dvy_(5)=FALSEELSEdvy_(5)=TRUE
13990PROCDcz:=TRUE
14000DEFFNdv:c_=0:FORh_=1TO9:IFdv_(h_)=TRUEc_=c_+1
14010NEXT:=c_
14020DEFFNdv1_:IFdv_(1)ANDFNdv=1 dv_(1)=TRUE:PROCsI(WDiv_%,"dv1"):=TRUE
14040IFdv_(1)dv_(1)=FALSEELSEdv_(1)=TRUE
14050=TRUE
14060DEFFNdv2_:IFdv_(2)ANDFNdv=1 dv_(2)=TRUE:PROCsI(WDiv_%,"dv2"):=TRUE
14080IFdv_(2)dv_(2)=FALSEELSEdv_(2)=TRUE
14090=TRUE
14100DEFFNdv3_:IFdv_(3)ANDFNdv=1 dv_(3)=TRUE:PROCsI(WDiv_%,"dv3"):=TRUE
14120IFdv_(3)dv_(3)=FALSEELSEdv_(3)=TRUE
14130=TRUE
14140DEFFNdv4_:IFdv_(4)ANDFNdv=1 dv_(4)=TRUE:PROCsI(WDiv_%,"dv4"):=TRUE
14160IFdv_(4)dv_(4)=FALSEELSEdv_(4)=TRUE
14170=TRUE
14180DEFFNdv5_:IFdv_(5)ANDFNdv=1 dv_(5)=TRUE:PROCsI(WDiv_%,"dv5"):=TRUE
14200IFdv_(5)dv_(5)=FALSEELSEdv_(5)=TRUE
14210=TRUE
14220DEFFNdv6_:IFdv_(6)ANDFNdv=1 dv_(6)=TRUE:PROCsI(WDiv_%,"dv6"):=TRUE
14240IFdv_(6)dv_(6)=FALSEELSEdv_(6)=TRUE
14250=TRUE
14260DEFFNdv7_:IFdv_(7)ANDFNdv=1 dv_(7)=TRUE:PROCsI(WDiv_%,"dv7"):=TRUE
14280IFdv_(7)dv_(7)=FALSEELSEdv_(7)=TRUE
14290=TRUE
14300DEFFNdv8_:IFdv_(8)ANDFNdv=1 dv_(8)=TRUE:PROCsI(WDiv_%,"dv8"):=TRUE
14320IFdv_(8)dv_(8)=FALSEELSEdv_(8)=TRUE
14330=TRUE
14340DEFFNdv9_:IFdv_(9)ANDFNdv=1 dv_(9)=TRUE:PROCsI(WDiv_%,"dv9"):=TRUE
14360IFdv_(9)dv_(9)=FALSEELSEdv_(9)=TRUE
14370=TRUE
14410DEFFNDivyGo_:PROCGetTitles:dummy_=RND(-TIME):PROCwhatdivline:PROCwhatdivy:PROCcalcdivy:last_=3:quit_=FALSE:Clue_$="Divy":started_%=TRUE:SYS"Hourglass_Off":PROCusI(WDiv_%,"DivyGo"):=FNsums
14460DEFFNsums:IFFNgWx("Choices")THENn_=FNwindow("GrafIt"):n_=FNwindow("Choices"):=TRUEELSE=FNwindow("GrafIt")
14470
14480DEFPROConedvy:FORr_%=1TO9:IFdv_(r_%)THENFORtr_%=1TO12:Nb_%(tr_%)=VAL(dv_$(r_%)):NEXT
14490NEXT:ENDPROC
14510DEFPROCwhatdivy:FORr_=1TO12:gc_%(r_)=0:NEXT:got_%=0:FORr_%=1TO9:IFdv_(r_%)=TRUEgot_%=got_%+1:gc_%(got_%)=r_%
14530NEXT:IFgot_%=1PROConedvy:ENDPROC
14550IFgot_%>5PROCtimes(got_%,12):FORr_=1TO12:Nb_%(r_)=VAL(dv_$(finder_%(r_))):NEXT:ENDPROC
14560SYS"Hourglass_On":needed_%=12DIVgot_%:REPEAT:FORr_=1TO12:finder_%(r_)=0:NEXT:flag_=TRUE:FORr_=1TO12:SYS"Hourglass_Percentage",r_/12*100:REPEAT:flig_=TRUE:ran_%=RND(got_%):Nb_%=VAL(dv_$(gc_%(ran_%))):IFr_>1THEN
14620IFNb_%=Nb_%(r_-1)flig_=FALSE
14630ENDIF:UNTILflig_=TRUE:Nb_%(r_)=VAL(dv_$(gc_%(ran_%))):finder_%(ran_%)=finder_%(ran_%)+1:NEXT:FORt_=1TOgot_%:IFfinder_%(t_)<needed_% flag_=FALSE
14680NEXT:UNTILflag_=TRUE:SYS"Hourglass_Off":ENDPROC
14700DEFPROCwhatdivline:got_%=0:FORr_=1TO5:IFdvy_(r_)got_%=got_%+1:gc_%(got_%)=r_
14720NEXT:IFgot_%=1THENFORr_=1TO12:linedvy_(r_)=gc_%(got_%):NEXT:ENDPROC
14740needed_%=12DIVgot_%:REPEAT:flag_=TRUE:FORr_=1TO12:REPEAT:flig_=TRUE:ran_%=RND(got_%):linedvy_=gc_%(ran_%):IFr_>1THEN
14790IFlinedvy_=linedvy_(r_-1)flig_=FALSE
14800ENDIF:UNTILflig_=TRUE:linedvy_(r_)=gc_%(ran_%):finder_%(ran_%)=finder_%(ran_%)+1:NEXT:FORtr_=1TOgot_%:IFfinder_%(tr_)<needed_% flag_=FALSE
14850NEXT:UNTILflag_=TRUE:ENDPROC
14890DEFPROCDnoughts:v_$=STR$(a_):FORw_=2TOLEN(v_$):rr_=RND(4):IFrr_=1ORrr_=2ORrr_=3THENMID$(v_$,w_,1)="0"
14910NEXT:a_=VAL(v_$):ENDPROC
14930DEFPROCcalcdivy:many_=12:tr_=FALSE:IFFNdvy=1ANDFNdv=1ANDdvy_(1)ANDRemainder_$="No" tr_=TRUE
14950IFtr_ANDdv_(7)ORtr_ANDdv_(8)ORtr_ANDdv_(9)many_=9
14960SYS"Hourglass_On":FORt_=1TOmany_:IFlinedvy_(t_)=1 ran_%=99:rn_%=9
14980IFlinedvy_(t_)=2 ran_%=999:rn_%=99
14990IFlinedvy_(t_)=3 ran_%=9999:rn_%=999
15000IFlinedvy_(t_)=4 ran_%=99999:rn_%=9999
15010IFlinedvy_(t_)=5 ran_%=999999:rn_%=99999
15020SYS"Hourglass_Percentage",t_/12*100:REPEAT:flag_=0:IFRemainder_$="No"THEN
15050REPEAT:a_=RND(ran_%):b_=Nb_%(t_):IFDnowts_%PROCDnoughts
15070UNTILa_MODb_=0ANDa_>rn_%
15080ENDIF:IFRemainder_$="All"PROCremp
15100IFRemainder_$="Ran"THEN
15110randy_=RND(2):IFrandy_=1THEN
15130REPEAT:a_=RND(ran_%):b_=Nb_%(t_):IFDnowts_%PROCDnoughts
15150UNTILa_MODb_=0ANDa_>rn_%
15160ENDIF:IFrandy_=2PROCremp
15180ENDIF:IFt_>1THEN
15210FORe_=1TOt_-1:IFa_=a_(e_)ANDb_=b_(e_)flag_=1
15220NEXT
15230ENDIF:UNTILflag_=0:a_(t_)=a_:b_(t_)=b_:IFa_MODb_<>0 c_(t_)=a_DIVb_:rem_(t_)=a_MODb_ELSEc_(t_)=a_/b_:rem_(t_)=0
15270NEXT:started_%=TRUE:SYS"Hourglass_Off":ENDPROC
15290DEFPROCremp:REPEAT:remflag=TRUE:a_=RND(ran_%):b_=Nb_%(t_):IFDnowts_%PROCDnoughts
15330c_=a_/b_:poin_=0:c_$=STR$(c_):FORcc_=1TOLEN(c_$):IFMID$(c_$,cc_,1)="." poin_=cc_
15360NEXT:cz_$=MID$(c_$,poin_+1,LEN(c_$)-poin_+1):IFLEN(cz_$)>pwon_ANDMID$(cz_$,pwon_,1)="9"ANDVAL(MID$(cz_$,pwon_+1,1))>4 remflag=FALSE
15390UNTILa_MODb_<>0ANDa_>rn_%ANDremflag=TRUE:IFLEN(cz_$)>pwon_ANDVAL(MID$(cz_$,pwon_+1,1))>4THEN
15420d_=VAL(MID$(cz_$,pwon_,1)):d_=d_+1:d_$=STR$(d_):MID$(cz_$,pwon_,1)=d_$
15440ENDIF:IFLEN(cz_$)<pwon_ cz_$=cz_$+STRING$(pwon_-LEN(cz_$),"0")
15470cz_$(t_)=MID$(cz_$,1,pwon_):ENDPROC
15540DEFPROCMagic:Magic_%=FNfWS("Magic"):IFMagRange_$="1 to 25"PROCsI(Magic_%,"Range1")
15560IFMagRange_$="25 to 50"PROCsI(Magic_%,"Range2")
15570IFMagRange_$="50 to 100"PROCsI(Magic_%,"Range3")
15580IFMagRange_$="100 to 1000"PROCsI(Magic_%,"Range4")
15590ENDPROC
15630DEFFNRange1_:IFMagRange_$="1 to 25"PROCsI(Magic_%,"Range1"):=TRUE
15640MagRange_$="1 to 25":PROCusI(Magic_%,"Range2"):PROCusI(Magic_%,"Range3"):PROCusI(Magic_%,"Range4"):=TRUE
15670DEFFNRange2_:IFMagRange_$="25 to 50"PROCsI(Magic_%,"Range2"):=TRUE
15680MagRange_$="25 to 50":PROCusI(Magic_%,"Range1"):PROCusI(Magic_%,"Range3"):PROCusI(Magic_%,"Range4"):=TRUE
15710DEFFNRange3_:IFMagRange_$="50 to 100"PROCsI(Magic_%,"Range3"):=TRUE
15720MagRange_$="50 to 100":PROCusI(Magic_%,"Range1"):PROCusI(Magic_%,"Range2"):PROCusI(Magic_%,"Range4"):=TRUE
15750DEFFNRange4_:IFMagRange_$="100 to 1000"PROCsI(Magic_%,"Range4"):=TRUE
15760MagRange_$="100 to 1000":PROCusI(Magic_%,"Range1"):PROCusI(Magic_%,"Range2"):PROCusI(Magic_%,"Range3"):=TRUE
15820DEFFNMag1_:Mag_=FALSE:PROCusI(Magic_%,"Mag1"):last_=3:quit_=FALSE:Clue_$="Magic":started_%=TRUE:=FNsums
15870DEFPROCMag1:dummy_=RND(-TIME):IFMag_=FALSEPROCprepare
15890left_=X%+60:startleft_=left_:origleft_=left_:on_=90:down_=Y%-140:origdown_=down_:startdown_=down_:side_=75:s_=0:number_=0:FORqq_=1TO3:FORww_=1TO3:number_=number_+1:MOVEleft_-40,down_:PRINTSTR$(number_)+")":t_=0:PROCboxes:down_=startdown_
15980startleft_=startleft_+side_*3+on_:left_=startleft_:NEXT:startleft_=origleft_:left_=startleft_:startdown_=startdown_-side_*3-on_+70:down_=startdown_:NEXT:Mag_=TRUE:ENDPROC
16060DEFPROCboxes:s_=s_+1:FORq_=1TO3:FORw_=1TO3:t_=t_+1:MOVEleft_,down_:DRAWleft_+side_,down_:DRAWleft_+side_,down_-side_:DRAWleft_,down_-side_:DRAWleft_,down_:ins_=8:a_$=STR$(magic_(s_,t_)):IFAnswer_%=TRUEPROCmagicans
16150IFMID$(pat_$(pattern_(s_)),t_,1)="1"MOVEleft_+side_/2-LEN(a_$)/2*16,down_-side_/2+12:PRINTFNzero(a_$)
16160left_=left_+side_:NEXT:left_=startleft_:down_=down_-side_:NEXT:ENDPROC
16200DEFPROCmagicans:IFMID$(pat_$(pattern_(s_)),t_,1)="0"MOVEleft_+ins_,down_-ins_:DRAWleft_+side_-ins_,down_-ins_:DRAWleft_+side_-ins_,down_-side_+ins_:DRAWleft_+ins_,down_-side_+ins_:DRAWleft_+ins_,down_-ins_
16220IFMID$(pat_$(pattern_(s_)),t_,1)="0"MOVEleft_+side_/2-LEN(a_$)/2*16,down_-side_/2+12:PRINTFNzero(a_$)
16230ENDPROC
16250DEFPROCprepare:pat_$(1)="001011001":pat_$(2)="001010110":pat_$(3)="110100100":pat_$(4)="000010111":pat_$(5)="111000100":pat_$(6)="100010101":bas_$(1)="294753618":bas_$(2)="816357492":bas_$(3)="492357816"
16290bas_$(4)="618753294":bas_$(5)="294753618":bas_$(6)="816357492":bas_$(7)="492357816":bas_$(8)="618753294":bas_$(9)="294753618":FORf_=1TO9:pattern_(f_)=-1:NEXT:FORf_=1TO9:REPEAT:flag_=0:pattern_=RND(6):IFf_>1ANDf_<7THEN
16370FORj_=1TOf_:IFpattern_(j_)=pattern_ flag_=1
16380NEXT
16390ENDIF:UNTILflag_=0:pattern_(f_)=pattern_:NEXT:IFMagRange_$="1 to 25"THENtoprange_=25:botrange_=0
16440IFMagRange_$="25 to 50"THENtoprange_=50:botrange_=24
16450IFMagRange_$="50 to 100"THENtoprange_=100:botrange_=49
16460IFMagRange_$="100 to 1000"THENtoprange_=1000:botrange_=99
16470FORf_=1TO9:baa_(f_)=-1:NEXT:FORf_=1TO9:REPEAT:flag_=0:REPEAT:baa_=RND(toprange_)-9:UNTILbaa_>botrange_:FORj_=1TO9:IFbaa_(j_)=baa_ flag_=1
16550NEXT:UNTILflag_=0:baa_(f_)=baa_:NEXT:FORq_=1TO9:n_=0:FORw_=1TO9:n_=n_+1:FORy_=1TO9:bas_(y_)=VAL(MID$(bas_$(q_),y_,1))+baa_(q_)-1:NEXT:magic_(q_,w_)=bas_(n_):NEXT:NEXT:ENDPROC
16730DEFPROCSadd:Sad_%=FNfWS("Sadd"):IFf_(1)PROCsI(Sad_%,"F1")ELSEPROCusI(Sad_%,"F1")
16750IFf_(2)PROCsI(Sad_%,"F2")ELSEPROCusI(Sad_%,"F2")
16760IFf_(3)PROCsI(Sad_%,"F3")ELSEPROCusI(Sad_%,"F3")
16770IFf_(4)PROCsI(Sad_%,"F4")ELSEPROCusI(Sad_%,"F4")
16780IFf_(5)PROCsI(Sad_%,"F5")ELSEPROCusI(Sad_%,"F5")
16790IFf_(6)PROCsI(Sad_%,"F6")ELSEPROCusI(Sad_%,"F6")
16800IFf_(7)PROCsI(Sad_%,"F7")ELSEPROCusI(Sad_%,"F7")
16810IFf_(8)PROCsI(Sad_%,"F8")ELSEPROCusI(Sad_%,"F8")
16820IFf_(9)PROCsI(Sad_%,"F9")ELSEPROCusI(Sad_%,"F9")
16830IFf_(10)PROCsI(Sad_%,"F10")ELSEPROCusI(Sad_%,"F10")
16840IFf_(11)PROCsI(Sad_%,"F11")ELSEPROCusI(Sad_%,"F11")
16850IFf_(12)PROCsI(Sad_%,"F12")ELSEPROCusI(Sad_%,"F12")
16860IFSadcarry_(1)PROCsI(Sad_%,"SadCarry1")ELSEPROCusI(Sad_%,"SadCarry1")
16870IFSadcarry_(2)PROCsI(Sad_%,"SadCarry2")ELSEPROCusI(Sad_%,"SadCarry2")
16880IFSadcarry_(3)PROCsI(Sad_%,"SadCarry3")ELSEPROCusI(Sad_%,"SadCarry3")
16890IFFracadd_PROCsI(Sad_%,"Fracadd")ELSEPROCusI(Sad_%,"Fracadd")
16900IFFractake_PROCsI(Sad_%,"Fractake")ELSEPROCusI(Sad_%,"Fractake")
16910IFaddoms_PROCsI(Sad_%,"addoms")ELSEPROCusI(Sad_%,"addoms")
16920IFAddReps_PROCsI(Sad_%,"AddReps")ELSEPROCusI(Sad_%,"AddReps")
16930IFsubdoms_PROCsI(Sad_%,"subdoms")ELSEPROCusI(Sad_%,"subdoms")
16940IFSubReps_PROCsI(Sad_%,"SubReps")ELSEPROCusI(Sad_%,"SubReps")
16950ENDPROC
16990DEFFNFracadd_:IFFractake_=FALSETHENPROCsI(Sad_%,"Fracadd"):=FALSE
17000IFFracadd_THEN
17010Fracadd_=FALSE:PROCusI(Sad_%,"Fracadd"):addoms_=FALSE:PROCusI(Sad_%,"addoms"):Sadcarry_(1)=FALSE:PROCusI(Sad_%,"SadCarry1"):Sadcarry_(2)=FALSE:PROCusI(Sad_%,"SadCarry2"):Sadcarry_(3)=FALSE:PROCusI(Sad_%,"SadCarry3"):AddReps_=FALSE:PROCusI(Sad_%,"AddReps")
17070ELSE:Fracadd_=TRUE:PROCsI(Sad_%,"Fracadd"):addoms_=FALSE:PROCusI(Sad_%,"addoms"):Sadcarry_(1)=FALSE:PROCusI(Sad_%,"SadCarry1"):Sadcarry_(2)=FALSE:PROCusI(Sad_%,"SadCarry2"):Sadcarry_(3)=TRUE:PROCsI(Sad_%,"SadCarry3"):AddReps_=FALSE:PROCusI(Sad_%,"AddReps")
17140ENDIF:=TRUE
17170DEFFNFractake_:IFFracadd_=FALSETHENPROCsI(Sad_%,"Fractake"):=FALSE
17180IFFractake_THEN
17190Fractake_=FALSE:PROCusI(Sad_%,"Fractake")
17200ELSE:Fractake_=TRUE:PROCsI(Sad_%,"Fractake")
17220ENDIF:subdoms_=FALSE:PROCusI(Sad_%,"subdoms"):SubReps_=FALSE:PROCusI(Sad_%,"SubReps"):=TRUE
17270DEFFNaddoms_:IFFracadd_=FALSEaddoms_=FALSE:PROCusI(Sad_%,"addoms"):=FALSE
17280IFaddoms_=TRUEaddoms_=FALSE:PROCusI(Sad_%,"addoms")ELSEaddoms_=TRUE:PROCsI(Sad_%,"addoms")
17290=TRUE
17310DEFFNAddReps_:IFFracadd_=FALSEAddReps_=FALSE:PROCusI(Sad_%,"AddReps"):=FALSE
17320IFAddReps_=TRUEAddReps_=FALSE:PROCusI(Sad_%,"AddReps")ELSEAddReps_=TRUE:PROCsI(Sad_%,"AddReps")
17330=TRUE
17350DEFFNsubdoms_:IFFractake_=FALSEsubdoms_=FALSE:PROCusI(Sad_%,"subdoms"):=FALSE
17360IFsubdoms_=TRUEsubdoms_=FALSE:PROCusI(Sad_%,"subdoms")ELSEsubdoms_=TRUE:PROCsI(Sad_%,"subdoms")
17370=TRUE
17390DEFFNSubReps_:IFFractake_=FALSESubReps_=FALSE:PROCusI(Sad_%,"SubReps"):=TRUE
17400IFSubReps_=TRUESubReps_=FALSE:PROCusI(Sad_%,"SubReps")ELSESubReps_=TRUE:PROCsI(Sad_%,"SubReps")
17410=TRUE
17430DEFFNf_:c_=0:FORh_=1TO12:IFf_(h_)=TRUEc_=c_+1
17440NEXT:=c_
17450DEFFNF1_:IFf_(1)=TRUEANDFNf_=1 f_(1)=TRUE:PROCsI(Sad_%,"F1"):=FALSE
17460IFf_(1)=TRUEf_(1)=FALSEELSEf_(1)=TRUE
17470=TRUE
17480DEFFNF2_:IFf_(2)=TRUEANDFNf_=1 f_(2)=TRUE:PROCsI(Sad_%,"F2"):=FALSE
17490IFf_(2)=TRUEf_(2)=FALSEELSEf_(2)=TRUE
17500=TRUE
17510DEFFNF3_:IFf_(3)=TRUEANDFNf_=1 f_(3)=TRUE:PROCsI(Sad_%,"F3"):=FALSE
17520IFf_(3)=TRUEf_(3)=FALSEELSEf_(3)=TRUE
17530=TRUE
17540DEFFNF4_:IFf_(4)=TRUEANDFNf_=1 f_(4)=TRUE:PROCsI(Sad_%,"F4"):=FALSE
17550IFf_(4)=TRUEf_(4)=FALSEELSEf_(4)=TRUE
17560=TRUE
17570DEFFNF5_:IFf_(5)=TRUEANDFNf_=1 f_(5)=TRUE:PROCsI(Sad_%,"F5"):=FALSE
17580IFf_(5)=TRUEf_(5)=FALSEELSEf_(5)=TRUE
17590=TRUE
17600DEFFNF6_:IFf_(6)=TRUEANDFNf_=1 f_(6)=TRUE:PROCsI(Sad_%,"F6"):=FALSE
17610IFf_(6)=TRUEf_(6)=FALSEELSEf_(6)=TRUE
17620=TRUE
17630DEFFNF7_:IFf_(7)=TRUEANDFNf_=1 f_(7)=TRUE:PROCsI(Sad_%,"F7"):=FALSE
17640IFf_(7)=TRUEf_(7)=FALSEELSEf_(7)=TRUE
17650=TRUE
17660DEFFNF8_:IFf_(8)=TRUEANDFNf_=1 f_(8)=TRUE:PROCsI(Sad_%,"F8"):=FALSE
17670IFf_(8)=TRUEf_(8)=FALSEELSEf_(8)=TRUE
17680=TRUE
17690DEFFNF9_:IFf_(9)=TRUEANDFNf_=1 f_(9)=TRUE:PROCsI(Sad_%,"F9"):=FALSE
17700IFf_(9)=TRUEf_(9)=FALSEELSEf_(9)=TRUE
17710=TRUE
17720DEFFNF10_:IFf_(10)=TRUEANDFNf_=1 f_(10)=TRUE:PROCsI(Sad_%,"F10"):=FALSE
17730IFf_(10)=TRUEf_(10)=FALSEELSEf_(10)=TRUE
17740=TRUE
17750DEFFNF11_:IFf_(11)=TRUEANDFNf_=1 f_(11)=TRUE:PROCsI(Sad_%,"F11"):=FALSE
17760IFf_(11)=TRUEf_(11)=FALSEELSEf_(11)=TRUE
17770=TRUE
17780DEFFNF12_:IFf_(12)=TRUEANDFNf_=1 f_(12)=TRUE:PROCsI(Sad_%,"F12"):=FALSE
17790IFf_(12)=TRUEf_(12)=FALSEELSEf_(12)=TRUE
17800=TRUE
17820DEFFNSadCarry1_:IFFracadd_=FALSESadcarry_(1)=FALSE:PROCusI(Sad_%,"SadCarry1"):=FALSE
17830IFSadcarry_(1)=TRUEANDSadcarry_(2)+Sadcarry_(3)=FALSESadcarry_(1)=TRUE:PROCsI(Sad_%,"SadCarry1"):=TRUE
17840IFSadcarry_(1)=FALSESadcarry_(1)=TRUE:PROCsI(Sad_%,"SadCarry1"):Sadcarry_(2)=FALSE:PROCusI(Sad_%,"SadCarry2"):Sadcarry_(3)=FALSE:PROCusI(Sad_%,"SadCarry3"):=TRUE
17850
17860DEFFNSadCarry2_:IFFracadd_=FALSESadcarry_(2)=FALSE:PROCusI(Sad_%,"SadCarry2"):=FALSE
17870IFSadcarry_(2)=TRUEANDSadcarry_(1)+Sadcarry_(3)=FALSESadcarry_(2)=TRUE:PROCsI(Sad_%,"SadCarry2"):=TRUE
17880IFSadcarry_(2)=FALSESadcarry_(2)=TRUE:PROCsI(Sad_%,"SadCarry2"):Sadcarry_(1)=FALSE:PROCusI(Sad_%,"SadCarry1"):Sadcarry_(3)=FALSE:PROCusI(Sad_%,"SadCarry3"):=TRUE
17890
17900DEFFNSadCarry3_:IFFracadd_=FALSESadcarry_(3)=FALSE:PROCusI(Sad_%,"SadCarry3"):=FALSE
17910IFSadcarry_(3)=TRUEANDSadcarry_(1)+Sadcarry_(2)=FALSESadcarry_(3)=TRUE:PROCsI(Sad_%,"SadCarry3"):=TRUE
17920IFSadcarry_(3)=FALSESadcarry_(3)=TRUE:PROCsI(Sad_%,"SadCarry3"):Sadcarry_(1)=FALSE:PROCusI(Sad_%,"SadCarry1"):Sadcarry_(2)=FALSE:PROCusI(Sad_%,"SadCarry2"):=TRUE
17930
17960DEFFNFracGo_:PROCGetTitles:dummy_=RND(-TIME):quit_=FALSE:TIME=0:last_=12:FORg_=1TO12:FORgg_=0TO2:Whole_(g_,gg_)=0:NEXT:NEXT:PROCwhatfracsign:PROCwhatfracs:PROCcalcfracs:Clue_$="Sad":started_%=TRUE:PROCusI(Sad_%,"FracGo"):=FNsums
18020DEFPROCwhatfracsign:IFFracadd_=TRUEANDFractake_=FALSEFORg_=1TO12:Fracsign_$(g_)="+":NEXT:ENDPROC
18040IFFractake_=TRUEANDFracadd_=FALSEFORg_=1TO12:Fracsign_$(g_)="-":NEXT:ENDPROC
18050start_=RND(2):IFstart_=1THEN
18070FORg_=1TO12:IFg_MOD2=0 Fracsign_$(g_)="+"ELSEFracsign_$(g_)="-"
18080NEXT
18090ELSE:FORg_=1TO12:IFg_MOD2=1 Fracsign_$(g_)="+"ELSEFracsign_$(g_)="-"
18110NEXT
18120ENDIF:ENDPROC
18140DEFPROCwhatfracs:FORr_=1TO12:gc_%(r_)=0:NEXT:got_%=0:FORr_%=1TO12:IFf_(r_%)=TRUETHENgot_%=got_%+1:gc_%(got_%)=frac_(r_%)
18160NEXT:ENDPROC
18180DEFPROCfracadd:IFquit_=TRUEENDPROC
18190REPEAT:goodadd_=TRUE:IFgot_%=1 FD1_=gc_%(1)ELSEran_%=RND(got_%):FD1_=gc_%(ran_%)
18210IFaddoms_=TRUEFD2_=FD1_
18230IFaddoms_=FALSETHEN
18240IFgot_%=1 FD2_=gc_%(1)ELSEran_%=RND(got_%):FD2_=gc_%(ran_%)
18250ENDIF:REPEAT:flug_=0:REPEAT:FU1_=RND(FD1_):UNTILFU1_<FD1_:FORrt_=2TO10:IFFU1_MODrt_=0ANDFD1_MODrt_=0 flug_=1
18300NEXT:UNTILflug_=0:REPEAT:flug_=0:REPEAT:FU2_=RND(FD2_):UNTILFU2_<FD2_:FORrt_=2TO10:IFFU2_MODrt_=0ANDFD2_MODrt_=0 flug_=1
18350NEXT:UNTILflug_=0:IFSadcarry_(1)=TRUEANDFU2_/FD2_+FU1_/FD1_<1 goodadd_=FALSE
18380IFSadcarry_(2)=TRUEANDFU2_/FD2_+FU1_/FD1_>.9999 goodadd_=FALSE
18390IFr_>1ANDAddReps_=TRUETHEN
18400FORrtt_=1TOr_-1:IFFracsign_$(r_)="+"ANDFD1_=FD1_(rtt_)ANDFD2_=FD2_(rtt_)ANDFU1_=FU1_(rtt_)ANDFU2_=FU2_(rtt_)goodadd_=FALSE
18410NEXT
18420ENDIF:IFTIME>500 quit_=TRUE:VDU7:last_=r_-1:SYS"Hourglass_Off":ENDPROC
18440UNTILgoodadd_=TRUE:Fracsign_$(r_)="+":FD1_(r_)=FD1_:FD2_(r_)=FD2_:FU1_(r_)=FU1_:FU2_(r_)=FU2_:ENDPROC
18480DEFPROCfraktake:IFquit_=TRUEENDPROC
18490REPEAT:goodsub_=TRUE:IFgot_%=1 FD1_=gc_%(1)ELSEran_%=RND(got_%):FD1_=gc_%(ran_%)
18510IFsubdoms_=TRUEFD2_=FD1_
18520IFsubdoms_=FALSETHEN
18530IFgot_%=1 FD2_=gc_%(1)ELSEran_%=RND(got_%):FD2_=gc_%(ran_%)
18540ENDIF:REPEAT:flug_=0:REPEAT:FU1_=RND(FD1_):UNTILFU1_<FD1_:FORrt_=2TO10:IFFU1_MODrt_=0ANDFD1_MODrt_=0 flug_=1
18580NEXT:UNTILflug_=0:REPEAT:flug_=0:REPEAT:FU2_=RND(FD2_):UNTILFU2_<FD2_:FORrt_=2TO10:IFFU2_MODrt_=0ANDFD2_MODrt_=0 flug_=1
18620NEXT:UNTILflug_=0:IFr_>1ANDSubReps_=TRUETHEN
18640FORrtt_=1TOr_-1:IFFracsign_$(r_)="-"ANDFD1_=FD1_(rtt_)ANDFD2_=FD2_(rtt_)ANDFU1_=FU1_(rtt_)ANDFU2_=FU2_(rtt_)goodsub_=FALSE
18650NEXT
18660ENDIF:IFFU1_/FD1_<FU2_/FD2_ goodsub_=FALSE
18680IFTIME>500 quit_=TRUE:last_=r_-1:VDU7:SYS"Hourglass_Off":ENDPROC
18690UNTILgoodsub_=TRUE:Fracsign_$(r_)="-":FD1_(r_)=FD1_:FD2_(r_)=FD2_:FU1_(r_)=FU1_:FU2_(r_)=FU2_:ENDPROC
18730DEFPROCcalcfracs:SYS"Hourglass_On":FORr_=1TO12:SYS"Hourglass_Percentage",r_/12*100:IFquit_=TRUESYS"Hourglass_Off":ENDPROC
18760IFFracsign_$(r_)="+"PROCfracaddELSEPROCfraktake
18770IFquit_=TRUEr_=12
18780NEXT:FORr_=1TOlast_:a_=FU1_(r_):b_=FD1_(r_):c_=FU2_(r_):d_=FD2_(r_):IFb_=d_THEN
18840IFFracsign_$(r_)="+" f_=b_:f_$=STR$(f_):e_=a_+c_:e_$=STR$(e_)
18850IFFracsign_$(r_)="-" f_=b_:f_$=STR$(f_):e_=a_-c_:e_$=STR$(e_)
18860ELSE:x_=0:REPEAT:x_=x_+1:UNTILx_MODb_=0ANDx_MODd_=0:f_=x_:f_$=STR$(f_):IFFracsign_$(r_)="+" e_=f_/b_*a_+f_/d_*c_
18900IFFracsign_$(r_)="-" e_=f_/b_*a_-f_/d_*c_
18910ENDIF:whole_=0:IFe_>=f_ANDe_>0ANDf_>0 whole_=e_DIVf_:e_=e_MODf_
18940Whole_(r_,2)=Whole_(r_,0)+Whole_(r_,1):Whole_(r_,2)=Whole_(r_,2)+whole_:IFe_<>0PROCreduce
18970FU3_(r_)=e_:FD3_(r_)=f_:NEXT:SYS"Hourglass_Off":ENDPROC
19050DEFPROCWadd:Wad_%=FNfWS("Wadd"):IFwf_(1)PROCsI(Wad_%,"WF1")
19070IFwf_(2)PROCsI(Wad_%,"WF2")
19080IFwf_(3)PROCsI(Wad_%,"WF3")
19090IFwf_(4)PROCsI(Wad_%,"WF4")
19100IFwf_(5)PROCsI(Wad_%,"WF5")
19110IFwf_(6)PROCsI(Wad_%,"WF6")
19120IFwf_(7)PROCsI(Wad_%,"WF7")
19130IFwf_(8)PROCsI(Wad_%,"WF8")
19140IFwf_(9)PROCsI(Wad_%,"WF9")
19150IFwf_(10)PROCsI(Wad_%,"WF10")
19160IFwf_(11)PROCsI(Wad_%,"WF11")
19170IFwf_(12)PROCsI(Wad_%,"WF12")
19180IFWSadcarry_(1)PROCsI(Wad_%,"WSadCarry1")
19190IFWSadcarry_(2)PROCsI(Wad_%,"WSadCarry2")
19200IFWSadcarry_(3)PROCsI(Wad_%,"WSadCarry3")
19210IFWFracadd_PROCsI(Wad_%,"WFracadd")
19220IFWFractake_PROCsI(Wad_%,"WFractake")
19230IFWaddoms_PROCsI(Wad_%,"Waddoms")
19240IFWAddReps_PROCsI(Wad_%,"WAddReps")
19250IFWsubdoms_PROCsI(Wad_%,"Wsubdoms")
19260IFWSubReps_PROCsI(Wad_%,"WSubReps")
19270IFWSTakecar_(1)PROCsI(Wad_%,"WSTakeCar1")
19280IFWSTakecar_(2)PROCsI(Wad_%,"WSTakeCar2")
19290IFWSTakecar_(3)PROCsI(Wad_%,"WSTakeCar3")
19300ENDPROC
19340DEFFNWFracadd_:IFWFractake_=FALSETHENPROCsI(Wad_%,"WFracadd"):=FALSE
19350IFWFracadd_=TRUETHEN
19360WFracadd_=FALSE:PROCusI(Wad_%,"WFracadd"):Waddoms_=FALSE:PROCusI(Wad_%,"Waddoms"):WSadcarry_(1)=FALSE:PROCusI(Wad_%,"WSadCarry1"):WSadcarry_(2)=FALSE:PROCusI(Wad_%,"WSadCarry2"):WSadcarry_(3)=FALSE:PROCusI(Wad_%,"WSadCarry3"):WAddReps_=FALSE:PROCusI(Wad_%,"WAddReps")
19420ELSE:WFracadd_=TRUE:PROCsI(Wad_%,"WFracadd"):Waddoms_=FALSE:PROCusI(Wad_%,"Waddoms"):WSadcarry_(1)=FALSE:PROCusI(Wad_%,"WSadCarry1"):WSadcarry_(2)=FALSE:PROCusI(Wad_%,"WSadCarry2"):WSadcarry_(3)=TRUE:PROCsI(Wad_%,"WSadCarry3"):WAddReps_=FALSE:PROCusI(Wad_%,"WAddReps")
19490ENDIF:=TRUE
19520DEFFNWFractake_:IFWFracadd_=FALSETHENPROCsI(Wad_%,"WFractake"):=FALSE
19530IFWFractake_THEN
19540WFractake_=FALSE:PROCusI(Wad_%,"WFractake"):WSTakecar_(1)=FALSE:WSTakecar_(2)=FALSE:WSTakecar_(3)=FALSE:PROCusI(Wad_%,"WSTakeCar1"):PROCusI(Wad_%,"WSTakeCar2"):PROCusI(Wad_%,"WSTakeCar3")
19570ELSE:WFractake_=TRUE:PROCsI(Wad_%,"WFractake"):WSTakecar_(3)=TRUE:PROCsI(Wad_%,"WSTakeCar3")
19600ENDIF:Wsubdoms_=FALSE:PROCusI(Wad_%,"Wsubdoms"):WSubReps_=FALSE:PROCusI(Wad_%,"WSubReps"):=TRUE
19650DEFFNWaddoms_:IFWFracadd_=FALSEWaddoms_=FALSE:PROCusI(Wad_%,"Waddoms"):=FALSE
19660IFWaddoms_ Waddoms_=FALSE:PROCusI(Wad_%,"Waddoms")ELSEWaddoms_=TRUE:PROCsI(Wad_%,"Waddoms")
19670=TRUE
19690DEFFNWAddReps_:IFWFracadd_=FALSEWAddReps_=FALSE:PROCusI(Wad_%,"WAddReps"):=FALSE
19700IFWAddReps_ WAddReps_=FALSE:PROCusI(Wad_%,"WAddReps")ELSEWAddReps_=TRUE:PROCsI(Wad_%,"WAddReps")
19710=TRUE
19730DEFFNWsubdoms_:IFWFractake_=FALSEWsubdoms_=FALSE:PROCusI(Wad_%,"Wsubdoms"):=FALSE
19740IFWsubdoms_ Wsubdoms_=FALSE:PROCusI(Wad_%,"Wsubdoms")ELSEWsubdoms_=TRUE:PROCsI(Wad_%,"Wsubdoms")
19750=TRUE
19770DEFFNWSubReps_:IFWFractake_=FALSEWSubReps_=FALSE:PROCusI(Wad_%,"WSubReps"):=TRUE
19780IFWSubReps_=TRUEWSubReps_=FALSE:PROCusI(Wad_%,"WSubReps")ELSEWSubReps_=TRUE:PROCsI(Wad_%,"WSubReps")
19790=TRUE
19810DEFFNWSadCarry1_:IFWFracadd_=FALSEWSadcarry_(1)=FALSE:PROCusI(Wad_%,"WSadCarry1"):=FALSE
19820IFWSadcarry_(1)ANDWSadcarry_(2)+WSadcarry_(3)=FALSEWSadcarry_(1)=TRUE:PROCsI(Wad_%,"WSadCarry1"):=TRUE
19830IFWSadcarry_(1)=FALSEWSadcarry_(1)=TRUE:PROCsI(Wad_%,"WSadCarry1"):WSadcarry_(2)=FALSE:PROCusI(Wad_%,"WSadCarry2"):WSadcarry_(3)=FALSE:PROCusI(Wad_%,"WSadCarry3"):=TRUE
19840
19850DEFFNWSadCarry2_:IFWFracadd_=FALSEWSadcarry_(2)=FALSE:PROCusI(Wad_%,"WSadCarry2"):=FALSE
19860IFWSadcarry_(2)ANDWSadcarry_(1)+WSadcarry_(3)=FALSEWSadcarry_(2)=TRUE:PROCsI(Wad_%,"WSadCarry2"):=TRUE
19870IFWSadcarry_(2)=FALSEWSadcarry_(2)=TRUE:PROCsI(Wad_%,"WSadCarry2"):WSadcarry_(1)=FALSE:PROCusI(Wad_%,"WSadCarry1"):WSadcarry_(3)=FALSE:PROCusI(Wad_%,"WSadCarry3"):=TRUE
19880
19890DEFFNWSadCarry3_:IFWFracadd_=FALSEWSadcarry_(3)=FALSE:PROCusI(Wad_%,"WSadCarry3"):=FALSE
19900IFWSadcarry_(3)=TRUEANDWSadcarry_(1)+WSadcarry_(2)=FALSEWSadcarry_(3)=TRUE:PROCsI(Wad_%,"WSadCarry3"):=TRUE
19910IFWSadcarry_(3)=FALSEWSadcarry_(3)=TRUE:PROCsI(Wad_%,"WSadCarry3"):WSadcarry_(1)=FALSE:PROCusI(Wad_%,"WSadCarry1"):WSadcarry_(2)=FALSE:PROCusI(Wad_%,"WSadCarry2"):=TRUE
19920
19930DEFFNWSTakeCar1_:IFWFractake_=FALSEWSTakecar_(1)=FALSE:PROCusI(Wad_%,"WSTakeCar1"):=FALSE
19950IFWSTakecar_(1)ANDWSTakecar_(2)+WSTakecar_(3)=FALSEWSTakecar_(1)=TRUE:PROCsI(Wad_%,"WSTakeCar1"):=FALSE
19960IFWSTakecar_(1)=FALSEWSTakecar_(1)=TRUE:PROCsI(Wad_%,"WSTakeCar"):WSTakecar_(2)=FALSE:PROCusI(Wad_%,"WSTakeCar2"):WSTakecar_(3)=FALSE:PROCusI(Wad_%,"WSTakeCar3")ELSEWSTakecar_(1)=FALSE:PROCusI(Wad_%,"WSTakeCar1")
19970=TRUE
19990DEFFNWSTakeCar2_:IFWFractake_=FALSEWSTakecar_(2)=FALSE:PROCusI(Wad_%,"WSTakeCar2"):=FALSE
20010IFWSTakecar_(2)=TRUEANDWSTakecar_(1)+WSTakecar_(3)=FALSEWSTakecar_(2)=TRUE:PROCsI(Wad_%,"WSTakeCar2"):=FALSE
20020IFWSTakecar_(2)=FALSEWSTakecar_(2)=TRUE:PROCsI(Wad_%,"WSTakeCar"):WSTakecar_(1)=FALSE:PROCusI(Wad_%,"WSTakeCar1"):WSTakecar_(3)=FALSE:PROCusI(Wad_%,"WSTakeCar3")ELSEWSTakecar_(2)=FALSE:PROCusI(Wad_%,"WSTakeCar2")
20030=TRUE
20050DEFFNWSTakeCar3_:IFWFractake_=FALSEWSTakecar_(3)=FALSE:PROCusI(Wad_%,"WSTakeCar3"):=FALSE
20070IFWSTakecar_(3)ANDWSTakecar_(1)+WSTakecar_(2)=FALSEWSTakecar_(3)=TRUE:PROCsI(Wad_%,"WSTakeCar3"):=FALSE
20080IFWSTakecar_(3)=FALSEWSTakecar_(3)=TRUE:PROCsI(Wad_%,"WSTakeCar"):WSTakecar_(1)=FALSE:PROCusI(Wad_%,"WSTakeCar2"):WSTakecar_(2)=FALSE:PROCusI(Wad_%,"WSTakeCar1")ELSEWSTakecar_(3)=FALSE:PROCusI(Wad_%,"WSTakeCar3")
20090=TRUE
20110DEFFNwf_:c_=0:FORh_=1TO12:IFwf_(h_)c_=c_+1
20120NEXT:=c_
20130DEFFNWF1_:IFwf_(1)ANDFNwf_=1 wf_(1)=TRUE:PROCsI(Wad_%,"WF1"):=FALSE
20140IFwf_(1)wf_(1)=FALSEELSEwf_(1)=TRUE
20150=TRUE
20160DEFFNWF2_:IFwf_(2)ANDFNwf_=1 wf_(2)=TRUE:PROCsI(Wad_%,"WF2"):=FALSE
20170IFwf_(2)wf_(2)=FALSEELSEwf_(2)=TRUE
20180=TRUE
20190DEFFNWF3_:IFwf_(3)ANDFNwf_=1 wf_(3)=TRUE:PROCsI(Wad_%,"WF3"):=FALSE
20200IFwf_(3)wf_(3)=FALSEELSEwf_(3)=TRUE
20210=TRUE
20220DEFFNWF4_:IFwf_(4)ANDFNwf_=1 wf_(4)=TRUE:PROCsI(Wad_%,"WF4"):=FALSE
20230IFwf_(4)wf_(4)=FALSEELSEwf_(4)=TRUE
20240=TRUE
20250DEFFNWF5_:IFwf_(5)ANDFNwf_=1 wf_(5)=TRUE:PROCsI(Wad_%,"WF5"):=FALSE
20260IFwf_(5)wf_(5)=FALSEELSEwf_(5)=TRUE
20270=TRUE
20280DEFFNWF6_:IFwf_(6)ANDFNwf_=1 wf_(6)=TRUE:PROCsI(Wad_%,"WF6"):=FALSE
20290IFwf_(6)wf_(6)=FALSEELSEwf_(6)=TRUE
20300=TRUE
20310DEFFNWF7_:IFwf_(7)ANDFNwf_=1 wf_(7)=TRUE:PROCsI(Wad_%,"WF7"):=FALSE
20320IFwf_(7)wf_(7)=FALSEELSEwf_(7)=TRUE
20330=TRUE
20340DEFFNWF8_:IFwf_(8)ANDFNwf_=1 wf_(8)=TRUE:PROCsI(Wad_%,"WF8"):=FALSE
20350IFwf_(8)wf_(8)=FALSEELSEwf_(8)=TRUE
20360=TRUE
20370DEFFNWF9_:IFwf_(9)ANDFNwf_=1 wf_(9)=TRUE:PROCsI(Wad_%,"WF9"):=FALSE
20380IFwf_(9)wf_(9)=FALSEELSEwf_(9)=TRUE
20390=TRUE
20400DEFFNWF10_:IFwf_(10)ANDFNwf_=1 wf_(10)=TRUE:PROCsI(Wad_%,"WF10"):=FALSE
20410IFwf_(10)wf_(10)=FALSEELSEwf_(10)=TRUE
20420=TRUE
20430DEFFNWF11_:IFwf_(11)ANDFNwf_=1 wf_(11)=TRUE:PROCsI(Wad_%,"WF11"):=FALSE
20440IFwf_(11)wf_(11)=FALSEELSEwf_(11)=TRUE
20450=TRUE
20460DEFFNWF12_:IFwf_(12)ANDFNwf_=1 wf_(12)=TRUE:PROCsI(Wad_%,"WF12"):=FALSE
20470IFwf_(12)wf_(12)=FALSEELSEwf_(12)=TRUE
20480=TRUE
20520DEFFNWFracGo_:PROCGetTitles:dummy_=RND(-TIME):quit_=FALSE:TIME=0:last_=12:PROCwhatWfracsign:PROCwhatWfracs:PROCcalcWfracs:Clue_$="Wad":started_%=TRUE:PROCusI(Wad_%,"WFracGo"):=FNsums
20570DEFPROCwhatWfracsign:IFWFracadd_ANDWFractake_=FALSEFORg_=1TO12:Fracsign_$(g_)="+":NEXT:ENDPROC
20590IFWFractake_ANDWFracadd_=FALSEFORg_=1TO12:Fracsign_$(g_)="-":NEXT:ENDPROC
20600start_=RND(2):IFstart_=1THEN
20620FORg_=1TO12:IFg_MOD2=0 Fracsign_$(g_)="+"ELSEFracsign_$(g_)="-"
20630NEXT
20640ELSE:FORg_=1TO12:IFg_MOD2=1 Fracsign_$(g_)="+"ELSEFracsign_$(g_)="-"
20660NEXT
20670ENDIF:ENDPROC
20690DEFPROCwhatWfracs:got_%=0:FORr_%=1TO12:IFwf_(r_%)=TRUETHENgot_%=got_%+1:gc_%(got_%)=frac_(r_%)
20710NEXT:ENDPROC
20730DEFPROCfracWadd:IFquit_=TRUEENDPROC
20740REPEAT:goodadd_=TRUE:REPEAT:WholeA_=RND(9):WholeB_=RND(9):UNTILWholeA_+WholeB_<8:IFgot_%=1 FD1_=gc_%(1)ELSEran_%=RND(got_%):FD1_=gc_%(ran_%)
20790IFWaddoms_=TRUEFD2_=FD1_
20800IFWaddoms_=FALSETHEN
20820IFgot_%=1 FD2_=gc_%(1)ELSEran_%=RND(got_%):FD2_=gc_%(ran_%)
20830ENDIF:REPEAT:flug_=0:REPEAT:FU1_=RND(FD1_):UNTILFU1_<FD1_:FORrt_=2TO10:IFFU1_MODrt_=0ANDFD1_MODrt_=0 flug_=1
20880NEXT:UNTILflug_=0:REPEAT:flug_=0:REPEAT:FU2_=RND(FD2_):UNTILFU2_<FD2_:FORrt_=2TO10:IFFU2_MODrt_=0ANDFD2_MODrt_=0 flug_=1
20930NEXT:UNTILflug_=0:IFWSadcarry_(1)=TRUEANDFU2_/FD2_+FU1_/FD1_<1 goodadd_=FALSE
20960IFWSadcarry_(2)=TRUEANDFU2_/FD2_+FU1_/FD1_>.9999 goodadd_=FALSE
20980IFr_>1ANDWAddReps_=TRUETHEN
21000FORrtt_=1TOr_-1:IFFracsign_$(r_)="+"ANDFD1_=FD1_(rtt_)ANDFD2_=FD2_(rtt_)ANDFU1_=FU1_(rtt_)ANDFU2_=FU2_(rtt_)ANDWholeA_=Whole_(rtt_,0)ANDWholeB_=Whole_(rtt_,1)goodadd_=FALSE
21010NEXT
21020ENDIF:IFTIME>500 quit_=TRUE:VDU7:last_=r_-1:SYS"Hourglass_Off":ENDPROC
21040UNTILgoodadd_=TRUE:Fracsign_$(r_)="+":FD1_(r_)=FD1_:FD2_(r_)=FD2_:FU1_(r_)=FU1_:FU2_(r_)=FU2_:Whole_(r_,0)=WholeA_:Whole_(r_,1)=WholeB_:ENDPROC
21080DEFPROCfrakWtake:IFquit_=TRUEENDPROC
21090REPEAT:goodsub_=TRUE:REPEAT:WholeA_=RND(9):WholeB_=RND(9):UNTILWholeA_>WholeB_:IFgot_%=1 FD1_=gc_%(1)ELSEran_%=RND(got_%):FD1_=gc_%(ran_%)
21130IFWsubdoms_=TRUEFD2_=FD1_
21140IFWsubdoms_=FALSETHEN
21160IFgot_%=1 FD2_=gc_%(1)ELSEran_%=RND(got_%):FD2_=gc_%(ran_%)
21170ENDIF:REPEAT:flug_=0:REPEAT:FU1_=RND(FD1_):UNTILFU1_<FD1_:FORrt_=2TO10:IFFU1_MODrt_=0ANDFD1_MODrt_=0 flug_=1
21220NEXT:UNTILflug_=0:REPEAT:flug_=0:REPEAT:FU2_=RND(FD2_):UNTILFU2_<FD2_:FORrt_=2TO10:IFFU2_MODrt_=0ANDFD2_MODrt_=0 flug_=1
21270NEXT:UNTILflug_=0:IFWSTakecar_(1)=TRUEANDFU1_/FD1_>=FU2_/FD2_ goodsub_=FALSE
21300IFWSTakecar_(2)=TRUEANDFU1_/FD1_<FU2_/FD2_ goodsub_=FALSE
21320IFr_>1ANDWSubReps_=TRUETHEN
21340FORrtt_=1TOr_-1:IFFracsign_$(r_)="-"ANDFD1_=FD1_(rtt_)ANDFD2_=FD2_(rtt_)ANDFU1_=FU1_(rtt_)ANDFU2_=FU2_(rtt_)ANDWholeA_=Whole_(rtt_,0)ANDWholeB_=Whole_(rtt_,1)goodsub_=FALSE
21350NEXT
21360ENDIF:IFTIME>500 quit_=TRUE:SYS"Hourglass_Off":VDU7:last_=r_-1:ENDPROC
21380UNTILgoodsub_=TRUE:Fracsign_$(r_)="-":FD1_(r_)=FD1_:FD2_(r_)=FD2_:FU1_(r_)=FU1_:FU2_(r_)=FU2_:Whole_(r_,0)=WholeA_:Whole_(r_,1)=WholeB_:ENDPROC
21440DEFFNesc(out_$):quit_=FALSE:=quit_:esc_$="Escape "+out_$:in_=INKEY.001:IFin_=27PROCmoan(esc_$):quit_=TRUE:SYS"Hourglass_Off"
21470=quit_
21490DEFPROCcalcWfracs:SYS"Hourglass_On":FORr_=1TO12:SYS"Hourglass_Percentage",r_/12*100:IFFracsign_$(r_)="+"PROCfracWaddELSEPROCfrakWtake
21520IFquit_=TRUEr_=12
21530NEXT:FORr_=1TOlast_:a_=FU1_(r_):b_=FD1_(r_):c_=FU2_(r_):d_=FD2_(r_):IFFracsign_$(r_)="+"PROCaddfracsELSEPROCtakefracs
21590NEXT:SYS"Hourglass_Off":ENDPROC
21620DEFPROCaddfracs:IFb_=d_THEN
21640f_=b_:e_=a_+c_
21650ELSE:x_=0:REPEAT:x_=x_+1:UNTILx_MODb_=0ANDx_MODd_=0:f_=x_:e_=f_/b_*a_+f_/d_*c_
21690ENDIF:whole_=0:IFe_>=f_ANDe_>0ANDf_>0 whole_=e_DIVf_:e_=e_MODf_
21720Whole_(r_,2)=Whole_(r_,0)+Whole_(r_,1):Whole_(r_,2)=Whole_(r_,2)+whole_:IFe_<>0PROCreduce
21750FU3_(r_)=e_:FD3_(r_)=f_:ENDPROC
21780DEFPROCtakefracs:IFa_/b_<c_/d_THEN
21800IFb_=d_THEN
21810f_=b_:e_=a_-c_+b_
21820ELSE:x_=0:REPEAT:x_=x_+1:UNTILx_MODb_=0ANDx_MODd_=0:f_=x_:e_=f_/b_*a_-f_/d_*c_+f_
21860ENDIF
21870ENDIF:IFa_/b_>=c_/d_THEN
21900IFb_=d_THEN
21910f_=b_:e_=a_-c_
21920ELSE:x_=0:REPEAT:x_=x_+1:UNTILx_MODb_=0ANDx_MODd_=0:f_=x_:e_=f_/b_*a_-f_/d_*c_
21960ENDIF
21970ENDIF:Whole_(r_,2)=Whole_(r_,0)-Whole_(r_,1):IFe_<>0PROCreduce
22000FU3_(r_)=e_:FD3_(r_)=f_:IFa_/b_<c_/d_THENWhole_(r_,2)=Whole_(r_,2)-1
22020ENDPROC
22080DEFPROCFrMD:FrMD_%=FNfWS("FrMD"):IFFracmult_PROCsI(FrMD_%,"Fracmult")
22100IFFracdiv_PROCsI(FrMD_%,"Fracdiv")
22110IFFrtdom_PROCsI(FrMD_%,"Frtdom")
22120IFFrtrep_PROCsI(FrMD_%,"Frtrep")
22130IFFrddom_PROCsI(FrMD_%,"Frddom")
22140IFFrdrep_PROCsI(FrMD_%,"Frdrep")
22150IFmf_(1)PROCsI(FrMD_%,"MF1")
22160IFmf_(2)PROCsI(FrMD_%,"MF2")
22170IFmf_(3)PROCsI(FrMD_%,"MF3")
22180IFmf_(4)PROCsI(FrMD_%,"MF4")
22190IFmf_(5)PROCsI(FrMD_%,"MF5")
22200IFmf_(6)PROCsI(FrMD_%,"MF6")
22210IFmf_(7)PROCsI(FrMD_%,"MF7")
22220IFmf_(8)PROCsI(FrMD_%,"MF8")
22230IFmf_(9)PROCsI(FrMD_%,"MF9")
22240IFmf_(10)PROCsI(FrMD_%,"MF10")
22250IFmf_(11)PROCsI(FrMD_%,"MF11")
22260IFmf_(12)PROCsI(FrMD_%,"MF12")
22270IFFrmwhole_PROCsI(FrMD_%,"Frmwhole")
22280IFFrdwhole_PROCsI(FrMD_%,"Frdwhole")
22290ENDPROC
22330DEFFNmf_:c_=0:FORh_=1TO12:IFmf_(h_)c_=c_+1
22340NEXT:=c_
22350DEFFNMF1_:IFmf_(1)ANDFNmf_=1 mf_(1)=TRUE:PROCsI(FrMD_%,"MF1"):=FALSE
22360IFmf_(1)=TRUEmf_(1)=FALSEELSEmf_(1)=TRUE
22370=TRUE
22380DEFFNMF2_:IFmf_(2)ANDFNmf_=1 mf_(2)=TRUE:PROCsI(FrMD_%,"MF2"):=FALSE
22390IFmf_(2)=TRUEmf_(2)=FALSEELSEmf_(2)=TRUE
22400=TRUE
22410DEFFNMF3_:IFmf_(3)ANDFNmf_=1 mf_(3)=TRUE:PROCsI(FrMD_%,"MF3"):=FALSE
22420IFmf_(3)=TRUEmf_(3)=FALSEELSEmf_(3)=TRUE
22430=TRUE
22440DEFFNMF4_:IFmf_(4)ANDFNmf_=1 mf_(4)=TRUE:PROCsI(FrMD_%,"MF4"):=FALSE
22450IFmf_(4)=TRUEmf_(4)=FALSEELSEmf_(4)=TRUE
22460=TRUE
22470DEFFNMF5_:IFmf_(5)ANDFNmf_=1 mf_(5)=TRUE:PROCsI(FrMD_%,"MF5"):=FALSE
22480IFmf_(5)=TRUEmf_(5)=FALSEELSEmf_(5)=TRUE
22490=TRUE
22500DEFFNMF6_:IFmf_(6)ANDFNmf_=1 mf_(6)=TRUE:PROCsI(FrMD_%,"MF6"):=FALSE
22510IFmf_(6)=TRUEmf_(6)=FALSEELSEmf_(6)=TRUE
22520=TRUE
22530DEFFNMF7_:IFmf_(7)ANDFNmf_=1 mf_(7)=TRUE:PROCsI(FrMD_%,"MF7"):=FALSE
22540IFmf_(7)=TRUEmf_(7)=FALSEELSEmf_(7)=TRUE
22550=TRUE
22560DEFFNMF8_:IFmf_(8)ANDFNmf_=1 mf_(8)=TRUE:PROCsI(FrMD_%,"MF8"):=FALSE
22570IFmf_(8)=TRUEmf_(8)=FALSEELSEmf_(8)=TRUE
22580=TRUE
22590DEFFNMF9_:IFmf_(9)ANDFNmf_=1 mf_(9)=TRUE:PROCsI(FrMD_%,"MF9"):=FALSE
22600IFmf_(9)=TRUEmf_(9)=FALSEELSEmf_(9)=TRUE
22610=TRUE
22620DEFFNMF10_:IFmf_(10)ANDFNmf_=1 mf_(10)=TRUE:PROCsI(FrMD_%,"MF10"):=FALSE
22630IFmf_(10)=TRUEmf_(10)=FALSEELSEmf_(10)=TRUE
22640=TRUE
22650DEFFNMF11_:IFmf_(11)ANDFNmf_=1 mf_(11)=TRUE:PROCsI(FrMD_%,"MF11"):=FALSE
22660IFmf_(11)=TRUEmf_(11)=FALSEELSEmf_(11)=TRUE
22670=TRUE
22680DEFFNMF12_:IFmf_(12)ANDFNmf_=1 mf_(12)=TRUE:PROCsI(FrMD_%,"MF12"):=FALSE
22690IFmf_(12)=TRUEmf_(12)=FALSEELSEmf_(12)=TRUE
22700=TRUE
22710DEFFNFracmult_:IFFracdiv_=FALSEFracmult_=TRUE:PROCsI(FrMD_%,"Fracmult"):=FALSE
22720IFFracmult_=TRUETHEN
22730Fracmult_=FALSE:PROCusI(FrMD_%,"Fracmult"):Frtdom_=FALSE:PROCusI(FrMD_%,"Frtdom"):Frtrep_=FALSE:PROCusI(FrMD_%,"Frtrep"):Frmwhole_=FALSE:PROCusI(FrMD_%,"Frmwhole")
22740ELSEFracmult_=TRUE:PROCsI(FrMD_%,"Fracmult")
22750ENDIF:=TRUE
22760DEFFNFrtdom_:IFFracmult_=FALSEFrtdom_=FALSE:PROCusI(FrMD_%,"Frtdom"):=FALSE
22770IFFrtdom_=TRUEFrtdom_=FALSE:PROCusI(FrMD_%,"Frtdom")ELSEFrtdom_=TRUE:PROCsI(FrMD_%,"Frtdom")
22780=TRUE
22790DEFFNFrtrep_:IFFracmult_=FALSEFrtrep_=FALSE:PROCusI(FrMD_%,"Frtrep"):=FALSE
22800IFFrtrep_=TRUEFrtrep_=FALSE:PROCusI(FrMD_%,"Frtrep")ELSEFrtrep_=TRUE:PROCsI(FrMD_%,"Frtrep")
22810=TRUE
22820DEFFNFracdiv_:IFFracmult_=FALSEFracdiv_=TRUE:PROCsI(FrMD_%,"Fracdiv"):=FALSE
22830IFFracdiv_=TRUETHEN
22840Fracdiv_=FALSE:PROCusI(FrMD_%,"Fracdiv"):Frddom_=FALSE:PROCusI(FrMD_%,"Frddom"):Frdrep_=FALSE:PROCusI(FrMD_%,"Frdrep"):Frdwhole_=FALSE:PROCusI(FrMD_%,"Frdwhole")
22850ELSEFracdiv_=TRUE:PROCsI(FrMD_%,"Fracdiv")
22860ENDIF:=TRUE
22870DEFFNFrddom_:IFFracdiv_=FALSEFrddom_=FALSE:PROCusI(FrMD_%,"Frddom"):=FALSE
22880IFFrddom_=TRUEFrddom_=FALSE:PROCusI(FrMD_%,"Frddom")ELSEFrddom_=TRUE:PROCsI(FrMD_%,"Frddom")
22890=TRUE
22900DEFFNFrdrep_:IFFracdiv_=FALSEFrdrep_=FALSE:PROCusI(FrMD_%,"Frdrep"):=FALSE
22910IFFrdrep_=TRUEFrdrep_=FALSE:PROCusI(FrMD_%,"Frdrep")ELSEFrdrep_=TRUE:PROCsI(FrMD_%,"Frdrep")
22920=TRUE
22930DEFFNFrmwhole_:IFFracmult_=FALSEFrmwhole_=FALSE:PROCusI(FrMD_%,"Frmwhole"):=FALSE
22940IFFrmwhole_=TRUEFrmwhole_=FALSE:PROCusI(FrMD_%,"Frmwhole")ELSEFrmwhole_=TRUE:PROCsI(FrMD_%,"Frmwhole")
22950=TRUE
22960DEFFNFrdwhole_:IFFracdiv_=FALSEFrdwhole_=FALSE:PROCusI(FrMD_%,"Frdwhole"):=FALSE
22970IFFrdwhole_=TRUEFrdwhole_=FALSE:PROCusI(FrMD_%,"Frdwhole")ELSEFrdwhole_=TRUE:PROCsI(FrMD_%,"Frmdwhole")
22980=TRUE
22990DEFFNFrMDgo_:PROCGetTitles:dummy_=RND(-TIME):quit_=FALSE:TIME=0:last_=12:quit_=FALSE:start_%=FALSE:FORr_%=1TO12:IFmf_(r_%)=TRUETHENstart_%=TRUE
23010NEXT:IFstart_%=FALSETHENqueer_$="Choose a denominator":V_$=FNalert(queer_$,"","OK","","",0):PROCusI(FrMD_%,"FrMDgo"):=FALSE
23030FORr_=1TO12:FORrr_=0TO2:Whole_(r_,rr_)=0:NEXT:NEXT:PROCwhatMfracsign:PROCwhatMfracs:PROCcalcMfracs:Clue_$="FrMD":started_%=TRUE:PROCusI(FrMD_%,"FrMDgo"):=FNsums
23050DEFPROCwhatMfracsign:IFFracmult_=TRUEANDFracdiv_=FALSETHENFORg_=1TO12:Fracsign_$(g_)="x":NEXT:ENDPROC
23060IFFracdiv_=TRUEANDFracmult_=FALSEFORg_=1TO12:Fracsign_$(g_)="�":NEXT:ENDPROC
23070start_=RND(2):IFstart_=1THEN
23090FORg_=1TO12:IFg_MOD2=0 Fracsign_$(g_)="x"ELSEFracsign_$(g_)="�"
23100NEXT
23110ELSE:FORg_=1TO12:IFg_MOD2=1 Fracsign_$(g_)="x"ELSEFracsign_$(g_)="�"
23130NEXT
23140ENDIF:ENDPROC
23160DEFPROCwhatMfracs:FORr_=1TO12:gc_%(r_)=0:NEXT:got_%=0:FORr_%=1TO12:IFmf_(r_%)=TRUETHENgot_%=got_%+1:gc_%(got_%)=mfv_(r_%)
23170NEXT:ENDPROC
23180DEFPROCcalcMfracs:SYS"Hourglass_On":FORr_=1TO12:SYS"Hourglass_Percentage",r_/12*100:PROCfractimes:NEXT:FORr_=1TOlast_:a_=FU1_(r_):b_=FD1_(r_):c_=FU2_(r_):d_=FD2_(r_):PROCtimesfracs:NEXT:SYS"Hourglass_Off":ENDPROC
23190DEFPROCfractimes:IFquit_=TRUEENDPROC
23200REPEAT:ranflag_=TRUE:IFTIME>500 quit_=TRUE:VDU7:last_=r_-1:SYS"Hourglass_Off":ENDPROC
23210IFFracsign_$(r_)="x"ANDFrmwhole_=TRUETHEN
23220REPEAT:Whole_(r_,0)=RND(9):Whole_(r_,1)=RND(9):UNTILWhole_(r_,0)*Whole_(r_,1)<10
23230ENDIF:IFFracsign_$(r_)="�"ANDFrdwhole_=TRUETHEN
23240Whole_(r_,0)=RND(9):Whole_(r_,1)=RND(9)
23250ENDIF:IFgot_%=1 FD1_(r_)=gc_%(1)ELSEran_%=RND(got_%):FD1_(r_)=gc_%(ran_%)
23260REPEAT:flug_=0:REPEAT:FU1_(r_)=RND(FD1_(r_)):UNTILFU1_(r_)<FD1_(r_):FORrt_=2TO10:IFFU1_(r_)MODrt_=0ANDFD1_(r_)MODrt_=0 flug_=1
23270NEXT:UNTILflug_=0:IFgot_%=1 FD2_(r_)=gc_%(1)ELSEIFFrtdom_=TRUEFD2_(r_)=FD1_(r_)ELSEran_%=RND(got_%):FD2_(r_)=gc_%(ran_%)
23280REPEAT:flug_=0:REPEAT:FU2_(r_)=RND(FD2_(r_)):UNTILFU2_(r_)<FD2_(r_):FORrt_=2TO10:IFFU2_(r_)MODrt_=0ANDFD2_(r_)MODrt_=0 flug_=1
23290NEXT:UNTILflug_=0:IFr_>1ANDFrtrep_=TRUETHEN
23300FORrtt_=1TOr_-1:IFFracsign_$(r_)="x"ANDFD1_(r_)=FD1_(rtt_)ANDFD2_(r_)=FD2_(rtt_)ANDFU1_(r_)=FU1_(rtt_)ANDFU2_(r_)=FU2_(rtt_)ANDWhole_(r_,0)=Whole_(rtt_,0)ANDWhole_(r_,1)=Whole_(rtt_,1)ranflag_=FALSE
23310NEXT
23320ENDIF:IFr_>1ANDFrdrep_=TRUETHEN
23330FORrtt_=1TOr_-1:IFFracsign_$(r_)="�"ANDFD1_(r_)=FD1_(rtt_)ANDFD2_(r_)=FD2_(rtt_)ANDFU1_(r_)=FU1_(rtt_)ANDFU2_(r_)=FU2_(rtt_)ANDWhole_(r_,0)=Whole_(rtt_,0)ANDWhole_(r_,1)=Whole_(rtt_,1)ranflag_=FALSE
23340NEXT
23350ENDIF:UNTILranflag_=TRUE:ENDPROC
23360DEFPROCtimesfracs:IFFrmwhole_=TRUEORFrdwhole_=TRUETHEN
23370a_=Whole_(r_,0)*b_+a_:c_=Whole_(r_,1)*d_+c_
23380ENDIF:IFFracsign_$(r_)="x"THEN
23390e_=a_*c_:f_=b_*d_
23400ELSE:e_=a_*d_:f_=b_*c_
23410ENDIF:whole_=0:IFe_>=f_ whole_=e_DIVf_:e_=e_MODf_
23420Whole_(r_,2)=whole_:IFe_<>0PROCreduce
23430FU3_(r_)=e_:FD3_(r_)=f_:ENDPROC
23440DEFPROCreduce:FORtr_=10TO2STEP-1:IFe_MODtr_=0ANDf_MODtr_=0 e_=e_/tr_:f_=f_/tr_:e_$=STR$(e_):f_$=STR$(f_)
23450NEXT:ENDPROC
23530DEFPROCLongMulty:LongMul_%=FNfWS("LongMul"):IFLongMul_(1)=TRUE:PROCsI(LongMul_%,"LongMul1")
23550IFLongMul_(2)=TRUE:PROCsI(LongMul_%,"LongMul2")
23560IFLongMul_(3)=TRUE:PROCsI(LongMul_%,"LongMul3")
23570IFLongMul_(4)=TRUE:PROCsI(LongMul_%,"LongMul4")
23580IFLongMul_(5)=TRUE:PROCsI(LongMul_%,"LongMul5")
23590IFLongMul_(6)=TRUE:PROCsI(LongMul_%,"LongMul6")
23600IFLongstyle_=1PROCsI(LongMul_%,"LongStyleA")
23610IFLongstyle_=2PROCsI(LongMul_%,"LongStyleB")
23620ENDPROC
23660DEFFNlongmul_:c_=0:FORh_=1TO6:IFLongMul_(h_)c_=c_+1
23670NEXT:=c_
23680DEFFNLongMul1_:IFLongMul_(1)ANDFNlongmul_=1 LongMul_(1)=TRUE:PROCsI(LongMul_%,"LongMul1"):=FALSE
23690IFLongMul_(1)LongMul_(1)=FALSEELSELongMul_(1)=TRUE
23700=TRUE
23710DEFFNLongMul2_:IFLongMul_(2)ANDFNlongmul_=1 LongMul_(2)=TRUE:PROCsI(LongMul_%,"LongMul2"):=FALSE
23720IFLongMul_(2)LongMul_(2)=FALSEELSELongMul_(2)=TRUE
23730=TRUE
23740DEFFNLongMul3_:IFLongMul_(3)ANDFNlongmul_=1 LongMul_(3)=TRUE:PROCsI(LongMul_%,"LongMul3"):=FALSE
23750IFLongMul_(3)LongMul_(3)=FALSEELSELongMul_(3)=TRUE
23760=TRUE
23770DEFFNLongMul4_:IFLongMul_(4)ANDFNlongmul_=1 LongMul_(4)=TRUE:PROCsI(LongMul_%,"LongMul4"):=FALSE
23780IFLongMul_(4)LongMul_(4)=FALSEELSELongMul_(4)=TRUE
23790=TRUE
23800DEFFNLongMul5_:IFLongMul_(5)ANDFNlongmul_=1 LongMul_(5)=TRUE:PROCsI(LongMul_%,"LongMul5"):=FALSE
23810IFLongMul_(5)LongMul_(5)=FALSEELSELongMul_(5)=TRUE
23820=TRUE
23830DEFFNLongMul6_:IFLongMul_(6)ANDFNlongmul_=1 LongMul_(6)=TRUE:PROCsI(LongMul_%,"LongMul6"):=FALSE
23840IFLongMul_(6)LongMul_(6)=FALSEELSELongMul_(6)=TRUE
23850=TRUE
23870DEFFNLongStyleA_:Longstyle_=1:PROCsI(LongMul_%,"LongStyleA"):PROCusI(LongMul_%,"LongStyleB"):=TRUE
23890DEFFNLongStyleB_:Longstyle_=2:PROCsI(LongMul_%,"LongStyleB"):PROCusI(LongMul_%,"LongStyleA"):=TRUE
23940DEFFNLongMulgo_:PROCGetTitles:dummy_=RND(-TIME):flag_=FALSE:FORg_=1TO6:IFLongMul_(g_)=TRUEflag_=TRUE
23970NEXT:IFflag_=FALSETHENSYS"Hourglass_Off":V_$=FNalert("Choose a type","","OK","","",0):PROCusI(LongMul_%,"LongMulgo"):=FALSE
23980got_%=0:FORy_=1TO6:IFLongMul_(y_)=TRUEgot_%=got_%+1:gc_%(got_%)=y_
23990NEXT:IFgot_%=1THEN
24010FORh_=1TO8:froc_(h_)=gc_%(got_%):NEXT
24020ENDIF:IFgot_%>1THEN
24040REPEAT:flag_=TRUE:FORr_=1TO8:finder_%(r_)=0:NEXT:needed_%=8DIVgot_%:FORh_=1TO8:r_=RND(got_%):froc_(h_)=gc_%(r_):finder_%(r_)=finder_%(r_)+1:NEXT:FORr_=1TOgot_%:IFfinder_%(r_)<needed_% flag_=FALSE
24130NEXT:UNTILflag_=TRUE
24150ENDIF:FORt_=1TO8:IFfroc_(t_)=1PROCworklong1
24180IFfroc_(t_)=2PROCworklong2
24190IFfroc_(t_)=3PROCworklong3
24200IFfroc_(t_)=4PROCworklong4
24210IFfroc_(t_)=5PROCworklong5
24220IFfroc_(t_)=6PROCworklong6
24230NEXT:PROCusI(LongMul_%,"LongMulgo"):last_=3:quit_=FALSE:started_%=TRUE:=FNsums
24260DEFPROCworklong1:REPEAT:a_=RND(99):UNTILa_>20:REPEAT:b_=RND(90):UNTILb_MOD10=0:a_(t_)=a_:b_(t_)=b_:c_(t_)=a_*b_:last_=3:quit_=FALSE:Longchoice_$(t_)="LongMul1":Clue_$=Longchoice_$(t_):ENDPROC
24320DEFPROCworklong2:REPEAT:a_=RND(99):UNTILa_>12ANDa_MOD10<>0:REPEAT:b_=RND(99):UNTILb_>12ANDb_MOD10<>0:a_(t_)=a_:b_(t_)=b_:c_(t_)=a_*b_:Longchoice_$(t_)="LongMul2":Clue_$=Longchoice_$(t_):ENDPROC
24380DEFPROCworklong3:REPEAT:a_=RND(999):UNTILa_>100ANDa_MOD10<>0:REPEAT:b_=RND(99):UNTILb_>12ANDb_MOD10=0:a_(t_)=a_:b_(t_)=b_:c_(t_)=a_*b_:Longchoice_$(t_)="LongMul3":Clue_$=Longchoice_$(t_):ENDPROC
24440DEFPROCworklong4:REPEAT:a_=RND(999):UNTILa_>100ANDa_MOD10<>0:REPEAT:b_=RND(99):UNTILb_>12ANDb_MOD10<>0:FORg_=1TO8:IFa_=a_(g_)ANDb_=b_(g_)flag_=1
24480a_(t_)=a_:b_(t_)=b_:c_(t_)=a_*b_:Longchoice_$(t_)="LongMul4":Clue_$=Longchoice_$(t_):ENDPROC
24510DEFPROCworklong5:REPEAT:a_=RND(9999):UNTILa_>1000ANDa_MOD10<>0:REPEAT:b_=RND(99):UNTILb_>12ANDb_MOD10<>0:a_(t_)=a_:b_(t_)=b_:c_(t_)=a_*b_:Longchoice_$(t_)="LongMul5":Clue_$=Longchoice_$(t_):ENDPROC
24570DEFPROCworklong6:REPEAT:a_=RND(9999):UNTILa_>1000ANDa_MOD10<>0:REPEATno_=TRUE:REPEAT:b_=RND(999):UNTILb_>99ANDb_MOD10<>0:e_$=STR$(b_):FORe_=1TOLEN(e_$):IFVAL(MID$(e_$,e_,1))=0 no_=FALSE
24620NEXT:UNTILno_=TRUE:a_(t_)=a_:b_(t_)=b_:c_(t_)=a_*b_:Longchoice_$(t_)="LongMul6":Clue_$=Longchoice_$(t_):ENDPROC
24660DEFPROCLongMul2:left_=X%+80:on_=230:end_=100:down_=Y%-140:r_=0:FORq_=1TO2:FORw_=1TO4:r_=r_+1:a_$=STR$(a_(r_)):a_=a_(r_):b_$=STR$(b_(r_)):b_=b_(r_):c_$=STR$(c_(r_)):MOVEleft_+end_-LEN(a_$)*16-50-LEN(STR$(r_))*16,down_-100:PRINTFNzero(STR$(r_));")"
24780PROCsplit_(a_,down_-100):IFSign_%=TRUEMOVEleft_+end_+15,down_-100:PRINT"x"
24800PROCsplit_(b_,down_-140):IFSign_%=FALSEMOVEleft_+end_-LEN(STR$(b_))*16-20,down_-135:PRINT"x"
24820anslen_=LEN(c_$):ext_=0:IFanslen_>6 ext_=ext_+gap_*2
24850IFanslen_>3ANDanslen_<7 ext_=ext_+gap_
24860MOVEleft_+end_-anslen_*16-ext_,down_-170:DRAWleft_+end_-anslen_*16+anslen_*16+ext_,down_-170:IFAnswer_%=TRUEPROCLongMulAns
24880left_=left_+on_:NEXT:left_=X%+80:down_=down_-290:NEXT:ENDPROC
24940DEFPROCLongMulAns:IFLma_%=TRUETHEN
24960IFLongchoice_$(r_)="LongMul2"ORLongchoice_$(r_)="LongMul4"ORLongchoice_$(r_)="LongMul5"THEN
24970IFLongstyle_=1THEN
24980d_=a_*VAL(MID$(b_$,1,1))*10:PROCsplit_(d_,down_-180):e_=a_*VAL(MID$(b_$,2,1)):PROCsplit_(e_,down_-220)
25000ENDIF:IFLongstyle_=2THEN
25020d_=a_*VAL(MID$(b_$,1,1))*10:PROCsplit_(d_,down_-220):e_=a_*VAL(MID$(b_$,2,1)):PROCsplit_(e_,down_-180)
25040ENDIF:MOVEleft_+end_-anslen_*16-10,down_-252:DRAWleft_+end_-anslen_*16+anslen_*16+gap_,down_-252:f_=d_+e_:PROCsplit_(f_,down_-260):IFSecAns_%=TRUEMOVEleft_+end_-anslen_*16-10,down_-290:DRAWleft_+end_-anslen_*16+anslen_*16+gap_,down_-290
25080ENDIF:IFLongchoice_$(r_)="LongMul3"ORLongchoice_$(r_)="LongMul1"THEN
25100d_=a_*VAL(MID$(b_$,1,1))*10:PROCsplit_(d_,down_-180):IFSecAns_%=TRUEMOVEleft_+end_-anslen_*16-10,down_-210:DRAWleft_+end_-anslen_*16+anslen_*16+gap_,down_-210
25120ENDIF:IFLongchoice_$(r_)="LongMul6"THEN
25140IFLongstyle_=1THEN
25150d_=a_*VAL(MID$(b_$,1,1))*100:PROCsplit_(d_,down_-180):e_=a_*VAL(MID$(b_$,2,1))*10:PROCsplit_(e_,down_-220):f_=a_*VAL(MID$(b_$,3,1)):PROCsplit_(f_,down_-260)
25180ENDIF:IFLongstyle_=2THEN
25200d_=a_*VAL(MID$(b_$,1,1))*100:PROCsplit_(d_,down_-260):e_=a_*VAL(MID$(b_$,2,1))*10:PROCsplit_(e_,down_-220):f_=a_*VAL(MID$(b_$,3,1)):PROCsplit_(f_,down_-180)
25230ENDIF:MOVEleft_+end_-anslen_*16-10,down_-292:DRAWleft_+end_-anslen_*16+anslen_*16+gap_,down_-292:g_=d_+e_+f_:PROCsplit_(g_,down_-300):IFSecAns_%=TRUEMOVEleft_+end_-anslen_*16-10,down_-332:DRAWleft_+end_-anslen_*16+anslen_*16+gap_,down_-332
25270ENDIF
25280ELSE:PROCsplit_(c_(r_),down_-180):IFSecAns_%=TRUEMOVEleft_+end_-anslen_*16-ext_,down_-210:DRAWleft_+end_-anslen_*16+anslen_*16+ext_,down_-210
25310ENDIF:ENDPROC
25340DEFPROCsplit_(a_,v_):gap_=6:a_$=FNzero(STR$(a_)):IFLEN(a_$)>6THEN
25370ra_$=MID$(a_$,LEN(a_$)-2,3):MOVEleft_+end_-LEN(ra_$)*16,v_:PRINTra_$:mid_$=MID$(a_$,LEN(a_$)-5,3):MOVEleft_+end_-LEN(ra_$)*16-LEN(mid_$)*16-gap_,v_:PRINTmid_$:la_$=MID$(a_$,1,LEN(a_$)-6):MOVEleft_+end_-LEN(ra_$)*16-LEN(mid_$)*16-gap_-LEN(la_$)*16-gap_,v_:PRINTla_$
25460ENDIF:IFLEN(a_$)>3ANDLEN(a_$)<7THEN
25480ra_$=MID$(a_$,LEN(a_$)-2,3):MOVEleft_+end_-LEN(ra_$)*16,v_:PRINTra_$:la_$=MID$(a_$,1,LEN(a_$)-3):MOVEleft_+end_-LEN(ra_$)*16-LEN(la_$)*16-gap_,v_:PRINTla_$
25540ENDIF:IFLEN(a_$)<4THEN
25560MOVEleft_+end_-LEN(a_$)*16,v_:PRINTa_$
25580ENDIF:ENDPROC
25650DEFPROCLongDivy:LongDiv_%=FNfWS("LongDiv"):IFLongDiv_(1)PROCsI(LongDiv_%,"LongDiv1")
25670IFLongDiv_(2)PROCsI(LongDiv_%,"LongDiv2")
25680IFLongDiv_(3)PROCsI(LongDiv_%,"LongDiv3")
25690IFLongDiv_(4)PROCsI(LongDiv_%,"LongDiv4")
25700IFLongDiv_(5)PROCsI(LongDiv_%,"LongDiv5")
25710IFLongDiv_(6)PROCsI(LongDiv_%,"LongDiv6")
25720IFLongDiv_(7)PROCsI(LongDiv_%,"LongDiv7")
25730PROCLremainders:ENDPROC
25760DEFPROCLremainders:IFLRemainder_$="No"PROCsI(LongDiv_%,"LDrem1"):PROCusI(LongDiv_%,"LDrem2"):PROCusI(LongDiv_%,"LDrem3")
25780IFLRemainder_$="All"PROCusI(LongDiv_%,"LDrem1"):PROCsI(LongDiv_%,"LDrem2"):PROCusI(LongDiv_%,"LDrem3")
25790IFLRemainder_$="Ran"PROCusI(LongDiv_%,"LDrem1"):PROCusI(LongDiv_%,"LDrem2"):PROCsI(LongDiv_%,"LDrem3")
25800ENDPROC
25840DEFFNLDrem1_:LRemainder_$="No":PROCLremainders:=TRUE
25850DEFFNLDrem2_:LRemainder_$="All":PROCLremainders:=TRUE
25860DEFFNLDrem3_:LRemainder_$="Ran":PROCLremainders:=TRUE
25870DEFFNLongdivv_:c_=0:FORh_=1TO7:IFLongDiv_(h_)c_=c_+1
25880NEXT:=c_
25890DEFFNLongDiv1_:IFLongDiv_(1)ANDFNLongdivv_=1 LongDiv_(1)=TRUE:PROCsI(LongDiv_%,"LongDiv1"):=FALSE
25900IFLongDiv_(1)LongDiv_(1)=FALSEELSELongDiv_(1)=TRUE
25910=TRUE
25920DEFFNLongDiv2_:IFLongDiv_(2)ANDFNLongdivv_=1 LongDiv_(2)=TRUE:PROCsI(LongDiv_%,"LongDiv2"):=FALSE
25930IFLongDiv_(2)LongDiv_(2)=FALSEELSELongDiv_(2)=TRUE
25940=TRUE
25950DEFFNLongDiv3_:IFLongDiv_(3)ANDFNLongdivv_=1 LongDiv_(3)=TRUE:PROCsI(LongDiv_%,"LongDiv3"):=FALSE
25960IFLongDiv_(3)LongDiv_(3)=FALSEELSELongDiv_(3)=TRUE
25970=TRUE
25980DEFFNLongDiv4_:IFLongDiv_(4)ANDFNLongdivv_=1 LongDiv_(4)=TRUE:PROCsI(LongDiv_%,"LongDiv4"):=FALSE
25990IFLongDiv_(4)LongDiv_(4)=FALSEELSELongDiv_(4)=TRUE
26000=TRUE
26010DEFFNLongDiv5_:IFLongDiv_(5)ANDFNLongdivv_=1 LongDiv_(5)=TRUE:PROCsI(LongDiv_%,"LongDiv5"):=FALSE
26020IFLongDiv_(5)LongDiv_(5)=FALSEELSELongDiv_(5)=TRUE
26030=TRUE
26040DEFFNLongDiv6_:IFLongDiv_(6)ANDFNLongdivv_=1 LongDiv_(6)=TRUE:PROCsI(LongDiv_%,"LongDiv6"):=FALSE
26050IFLongDiv_(6)LongDiv_(6)=FALSEELSELongDiv_(6)=TRUE
26060=TRUE
26070DEFFNLongDiv7_:IFLongDiv_(7)ANDFNLongdivv_=1 LongDiv_(7)=TRUE:PROCsI(LongDiv_%,"LongDiv7"):=FALSE
26080IFLongDiv_(7)LongDiv_(7)=FALSEELSELongDiv_(7)=TRUE
26090=TRUE
26130DEFFNLongDivgo_:PROCGetTitles:dummy_=RND(-TIME):SYS"Hourglass_On":flag_=FALSE:randi_%=RND(2):got_%=0:FORy_=1TO7:IFLongDiv_(y_)=TRUEgot_%=got_%+1:gc_%(got_%)=y_
26160NEXT:IFgot_%=1THEN
26180FORh_=1TO8:froc_(h_)=gc_%(got_%):NEXT
26190ENDIF:IFgot_%>1THEN
26210REPEAT:flag_=TRUE:FORr_=1TO8:finder_%(r_)=0:NEXT:needed_%=8DIVgot_%:FORh_=1TO8:r_=RND(got_%):froc_(h_)=gc_%(r_):finder_%(r_)=finder_%(r_)+1:NEXT:FORr_=1TOgot_%:IFfinder_%(r_)<needed_% flag_=FALSE
26300NEXT:UNTILflag_=TRUE
26320ENDIF:FORt_=1TO6:SYS"Hourglass_Percentage",t_/6*100:IFfroc_(t_)=1 max_=999:min_=100:div_=90:minn_=0:mod_=TRUE
26350IFfroc_(t_)=2 max_=999:min_=100:div_=99:minn_=10:mod_=FALSE
26360IFfroc_(t_)=3 max_=9999:min_=1000:div_=90:minn_=10:mod_=TRUE
26370IFfroc_(t_)=4 max_=9999:min_=1000:div_=99:minn_=10:mod_=FALSE
26380IFfroc_(t_)=5 max_=99999:min_=10000:div_=99:minn_=10:mod_=FALSE
26390IFfroc_(t_)=6 max_=999999:min_=100000:div_=99:minn_=10:mod_=FALSE
26400IFfroc_(t_)=7 max_=999999:min_=100000:div_=999:minn_=100:mod_=FALSE
26410PROCworklongD1:NEXT:SYS"Hourglass_Off":PROCusI(LongDiv_%,"LongDivgo"):started_%=TRUE:last_=3:quit_=FALSE:Clue_$="LDivy":=FNsums
26450DEFPROCLdups:IFt_>1THEN
26470FORgg_=1TOt_-1:IFb_=b_(gg_)flag_=FALSE
26480NEXT
26490ENDIF:ENDPROC
26510DEFPROCworklongD1:IFLRemainder_$="No"PROClde
26530IFLRemainder_$="All"PROCldf
26540IFLRemainder_$="Ran"THEN
26550randi_%=RND(2):IFrandi_%=1PROCldeELSEPROCldf
26570ENDIF:a_(t_)=a_:b_(t_)=b_:c_(t_)=a_DIVb_:rem_(t_)=a_MODb_:ENDPROC
26610DEFPROClde:REPEAT:REPEAT:flag_=TRUE:REPEAT:a_=RND(max_):UNTILa_>min_:IFmod_=TRUEREPEATb_=RND(div_):UNTILb_MOD10=0ANDb_>minn_ELSEREPEATb_=RND(div_):UNTILb_MOD10<>0ANDb_>minn_
26660UNTILa_MODb_=0:PROCLdups:UNTILflag_=TRUE:ENDPROC
26710DEFPROCldf:REPEAT:REPEAT:flag_=TRUE:REPEAT:a_=RND(max_):UNTILa_>min_:IFmod_=TRUEREPEATb_=RND(div_):UNTILb_MOD10=0ANDb_>minn_ELSEREPEATb_=RND(div_):UNTILb_MOD10<>0ANDb_>minn_
26770c_=a_/b_:c_$=STR$(c_):FORcc_=1TOLEN(c_$):IFMID$(c_$,cc_,1)="." poin_=cc_
26790NEXT:cz_$=MID$(c_$,poin_+1,LEN(c_$)-poin_+1):IFLEN(cz_$)>pwon_ANDMID$(cz_$,pwon_,1)="9"ANDVAL(MID$(cz_$,pwon_+1,1))>4 flag_=FALSE
26820UNTILa_MODb_<>0ANDflag_=TRUE:IFLEN(cz_$)>pwon_ANDVAL(MID$(cz_$,pwon_+1,1))>4THEN
26850d_=VAL(MID$(cz_$,pwon_,1)):d_=d_+1:d_$=STR$(d_):MID$(cz_$,pwon_,1)=d_$
26870ENDIF:IFLEN(cz_$)<pwon_ cz_$=cz_$+STRING$(pwon_-LEN(cz_$),"0")
26890cz_$(t_)=MID$(cz_$,1,pwon_):PROCLdups:UNTILflag_=TRUE:ENDPROC
26980DEFPROCMadd:Madd_%=FNfWS("Madd"):IFmaddy_(1)PROCsI(Madd_%,"Madd1")
27000IFmaddy_(2)PROCsI(Madd_%,"Madd2")
27010IFmaddy_(3)PROCsI(Madd_%,"Madd3")
27020IFmaddy_(4)PROCsI(Madd_%,"Madd4")
27030IFmaddy_(5)PROCsI(Madd_%,"Madd5")
27040IFmaddy_(6)PROCsI(Madd_%,"Madd6")
27050IFmt_(1)PROCsI(Madd_%,"mt1")
27060IFmt_(2)PROCsI(Madd_%,"mt2")
27070IFmt_(3)PROCsI(Madd_%,"mt3")
27080IFmt_(4)PROCsI(Madd_%,"mt4")
27090IFmt_(5)PROCsI(Madd_%,"mt5")
27100IFmt_(6)PROCsI(Madd_%,"mt6")
27110PROCmadcarry:ENDPROC
27140DEFPROCmadcarry:IFmaddcarry_$="No"PROCsI(Madd_%,"mcarry1"):PROCusI(Madd_%,"mcarry2"):PROCusI(Madd_%,"mcarry3")
27160IFmaddcarry_$="All"PROCusI(Madd_%,"mcarry1"):PROCsI(Madd_%,"mcarry2"):PROCusI(Madd_%,"mcarry3")
27170IFmaddcarry_$="Ran"PROCusI(Madd_%,"mcarry1"):PROCusI(Madd_%,"mcarry2"):PROCsI(Madd_%,"mcarry3")
27180ENDPROC
27220DEFFNmaddy_:c_=0:FORh_=1TO6:IFmaddy_(h_)c_=c_+1
27230NEXT:=c_
27240DEFFNMadd1_:IFmaddy_(1)ANDFNmaddy_=1 maddy_(1)=TRUE:PROCsI(Madd_%,"Madd1"):=FALSE
27250IFmaddy_(1)maddy_(1)=FALSEELSEmaddy_(1)=TRUE
27260=TRUE
27270DEFFNMadd2_:IFmaddy_(2)ANDFNmaddy_=1 maddy_(2)=TRUE:PROCsI(Madd_%,"Madd2"):=FALSE
27280IFmaddy_(2)maddy_(2)=FALSEELSEmaddy_(2)=TRUE
27290=TRUE
27300DEFFNMadd3_:IFmaddy_(3)ANDFNmaddy_=1 maddy_(3)=TRUE:PROCsI(Madd_%,"Madd3"):=FALSE
27310IFmaddy_(3)maddy_(3)=FALSEELSEmaddy_(3)=TRUE
27320=TRUE
27330DEFFNMadd4_:IFmaddy_(4)ANDFNmaddy_=1 maddy_(4)=TRUE:PROCsI(Madd_%,"Madd4"):=FALSE
27340IFmaddy_(4)maddy_(4)=FALSEELSEmaddy_(4)=TRUE
27350=TRUE
27360DEFFNMadd5_:IFmaddy_(5)ANDFNmaddy_=1 maddy_(5)=TRUE:PROCsI(Madd_%,"Madd5"):=FALSE
27370IFmaddy_(5)maddy_(5)=FALSEELSEmaddy_(5)=TRUE
27380=TRUE
27390DEFFNMadd6_:IFmaddy_(6)ANDFNmaddy_=1 maddy_(6)=TRUE:PROCsI(Madd_%,"Madd6"):=FALSE
27400IFmaddy_(6)maddy_(6)=FALSEELSEmaddy_(6)=TRUE
27410=TRUE
27420DEFFNmt1_:IFmt_(1)mt_(1)=FALSE:PROCusI(Madd_%,"mt1")ELSEmt_(1)=TRUE:PROCsI(Madd_%,"mt1")
27430=TRUE
27440DEFFNmt2_:IFmt_(2)mt_(2)=FALSE:PROCusI(Madd_%,"mt2")ELSEmt_(2)=TRUE:PROCsI(Madd_%,"mt2")
27450=TRUE
27460DEFFNmt3_:IFmt_(3)mt_(3)=FALSE:PROCusI(Madd_%,"mt3")ELSEmt_(3)=TRUE:PROCsI(Madd_%,"mt3")
27470=TRUE
27480DEFFNmt4_:IFmt_(4)mt_(4)=FALSE:PROCusI(Madd_%,"mt4")ELSEmt_(4)=TRUE:PROCsI(Madd_%,"mt4")
27490=TRUE
27500DEFFNmt5_:IFmt_(5)mt_(5)=FALSE:PROCusI(Madd_%,"mt5")ELSEmt_(5)=TRUE:PROCsI(Madd_%,"mt5")
27510=TRUE
27520DEFFNmt6_:IFmt_(6)mt_(6)=FALSE:PROCusI(Madd_%,"mt6")ELSEmt_(6)=TRUE:PROCsI(Madd_%,"mt6")
27530=TRUE
27540DEFFNmcarry1_:maddcarry_$="No":PROCmadcarry:=TRUE
27550DEFFNmcarry2_:maddcarry_$="All":PROCmadcarry:=TRUE
27560DEFFNmcarry3_:maddcarry_$="Ran":PROCmadcarry:=TRUE
27600DEFFNMaddgo_:PROCGetTitles:many_=12:PROCSmadd_:PROCwhatmadds:PROCmaddup:started_%=TRUE:PROCusI(Madd_%,"Maddgo"):SYS"Hourglass_Off":last_=3:quit_=FALSE:Clue_$="Madd":=FNsums
27650DEFPROCSmadd_:IFNOTmaddy_(3)ANDNOTmaddy_(4)THENmt_(1)=FALSE:PROCusI(Madd_%,"mt1"):mt_(2)=FALSE:PROCusI(Madd_%,"mt2"):mt_(3)=FALSE:PROCusI(Madd_%,"mt3")
27660IFNOTmaddy_(5)ANDNOTmaddy_(6)THENmt_(4)=FALSE:PROCusI(Madd_%,"mt4"):mt_(5)=FALSE:PROCusI(Madd_%,"mt5"):mt_(6)=FALSE:PROCusI(Madd_%,"mt6")
27670ENDPROC
27680DEFPROCwhatmadds:SYS"Hourglass_On":thou_=0:hun_=0:IFmt_(1)hun_=hun_+1:hun_$(hun_)="�"
27710IFmt_(2)hun_=hun_+1:hun_$(hun_)="m"
27720IFmt_(3)hun_=hun_+1:hun_$(hun_)="cm"
27730IFmt_(4)thou_=thou_+1:thou_$(thou_)="kg"
27740IFmt_(5)thou_=thou_+1:thou_$(thou_)="km"
27750IFmt_(6)thou_=thou_+1:thou_$(thou_)="l"
27760got_%=0:FORr_%=1TO6:IFmaddy_(r_%)THENgot_%=got_%+1:gc_%(got_%)=r_%:addytype_(got_%)=r_%
27770NEXT:IFgot_%=1FORr_=1TO12:lineaddy_(r_)=gc_%(got_%):NEXT:ENDPROC
27790IFgot_%=6PROCtimes(got_%,12):FORr_=1TO12:lineaddy_(r_)=gc_%(finder_%(r_)):NEXT:SYS"Hourglass_Off":ENDPROC
27800needed_%=12DIVgot_%:REPEAT:FORr_=1TO12:finder_%(r_)=0:NEXT:flag_=TRUE:FORr_=1TO12:SYS"Hourglass_Percentage",r_/12*100:REPEAT:flig_=TRUE:ran_%=RND(got_%):IFr_>1ANDgc_%(ran_%)=lineaddy_(r_-1)flig_=FALSE
27900UNTILflig_=TRUE:lineaddy_(r_)=gc_%(ran_%):finder_%(ran_%)=finder_%(ran_%)+1:NEXT:FORt_=1TOgot_%:IFfinder_%(t_)<needed_% flag_=FALSE
27930NEXT:UNTILflag_=TRUE:SYS"Hourglass_Off":ENDPROC
27960DEFPROCmaddup:dummy_=RND(-TIME):FORt_=1TO12:a_(t_)=-1:b_(t_)=-1:NEXT:SYS"Hourglass_On":FORt_=1TO12:IFlineaddy_(t_)=1 ran_%=99:rin_%=9
28010IFlineaddy_(t_)=2 ran_%=999:rin_%=99
28020IFlineaddy_(t_)=3 ran_%=999:rin_%=99
28030IFlineaddy_(t_)=4 ran_%=9999:rin_%=999
28040IFlineaddy_(t_)=5 ran_%=9999:rin_%=999
28050IFlineaddy_(t_)=6 ran_%=99999:rin_%=9999
28060IFlineaddy_(t_)<3 top_$(t_)=""
28070IFlineaddy_(t_)=3ORlineaddy_(t_)=4THEN
28080IFhun_=0 top_$(t_)=""
28090IFhun_=1 top_$(t_)=hun_$(1)
28100IFhun_>1 top_=RND(hun_):top_$(t_)=hun_$(top_)
28110ENDIF:IFlineaddy_(t_)=5ORlineaddy_(t_)=6THEN
28130IFthou_=0 top_$(t_)=""
28140IFthou_=1 top_$(t_)=thou_$(1)
28150IFthou_>1 top_=RND(thou_):top_$(t_)=thou_$(top_)
28160ENDIF:SYS"Hourglass_Percentage",t_/12*100:REPEAT:flag_=0:REPEAT:a_=RND(ran_%):b_=RND(ran_%):UNTILa_MOD10<>0ANDb_MOD10<>0ANDa_>rin_%ANDb_>rin_%:IFmaddcarry_$="No"PROCnomaddcarry
28240IFmaddcarry_$="All"PROCallmaddcarry
28250IFt_>1THEN
28260FORe_=1TOt_-1:IFa_=a_(e_)ANDb_=b_(e_)flag_=1
28270NEXT
28280ENDIF:UNTILflag_=0:a_(t_)=a_:b_(t_)=b_:c_(t_)=a_+b_:NEXT:SYS"Hourglass_Off":ENDPROC
28340DEFPROCnomaddcarry:a_$=STR$(a_):b_$=STR$(b_):la_=LEN(a_$):lb_=LEN(b_$):z_=la_:IFlb_<la_ z_=lb_
28360FORr_=z_TO1STEP-1:IFVAL(MID$(a_$,r_,1))+VAL(MID$(b_$,r_,1))>9 flag_=1
28380NEXT:ENDPROC
28400DEFPROCallmaddcarry:a_$=STR$(a_):b_$=STR$(b_):la_=LEN(a_$):lb_=LEN(b_$):z_=la_:IFlb_>la_ z_=lb_
28420FORr_=z_TO1STEP-1:IFVAL(MID$(a_$,r_,1))+VAL(MID$(b_$,r_,1))<10 flag_=1
28430NEXT:ENDPROC
28450DEFPROCMDiv:X%=X%+90:left_=X%+80:on_=270:end_=100:down_=Y%-110:r_=0:IFmany_=9FORq_=1TO3ELSEFORq_=1TO4
28510FORw_=1TO3:r_=r_+1:IFquit_=TRUEa_=0:b_=0:c_=0ELSEa_=a_(r_):b_=b_(r_):c_=c_(r_)
28530dunkleft_=left_:a_$=FNzero(STR$(a_)):b_$=FNzero(STR$(b_)):c_$=FNzero(STR$(c_)):anslen_=LEN(a_$):dunkleft_=left_:lon_=LEN(a_$):left_=left_+lon_/2*16:pt_=left_:IFlinedvy_(r_)=1PROCpppoint(1,1)
28600IFlinedvy_(r_)=2PROCpppoint(2,1)
28610IFlinedvy_(r_)=3PROCpppoint(1,2)
28620IFlinedvy_(r_)=4PROCpppoint(2,2)
28630IFlinedvy_(r_)=5PROCpppoint(1,3)
28640IFlinedvy_(r_)=6PROCpppoint(2,3)
28650IFlinedvy_(r_)=1ANDLEN(c_$)<2 c_$="O"+c_$
28670IFlinedvy_(r_)=1 left_$=LEFT$(c_$,1):right_$=RIGHT$(c_$,1)
28680IFlinedvy_(r_)=2 left_$=LEFT$(c_$,LEN(c_$)-1):right_$=RIGHT$(c_$,1)
28690IFlinedvy_(r_)=3ANDLEN(c_$)<3 c_$="O"+c_$
28700IFlinedvy_(r_)=3 left_$=LEFT$(c_$,1):right_$=RIGHT$(c_$,2)
28710IFlinedvy_(r_)=4 left_$=LEFT$(c_$,LEN(c_$)-2):right_$=RIGHT$(c_$,2)
28720IFlinedvy_(r_)=5ANDLEN(c_$)<4 c_$="O"+c_$
28730IFlinedvy_(r_)=5 left_$=LEFT$(c_$,1):right_$=RIGHT$(c_$,3)
28740IFlinedvy_(r_)=6 left_$=LEFT$(c_$,LEN(c_$)-3):right_$=RIGHT$(c_$,3)
28750left_=dunkleft_:left_=left_+on_:NEXT:left_=X%+80:down_=down_-180:NEXT:ENDPROC
28800DEFPROCpppoint(x_,y_):left_$=LEFT$(a_$,x_):right_$=RIGHT$(a_$,y_):al_=LEN(left_$)*16:ar_=LEN(right_$)*16:MOVEleft_+end_-ar_,down_-100:PRINTright_$:MOVEleft_+end_-ar_-20,down_-90:PRINT".":MOVEleft_+end_-ar_-al_-30,down_-100:PRINTleft_$
28860MOVEleft_+end_-ar_-30-LEN(top_$(r_))*16,down_-25:PRINTtop_$(r_):MOVEleft_+end_-ar_-al_-50,down_-100:PRINT")":MOVEleft_+end_-ar_-al_-50,down_-94:DRAWleft_+end_,down_-94:MOVEleft_+end_-ar_-al_-55-LEN(b_$)*16,down_-100:PRINTb_$
28900MOVEleft_+end_-ar_-al_-100-LEN(b_$)*16-LEN(STR$(r_))*16,down_-60:PRINTFNzero(STR$(r_));")":IFAnswer_%=TRUETHEN
28930left_$=LEFT$(c_$,LEN(c_$)-y_):right_$=RIGHT$(c_$,y_):IFleft_$="" left_$="O"
28950al_=LEN(left_$)*16:ar_=LEN(right_$)*16:MOVEleft_+end_-ar_,down_-60:PRINTright_$:MOVEleft_+end_-ar_-20,down_-50:PRINT".":MOVEleft_+end_-ar_-al_-30,down_-60:PRINTleft_$
28990ENDIF:ENDPROC
29010DEFPROCMmult_:X%=X%+70:left_=X%+80:on_=270:end_=100:down_=Y%-90:r_=0:FORq_=1TO4:FORw_=1TO3:r_=r_+1:IFquit_=TRUEa_=0:b_=0:c_=0ELSEa_=a_(r_):b_=b_(r_):c_=c_(r_)
29090dunkleft_=left_:a_$=FNzero(STR$(a_)):b_$=FNzero(STR$(b_)):c_$=FNzero(STR$(c_)):anslen_=LEN(c_$):dunkleft_=left_:lon_=LEN(a_$):left_=left_+lon_/2*16:pt_=left_:MOVEleft_+end_-LEN(STR$(a_))*16-80-LEN(STR$(r_))*16,down_-100:PRINTFNzero(STR$(r_));")"
29160IFlineaddy_(r_)=1PROCppoint(1,1)
29170IFlineaddy_(r_)=2PROCppoint(2,1)
29180IFlineaddy_(r_)=3PROCppoint(1,2)
29190IFlineaddy_(r_)=4PROCppoint(2,2)
29200IFlineaddy_(r_)=5PROCppoint(1,3)
29210IFlineaddy_(r_)=6PROCppoint(2,3)
29220MOVEleft_+end_-anslen_*16-30,down_-172:DRAWleft_+end_-anslen_*16+anslen_*16,down_-172:left_=dunkleft_:left_=left_+on_:NEXT:left_=X%+80:down_=down_-180:NEXT:ENDPROC
29280DEFPROCppoint(x_,y_):left_$=LEFT$(a_$,x_):right_$=RIGHT$(a_$,y_):al_=LEN(left_$)*16:ar_=LEN(right_$)*16:MOVEleft_+end_-ar_,down_-100:PRINTright_$:IFSign_%=TRUEMOVEleft_+end_+10,down_-100:PRINTsign_$
29330MOVEleft_+end_-ar_-20,down_-90:PRINT".":MOVEleft_+end_-ar_-al_-30,down_-100:PRINTleft_$:MOVEleft_+end_-ar_-30-LEN(top_$(r_))*16,down_-60:PRINTtop_$(r_):MOVEleft_+end_-ar_-30-LEN(b_$)*16,down_-140:PRINTb_$
29370IFSign_%=FALSEMOVEleft_+end_-ar_-30-LEN(b_$)*16-30,down_-140:PRINTsign_$
29380IFSecAns_%=TRUEMOVEleft_+end_-anslen_*16-30,down_-212:DRAWleft_+end_-anslen_*16+anslen_*16,down_-212
29390IFAnswer_%=TRUETHEN
29400left_$=LEFT$(c_$,LEN(c_$)-y_):right_$=RIGHT$(c_$,y_):IFleft_$="" left_$="O"
29420al_=LEN(left_$)*16:ar_=LEN(right_$)*16:MOVEleft_+end_-ar_,down_-180:PRINTright_$:MOVEleft_+end_-ar_-20,down_-170:PRINT".":MOVEleft_+end_-ar_-al_-30,down_-180:PRINTleft_$
29460ENDIF:ENDPROC
29480DEFPROCmadd:IFClue_$="Madd" sign_$="+"
29500IFClue_$="Msub" sign_$="-"
29510IFMID$(Clue_$,1,3)="Sub" sign_$="-"
29520IFMID$(Clue_$,1,3)="Mul" sign_$="x"
29530X%=X%+50:left_=X%+80:on_=270:end_=100:down_=Y%-90:r_=0:IFmany_=9FORq_=1TO3ELSEFORq_=1TO4
29580FORw_=1TO3:r_=r_+1:IFquit_=TRUEa_=0:b_=0:c_=0ELSEa_=a_(r_):b_=b_(r_):c_=c_(r_)
29600dunkleft_=left_:a_$=FNzero(STR$(a_)):b_$=FNzero(STR$(b_)):c_$=FNzero(STR$(c_)):IFLEN(b_$)>LEN(c_$)anslen_=LEN(b_$)ELSEanslen_=LEN(c_$)
29630dunkleft_=left_:lon_=LEN(a_$):IFLEN(b_$)>lon_ lon_=LEN(b_$)
29660IFLEN(c_$)>lon_ lon_=LEN(c_$)
29670left_=left_+lon_/2*16:MOVEleft_+end_-LEN(STR$(a_))*16-60-LEN(STR$(r_))*16,down_-100:PRINTFNzero(STR$(r_));")":IFr_=10MOVEleft_+end_-LEN(STR$(a_))*16-60-LEN(STR$(r_))*16,down_-100:PRINT"1O)"
29700IFlineaddy_(r_)=1PROCpoint(1,1)
29710IFlineaddy_(r_)=2PROCpoint(2,1)
29720IFlineaddy_(r_)=3PROCpoint(1,2)
29730IFlineaddy_(r_)=4PROCpoint(2,2)
29740IFlineaddy_(r_)=5PROCpoint(1,3)
29750IFlineaddy_(r_)=6PROCpoint(2,3)
29760MOVEleft_+end_-anslen_*16-30,down_-172:DRAWleft_+end_-anslen_*16+anslen_*16,down_-172:left_=dunkleft_:left_=left_+on_:NEXT:left_=X%+80:down_=down_-180:NEXT:ENDPROC
29820DEFPROCpoint(x_,y_):left_$=LEFT$(a_$,x_):right_$=RIGHT$(a_$,y_):al_=LEN(left_$)*16:ar_=LEN(right_$)*16:MOVEleft_+end_-ar_,down_-100:PRINTright_$:IFSign_%=TRUEMOVEleft_+end_+10,down_-100:PRINTsign_$
29870MOVEleft_+end_-ar_-20,down_-90:PRINT".":MOVEleft_+end_-ar_-al_-30,down_-100:PRINTleft_$:MOVEleft_+end_-ar_-30-LEN(top_$(r_))*16,down_-60:PRINTtop_$(r_):left_$=LEFT$(b_$,x_):right_$=RIGHT$(b_$,y_):al_=LEN(left_$)*16:ar_=LEN(right_$)*16
29920MOVEleft_+end_-ar_,down_-140:PRINTright_$:MOVEleft_+end_-ar_-20,down_-130:PRINT".":MOVEleft_+end_-ar_-al_-30,down_-140:PRINTleft_$:IFSign_%=FALSEMOVEleft_+end_-ar_-al_-50,down_-140:PRINTsign_$
29960IFSecAns_%=TRUEMOVEleft_+end_-anslen_*16-30,down_-212:DRAWleft_+end_-anslen_*16+anslen_*16,down_-212
29970IFAnswer_%=TRUETHEN
29980left_$=LEFT$(c_$,LEN(c_$)-y_):right_$=RIGHT$(c_$,y_):IFleft_$="" left_$="O"
30000al_=LEN(left_$)*16:ar_=LEN(right_$)*16:MOVEleft_+end_-ar_,down_-180:PRINTright_$:MOVEleft_+end_-ar_-20,down_-170:PRINT".":MOVEleft_+end_-ar_-al_-30,down_-180:PRINTleft_$
30040ENDIF:ENDPROC
30100DEFPROCMsub:Msub_%=FNfWS("MetricSub"):IFmsub_(1)PROCsI(Msub_%,"Msub1")
30120IFmsub_(2)PROCsI(Msub_%,"Msub2")
30130IFmsub_(3)PROCsI(Msub_%,"Msub3")
30140IFmsub_(4)PROCsI(Msub_%,"Msub4")
30150IFmsub_(5)PROCsI(Msub_%,"Msub5")
30160IFmsub_(6)PROCsI(Msub_%,"Msub6")
30170IFst_(1)PROCsI(Msub_%,"st1")
30180IFst_(2)PROCsI(Msub_%,"st2")
30190IFst_(3)PROCsI(Msub_%,"st3")
30200IFst_(4)PROCsI(Msub_%,"st4")
30210IFst_(5)PROCsI(Msub_%,"st5")
30220IFst_(6)PROCsI(Msub_%,"st6")
30230PROCmsubcarry:ENDPROC
30260DEFPROCmsubcarry:IFmsubcarry_$="No"PROCsI(Msub_%,"scarry1"):PROCusI(Msub_%,"scarry2"):PROCusI(Msub_%,"scarry3")
30280IFmsubcarry_$="All"PROCusI(Msub_%,"scarry1"):PROCsI(Msub_%,"scarry2"):PROCusI(Msub_%,"scarry3")
30290IFmsubcarry_$="Ran"PROCusI(Msub_%,"scarry1"):PROCusI(Msub_%,"scarry2"):PROCsI(Msub_%,"scarry3")
30300ENDPROC
30340DEFFNmsub_:c_=0:FORh_=1TO6:IFmsub_(h_)c_=c_+1
30350NEXT:=c_
30360DEFFNMsub1_:IFmsub_(1)ANDFNmsub_=1 msub_(1)=TRUE:PROCsI(Msub_%,"Msub1"):=FALSE
30370IFmsub_(1)msub_(1)=FALSEELSEmsub_(1)=TRUE
30380=TRUE
30390DEFFNMsub2_:IFmsub_(2)ANDFNmsub_=1 msub_(2)=TRUE:PROCsI(Msub_%,"Msub2"):=FALSE
30400IFmsub_(2)msub_(2)=FALSEELSEmsub_(2)=TRUE
30410=TRUE
30420DEFFNMsub3_:IFmsub_(3)ANDFNmsub_=1 msub_(3)=TRUE:PROCsI(Msub_%,"Msub3"):=FALSE
30430IFmsub_(3)msub_(3)=FALSEELSEmsub_(3)=TRUE
30440=TRUE
30450DEFFNMsub4_:IFmsub_(4)ANDFNmsub_=1 msub_(4)=TRUE:PROCsI(Msub_%,"Msub4"):=FALSE
30460IFmsub_(4)msub_(4)=FALSEELSEmsub_(4)=TRUE
30470=TRUE
30480DEFFNMsub5_:IFmsub_(5)ANDFNmsub_=1 msub_(5)=TRUE:PROCsI(Msub_%,"Msub5"):=FALSE
30490IFmsub_(5)msub_(5)=FALSEELSEmsub_(5)=TRUE
30500=TRUE
30510DEFFNMsub6_:IFmsub_(6)ANDFNmsub_=1 msub_(6)=TRUE:PROCsI(Msub_%,"Msub6"):=FALSE
30520IFmsub_(6)msub_(6)=FALSEELSEmsub_(6)=TRUE
30530=TRUE
30540DEFFNst1_:IFst_(1)st_(1)=FALSEELSEst_(1)=TRUE
30550=TRUE
30560DEFFNst2_:IFst_(2)st_(2)=FALSEELSEst_(2)=TRUE
30570=TRUE
30580DEFFNst3_:IFst_(3)st_(3)=FALSEELSEst_(3)=TRUE
30590=TRUE
30600DEFFNst4_:IFst_(4)st_(4)=FALSEELSEst_(4)=TRUE
30610=TRUE
30620DEFFNst5_:IFst_(5)st_(5)=FALSEELSEst_(5)=TRUE
30630=TRUE
30640DEFFNst6_:IFst_(6)st_(6)=FALSEELSEst_(6)=TRUE
30650=TRUE
30660DEFFNscarry1_:msubcarry_$="No":PROCmsubcarry:=TRUE
30670DEFFNscarry2_:msubcarry_$="All":PROCmsubcarry:=TRUE
30680DEFFNscarry3_:msubcarry_$="Ran":PROCmsubcarry:=TRUE
30720DEFFNMsubgo_:PROCGetTitles:PROCTsub_:PROCwhatsubs:PROCsaddup:started_%=TRUE:PROCusI(Msub_%,"Msubgo"):SYS"Hourglass_Off":last_=3:quit_=FALSE:Clue_$="Msub":=FNsums
30770DEFPROCTsub_:IFNOTmsub_(3)ANDNOTmsub_(4)THENst_(1)=FALSE:PROCusI(Msub_%,"st1"):st_(2)=FALSE:PROCusI(Msub_%,"st2"):st_(3)=FALSE:PROCusI(Msub_%,"st3")
30780IFNOTmsub_(5)ANDNOTmsub_(6)THENst_(4)=FALSE:PROCusI(Msub_%,"st4"):st_(5)=FALSE:PROCusI(Msub_%,"st5"):st_(6)=FALSE:PROCusI(Msub_%,"st6")
30790ENDPROC
30800DEFPROCwhatsubs:SYS"Hourglass_On":thou_=0:hun_=0:IFst_(1)hun_=hun_+1:hun_$(hun_)="�"
30830IFst_(2)hun_=hun_+1:hun_$(hun_)="m"
30840IFst_(3)hun_=hun_+1:hun_$(hun_)="cm"
30850IFst_(4)thou_=thou_+1:thou_$(thou_)="kg"
30860IFst_(5)thou_=thou_+1:thou_$(thou_)="km"
30870IFst_(6)thou_=thou_+1:thou_$(thou_)="l"
30880got_%=0:FORr_=1TO6:IFmsub_(r_)=TRUEgot_%=got_%+1:addytype_(got_%)=r_:gc_%(got_%)=r_
30890NEXT:IFgot_%=1FORr_=1TO12:lineaddy_(r_)=addytype_(got_%):NEXT:ENDPROC
30910IFgot_%=6PROCtimes(got_%,12):FORr_=1TO12:lineaddy_(r_)=gc_%(finder_%(r_)):NEXT:SYS"Hourglass_Off":ENDPROC
30920needed_%=12DIVgot_%:REPEAT:FORr_=1TO12:finder_%(r_)=0:NEXT:flag_=TRUE:FORr_=1TO12:SYS"Hourglass_Percentage",r_/12*100:REPEAT:flig_=TRUE:ran_%=RND(got_%):IFr_>1ANDgc_%(ran_%)=lineaddy_(r_-1)flig_=FALSE
31020UNTILflig_=TRUE:lineaddy_(r_)=gc_%(ran_%):finder_%(ran_%)=finder_%(ran_%)+1:NEXT:FORt_=1TOgot_%:IFfinder_%(t_)<needed_% flag_=FALSE
31050NEXT:UNTILflag_=TRUE:SYS"Hourglass_Off":ENDPROC
31080DEFPROCsaddup:dummy_=RND(-TIME):FORt_=1TO12:a_(t_)=-1:b_(t_)=-1:NEXT:SYS"Hourglass_On":FORt_=1TO12:IFlineaddy_(t_)=1 ran_%=99:rin_%=9
31130IFlineaddy_(t_)=2 ran_%=999:rin_%=99
31140IFlineaddy_(t_)=3 ran_%=999:rin_%=99
31150IFlineaddy_(t_)=4 ran_%=9999:rin_%=999
31160IFlineaddy_(t_)=5 ran_%=9999:rin_%=999
31170IFlineaddy_(t_)=6 ran_%=99999:rin_%=9999
31180IFlineaddy_(t_)<3 top_$(t_)=""
31190IFlineaddy_(t_)=3ORlineaddy_(t_)=4THEN
31200IFhun_=0 top_$(t_)=""
31210IFhun_=1 top_$(t_)=hun_$(1)
31220IFhun_>1 top_=RND(hun_):top_$(t_)=hun_$(top_)
31230ENDIF:IFlineaddy_(t_)=5ORlineaddy_(t_)=6THEN
31250IFthou_=0 top_$(t_)=""
31260IFthou_=1 top_$(t_)=thou_$(1)
31270IFthou_>1 top_=RND(thou_):top_$(t_)=thou_$(top_)
31280ENDIF:SYS"Hourglass_Percentage",t_/12*100:REPEAT:flag_=0:REPEAT:a_=RND(ran_%):b_=RND(ran_%):UNTILa_MOD10<>0ANDb_MOD10<>0ANDa_>rin_%ANDb_>rin_%ANDa_>b_:IFmsubcarry_$="No"PROCnosubcarry
31360IFmsubcarry_$="All"PROCallsubcarry
31370IFt_>1THEN
31380FORe_=1TOt_-1:IFa_=a_(e_)ANDb_=b_(e_)flag_=1
31390NEXT
31400ENDIF:UNTILflag_=0:a_(t_)=a_:b_(t_)=b_:c_(t_)=a_-b_:NEXT:SYS"Hourglass_Off":ENDPROC
31500DEFPROCMmul:Mmul_%=FNfWS("MetricMul"):IFmmul_(1)PROCsI(Mmul_%,"Mmul1")
31530IFmmul_(2)PROCsI(Mmul_%,"Mmul2")
31540IFmmul_(3)PROCsI(Mmul_%,"Mmul3")
31550IFmmul_(4)PROCsI(Mmul_%,"Mmul4")
31560IFmmul_(5)PROCsI(Mmul_%,"Mmul5")
31570IFmmul_(6)PROCsI(Mmul_%,"Mmul6")
31580IFmmt_(1)PROCsI(Mmul_%,"mmt1")
31590IFmmt_(2)PROCsI(Mmul_%,"mmt2")
31600IFmmt_(3)PROCsI(Mmul_%,"mmt3")
31610IFmmt_(4)PROCsI(Mmul_%,"mmt4")
31620IFmmt_(5)PROCsI(Mmul_%,"mmt5")
31630IFmmt_(6)PROCsI(Mmul_%,"mmt6")
31640IFMmult_(1)PROCsI(Mmul_%,"mmult1")
31660IFMmult_(2)PROCsI(Mmul_%,"mmult2")
31670IFMmult_(3)PROCsI(Mmul_%,"mmult3")
31680IFMmult_(4)PROCsI(Mmul_%,"mmult4")
31690IFMmult_(5)PROCsI(Mmul_%,"mmult5")
31700IFMmult_(6)PROCsI(Mmul_%,"mmult6")
31710IFMmult_(7)PROCsI(Mmul_%,"mmult7")
31720IFMmult_(8)PROCsI(Mmul_%,"mmult8")
31730IFMmult_(9)PROCsI(Mmul_%,"mmult9")
31740ENDPROC
31780DEFFNMmul_:c_=0:FORh_=1TO6:IFmmul_(h_)c_=c_+1
31790NEXT:=c_
31800DEFFNMmul1_:IFmmul_(1)ANDFNMmul_=1 mmul_(1)=TRUE:PROCsI(Mmul_%,"Mmul1"):=TRUE
31810IFmmul_(1)mmul_(1)=FALSEELSEmmul_(1)=TRUE
31820=TRUE
31830DEFFNMmul2_:IFmmul_(2)ANDFNMmul_=1 mmul_(2)=TRUE:PROCsI(Mmul_%,"Mmul2"):=TRUE
31840IFmmul_(2)mmul_(2)=FALSEELSEmmul_(2)=TRUE
31850=TRUE
31860DEFFNMmul3_:IFmmul_(3)ANDFNMmul_=1 mmul_(3)=TRUE:PROCsI(Mmul_%,"Mmul3"):=TRUE
31870IFmmul_(3)mmul_(3)=FALSEELSEmmul_(3)=TRUE
31880=TRUE
31890DEFFNMmul4_:IFmmul_(4)ANDFNMmul_=1 mmul_(4)=TRUE:PROCsI(Mmul_%,"Mmul4"):=TRUE
31900IFmmul_(4)mmul_(4)=FALSEELSEmmul_(4)=TRUE
31910=TRUE
31920DEFFNMmul5_:IFmmul_(5)ANDFNMmul_=1 mmul_(5)=TRUE:PROCsI(Mmul_%,"Mmul5"):=TRUE
31930IFmmul_(5)mmul_(5)=FALSEELSEmmul_(5)=TRUE
31940=TRUE
31950DEFFNMmul6_:IFmmul_(6)ANDFNMmul_=1 mmul_(6)=TRUE:PROCsI(Mmul_%,"Mmul6"):=TRUE
31960IFmmul_(6)mmul_(6)=FALSEELSEmmul_(6)=TRUE
31970=TRUE
31980DEFFNmmt1_:IFmmt_(1)mmt_(1)=FALSEELSEmmt_(1)=TRUE
31990=TRUE
32000DEFFNmmt2_:IFmmt_(2)mmt_(2)=FALSEELSEmmt_(2)=TRUE
32010=TRUE
32020DEFFNmmt3_:IFmmt_(3)mmt_(3)=FALSEELSEmmt_(3)=TRUE
32030=TRUE
32040DEFFNmmt4_:IFmmt_(4)mmt_(4)=FALSEELSEmmt_(4)=TRUE
32050=TRUE
32060DEFFNmmt5_:IFmmt_(5)mmt_(5)=FALSEELSEmmt_(5)=TRUE
32070=TRUE
32080DEFFNmmt6_:IFmmt_(6)mmt_(6)=FALSEELSEmmt_(6)=TRUE
32090=TRUE
32100DEFFNMmult_:c_=0:FORh_=1TO9:IFMmult_(h_)c_=c_+1
32110NEXT:=c_
32120DEFFNmmult1_:IFMmult_(1)ANDFNMmult_=1 Mmult_(1)=TRUE:PROCsI(Mmul_%,"mmult1"):=FALSE
32130IFMmult_(1)Mmult_(1)=FALSEELSEMmult_(1)=TRUE
32140=TRUE
32150DEFFNmmult2_:IFMmult_(2)ANDFNMmult_=1 Mmult_(2)=TRUE:PROCsI(Mmul_%,"mmult2"):=FALSE
32160IFMmult_(2)Mmult_(2)=FALSEELSEMmult_(2)=TRUE
32170=TRUE
32180DEFFNmmult3_:IFMmult_(3)ANDFNMmult_=1 Mmult_(3)=TRUE:PROCsI(Mmul_%,"mmult3"):=FALSE
32190IFMmult_(3)Mmult_(3)=FALSEELSEMmult_(3)=TRUE
32200=TRUE
32210DEFFNmmult4_:IFMmult_(4)ANDFNMmult_=1 Mmult_(4)=TRUE:PROCsI(Mmul_%,"mmult4"):=FALSE
32220IFMmult_(4)Mmult_(4)=FALSEELSEMmult_(4)=TRUE
32230=TRUE
32240DEFFNmmult5_:IFMmult_(5)ANDFNMmult_=1 Mmult_(5)=TRUE:PROCsI(Mmul_%,"mmult5"):=FALSE
32250IFMmult_(5)Mmult_(5)=FALSEELSEMmult_(5)=TRUE
32260=TRUE
32270DEFFNmmult6_:IFMmult_(6)ANDFNMmult_=1 Mmult_(6)=TRUE:PROCsI(Mmul_%,"mmult6"):=FALSE
32280IFMmult_(6)Mmult_(6)=FALSEELSEMmult_(6)=TRUE
32290=TRUE
32300DEFFNmmult7_:IFMmult_(7)ANDFNMmult_=1 Mmult_(7)=TRUE:PROCsI(Mmul_%,"mmult7"):=FALSE
32310IFMmult_(7)Mmult_(7)=FALSEELSEMmult_(7)=TRUE
32320=TRUE
32330DEFFNmmult8_:IFMmult_(8)ANDFNMmult_=1 Mmult_(8)=TRUE:PROCsI(Mmul_%,"mmult8"):=FALSE
32340IFMmult_(8)Mmult_(8)=FALSEELSEMmult_(8)=TRUE
32350=TRUE
32360DEFFNmmult9_:IFMmult_(9)ANDFNMmult_=1 Mmult_(9)=TRUE:PROCsI(Mmul_%,"mmult9"):=FALSE
32370IFMmult_(9)Mmult_(9)=FALSEELSEMmult_(9)=TRUE
32380=TRUE
32420DEFFNMmulgo_:PROCGetTitles:flag_=TRUE:dummy_=RND(-TIME):PROCMMmul_:get_%=0:FORr_%=1TO9:IFMmult_(r_%)=TRUEget_%=get_%+1
32440NEXT:IFget_%=0 flag_=FALSE:complain_$="Select a multiplicand"
32450got_%=0:FORr_=1TO6:IFmmul_(r_)=TRUEgot_%=got_%+1:addytype_(got_%)=r_
32460NEXT:IFgot_%=0 flag_=FALSE:complain_$="Select a type"
32470IFflag_=FALSEV_$=FNalert(complain_$,"","OK","","",0):PROCusI(Mmul_%,"Mmulgo"):=FALSE
32480PROCwhatMmult:PROCwhatMmults:PROCMmultup:started_%=TRUE:PROCusI(Mmul_%,"Mmulgo"):SYS"Hourglass_Off":last_=3:quit_=FALSE:Clue_$="Mmul":sign_$="x":=FNsums
32530DEFPROCMMmul_:IFNOTmmul_(3)ANDNOTmmul_(4)THENmmt_(1)=FALSE:PROCusI(Mmul_%,"mmt1"):mmt_(2)=FALSE:PROCusI(Mmul_%,"mmt2"):mmt_(3)=FALSE:PROCusI(Mmul_%,"mmt3")
32540IFNOTmmul_(5)ANDNOTmmul_(6)THENmmt_(4)=FALSE:PROCusI(Mmul_%,"mmt4"):mmt_(5)=FALSE:PROCusI(Mmul_%,"mmt5"):mmt_(6)=FALSE:PROCusI(Mmul_%,"mmt6")
32550ENDPROC
32560DEFPROCwhatMmult:SYS"Hourglass_On":get_%=0:FORr_%=1TO9:IFMmult_(r_%)=TRUEget_%=get_%+1:gc_%(get_%)=r_%
32580NEXT:IFget_%=1FORtr_%=1TO12:Nb_%(tr_%)=VAL(Mmult_$(gc_%(1))):NEXT:SYS"Hourglass_Off":ENDPROC
32600needed_%=12DIVget_%:FORr_=1TO12:gc_%(r_)=0:NEXT:got_%=0:FORr_%=1TO9:IFMmult_(r_%)=TRUETHENgot_%=got_%+1:gc_%(got_%)=r_%
32630NEXT:REPEAT:flag_=TRUE:FORr_=1TO12:finder_%(r_)=0:NEXT:FORr_=1TO12:SYS"Hourglass_Percentage",r_/12*100:ran_%=RND(got_%):Nb_%(r_)=VAL(Mmult_$(gc_%(ran_%))):finder_%(ran_%)=finder_%(ran_%)+1:NEXT:FORt_=1TOgot_%:IFfinder_%(t_)<needed_% flag_=FALSE
32720NEXT:UNTILflag_=TRUE:SYS"Hourglass_Off":ENDPROC
32740DEFPROCwhatMmults:SYS"Hourglass_On":thou_=0:hun_=0:IFmmt_(1)=TRUEhun_=hun_+1:hun_$(hun_)="�"
32770IFmmt_(2)=TRUEhun_=hun_+1:hun_$(hun_)="m"
32780IFmmt_(3)=TRUEhun_=hun_+1:hun_$(hun_)="cm"
32790IFmmt_(4)=TRUEthou_=thou_+1:thou_$(thou_)="kg"
32800IFmmt_(5)=TRUEthou_=thou_+1:thou_$(thou_)="km"
32810IFmmt_(6)=TRUEthou_=thou_+1:thou_$(thou_)="l"
32820got_%=0:FORr_=1TO6:IFmmul_(r_)=TRUEgot_%=got_%+1:addytype_(got_%)=r_:gc_%(got_%)=r_
32830NEXT:IFgot_%=1FORr_=1TO12:lineaddy_(r_)=addytype_(got_%):NEXT:ENDPROC
32850IFgot_%=6PROCtimes(got_%,12):FORr_=1TO12:lineaddy_(r_)=gc_%(finder_%(r_)):NEXT:SYS"Hourglass_Off":ENDPROC
32860needed_%=12DIVgot_%:REPEAT:FORr_=1TO12:finder_%(r_)=0:NEXT:flag_=TRUE:FORr_=1TO12:SYS"Hourglass_Percentage",r_/12*100:REPEAT:flig_=TRUE:ran_%=RND(got_%):IFr_>1ANDgc_%(ran_%)=lineaddy_(r_-1)flig_=FALSE
32950UNTILflig_=TRUE:lineaddy_(r_)=gc_%(ran_%):finder_%(ran_%)=finder_%(ran_%)+1:NEXT:FORt_=1TOgot_%:IFfinder_%(t_)<needed_% flag_=FALSE
32990NEXT:UNTILflag_=TRUE:SYS"Hourglass_Off":ENDPROC
33020DEFPROCMmultup:dummy_=RND(-TIME):FORt_=1TO12:a_(t_)=-1:b_(t_)=-1:NEXT:SYS"Hourglass_On":FORt_=1TO12:IFlineaddy_(t_)=1 ran_%=99:rin_%=9
33070IFlineaddy_(t_)=2 ran_%=999:rin_%=99
33080IFlineaddy_(t_)=3 ran_%=999:rin_%=99
33090IFlineaddy_(t_)=4 ran_%=9999:rin_%=999
33100IFlineaddy_(t_)=5 ran_%=9999:rin_%=999
33110IFlineaddy_(t_)=6 ran_%=99999:rin_%=9999
33120IFlineaddy_(t_)<3 top_$(t_)=""
33140IFlineaddy_(t_)=3ORlineaddy_(t_)=4THEN
33150IFhun_=0 top_$(t_)=""
33160IFhun_=1 top_$(t_)=hun_$(1)
33170IFhun_>1 top_=RND(hun_):top_$(t_)=hun_$(top_)
33180ENDIF:IFlineaddy_(t_)=5ORlineaddy_(t_)=6THEN
33200IFthou_=0 top_$(t_)=""
33210IFthou_=1 top_$(t_)=thou_$(1)
33220IFthou_>1 top_=RND(thou_):top_$(t_)=thou_$(top_)
33230ENDIF:SYS"Hourglass_Percentage",t_/12*100:REPEAT:flag_=0:REPEAT:a_=RND(ran_%):b_=Nb_%(t_):UNTILa_>rin_%:IFt_>1THEN
33340FORe_=1TOt_-1:IFa_=a_(e_)ANDb_=b_(e_)flag_=1
33350NEXT
33360ENDIF:UNTILflag_=0:a_(t_)=a_:b_(t_)=b_:c_(t_)=a_*b_:NEXT:SYS"Hourglass_Off":ENDPROC
33460DEFPROCMdiv:Mdiv_%=FNfWS("MetDiv"):IFmd_(1)PROCsI(Mdiv_%,"Md1")
33480IFmd_(2)PROCsI(Mdiv_%,"Md2")
33490IFmd_(3)PROCsI(Mdiv_%,"Md3")
33500IFmd_(4)PROCsI(Mdiv_%,"Md4")
33510IFmd_(5)PROCsI(Mdiv_%,"Md5")
33520IFmd_(6)PROCsI(Mdiv_%,"Md6")
33530IFmdt_(1)PROCsI(Mdiv_%,"mdt1")
33540IFmdt_(2)PROCsI(Mdiv_%,"mdt2")
33550IFmdt_(3)PROCsI(Mdiv_%,"mdt3")
33560IFmdt_(4)PROCsI(Mdiv_%,"mdt4")
33570IFmdt_(5)PROCsI(Mdiv_%,"mdt5")
33580IFmdt_(6)PROCsI(Mdiv_%,"mdt6")
33590IFMdiv_(1)PROCsI(Mdiv_%,"mdiv1")
33600IFMdiv_(2)PROCsI(Mdiv_%,"mdiv2")
33610IFMdiv_(3)PROCsI(Mdiv_%,"mdiv3")
33620IFMdiv_(4)PROCsI(Mdiv_%,"mdiv4")
33630IFMdiv_(5)PROCsI(Mdiv_%,"mdiv5")
33640IFMdiv_(6)PROCsI(Mdiv_%,"mdiv6")
33650IFMdiv_(7)PROCsI(Mdiv_%,"mdiv7")
33660IFMdiv_(8)PROCsI(Mdiv_%,"mdiv8")
33670IFMdiv_(9)PROCsI(Mdiv_%,"mdiv9")
33680ENDPROC
33710DEFFNMd_:c_=0:FORh_=1TO6:IFmd_(h_)c_=c_+1
33720NEXT:=c_
33730DEFFNMd1_:IFmd_(1)ANDFNMd_=1 md_(1)=TRUE:PROCsI(Mdiv_%,"Md1"):=TRUE
33740IFmd_(1)md_(1)=FALSEELSEmd_(1)=TRUE
33750=TRUE
33760DEFFNMd2_:IFmd_(2)ANDFNMd_=1 md_(2)=TRUE:PROCsI(Mdiv_%,"Md2"):=TRUE
33770IFmd_(2)md_(2)=FALSEELSEmd_(2)=TRUE
33780=TRUE
33790DEFFNMd3_:IFmd_(3)ANDFNMd_=1 md_(3)=TRUE:PROCsI(Mdiv_%,"Md3"):=TRUE
33800IFmd_(3)md_(3)=FALSEELSEmd_(3)=TRUE
33810=TRUE
33820DEFFNMd4_:IFmd_(4)ANDFNMd_=1 md_(4)=TRUE:PROCsI(Mdiv_%,"Md4"):=TRUE
33830IFmd_(4)md_(4)=FALSEELSEmd_(4)=TRUE
33840=TRUE
33850DEFFNMd5_:IFmd_(5)ANDFNMd_=1 md_(5)=TRUE:PROCsI(Mdiv_%,"Md5"):=TRUE
33860IFmd_(5)md_(5)=FALSEELSEmd_(5)=TRUE
33870=TRUE
33880DEFFNMd6_:IFmd_(6)ANDFNMd_=1 md_(6)=TRUE:PROCsI(Mdiv_%,"Md6"):=TRUE
33890IFmd_(6)md_(6)=FALSEELSEmd_(6)=TRUE
33900=TRUE
33910DEFFNmdt1_:IFmdt_(1)mdt_(1)=FALSE:PROCusI(Mdiv_%,"mdt1")ELSEmdt_(1)=TRUE:PROCsI(Mdiv_%,"mdt1")
33920=TRUE
33930DEFFNmdt2_:IFmdt_(2)mdt_(2)=FALSE:PROCusI(Mdiv_%,"mdt2")ELSEmdt_(2)=TRUE:PROCsI(Mdiv_%,"mdt2")
33940=TRUE
33950DEFFNmdt3_:IFmdt_(3)mdt_(3)=FALSE:PROCusI(Mdiv_%,"mdt3")ELSEmdt_(3)=TRUE:PROCsI(Mdiv_%,"mdt3")
33960=TRUE
33970DEFFNmdt4_:IFmdt_(4)mdt_(4)=FALSE:PROCusI(Mdiv_%,"mdt4")ELSEmdt_(4)=TRUE:PROCsI(Mdiv_%,"mdt4")
33980=TRUE
33990DEFFNmdt5_:IFmdt_(5)mdt_(5)=FALSE:PROCusI(Mdiv_%,"mdt5")ELSEmdt_(5)=TRUE:PROCsI(Mdiv_%,"mdt5")
34000=TRUE
34010DEFFNmdt6_:IFmdt_(6)mdt_(6)=FALSE:PROCusI(Mdiv_%,"mdt6")ELSEmdt_(6)=TRUE:PROCsI(Mdiv_%,"mdt6")
34020=TRUE
34030DEFFNMdiv_:c_=0:FORh_=1TO9:IFMdiv_(h_)c_=c_+1
34040NEXT:=c_
34050DEFFNmdiv1_:IFMdiv_(1)ANDFNMdiv_=1 Mdiv_(1)=TRUE:PROCsI(Mdiv_%,"mdiv1"):=FALSE
34060IFMdiv_(1)Mdiv_(1)=FALSEELSEMdiv_(1)=TRUE
34070=TRUE
34080DEFFNmdiv2_:IFMdiv_(2)ANDFNMdiv_=1 Mdiv_(2)=TRUE:PROCsI(Mdiv_%,"mdiv2"):=FALSE
34090IFMdiv_(2)Mdiv_(2)=FALSEELSEMdiv_(2)=TRUE
34100=TRUE
34110DEFFNmdiv3_:IFMdiv_(3)ANDFNMdiv_=1 Mdiv_(3)=TRUE:PROCsI(Mdiv_%,"mdiv3"):=FALSE
34120IFMdiv_(3)Mdiv_(3)=FALSEELSEMdiv_(3)=TRUE
34130=TRUE
34140DEFFNmdiv4_:IFMdiv_(4)ANDFNMdiv_=1 Mdiv_(4)=TRUE:PROCsI(Mdiv_%,"mdiv4"):=FALSE
34150IFMdiv_(4)Mdiv_(4)=FALSEELSEMdiv_(4)=TRUE
34160=TRUE
34170DEFFNmdiv5_:IFMdiv_(5)ANDFNMdiv_=1 Mdiv_(5)=TRUE:PROCsI(Mdiv_%,"mdiv5"):=FALSE
34180IFMdiv_(5)Mdiv_(5)=FALSEELSEMdiv_(5)=TRUE
34190=TRUE
34200DEFFNmdiv6_:IFMdiv_(6)ANDFNMdiv_=1 Mdiv_(6)=TRUE:PROCsI(Mdiv_%,"mdiv6"):=FALSE
34210IFMdiv_(6)Mdiv_(6)=FALSEELSEMdiv_(6)=TRUE
34220=TRUE
34230DEFFNmdiv7_:IFMdiv_(7)ANDFNMdiv_=1 Mdiv_(7)=TRUE:PROCsI(Mdiv_%,"mdiv7"):=FALSE
34240IFMdiv_(7)Mdiv_(7)=FALSEELSEMdiv_(7)=TRUE
34250=TRUE
34260DEFFNmdiv8_:IFMdiv_(8)ANDFNMdiv_=1 Mdiv_(8)=TRUE:PROCsI(Mdiv_%,"mdiv8"):=FALSE
34270IFMdiv_(8)Mdiv_(8)=FALSEELSEMdiv_(8)=TRUE
34280=TRUE
34290DEFFNmdiv9_:IFMdiv_(9)ANDFNMdiv_=1 Mdiv_(9)=TRUE:PROCsI(Mdiv_%,"mdiv9"):=FALSE
34300IFMdiv_(9)Mdiv_(9)=FALSEELSEMdiv_(9)=TRUE
34310=TRUE
34330DEFFNMetDivgo_:PROCGetTitles:flag_=TRUE:PROCDmadd_:dummy_=RND(-TIME):PROCwhatMdivline:PROCwhatMdivy:PROCcalcMdivy:Clue_$="MDiv":last_=3:quit_=FALSE:started_%=TRUE:SYS"Hourglass_Off":PROCusI(Mdiv_%,"MetDivgo"):=FNsums
34340DEFPROCDmadd_:IFNOTmd_(3)ANDNOTmd_(4)THENmdt_(1)=FALSE:PROCusI(Mdiv_%,"mdt1"):mdt_(2)=FALSE:PROCusI(Mdiv_%,"mdt2"):mdt_(3)=FALSE:PROCusI(Mdiv_%,"mdt3")
34350IFNOTmd_(5)ANDNOTmd_(6)THENmdt_(4)=FALSE:PROCusI(Mdiv_%,"mdt4"):mdt_(5)=FALSE:PROCusI(Mdiv_%,"mdt5"):mdt_(6)=FALSE:PROCusI(Mdiv_%,"mdt6")
34360ENDPROC
34370DEFPROCi_:x_=OPENIN"<MathsSys$Path>Resources.Sprites":INPUT#x_,code_$,A$:CLOSE#x_:X$="":FORr=1TOLEN(code_$):X$=X$+CHR$((ASC(MID$(code_$,r,1)))-140):NEXT:code_$=X$:Z$="":FORr=1TOLEN(A$):Z$=Z$+CHR$((ASC(MID$(A$,r,1)))-141):NEXT:A$=Z$:Register_$=A$:Info$(1)=code_$
34490Info$(2)=Register_$:ENDPROC
34520DEFPROCwhatMdivy:thou_=0:hun_=0:IFmdt_(1)=TRUEhun_=hun_+1:hun_$(hun_)="�"
34550IFmdt_(2)=TRUEhun_=hun_+1:hun_$(hun_)="m"
34560IFmdt_(3)=TRUEhun_=hun_+1:hun_$(hun_)="cm"
34570IFmdt_(4)=TRUEthou_=thou_+1:thou_$(thou_)="kg"
34580IFmdt_(5)=TRUEthou_=thou_+1:thou_$(thou_)="km"
34590IFmdt_(6)=TRUEthou_=thou_+1:thou_$(thou_)="l"
34600get_%=0:FORr_%=1TO9:IFMdiv_(r_%)=TRUEget_%=get_%+1
34620NEXT:IFget_%=1THEN
34640FORr_%=1TO9:IFMdiv_(r_%)=TRUETHENFORtr_%=1TO12:Nb_%(tr_%)=VAL(Mdiv_$(r_%)):NEXT
34660NEXT:ENDPROC
34680ENDIF:needed_%=12DIVget_%:FORr_=1TO12:gc_%(r_)=0:NEXT:got_%=0:FORr_%=1TO9:IFMdiv_(r_%)=TRUETHENgot_%=got_%+1:gc_%(got_%)=r_%
34730NEXT:REPEAT:FORr_=1TO12:finder_%(r_)=0:NEXT:flag_=TRUE:FORr_=1TO12:REPEAT:flig_=TRUE:ran_%=RND(got_%):Nb_%=VAL(Mdiv_$(gc_%(ran_%))):IFr_>1THEN
34790IFNb_%=Nb_%(r_-1)flig_=FALSE
34800ENDIF:UNTILflig_=TRUE:Nb_%(r_)=VAL(Mdiv_$(gc_%(ran_%))):finder_%(ran_%)=finder_%(ran_%)+1:NEXT:FORt_=1TOgot_%:IFfinder_%(t_)<needed_% flag_=FALSE
34850NEXT:UNTILflag_=TRUE:SYS"Hourglass_Off":ENDPROC
34870DEFPROCwhatMdivline:got_%=0:FORr_=1TO6:IFmd_(r_)=TRUEgot_%=got_%+1:gc_%(got_%)=r_
34890NEXT:IFgot_%=1THENFORr_=1TO12:linedvy_(r_)=gc_%(got_%):NEXT:ENDPROC
34910needed_%=12DIVgot_%:REPEAT:flag_=TRUE:FORr_=1TO12:REPEAT:flig_=TRUE:ran_%=RND(got_%):linedvy_=gc_%(ran_%):IFr_>1THEN
34960IFlinedvy_=linedvy_(r_-1)flig_=FALSE
34970ENDIF:UNTILflig_=TRUE:linedvy_(r_)=gc_%(ran_%):finder_%(ran_%)=finder_%(ran_%)+1:NEXT:FORtr_=1TOgot_%:IFfinder_%(tr_)<needed_% flag_=FALSE
35020NEXT:UNTILflag_=TRUE:ENDPROC
35050DEFPROCcalcMdivy:many_=12:zer_=0:FORr_=1TO6:IFmd_(r_)=TRUEzer_=zer_+1
35080NEXT:trub_=TRUE:zer_=0:FORr_=1TO9:IFMdiv_(r_)=TRUEzer_=zer_+1
35100NEXT:IFzer_=1ANDMdiv_(8)=TRUEORzer_=1ANDMdiv_(9)=TRUEORzer_=1ANDMdiv_(7)=TRUEtrub_=FALSE
35120IFtrub_=FALSEANDzer_=1ANDmd_(1)=TRUEmany_=9
35130SYS"Hourglass_On":FORt_=1TOmany_:IFlinedvy_(t_)=1 ran_%=99:l_=9
35160IFlinedvy_(t_)=2 ran_%=999:l_=99
35170IFlinedvy_(t_)=3 ran_%=999:l_=99
35180IFlinedvy_(t_)=4 ran_%=9999:l_=999
35190IFlinedvy_(t_)=5 ran_%=9999:l_=999
35200IFlinedvy_(t_)=6 ran_%=99999:l_=9999
35210IFlinedvy_(t_)<3 top_$(t_)=""
35230IFlinedvy_(t_)=3ORlinedvy_(t_)=4THEN
35240IFhun_=0 top_$(t_)=""
35250IFhun_=1 top_$(t_)=hun_$(1)
35260IFhun_>1 top_=RND(hun_):top_$(t_)=hun_$(top_)
35270ENDIF:IFlinedvy_(t_)=5ORlinedvy_(t_)=6THEN
35290IFthou_=0 top_$(t_)=""
35300IFthou_=1 top_$(t_)=thou_$(1)
35310IFthou_>1 top_=RND(thou_):top_$(t_)=thou_$(top_)
35320ENDIF:SYS"Hourglass_Percentage",t_/12*100:REPEAT:flag_=0:REPEAT:a_=RND(ran_%):b_=Nb_%(t_):UNTILa_MODb_=0ANDa_>l_:IFt_>1THEN
35400FORe_=1TOt_-1:IFa_=a_(e_)ANDb_=b_(e_)flag_=1
35410NEXT
35420ENDIF:UNTILflag_=0:a_(t_)=a_:b_(t_)=b_:IFa_MODb_<>0 c_(t_)=a_DIVb_:rem_(t_)=a_MODb_ELSEc_(t_)=a_/b_:rem_(t_)=0
35460NEXT:started_%=TRUE:SYS"Hourglass_Off":ENDPROC
35500DEFFNTitle_:Title_$=$!Title_%:=TRUE
35510DEFFNMaintitle_:Maintitle_$=$!Maintitle_%:=TRUE
35530DEFFNzero(z_$):FORz_=1TOLEN(z_$):IFMID$(z_$,z_,1)="0"THENMID$(z_$,z_,1)="O"
35560NEXT:=z_$
35580DEFFNCreate_:PROCusI(GrafIt_%,"Create"):MOUSETO1000,530:v_%=FNwindow("Demo"):=TRUE:V_$=FNalert("Contact CCS for complete version of Maths Card","","OK","","",0):PROCusI(GrafIt_%,"Create"):MOUSETO1000,630:=TRUE
35680DEFPROCGetTitles:ENDPROC
35740DEFFNGrafIt_(X%,Y%):IFClue_$="CardsAdd"PROCType1cards
35790IFClue_$="CardsTake"PROCType1cards
35800IFClue_$="CardsTimes"PROCType1cards
35810IFClue_$="CardsDiv"PROCType1cards
35820IFClue_$="Add1a"ORClue_$="Sub1a"PROCAddA
35830IFClue_$="Multy"PROCAddA
35840IFClue_$="Divy"PROCDivA
35850IFClue_$="Sad"PROCF1
35860IFClue_$="Wad"PROCF1
35870IFClue_$="FrMD"PROCF1
35880IFClue_$="Magic"PROCMag1
35890IFLEFT$(Clue_$,4)="Long"PROCLongMul2
35900IFClue_$="LDivy"PROCLDivA
35910IFClue_$="Madd"ORClue_$="Msub"PROCmadd
35920IFClue_$="Mmul"PROCMmult_
35930IFClue_$="MDiv"PROCMDiv
35940=TRUE
35960DEFPROCType1cards:down_=Y%-150:left_=X%+120:long_=150:deep_=50:FORline_%=1TO10:MOVEleft_-20-LEN(STR$(line_%))*16,down_:PRINTFNzero(STR$(line_%))+")":left_=left_+20
36010IFlinetype_(line_%)=1PROCwriteline1ELSEIFlinetype_(line_%)=2PROCwriteline2ELSEIFlinetype_(line_%)=3PROCwriteline3
36020down_=down_-deep_-20:left_=X%+120:NEXT:ENDPROC
36050DEFPROCwriteline1:PROCblanks(Na_%(line_%)):left_=left_+long_:PROCqualword:left_=left_+long_:IFquit_=TRUEPROCrects("x")ELSEPROCrects(FNzero(STR$(Nb_%(line_%))))
36090left_=left_+long_:PROCequalword:left_=left_+long_:IFquit_=TRUEPROCrects("x")ELSEPROCrects(FNzero(STR$(Nc_%(line_%))))
36120left_=left_+long_:ENDPROC
36140DEFPROCwriteline2:IFquit_=TRUEPROCrects("x")ELSEPROCrects(FNzero(STR$(Na_%(line_%))))
36160left_=left_+long_:PROCqualword:left_=left_+long_:PROCblanks(Nb_%(line_%)):left_=left_+long_:PROCequalword:left_=left_+long_:IFquit_=TRUEPROCrects("x")ELSEPROCrects(FNzero(STR$(Nc_%(line_%))))
36220left_=left_+long_:ENDPROC
36250DEFPROCwriteline3:IFquit_=TRUEPROCrects("x")ELSEPROCrects(FNzero(STR$(Na_%(line_%))))
36270left_=left_+long_:PROCqualword:left_=left_+long_:IFquit_=TRUEPROCrects("x")ELSEPROCrects(FNzero(STR$(Nb_%(line_%))))
36300left_=left_+long_:PROCequalword:left_=left_+long_:PROCblanks(Nc_%(line_%)):left_=left_+long_:ENDPROC
36350DEFPROCblanks(num_):num_$=FNzero(STR$(num_)):remleft_=left_:remdown_=down_:left_=left_+long_/4:down_=down_+10:MOVEleft_,down_:DRAWleft_+long_/2,down_:DRAWleft_+long_/2,down_-deep_:DRAWleft_,down_-deep_:DRAWleft_,down_:IFAnswer_%=TRUETHEN
36400IFquit_=TRUEMOVEleft_+long_/4-LEN("x")/2*16,down_-10:PRINT"x"ELSEMOVEleft_+long_/4-LEN(num_$)/2*16,down_-10:PRINTnum_$
36410ENDIF:left_=remleft_:down_=remdown_:ENDPROC
36450DEFPROCrects(word_$):MOVEleft_+long_/2-LEN(word_$)/2*16,down_:PRINTword_$:ENDPROC
36490DEFPROCqualword:PROCrects(act_$(line_%)):ENDPROC
36530DEFPROCequalword:PROCrects(equal_$(line_%)):ENDPROC
36570DEFPROCAddA:IFMID$(Clue_$,1,3)="Add" sign_$="+"
36590IFMID$(Clue_$,1,3)="Sub" sign_$="-"
36600IFMID$(Clue_$,1,3)="Mul" sign_$="x"
36610left_=X%+80:on_=270:end_=100:down_=Y%-90:r_=0:IFmany_=9FORq_=1TO3ELSEFORq_=1TO4
36640FORw_=1TO3:r_=r_+1:IFquit_=TRUEa_=0:b_=0:c_=0ELSEa_=a_(r_):b_=b_(r_):c_=c_(r_)
36660b_$=STR$(b_):c_$=STR$(c_):dunkleft_=left_:lon_=LEN(STR$(a_)):IFLEN(STR$(b_))>lon_ lon_=LEN(STR$(b_))
36700IFLEN(STR$(c_))>lon_ lon_=LEN(STR$(c_))
36710left_=left_+lon_/2*16:IFr_<>10MOVEleft_+end_-LEN(STR$(a_))*16-40-LEN(STR$(r_))*16,down_-100:PRINTSTR$(r_);")"
36730IFr_=10MOVEleft_+end_-LEN(STR$(a_))*16-40-LEN(STR$(r_))*16,down_-100:PRINT"1O)"
36740PROCsplit_(a_,down_-100):PROCsplit_(b_,down_-140):sl_=0:IFLEN(b_$)>3 sl_=sl_+gap_:IFLEN(b_$)>7 sl_=sl_+gap_
36760IFSign_%=FALSEMOVEleft_+end_-LEN(b_$)*16-sl_-20,down_-140:PRINTsign_$
36770IFSign_%=TRUEMOVEleft_+end_+10,down_-100:PRINTsign_$
36800anslen_=LEN(STR$(c_)):IFanslen_<LEN(a_$)anslen_=LEN(a_$)
36820IFanslen_<LEN(b_$)anslen_=LEN(b_$)
36830IFAnswer_%=TRUEPROCsplit_(c_,down_-180)
36840MOVEleft_+end_-anslen_*16-5,down_-172:DRAWleft_+end_-anslen_*16+anslen_*16+gap_,down_-172:IFSecAns_%=TRUEMOVEleft_+end_-anslen_*16-5,down_-212:DRAWleft_+end_-anslen_*16+anslen_*16+gap_,down_-212
36860left_=dunkleft_:left_=left_+on_:NEXT:left_=X%+80:down_=down_-180:NEXT:ENDPROC
36890DEFPROCDivA:left_=X%+30:on_=280:end_=100:begleft_=left_:down_=Y%-120:r_=0:shift_=40:dshift_=150:SYS"Hourglass_On":IFmany_=12FORq_=1TO4ELSEFORq_=1TO3
36950FORw_=1TO3:r_=r_+1:SYS"Hourglass_Percentage",r_/12*100:a_=a_(r_):b_=b_(r_):c_=c_(r_):rem_=rem_(r_):lon_=LEN(STR$(a_)):dunkleft_=left_:left_=left_+lon_/2*16:b_$=FNzero(STR$(b_))
37020IFr_<>10MOVEleft_+end_-LEN(STR$(a_))*16-40-LEN(STR$(r_))*16+40,down_-100:PRINTSTR$(r_);")"
37030IFr_=10MOVEleft_+end_-LEN(STR$(a_))*16-40-LEN(STR$(r_))*16+40,down_-100:PRINT"1O)"
37040a_$=FNzero(STR$(a_)):rem_$=FNzero(STR$(rem_)):gap_=5:IFLEN(a_$)>3THEN
37080ra_$=MID$(a_$,LEN(a_$)-2,3):MOVEleft_+end_-LEN(ra_$)*16+shift_,down_-dshift_:PRINTra_$:la_$=MID$(a_$,1,LEN(a_$)-3):MOVEleft_+end_-LEN(ra_$)*16-LEN(la_$)*16-gap_+shift_,down_-dshift_:PRINTla_$:MOVEleft_+end_-LEN(ra_$)*16-LEN(la_$)*16-gap_+shift_-20,down_-dshift_
37150PRINT")":MOVEleft_+end_-LEN(ra_$)*16-LEN(la_$)*16-gap_-LEN(b_$)*16+16,down_-dshift_:PRINTb_$
37180ELSEMOVEleft_+end_-LEN(a_$)*16+shift_,down_-dshift_:PRINTa_$:MOVEleft_+end_-LEN(a_$)*16+shift_-20,down_-dshift_:PRINT")":MOVEleft_+end_-LEN(a_$)*16-gap_-LEN(b_$)*16+16,down_-dshift_:PRINTb_$
37240ENDIF:MOVEleft_+end_-LEN(a_$)*16-gap_+shift_-15,down_-dshift_+7:DRAWleft_+end_-LEN(a_$)*16-gap_+shift_-20+LEN(a_$)*16+gap_+20,down_-dshift_+7:anslen_=LEN(STR$(c_)):IFAnswer_%=TRUEPROCdvanswer
37300left_=dunkleft_:left_=left_+on_:NEXT:down_=down_-172:left_=begleft_:NEXT:SYS"Hourglass_Off":ENDPROC
37370DEFPROCdvanswer:c_$=FNzero(STR$(c_)):gap_=0:IFLEN(c_$)>3THEN
37400gap_=5:rc_$=MID$(c_$,LEN(c_$)-2,3):MOVEleft_+end_-LEN(rc_$)*16+shift_,down_-dshift_+40:PRINTrc_$:lc_$=MID$(c_$,1,LEN(c_$)-3):MOVEleft_+end_-LEN(rc_$)*16-LEN(lc_$)*16-gap_+shift_,down_-dshift_+40:PRINTlc_$
37470ELSEMOVEleft_+end_-LEN(c_$)*16+shift_,down_-dshift_+40:PRINTc_$
37490ENDIF:IFremmy_=1PROCrem
37510IFremmy_=2PROCdot
37520IFremmy_=3PROCfrac
37530ENDPROC
37550DEFPROCrem:IFrem_<>0MOVEleft_+end_+shift_+5,down_-dshift_+40:PRINT"r";rem_$
37560ENDPROC
37580DEFPROCfrac:IFrem_<>0THEN
37600rt_=rem_:rb_=b_:rt_$=STR$(rt_):rb_$=STR$(rb_):FORtr_=10TO2STEP-1:IFrt_MODtr_=0ANDrb_MODtr_=0 rt_=rt_/tr_:rb_=rb_/tr_
37640NEXT:rt_$=STR$(rt_):rb_$=STR$(rb_):MOVEleft_+end_+shift_+8,down_-dshift_+58:PRINTrt_$:MOVEleft_+end_+shift_+18,down_-dshift_+45:PRINT"/"rb_$
37690ENDIF:ENDPROC
37720DEFPROCdot:IFrem_<>0THEN
37740MOVEleft_+end_+shift_+3,down_-dshift_+50:PRINT".":MOVEleft_+end_+shift_+3+15,down_-dshift_+40:PRINTFNzero(cz_$(r_))
37770ENDIF:ENDPROC
37800DEFPROCLDivA:left_=X%+30:on_=280:end_=100:begleft_=left_:down_=Y%-120:r_=0:shift_=40:dshift_=150:SYS"Hourglass_On":FORqq_=1TO2:FORww_=1TO3:r_=r_+1:SYS"Hourglass_Percentage",r_/12*100:a_=a_(r_):b_=b_(r_):c_=c_(r_):rem_=rem_(r_)
37890a_$=FNzero(STR$(a_)):b_$=FNzero(STR$(b_)):c_$=FNzero(STR$(c_)):rem_$=FNzero(STR$(rem_)):lon_=LEN(STR$(a_)):dunkleft_=left_:left_=left_+lon_/2*16:MOVEleft_+end_-LEN(STR$(a_))*16-60-LEN(STR$(r_))*16+40,down_-80:PRINTSTR$(r_);")"
37940MOVEleft_+end_-LEN(a_$)*16,down_-dshift_:PRINTa_$:starthos_%=left_+end_-LEN(a_$)*16:drop_=40:MOVEleft_+end_-LEN(a_$)*16-15,down_-dshift_:PRINT")":MOVEleft_+end_-LEN(a_$)*16-20-LEN(b_$)*16,down_-dshift_:PRINTb_$:MOVEleft_+end_-LEN(a_$)*16-15,down_-dshift_+7
38000DRAWleft_+end_-LEN(a_$)*16+LEN(a_$)*16+15,down_-dshift_+7:IFAnswer_%=TRUEPROCldans
38020vert_%=down_-dshift_:left_=dunkleft_:left_=left_+on_:NEXT:down_=down_-300:left_=begleft_:NEXT:SYS"Hourglass_Off":ENDPROC
38120DEFPROCldans:MOVEleft_+end_-LEN(c_$)*16,down_-dshift_+40:PRINTc_$:IFrem_<>0THEN
38180IFremmy_=1THEN
38190MOVEleft_+end_-LEN(a_$)*16+LEN(a_$)*16+8,down_-dshift_+40:PRINT"r":MOVEleft_+end_-LEN(a_$)*16+LEN(a_$)*16+30,down_-dshift_+40:PRINTrem_$
38230ENDIF:IFremmy_=2THEN
38250MOVEleft_+end_-LEN(a_$)*16+LEN(a_$)*16+4,down_-dshift_+50:PRINT".":MOVEleft_+end_-LEN(a_$)*16+LEN(a_$)*16+20,down_-dshift_+40:PRINTFNzero(cz_$(r_))
38300ENDIF:IFremmy_=3THEN
38320rt_=rem_:rb_=b_:rt_$=STR$(rt_):rb_$=STR$(rb_):FORtr_=10TO2STEP-1:IFrt_MODtr_=0ANDrb_MODtr_=0 rt_=rt_/tr_:rb_=rb_/tr_
38360NEXT:rt_$=STR$(rt_):rb_$=STR$(rb_):MOVEleft_+end_-LEN(a_$)*16+LEN(a_$)*16+8,down_-dshift_+65:PRINTFNzero(rt_$):MOVEleft_+end_-LEN(a_$)*16+LEN(a_$)*16+LEN(rt_$)*16+20,down_-dshift_+40:PRINTFNzero(rb_$)
38420MOVEleft_+end_-LEN(a_$)*16+LEN(a_$)*16+LEN(rt_$)*16+5,down_-dshift_+50:PRINT"/"
38440ENDIF
38450ENDIF:ENDPROC
38470DEFPROCsumM:started_=FALSE:re_=0:q_=0:w_=1:final_$="":j_=0:REPEAT:PROCgetansS:UNTILj_=LEN(a_$):IFa_MODb_<>0ANDRIGHT$(c_$)<>"0"THEN
38540vert_%=vert_%-drop_:re_$=STR$(re_):hos_%=starthos_%+j_*16-LEN(re_$)*16:MOVEhos_%,vert_%:PRINTre_$
38580ENDIF:ENDPROC
38610DEFPROCgetansS:try_$="":re_$=STR$(re_):REPEAT:q_=q_+1:j_=j_+1:z_$=MID$(a_$,w_,q_):try_$=re_$+z_$:try_=VAL(try_$):IFtry_DIVb_<1 ans_=0
38680UNTILtry_DIVb_>0ORj_=LEN(a_$):ans_=try_DIVb_:re_=try_MODb_:IFstarted_=TRUETHEN
38710vert_%=vert_%-drop_:hos_%=starthos_%+j_*16-LEN(try_$)*16:MOVEhos_%,vert_%:PRINTtry_$
38740ENDIF:started_=TRUE:jog_=ans_*b_:jog_$=STR$(jog_):vert_%=vert_%-drop_:hos_%=starthos_%+j_*16-LEN(jog_$)*16:IFj_=LEN(a_$)ANDRIGHT$(c_$)="0"THEN
38800ed_=1
38810ELSE:MOVEhos_%,vert_%:PRINTjog_$:hos_%=starthos_%+j_*16-LEN(try_$)*16:MOVEhos_%,vert_%-30:DRAWhos_%+LEN(try_$)*16,vert_%-30
38850ENDIF:w_=j_+1:q_=0:ENDPROC
38890DEFPROCF1:IFlast_=1ENDPROC
38900mdivartleft_=X%+0:left_=mdivartleft_:on_=300:end_=100:down_=Y%-90:bot_=120:r_=0:FORq_=1TO4:FORw_=1TO3:r_=r_+1:IFlast_>r_-1THEN
38940dunkleft_=left_:a_$=STR$(FU1_(r_)):b_$=STR$(FD1_(r_)):c_$=STR$(FU2_(r_)):d_$=STR$(FD2_(r_)):e_$=STR$(FU3_(r_)):f_$=STR$(FD3_(r_)):spotn_=50:MOVEleft_+spotn_-LEN(STR$(r_))*16,down_-50:PRINTFNzero(STR$(r_));")":spota_=70:tdown_=down_:down_=down_-30
39010IFWhole_(r_,0)<>0 whole_$=STR$(Whole_(r_,0)):MOVEleft_+spota_-30-LEN(whole_$)/2*16,down_-100:PRINTFNzero(whole_$)
39020MOVEleft_+spota_-LEN(b_$)/2*16,down_-bot_:PRINTFNzero(b_$):MOVEleft_+spota_-LEN(b_$)/2*16,down_-bot_+8:DRAWleft_+spota_+LEN(b_$)/2*16,down_-bot_+8:MOVEleft_+spota_-LEN(a_$)/2*16,down_-bot_+40:PRINTFNzero(a_$):IFWhole_(r_,1)<>0 spotp_=100ELSEspotp_=110
39080MOVEleft_+spotp_,down_-100:PRINTFracsign_$(r_):spotb_=160:IFWhole_(r_,1)<>0 whole_$=STR$(Whole_(r_,1)):MOVEleft_+spotb_-30-LEN(whole_$)/2*16,down_-100:PRINTFNzero(whole_$)
39130spotb_=160:MOVEleft_+spotb_-LEN(d_$)/2*16,down_-bot_:PRINTFNzero(d_$):MOVEleft_+spotb_-LEN(d_$)/2*16,down_-bot_+8:DRAWleft_+spotb_+LEN(d_$)/2*16,down_-bot_+8:MOVEleft_+spotb_-LEN(c_$)/2*16,down_-bot_+40:PRINTFNzero(c_$)
39160spote_=190:MOVEleft_+spote_,down_-100:PRINT"=":IFAnswer_%=TRUETHEN
39180e_=VAL(e_$):f_=VAL(f_$):IFWhole_(r_,2)<>0ORWhole_(r_,2)=0ANDe_=0THEN
39200whole_$=STR$(Whole_(r_,2)):spotc_=230:MOVEleft_+spotc_-LEN(whole_$)/2*16,down_-100:PRINTFNzero(whole_$):ona_=40:IFe_<>0 spotc_=220+LEN(whole_$)/2*16:MOVEleft_+ona_+spotc_-LEN(f_$)/2*16,down_-bot_:PRINTFNzero(f_$)
39240IFe_<>0MOVEleft_+ona_+spotc_-LEN(f_$)/2*16,down_-bot_+8:DRAWleft_+ona_+spotc_+LEN(f_$)/2*16,down_-bot_+8
39250IFe_<>0MOVEleft_+ona_+spotc_-LEN(e_$)/2*16,down_-bot_+40:PRINTFNzero(e_$)
39260ELSE:spotc_=240:MOVEleft_+spotc_-LEN(f_$)/2*16,down_-bot_:PRINTFNzero(f_$):MOVEleft_+spotc_-LEN(f_$)/2*16,down_-bot_+8:DRAWleft_+spotc_+LEN(f_$)/2*16,down_-bot_+8:MOVEleft_+spotc_-LEN(e_$)/2*16,down_-bot_+40:PRINTFNzero(e_$)
39310ENDIF
39320ENDIF
39330ENDIF:left_=dunkleft_:left_=left_+on_:down_=tdown_:NEXT:left_=mdivartleft_:down_=down_-180:NEXT:ENDPROC
39450DEFPROCWF1:IFquit_=TRUETHEN
39470FORt_=1TO12:FU1_(t_)=0:FU2_(t_)=0:FD1_(t_)=0:FD2_(t_)=0:FU3_(t_)=0:FU3_(t_)=0:Whole_(t_,0)=0:Whole_(t_,1)=0:Whole_(t_,2)=0:NEXT
39500ENDIF:mdivartleft_=X%+0:left_=mdivartleft_:on_=300:end_=100:down_=Y%-90:bot_=120:r_=0:FORq_=1TO4:FORw_=1TO3:r_=r_+1:dunkleft_=left_:a_$=STR$(FU1_(r_)):b_$=STR$(FD1_(r_)):c_$=STR$(FU2_(r_)):d_$=STR$(FD2_(r_)):e_$=STR$(FU3_(r_)):f_$=STR$(FD3_(r_))
39600spotn_=50:MOVEleft_+spotn_-LEN(STR$(r_))*16,down_-50:PRINTFNzero(STR$(r_));")":spota_=70:tdown_=down_:down_=down_-30:IFWhole_(r_,0)<>0 whole_$=STR$(Whole_(r_,0)):MOVEleft_+spota_-30-LEN(whole_$)/2*16,down_-100:PRINTFNzero(whole_$)
39640MOVEleft_+spota_-LEN(b_$)/2*16,down_-bot_:PRINTFNzero(b_$):MOVEleft_+spota_-LEN(b_$)/2*16,down_-bot_+8:DRAWleft_+spota_+LEN(b_$)/2*16,down_-bot_+8:MOVEleft_+spota_-LEN(a_$)/2*16,down_-bot_+40:PRINTFNzero(a_$):IFWhole_(r_,1)<>0 spotp_=100ELSEspotp_=105
39700MOVEleft_+spotp_,down_-100:PRINTFracsign_$(r_):spotb_=160:IFWhole_(r_,1)<>0 whole_$=STR$(Whole_(r_,1)):MOVEleft_+spotb_-30-LEN(whole_$)/2*16,down_-100:PRINTFNzero(whole_$)
39740spotb_=160:MOVEleft_+spotb_-LEN(d_$)/2*16,down_-bot_:PRINTFNzero(d_$):MOVEleft_+spotb_-LEN(d_$)/2*16,down_-bot_+8:DRAWleft_+spotb_+LEN(d_$)/2*16,down_-bot_+8:MOVEleft_+spotb_-LEN(c_$)/2*16,down_-bot_+40:PRINTFNzero(c_$):IFAnswer_%=TRUETHEN
39780spote_=190:MOVEleft_+spote_,down_-100:PRINT"=":e_=VAL(e_$):f_=VAL(f_$):IFWhole_(r_,2)<>0ORWhole_(r_,2)=0ANDe_=0THEN
39810whole_$=STR$(Whole_(r_,2)):spotc_=230:MOVEleft_+spotc_-LEN(whole_$)/2*16,down_-100:PRINTFNzero(whole_$):ona_=30:IFe_<>0 spotc_=230:MOVEleft_+ona_+spotc_-LEN(f_$)/2*16,down_-bot_:PRINTFNzero(f_$)
39850IFe_<>0MOVEleft_+ona_+spotc_-LEN(f_$)/2*16,down_-bot_+8:DRAWleft_+ona_+spotc_+LEN(f_$)/2*16,down_-bot_+8
39860IFe_<>0MOVEleft_+ona_+spotc_-LEN(e_$)/2*16,down_-bot_+40:PRINTFNzero(e_$)
39870ELSE:spotc_=250:MOVEleft_+spotc_-LEN(f_$)/2*16,down_-bot_:PRINTFNzero(f_$):MOVEleft_+spotc_-LEN(f_$)/2*16,down_-bot_+8:DRAWleft_+spotc_+LEN(f_$)/2*16,down_-bot_+8:MOVEleft_+spotc_-LEN(e_$)/2*16,down_-bot_+40:PRINTFNzero(e_$)
39930ENDIF
39940ENDIF:left_=dunkleft_:left_=left_+on_:down_=tdown_:NEXT:left_=mdivartleft_:down_=down_-180:NEXT:ENDPROC
40060DEFPROCchoices:Choice_%=FNfWS("Choices"):$!StartX_%=STR$(rite_):$!pwon_%=STR$(pwon_):IFSign_%=TRUE:PROCsI(Choice_%,"signright"):PROCusI(Choice_%,"signleft")ELSEPROCusI(Choice_%,"signright"):PROCsI(Choice_%,"signleft")
40110IFSecAns_%=TRUEPROCsI(Choice_%,"SecAns")
40120IFLma_%=TRUEPROCsI(Choice_%,"Lma")
40130IFLda_%=TRUEPROCsI(Choice_%,"Lda")
40140IFdirect_%=TRUEPROCsI(Choice_%,"Direct")
40150IFremmy_=1PROCsI(Choice_%,"rem")
40160IFremmy_=2PROCsI(Choice_%,"dot")
40170IFremmy_=3PROCsI(Choice_%,"frac")
40180ENDPROC
40200DEFFNpwon_:IFremmy_<>2THEN=FALSE
40210pwon_$=$!pwon_%:pwon_=VAL(pwon_$):IFFNmouse=4ANDpwon_=3THEN=FALSE
40230IFFNmouse=4ANDpwon_<3THEN
40240pwon_=pwon_+1:$!pwon_%=STR$(pwon_):PROCrI(Choice_%,"pwon")
40270ENDIF:IFFNmouse=1ANDpwon_=1THEN=FALSE
40290IFFNmouse=1ANDpwon_>1THEN
40300pwon_=pwon_-1:$!pwon_%=STR$(pwon_):PROCrI(Choice_%,"pwon")
40330ENDIF:=FNredo
40360DEFFNredo:IFstarted_%=TRUEANDFNfWS("Divide")THEN=FNDivyGo_
40380IFstarted_%=TRUEANDFNfWS("LongDiv")THEN=FNLongDivgo_
40390=TRUE
40410DEFFNrem_:IFremmy_=1THENPROCsI(Choice_%,"rem"):=FALSE
40420remmy_=1:PROCsI(Choice_%,"rem"):PROCusI(Choice_%,"dot"):PROCusI(Choice_%,"frac"):=FNredo
40470DEFFNdot_:IFremmy_=2THENPROCsI(Choice_%,"dot"):=FALSE
40480remmy_=2:PROCsI(Choice_%,"dot"):PROCusI(Choice_%,"rem"):PROCusI(Choice_%,"frac"):=FNredo
40520DEFFNfrac_:IFremmy_=3THENPROCsI(Choice_%,"frac"):=FALSE
40530remmy_=3:PROCsI(Choice_%,"frac"):PROCusI(Choice_%,"rem"):PROCusI(Choice_%,"dot"):=FNredo
40570DEFFNDirect_:IFdirect_%=TRUEdirect_%=FALSEELSEdirect_%=TRUE
40590=TRUE
40610DEFPROCdo_:IFFNfWS("Add")ORFNfWS("Subtract")ORFNfWS("Multiply")ORFNfWS("LongMul")ORFNfWS("Madd")ORFNfWS("MetricSub")ORFNfWS("MetricMul")PROCdoo_
40620ENDPROC
40630DEFPROCdoo_:IFFNgWx("GrafIt")ANDstarted_%THENn_=FNwindow("GrafIt"):n_=FNwindow("Choices")
40640ENDPROC
40660DEFFNsignleft_:IFNOTSign_%PROCsI(Choice_%,"signleft"):=TRUE
40670Sign_%=FALSE:PROCsI(Choice_%,"signleft"):PROCusI(Choice_%,"signright"):PROCdo_:=TRUE
40680DEFFNsignright_:IFSign_%PROCsI(Choice_%,"signright"):=TRUE
40690Sign_%=TRUE:PROCsI(Choice_%,"signright"):PROCusI(Choice_%,"signleft"):PROCdo_:=TRUE
40720DEFFNStartY_:StartY$=$!StartY_%:StartY=VAL(StartY$):IFFNmouse=4ANDStartY<1300THEN
40750StartY=StartY+1:$!StartY_%=STR$(StartY):PROCrI(Choice_%,"StartY")
40780ENDIF:IFFNmouse=1ANDStartY>1110THEN
40800StartY=StartY-1:$!StartY_%=STR$(StartY):PROCrI(Choice_%,"StartY")
40830ENDIF:=TRUE
40860DEFFNStartX_:StartX$=$!StartX_%:rite_=VAL(StartX$):IFFNmouse=4ANDrite_<16THEN
40890rite_=rite_+1:$!StartX_%=STR$(rite_):PROCrI(Choice_%,"StartX")
40920ENDIF:IFFNmouse=1ANDrite_>0THEN
40940rite_=rite_-1:$!StartX_%=STR$(rite_):PROCrI(Choice_%,"StartX")
40970ENDIF:=TRUE
41000DEFFNSaveChoice_:LOCALERROR:ONERRORLOCAL:PROCmoan(REPORT$):PROCusI(Choice_%,"SaveChoice"):ONERROROFF:=FALSE
41030DefStartX=rite_:DefStartY=StartY:save_%=OPENOUT"<MathsSys$Path>Numbers":PROCGetTitles:PRINT#save_%,rite_,StartY,Maintitle_$,Title_$,Choices_%,Sign_%,SecAns_%,Lda_%,Lma_%,direct_%,remmy_,pwon_:CLOSE#save_%:PROCusI(Choice_%,"SaveChoice"):=TRUE
41100DEFFNExit_:PROCcloseW(Choice_%):MOUSETO600,500:=TRUE
41120DEFFNSecAns_:IFSecAns_%=TRUESecAns_%=FALSE:PROCusI(Choice_%,"SecAns")ELSESecAns_%=TRUE:PROCsI(Choice_%,"SecAns")
41130PROCdo_:=TRUE
41150DEFFNLda_:IFLda_%=TRUELda_%=FALSE:PROCusI(Choice_%,"Lda")ELSELda_%=TRUE:PROCsI(Choice_%,"Lda")
41170=TRUE
41190DEFFNLma_:IFLma_%=TRUELma_%=FALSE:PROCusI(Choice_%,"Lma")ELSELma_%=TRUE:PROCsI(Choice_%,"Lma")
41210IFFNgWx("GrafIt")ANDFNfWS("LongMul")THENn_=FNwindow("GrafIt"):n_=FNwindow("Choices"):=TRUEELSE=TRUE
41220
41230DEFFNBothsums_:Choices_%=1:PROCtMIx("CreChoices",0):=TRUE
41240DEFFNBothans_:Choices_%=2:PROCtMIx("CreChoices",1):=TRUE
41250DEFFNHalfhalf_:Choices_%=3:PROCtMIx("CreChoices",2):=TRUE
$ݤstart_:�shut_:=�window("Main")
(ݤmainW_:=�window("Main")
Fݤdummy_:=�
nݤm_:�H$:H$=$mn%:ȎH$�
�T�"GrafIt":�Answer_%��pMI("GrafIt",0,"Answers off")��pMI("GrafIt",0,"Answers on")
��:=�
�ݤsm_:�H$:H$=$mn%:ȎH$�
�3�"CreChoices":�Choices_%=1�tMIx("CreChoices",0)
%�Choices_%=2�tMIx("CreChoices",1)
%�Choices_%=3�tMIx("CreChoices",2)
�:=�
6
ݤsma_:=�
^ݤw_:Ȏ$wn%�
r,�"Main":�shut_:WindowMain_%=�fWS("Main")
|%�"GrafIt":GrafIt_%=�fWS("GrafIt")
��"TakeCards":�TakeCards
��"AddCards":�AddCards
��"TimesCards":�TimesCards
��"DivCards":�DivCards
��"Add":�Add
��"Subtract":�subtract
��"Multiply":�multiply
��"Divide":�Divide
��"Madd":�Madd
��"MetricSub":�Msub
��"Magic":�Magic
��"Sadd":�Sadd
��"Wadd":�Wadd
�"FrMD":�FrMD
�"LongMul":�LongMulty
�"LongDiv":�LongDivy
&�"MetricSub":�Msub
0�"MetricMul":�Mmul
:�"MetDiv":�Mdiv
D�"Choices":�choices
N�:=�
�ݤb_:=�
�ݤe_:=�
�ݤpK_:=�
�ݤh_:Ȏ$wn%�
�H�"GrafIt":="This is the main window of the 'New_Appln' application."
�U�:�!h%=-2�="This is the 'New_Appln' icon.|MClick SELECT to open the main window."
=""
ݤrM_:=�
4ݤrB_:=�
RݤpB_:=�
p��iBasic_g:�
z��iSprite_g:�
���iAnimate_g:�
��ݤi_(A$,B%):�A%,C$:many_=12:last_=12:quit_=�:SecAns_%=�:Lda_%=�:Lma_%=�:�qual_$(10),qual_(10),act_$(10),gc_%(12),scoot_(10):EqSign_=�:EqEquals_=�:�LineType_(3):LineType_(3)=�:LineType_(2)=�:LineType_(1)=�:�finder_%(12)
��maxsub=6:�sub_$(maxsub),sub_(maxsub):sub_$(1)="-":sub_(1)=�:sub_$(2)="subtract":sub_(2)=�:sub_$(3)="minus":sub_(3)=�:sub_$(4)="take":sub_(4)=�:sub_$(5)="take away":sub_(5)=�:sub_$(6)="less":sub_(6)=�
��Takemaxy_=20:Takeminny_=10:maxadd=4:�add_$(maxadd),add_(maxadd):add_$(1)="+":add_(1)=�:add_$(2)="add":add_(2)=�:add_$(3)="plus":add_(3)=�:add_$(4)="and":add_(4)=�:Addmaxy_=10:Addminy_=1
�maxtimes=4:�time_$(maxtimes),times_(maxtimes):time_$(1)="x":times_(1)=�:time_$(2)="times":times_(2)=�:time_$(3)="multiplied by":times_(3)=�:maxtims=9:�tim_$(maxtims),tim_(maxtims)
�tim_$(1)="2":tim_$(2)="3":tim_$(3)="4":tim_$(4)="5":tim_$(5)="6":tim_$(6)="7":tim_$(7)="8":tim_$(8)="9":tim_$(9)="10":tim_(1)=�:tim_(2)=�:tim_(3)=�:tim_(4)=�:tim_(5)=�:tim_(6)=�:tim_(7)=�:tim_(8)=�:tim_(9)=�
P�maxdiv=3:�dive_$(maxdiv),dive_(maxdiv):�tempa_(10):dive_$(1)="�":dive_(1)=�:dive_$(2)="shared by":dive_(2)=�:dive_$(3)="divided by":dive_(3)=�:maxdivs=9:�div_$(maxdivs),div_(maxdivs)
n�div_$(1)="2":div_$(2)="3":div_$(3)="4":div_$(4)="5":div_$(5)="6":div_$(6)="7":div_$(7)="8":div_$(8)="9":div_$(9)="10":div_(1)=�:div_(2)=�:div_(3)=�:div_(4)=�:div_(5)=�:div_(6)=�:div_(7)=�:div_(8)=�:div_(9)=�
���addy_(6):addy_(1)=�:�t_=2�6:addy_(t_)=�:�:maxaddcarry_=3:�addcarry_(maxaddcarry_):addcarry_(1)=�:addcarry_(2)=�:addcarry_(3)=�:�addytype_(6),lineaddy_(12):Anowts_%=�:�subby_(6):subby_(1)=�:�t_=2�6:subby_(t_)=�:�
��maxsubcarry_=3:�subcarry_(maxsubcarry_):subcarry_(1)=�:subcarry_(2)=�:subcarry_(3)=�:�subbytype_(6),linesubby_(12):nowts_%=�:�multy_(6):multy_(1)=�:�t_=2�6:multy_(t_)=�:�:maxmults=9:�mult_$(maxmults),mult_(maxmults)
,��t_=1�9:mult_$(t_)=�(t_+1):�:mult_(1)=�:�t_=2�9:mult_(t_)=�:�:�multytype_(6),linemulty_(12):Mnowts_%=�:Remainder_$="Ran":�dvy_(5):dvy_(1)=�:dvy_(2)=�:dvy_(3)=�:dvy_(4)=�:dvy_(5)=�:maxdvs=9:�dv_$(maxdvs),dv_(maxdvs)
|�dv_$(1)="2":dv_$(2)="3":dv_$(3)="4":dv_$(4)="5":dv_$(5)="6":dv_$(6)="7":dv_$(7)="8":dv_$(8)="9":dv_$(9)="10":dv_(1)=�:dv_(2)=�:dv_(3)=�:dv_(4)=�:dv_(5)=�:dv_(6)=�:dv_(7)=�:dv_(8)=�:dv_(9)=�
���dvytype_(6),linedvy_(12):Dnowts_%=�:�cz_$(12):Fracadd_=�:Fractake_=�:addoms_=�:AddReps_=�:subdoms_=�:SubReps_=�:maxfrac_=12:�f_(maxfrac_),frac_(maxfrac_):�FU1_(12),FD1_(12),FU2_(12),FD2_(12),FU3_(12),FD3_(12)
��f_(1)=�:f_(2)=�:f_(3)=�:f_(4)=�:f_(5)=�:f_(6)=�:f_(7)=�:�r_=8�12:f_(r_)=�:�:�r_=1�9:frac_(r_)=r_+1:�:frac_(10)=12:frac_(11)=15:frac_(12)=20:�Sadcarry_(3):Sadcarry_(1)=�:Sadcarry_(2)=�:Sadcarry_(3)=�:�Fracsign_$(12)
:�WFracadd_=�:WFractake_=�:Waddoms_=�:WAddReps_=�:Wsubdoms_=�:WSubReps_=�:Wmaxfrac_=12:�wf_(Wmaxfrac_),wfrac_(Wmaxfrac_):�WFU1_(12),WFD1_(12),WFU2_(12),WFD2_(12),WFU3_(12),WFD3_(12),Whole_(12,2)
l�f_(1)=�:wf_(2)=�:wf_(3)=�:wf_(4)=�:wf_(5)=�:wf_(6)=�:wf_(7)=�:�r_=8�12:wf_(r_)=�:�:�r_=1�9:wfrac_(r_)=r_+1:�:wfrac_(10)=12:wfrac_(11)=15:wfrac_(12)=20:�WSadcarry_(3):WSadcarry_(1)=�:WSadcarry_(2)=�:WSadcarry_(3)=�
���WSTakecar_(3):WSTakecar_(1)=�:WSTakecar_(2)=�:WSTakecar_(3)=�:Fracmult_=�:Fracdiv_=�:Frtdom_=�:Frtrep_=�:Frddom_=�:Frdrep_=�:�mf_(12),mfv_(12):�r_=1�9:mfv_(r_)=r_+1:�:mfv_(10)=12:mfv_(11)=15:mfv_(12)=20
��mf_(1)=�:mf_(2)=�:�r_=3�12:mf_(r_)=�:�:Frmwhole_=�:Frdwhole_=�:�LongMul_(6):LongMul_(1)=�:�t_=2�6:LongMul_(t_)=�:�:Longstyle_=1:�Longchoice_$(8),froc_(8):�LongDiv_(7):LongDiv_(1)=�:�t_=2�7:LongDiv_(t_)=�:�:LRemainder_$="Ran"
z��maddy_(6):maddy_(1)=�:�w_=2�6:maddy_(w_)=�:�:maddcarry_$="Ran":�mt_(6):�w_=1�6:mt_(w_)=�:�:�thou_$(3),hun_$(3),top_$(12):�msub_(6):msub_(1)=�:�w_=2�6:msub_(w_)=�:�:msubcarry_$="Ran":�st_(6):�w_=1�6:st_(w_)=�:�
���mmul_(6):mmul_(1)=�:�w_=2�6:mmul_(w_)=�:�:�mmt_(6):�w_=1�6:mmt_(w_)=�:�:�Mmult_$(9),Mmult_(9):�t_=1�9:Mmult_$(t_)=�(t_+1):�:Mmult_(1)=�:�t_=2�9:Mmult_(t_)=�:�:�md_(6):md_(1)=�:�w_=2�6:md_(w_)=�:�
8��mdt_(6):�w_=1�6:mdt_(w_)=�:�:�Mdiv_$(9),Mdiv_(9):�t_=1�9:Mdiv_$(t_)=�(t_+1):�:Mdiv_(1)=�:�t_=2�9:Mdiv_(t_)=�:�:LineTypeards_%=�:TakeCard_%=�:�dunk_$(10):started_%=�:twoxc=�:threexc=�:fourxc=�:fivexc=�:sixxc=�
��sevenxc=�:eightxc=�:ninexc=�:tenxc=�:EqSign_=�:EqEquals_=�:Addadd=�:Addplus=�:Addsign=�:�Na_%(12),Nb_%(12),Nc_%(12),linetype_(10),equal_$(10)
��save_%=�"<MathsSys$Path>Numbers":�#save_%,rite_,StartY,Maintitle_$,Title_$,Choices_%,Sign_%,SecAns_%,Lda_%,Lma_%,direct_%,remmy_,pwon_:�#save_%:DefStartX=rite_:DefStartY=StartY:DefaultStartX=100:DefaultStartY=1240
��a_(12),b_(12),c_(12),rem_(12),a_$(12),b_$(12),c_$(12),rem_$(12):�magic_(9,9):MagRange_$="1 to 25":�bas_(9),baa_(9):�pat_$(9),pattern_(9),bas_$(9):Answer_%=�:mult_=2:gap_=0:Clue_$="":Zero_$="Random":metric_$="�":�iRes(A$,B%)
��iGraphics("",B%):=�
�-��shut_:�gWx("GrafIt"):�closeW(GrafIt_%)
�)�fWS("TakeCards")�closeW(TakeCard_%)
�'�fWS("AddCards")�closeW(AddCard_%)
�+�fWS("TimesCards")�closeW(TimesCard_%)
'�fWS("DivCards")�closeW(DivCard_%)
�fWS("Add")�closeW(WAdd_%)
$�fWS("Subtract")�closeW(WSub_%)
"%�fWS("Multiply")�closeW(WMult_%)
,"�fWS("Divide")�closeW(WDiv_%)
6"�fWS("Magic")�closeW(Magic_%)
@�fWS("Sadd")�closeW(Sad_%)
J�fWS("Wadd")�closeW(Wad_%)
T �fWS("FrMD")�closeW(FrMD_%)
^&�fWS("LongMul")�closeW(LongMul_%)
h&�fWS("LongDiv")�closeW(LongDiv_%)
r �fWS("Madd")�closeW(Madd_%)
|%�fWS("MetricSub")�closeW(Msub_%)
�%�fWS("MetricMul")�closeW(Mmul_%)
�"�fWS("MetDiv")�closeW(Mdiv_%)
�%�fWS("Choices")�closeW(Choice_%)
�fAddCard_%=�:TakeCard_%=�:TimesCard_%=�:DivCard_%=�:started_%=�:�:�gWx("GrafIt"):�closeW(GrafIt_%)
� �gWx("Add"):�closeW(WAdd_%)
�%�gWx("Subtract"):�closeW(WSub_%)
�&�gWx("Multiply"):�closeW(WMult_%)
�#�gWx("Divide"):�closeW(WDiv_%)
�#�gWx("Magic"):�closeW(Magic_%)
�&�gWx("MetricAdd"):�closeW(Madd_%)
&�gWx("MetricSub"):�closeW(Msub_%)
&�gWx("MetricMul"):�closeW(Mmul_%)
'�gWx("LongMul"):�closeW(LongMul_%)
&%�gWx("StartX"):�closeW(Start_X%)
0(�gWx("AddCards"):�closeW(AddCard_%)
:*�gWx("TakeCards"):�closeW(TakeCard_%)
D,�gWx("TimesCards"):�closeW(TimesCard_%)
N(�gWx("DivCards"):�closeW(DivCard_%)
XDAddCard_%=�:TakeCard_%=�:TimesCard_%=�:DivCard_%=�:started_%=�:�
�?ݤChoices_:�usI(WindowMain_%,"Choices"):=�window("Choices")
�}ݤTakecards_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open1_%=�window("TakeCards"):open2_%=�window("GrafIt"):=�
�{ݤAddcards_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open1_%=�window("AddCards"):open2_%=�window("GrafIt"):=�
�ݤTimesCards_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open1_%=�window("TimesCards"):open2_%=�window("GrafIt"):=�
�{ݤDivCards_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open1_%=�window("DivCards"):open2_%=�window("GrafIt"):=�
�qݤAdd_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open1_%=�window("Add"):open2_%=�window("GrafIt"):=�
�{ݤSubtract_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open1_%=�window("Subtract"):open2_%=�window("GrafIt"):=�
{ݤMultiply_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open1_%=�window("Multiply"):open2_%=�window("GrafIt"):=�
wݤDivide_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open1_%=�window("Divide"):open2_%=�window("GrafIt"):=�
*uݤMagic_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open1_%=�window("Magic"):open2_%=�window("GrafIt"):=�
>sݤSadd_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open1_%=�window("Sadd"):open2_%=�window("GrafIt"):=�
RsݤWadd_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open1_%=�window("Wadd"):open2_%=�window("GrafIt"):=�
fsݤFrMD_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open1_%=�window("FrMD"):open2_%=�window("GrafIt"):=�
zsݤMadd_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open1_%=�window("Madd"):open2_%=�window("GrafIt"):=�
�|ݤMetricSub_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open_%=�window("MetricSub"):open2_%=�window("GrafIt"):=�
�|ݤMetricMul_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open_%=�window("MetricMul"):open2_%=�window("GrafIt"):=�
�yݤMetricDiv_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open_%=�window("MetDiv"):open2_%=�window("GrafIt"):=�
�yݤLongMul_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open1_%=�window("LongMul"):open2_%=�window("GrafIt"):=�
�yݤLongDiv_:Clue_$="":�shut_:started_%=�:�closeW(WindowMain_%):open1_%=�window("LongDiv"):open2_%=�window("GrafIt"):=�
$[��whatqual:�TakeCard_% tot_=maxsub:�r_=1�tot_:qual_$(r_)=sub_$(r_):qual_(r_)=sub_(r_):�
8O�AddCard_% tot_=maxadd:�r_=1�tot_:qual_$(r_)=add_$(r_):qual_(r_)=add_(r_):�
BV�TimesCard_% tot_=maxtimes:�r_=1�tot_:qual_$(r_)=time_$(r_):qual_(r_)=times_(r_):�
LQ�DivCard_% tot_=maxdiv:�r_=1�tot_:qual_$(r_)=dive_$(r_):qual_(r_)=dive_(r_):�
VBgot_%=0:�r_%=1�tot_:�qual_(r_%)=�got_%=got_%+1:gc_%(got_%)=r_%
j�:�qual(got_%):�
�C��qual(g_%):�g_%=1��tr_%=1�10:act_$(tr_%)=qual_$(gc_%(g_%)):�:�
��needed_%=10�g_%:�:�y_=1�g_%:finder_%(y_)=0:�:flag_=�:�tr_%=1�10:�:flig_=�:ran_=�(g_%):act_$=qual_$(gc_%(ran_)):�tr_%>1�act_$(tr_%-1)=act_$ flig_=�
�x�flig_=�:act_$(tr_%)=qual_$(gc_%(ran_)):finder_%(ran_)=finder_%(ran_)+1:�:�b_%=1�g_%:�finder_%(b_%)<needed_% flag_=�
�:�flag_=�:�
(P��whatlines_:got_%=0:�r_%=1�3:�LineType_(r_%)=�got_%=got_%+1:gc_%(got_%)=r_%
<9�:�got_%=1��tr_%=1�10:linetype_(tr_%)=gc_%(got_%):�:�
P�needed_%=10�got_%:�:�y_=1�got_%:finder_%(y_)=0:�:flag_=�:�tr_%=1�10:�:flig_=�:ran_=�(got_%):linetype_=gc_%(ran_):�tr_%>1�linetype_(tr_%-1)=linetype_ flig_=�
�t�flig_=�:linetype_(tr_%)=gc_%(ran_):finder_%(ran_)=finder_%(ran_)+1:�:�y_=1�got_%:�finder_%(y_)<needed_% flag_=�
��:�flag_=�:�
�G��whatequals:�EqSign_=��EqEquals_=��tr_%=1�10:equal_$(tr_%)="=":�:�
?�EqSign_=��EqEquals_=��tr_%=1�10:equal_$(tr_%)="equals":�:�
+�two("equals","="):equal_$()=dunk_$():�
"Y��two(a_$,b_$):�:aa_=0:ap_=0:�tr_%=1�10:�:flug_=�:r_=�(2):�r_=1 dunk_$=a_$�dunk_$=b_$
T)�tr_%>1�dunk_$(tr_%-1)=dunk_$ flug_=�
^H�flug_=�:�r_=1 dunk_$(tr_%)=a_$:aa_=aa_+1�dunk_$(tr_%)=b_$:ap_=ap_+1
r�:�aa_>4�ap_>4:�
�:ݤEqSign_:�EqSign_=��EqEquals_=�EqSign_=�:�selectEq:=�
�&�EqSign_=�EqSign_=�:�UnselectEq:=�
�$�EqSign_=�EqSign_=�:�selectEq:=�
�
�BݤEqEquals_:�EqEquals_=��EqSign_=�EqEquals_=�:�selectEquals:=�
�.�EqEquals_=�EqEquals_=�:�UnselectEquals:=�
�,�EqEquals_=�EqEquals_=�:�selectEquals:=�
�
�0��selectEq:�AddCard_%�sI(AddCard_%,"EqSign")
�'�TakeCard_%�sI(TakeCard_%,"EqSign")
)�TimesCard_%�sI(TimesCard_%,"EqSign")
%�DivCard_%�sI(DivCard_%,"EqSign")
�
0/��UnselectEq:�AddCard_%�usI(AddCard_%,"Eq")
D$�TakeCard_%�usI(TakeCard_%,"Eq")
N*�TimesCard_%�usI(TimesCard_%,"EqSign")
X&�DivCard_%�usI(DivCard_%,"EqSign")
b�
v6��selectEquals:�AddCard_%�sI(AddCard_%,"EqEquals")
�)�TakeCard_%�sI(TakeCard_%,"EqEquals")
�+�TimesCard_%�sI(TimesCard_%,"EqEquals")
�'�DivCard_%�sI(DivCard_%,"EqEquals")
��
�9��UnselectEquals:�AddCard_%�usI(AddCard_%,"EqEquals")
�*�TakeCard_%�usI(TakeCard_%,"EqEquals")
�,�TimesCard_%�usI(TimesCard_%,"EqEquals")
�(�DivCard_%�usI(DivCard_%,"EqEquals")
��
NݤLineType1_:�LineType_(2)=��LineType_(3)=��LineType_(1)=�:�selectline1:=�
1�LineType_(1)=�LineType_(1)=�:�selectline1:=�
3�LineType_(1)=�LineType_(1)=�:�Unselectline1:=�
*NݤLineType2_:�LineType_(1)=��LineType_(3)=��LineType_(2)=�:�selectline2:=�
>1�LineType_(2)=�LineType_(2)=�:�selectline2:=�
H3�LineType_(2)=�LineType_(2)=�:�Unselectline2:=�
RNݤLineType3_:�LineType_(1)=��LineType_(2)=��LineType_(3)=�:�selectline3:=�
f1�LineType_(3)=�LineType_(3)=�:�selectline3:=�
p3�LineType_(3)=�LineType_(3)=�:�Unselectline3:=�
z
�8��selectline1:�TakeCard_%�sI(TakeCard_%,"LineType1")
�(�AddCard_%�sI(AddCard_%,"LineType1")
�,�TimesCard_%�sI(TimesCard_%,"LineType1")
�(�DivCard_%�sI(DivCard_%,"LineType1")
��
�;��Unselectline1:�TakeCard_%�usI(TakeCard_%,"LineType1")
�)�AddCard_%�usI(AddCard_%,"LineType1")
�-�TimesCard_%�usI(TimesCard_%,"LineType1")
�)�DivCard_%�usI(DivCard_%,"LineType1")
��
�8��selectline2:�TakeCard_%�sI(TakeCard_%,"LineType2")
(�AddCard_%�sI(AddCard_%,"LineType2")
,�TimesCard_%�sI(TimesCard_%,"LineType2")
$(�DivCard_%�sI(DivCard_%,"LineType2")
.�
8;��Unselectline2:�TakeCard_%�usI(TakeCard_%,"LineType2")
L)�AddCard_%�usI(AddCard_%,"LineType2")
V-�TimesCard_%�usI(TimesCard_%,"LineType2")
`)�DivCard_%�usI(DivCard_%,"LineType2")
j�
t8��selectline3:�TakeCard_%�sI(TakeCard_%,"LineType3")
�(�AddCard_%�sI(AddCard_%,"LineType3")
�,�TimesCard_%�sI(TimesCard_%,"LineType3")
�(�DivCard_%�sI(DivCard_%,"LineType3")
��
�;��Unselectline3:�TakeCard_%�usI(TakeCard_%,"LineType3")
�)�AddCard_%�usI(AddCard_%,"LineType3")
�-�TimesCard_%�usI(TimesCard_%,"LineType3")
�)�DivCard_%�usI(DivCard_%,"LineType3")
��
�wݤAnswers_:�Answer_%=�Answer_%=�:�pMI("GrafIt",0,"Answers off")��Answer_%=�Answer_%=�:�pMI("GrafIt",0,"Answers on")
=�sums
P���AddCards:AddCard_%=�fWS("AddCards"):$!Addmaxy_%=�(Addmaxy_):�rI(AddCard_%,"Addmaxy"):$!Addminy_%=�(Addminy_):�rI(AddCard_%,"Addminy"):�LineType_(1)�sI(AddCard_%,"LineType1")
x+�LineType_(2)�sI(AddCard_%,"LineType2")
�+�LineType_(3)�sI(AddCard_%,"LineType3")
�#�EqSign_�sI(AddCard_%,"EqSign")
�'�EqEquals_�sI(AddCard_%,"EqEquals")
�!�add_(1)�sI(AddCard_%,"add1")
�!�add_(2)�sI(AddCard_%,"add2")
�!�add_(3)�sI(AddCard_%,"add3")
�!�add_(4)�sI(AddCard_%,"add4")
��
�(ݤadd_:c_=0:�h_=1�4:�add_(h_)c_=c_+1
� �:=c_
?ݤadd1_:�add_(1)��add_=1 add_(1)=�:�sI(AddCard_%,"add1"):=�
�add_(1)add_(1)=��add_(1)=�
=�
"?ݤadd2_:�add_(2)��add_=1 add_(2)=�:�sI(AddCard_%,"add2"):=�
,�add_(2)add_(2)=��add_(2)=�
6=�
@?ݤadd3_:�add_(3)��add_=1 add_(3)=�:�sI(AddCard_%,"add3"):=�
J�add_(3)add_(3)=��add_(3)=�
T=�
^?ݤadd4_:�add_(4)��add_=1 add_(4)=�:�sI(AddCard_%,"add4"):=�
h�add_(4)add_(4)=��add_(4)=�
r=�
|5ݤAddmaxy_:�getaddmax:�sCI(!(AddCard_%+12),20):=�
�>��getaddmax:Addmaxy_=�($!Addmaxy_%):�Addmaxy_<4 Addmaxy_=4
��Addmaxy_>500 Addmaxy_=500
�6$!Addmaxy_%=�(Addmaxy_):�rI(AddCard_%,"Addmaxy"):�
�@ݤAddminy_:�getaddmax:�getaddmin:�sCI(!(AddCard_%+12),20):=�
�>��getaddmin:Addminy_=�($!Addminy_%):�Addminy_<1 Addminy_=0
�,�Addminy_>Addmaxy_-4 Addminy_=Addmaxy_-4
�6$!Addminy_%=�(Addminy_):�rI(AddCard_%,"Addminy"):�
��ݤAddcGo_:�GetTitles:dummy_=�(-�):�whatlines_:�whatqual:�whatequals:�calcadd:�usI(AddCard_%,"AddcGo"):last_=3:quit_=�:Clue_$="CardsAdd":started_%=�:=�sums
:���calcadd:ș"Hourglass_On":�getaddmax:�getaddmin:�tr_%=1�10:ș"Hourglass_Percentage",tr_%/10*100:�:flag_=0:�:dif_%=Addmaxy_-Addminy_:wh_=�(2):�wh_=1�dd_%=�(dif_%):Na_%=Addminy_+dd_%:dd_%=�(dif_%)-1:Nb_%=Addminy_+dd_%
�;�wh_=2�dd_%=�(dif_%)-1:Na_%=Addminy_+dd_%:dd_%=�(dif_%)
�>Nb_%=Addminy_+dd_%:�Na_%>=Addminy_�Nb_%>=Addminy_:�tr_%>1�
�7�e_%=1�tr_%-1:�Na_%=Na_%(e_%)�Nb_%=Nb_%(e_%)flag_=1
��
�e�:�flag_=0:Na_%(tr_%)=Na_%:Nb_%(tr_%)=Nb_%:Nc_%(tr_%)=Na_%(tr_%)+Nb_%(tr_%):�:ș"Hourglass_Off":�
���TakeCards:TakeCard_%=�fWS("TakeCards"):$!Takemaxy_%=�(Takemaxy_):�rI(TakeCard_%,"Takemaxy"):$!Takeminny_%=�(Takeminny_):�rI(TakeCard_%,"Takeminny"):�LineType_(1)�sI(TakeCard_%,"LineType1")
H,�LineType_(2)�sI(TakeCard_%,"LineType2")
R,�LineType_(3)�sI(TakeCard_%,"LineType3")
\(�EqEquals_�sI(TakeCard_%,"EqEquals")
f$�EqSign_�sI(TakeCard_%,"EqSign")
p"�sub_(1)�sI(TakeCard_%,"sub1")
z"�sub_(2)�sI(TakeCard_%,"sub2")
�"�sub_(3)�sI(TakeCard_%,"sub3")
�"�sub_(4)�sI(TakeCard_%,"sub4")
�"�sub_(5)�sI(TakeCard_%,"sub5")
�"�sub_(6)�sI(TakeCard_%,"sub6")
��
�(ݤsub_:c_=0:�h_=1�6:�sub_(h_)c_=c_+1
� �:=c_
�@ݤsub1_:�sub_(1)��sub_=1 sub_(1)=�:�sI(TakeCard_%,"sub1"):=�
��sub_(1)sub_(1)=��sub_(1)=�
�=�
@ݤsub2_:�sub_(2)��sub_=1 sub_(2)=�:�sI(TakeCard_%,"sub2"):=�
!�sub_(2)=�sub_(2)=��sub_(2)=�
=�
$@ݤsub3_:�sub_(3)��sub_=1 sub_(3)=�:�sI(TakeCard_%,"sub3"):=�
.!�sub_(3)=�sub_(3)=��sub_(3)=�
8=�
B@ݤsub4_:�sub_(4)��sub_=1 sub_(4)=�:�sI(TakeCard_%,"sub4"):=�
L!�sub_(4)=�sub_(4)=��sub_(4)=�
V=�
`@ݤsub5_:�sub_(5)��sub_=1 sub_(5)=�:�sI(TakeCard_%,"sub5"):=�
j!�sub_(5)=�sub_(5)=��sub_(5)=�
t=�
~@ݤsub6_:�sub_(6)��sub_=1 sub_(6)=�:�sI(TakeCard_%,"sub6"):=�
��sub_(6)sub_(6)=��sub_(6)=�
�=�
�8ݤTakemaxy_:�gettakemax:�sCI(!(TakeCard_%+12),19):=�
�C��gettakemax:Takemaxy_=�($!Takemaxy_%):�Takemaxy_<4 Takemaxy_=4
�:$!Takemaxy_%=�(Takemaxy_):�rI(TakeCard_%,"Takemaxy"):�
�EݤTakeminny_:�gettakemax:�gettakemin:�sCI(!(TakeCard_%+12),19):=�
�G��gettakemin:Takeminny_=�($!Takeminny_%):�Takeminny_<0 Takeminny_=0
2�Takeminny_>Takemaxy_-4 Takeminny_=Takemaxy_-4
=$!Takeminny_%=�(Takeminny_):�rI(TakeCard_%,"Takeminny"):�
<�ݤTakecGo_:�GetTitles:dummy_=�(-�):�whatlines_:�whatqual:�whatequals:�calctake:�usI(TakeCard_%,"TakecGo"):last_=3:quit_=�:Clue_$="CardsTake":started_%=�:=�sums
x���calctake:ș"Hourglass_On":�gettakemax:�gettakemin:many_=10:�tr_%=1�10:�:flag_=0:ș"Hourglass_Percentage",tr_%/10*100:�:�:Na_%=�(Takemaxy_):�Na_%>=Takeminny_:�:Nb_%=�(Takemaxy_+1):Nb_%=Nb_%-1:�Nb_%>=Takeminny_:�Na_%-Nb_%>-1
��tr_%>1�
�7�e_%=1�tr_%-1:�Na_%=Na_%(e_%)�Nb_%=Nb_%(e_%)flag_=1
��
�e�:�flag_=0:Na_%(tr_%)=Na_%:Nb_%(tr_%)=Nb_%:Nc_%(tr_%)=Na_%(tr_%)-Nb_%(tr_%):�:ș"Hourglass_Off":�
JO��TimesCards:TimesCard_%=�fWS("TimesCards"):�tim_(1)�sI(TimesCard_%,"tim1")
^#�tim_(2)�sI(TimesCard_%,"tim2")
h#�tim_(3)�sI(TimesCard_%,"tim3")
r#�tim_(4)�sI(TimesCard_%,"tim4")
|#�tim_(5)�sI(TimesCard_%,"tim5")
�#�tim_(6)�sI(TimesCard_%,"tim6")
�#�tim_(7)�sI(TimesCard_%,"tim7")
�#�tim_(8)�sI(TimesCard_%,"tim8")
�#�tim_(9)�sI(TimesCard_%,"tim9")
�-�LineType_(1)�sI(TimesCard_%,"LineType1")
�-�LineType_(2)�sI(TimesCard_%,"LineType2")
�-�LineType_(3)�sI(TimesCard_%,"LineType3")
�%�EqSign_�sI(TimesCard_%,"EqSign")
�)�EqEquals_�sI(TimesCard_%,"EqEquals")
�'�times_(1)�sI(TimesCard_%,"times1")
�'�times_(2)�sI(TimesCard_%,"times2")
�'�times_(3)�sI(TimesCard_%,"times3")
��
&(ݤtim_:c_=0:�h_=1�9:�tim_(h_)c_=c_+1
0 �:=c_
:Aݤtim1_:�tim_(1)��tim_=1 tim_(1)=�:�sI(TimesCard_%,"tim1"):=�
D�tim_(1)tim_(1)=��tim_(1)=�
N=�
XAݤtim2_:�tim_(2)��tim_=1 tim_(2)=�:�sI(TimesCard_%,"tim2"):=�
b�tim_(2)tim_(2)=��tim_(2)=�
l=�
vAݤtim3_:�tim_(3)��tim_=1 tim_(3)=�:�sI(TimesCard_%,"tim3"):=�
��tim_(3)tim_(3)=��tim_(3)=�
�=�
�Aݤtim4_:�tim_(4)��tim_=1 tim_(4)=�:�sI(TimesCard_%,"tim4"):=�
��tim_(4)tim_(4)=��tim_(4)=�
�=�
�Aݤtim5_:�tim_(5)��tim_=1 tim_(5)=�:�sI(TimesCard_%,"tim5"):=�
��tim_(5)tim_(5)=��tim_(5)=�
�=�
�Aݤtim6_:�tim_(6)��tim_=1 tim_(6)=�:�sI(TimesCard_%,"tim6"):=�
��tim_(6)tim_(6)=��tim_(6)=�
�=�
�Aݤtim7_:�tim_(7)��tim_=1 tim_(7)=�:�sI(TimesCard_%,"tim7"):=�
��tim_(7)tim_(7)=��tim_(7)=�
=�
Aݤtim8_:�tim_(8)��tim_=1 tim_(8)=�:�sI(TimesCard_%,"tim8"):=�
�tim_(8)tim_(8)=��tim_(8)=�
=�
*Aݤtim9_:�tim_(9)��tim_=1 tim_(9)=�:�sI(TimesCard_%,"tim9"):=�
4�tim_(9)tim_(9)=��tim_(9)=�
>=�
RVݤtimes1_:�times_(1)�times_(2)+times_(3)=�times_(1)=�:�sI(TimesCard_%,"times1"):=�
\%�times_(1)times_(1)=��times_(1)=�
f=�
pVݤtimes2_:�times_(2)�times_(1)+times_(3)=�times_(2)=�:�sI(TimesCard_%,"times2"):=�
z'�times_(2)=�times_(2)=��times_(2)=�
�=�
�Vݤtimes3_:�times_(3)�times_(1)+times_(2)=�times_(3)=�:�sI(TimesCard_%,"times3"):=�
�'�times_(3)=�times_(3)=��times_(3)=�
�=�
ʳݤTimescGo_:�GetTitles:dummy_=�(-�):�whatlines_:�whatqual:�whatequals:�whattimes:�calctimes:last_=3:quit_=�:Clue_$="CardsTimes":started_%=�:�usI(TimesCard_%,"TimescGo"):=�sums
\��whattimes:ș"Hourglass_On":got_%=0:�r_%=1�9:�tim_(r_%)=��got_%=got_%+1:gc_%(got_%)=r_%
$+�:�got_%=1�onetimes:ș"Hourglass_Off":�
8[�got_%>4�times(got_%,10):�r_=1�10:Nb_%(r_)=�(tim_$(finder_%(r_))):�:ș"Hourglass_Off":�
Bgneeded_%=10�got_%:�r_=1�10:gc_%(r_)=0:�:got_%=0:�r_%=1�9:�tim_(r_%)=��got_%=got_%+1:gc_%(got_%)=r_%
`��:�:flag_=�:�r_=1�10:finder_%(r_)=0:�:�r_=1�10:ș"Hourglass_Percentage",r_/10*100:�:flig_=�:ran_%=�(got_%):�r_>1��(tim_$(gc_%(ran_%)))=Nb_%(r_-1)flig_=�
�z�flig_=�:Nb_%(r_)=�(tim_$(gc_%(ran_%))):finder_%(ran_%)=finder_%(ran_%)+1:�:�t_=1�got_%:�finder_%(t_)<needed_% flag_=�
�"�:�flag_=�:ș"Hourglass_Off":�
�J��onetimes:�r_%=1�9:�tim_(r_%)=���tr_%=1�10:Nb_%(tr_%)=�(tim_$(r_%)):�
�:�
}��times(git_%,top_%):�r_=1�top_%:finder_%(r_)=0:�:�h_=1�git_%:�:tf_=�:h_%=gc_%(�(git_%)):�j_=1�h_:�finder_%(j_)=h_% tf_=�
Zq�:�tf_=�:finder_%(h_)=h_%:�:k_=git_%+1:�h_=k_�top_%:�:tf_=�:�:h_%=gc_%(�(git_%)):�h_%<>finder_%(h_-1):�h_>k_�
�%�j_=k_�h_:�finder_%(j_)=h_% tf_=�
��
�!�:�tf_=�:finder_%(h_)=h_%:�:�
~��calctimes:ș"Hourglass_On":�tr_%=1�10:ș"Hourglass_Percentage",tr_%/10*100:�:flag_=0:Na_%=�(10):Nb_%=Nb_%(tr_%):�tr_%>1�
T7�e_%=1�tr_%-1:�Na_%=Na_%(e_%)�Nb_%=Nb_%(e_%)flag_=1
^�
he�:�flag_=0:Na_%(tr_%)=Na_%:Nb_%(tr_%)=Nb_%:Nc_%(tr_%)=Na_%(tr_%)*Nb_%(tr_%):�:ș"Hourglass_Off":�
�I��DivCards:DivCard_%=�fWS("DivCards"):�div_(1)=��sI(DivCard_%,"div1")
�#�div_(2)=��sI(DivCard_%,"div2")
�#�div_(3)=��sI(DivCard_%,"div3")
�#�div_(4)=��sI(DivCard_%,"div4")
�#�div_(5)=��sI(DivCard_%,"div5")
�#�div_(6)=��sI(DivCard_%,"div6")
#�div_(7)=��sI(DivCard_%,"div7")
#�div_(8)=��sI(DivCard_%,"div8")
#�div_(9)=��sI(DivCard_%,"div9")
&-�LineType_(1)=��sI(DivCard_%,"LineType1")
0-�LineType_(2)=��sI(DivCard_%,"LineType2")
:-�LineType_(3)=��sI(DivCard_%,"LineType3")
D%�EqSign_=��sI(DivCard_%,"EqSign")
N)�EqEquals_=��sI(DivCard_%,"EqEquals")
X%�dive_(1)=��sI(DivCard_%,"dive1")
b%�dive_(2)=��sI(DivCard_%,"dive2")
l%�dive_(3)=��sI(DivCard_%,"dive3")
v�
�(ݤdiv_:c_=0:�h_=1�9:�div_(h_)c_=c_+1
� �:=c_
�?ݤdiv1_:�div_(1)��div_=1 div_(1)=�:�sI(DivCard_%,"div1"):=�
��div_(1)div_(1)=��div_(1)=�
�=�
�?ݤdiv2_:�div_(2)��div_=1 div_(2)=�:�sI(DivCard_%,"div2"):=�
��div_(2)div_(2)=��div_(2)=�
�=�
�?ݤdiv3_:�div_(3)��div_=1 div_(3)=�:�sI(DivCard_%,"div3"):=�
��div_(3)div_(3)=��div_(3)=�
!=�
!?ݤdiv4_:�div_(4)��div_=1 div_(4)=�:�sI(DivCard_%,"div4"):=�
!�div_(4)div_(4)=��div_(4)=�
! =�
!*?ݤdiv5_:�div_(5)��div_=1 div_(5)=�:�sI(DivCard_%,"div5"):=�
!4�div_(5)div_(5)=��div_(5)=�
!>=�
!H?ݤdiv6_:�div_(6)��div_=1 div_(6)=�:�sI(DivCard_%,"div6"):=�
!R�div_(6)div_(6)=��div_(6)=�
!\=�
!f?ݤdiv7_:�div_(7)��div_=1 div_(7)=�:�sI(DivCard_%,"div7"):=�
!p�div_(7)div_(7)=��div_(7)=�
!z=�
!�?ݤdiv8_:�div_(8)��div_=1 div_(8)=�:�sI(DivCard_%,"div8"):=�
!��div_(8)div_(8)=��div_(8)=�
!�=�
!�?ݤdiv9_:�div_(9)��div_=1 div_(9)=�:�sI(DivCard_%,"div9"):=�
!��div_(9)div_(9)=��div_(9)=�
!�=�
!�Nݤdive1_:�dive_(1)�dive_(2)+dive_(3)=�dive_(1)=�:�sI(DivCard_%,"dive1"):=�
!�;�dive_(1)=�dive_(1)=��dive_(1)=�:�sI(DivCard_%,"dive1")
!�=�
!�Pݤdive2_:�dive_(2)=��dive_(1)+dive_(3)=�dive_(2)=�:�sI(DivCard_%,"dive2"):=�
!�;�dive_(2)=�dive_(2)=��dive_(2)=�:�sI(DivCard_%,"dive2")
!�=�
"Pݤdive3_:�dive_(3)=��dive_(1)+dive_(2)=�dive_(3)=�:�sI(DivCard_%,"dive3"):=�
";�dive_(3)=�dive_(3)=��dive_(3)=�:�sI(DivCard_%,"dive3")
"=�
"B�ݤDivcGo_:�GetTitles:dummy_=�(-�):�whatlines_:�whatqual:�whatequals:�whatdiv:�calcdiv:last_=3:quit_=�:Clue_$="CardsDiv":started_%=�:�usI(DivCard_%,"DivcGo"):=�sums
"�|��calcdiv:ș"Hourglass_On":�tr_%=1�10:�:flag_=0:ș"Hourglass_Percentage",tr_%/10*100:Na_%=�(10):Nb_%=Nb_%(tr_%):�tr_%>1�
"�7�e_%=1�tr_%-1:�Na_%=Na_%(e_%)�Nb_%=Nb_%(e_%)flag_=1
"��
"�r�:�flag_=0:tempa_(tr_%)=Na_%:�:�r_=1�10:Na_%(r_)=tempa_(r_)*Nb_%(r_):Nc_%(r_)=tempa_(r_):�:ș"Hourglass_Off":�
#Z��whatdiv:ș"Hourglass_On":got_%=0:�r_%=1�9:�div_(r_%)=��got_%=got_%+1:gc_%(got_%)=r_%
#()�:�got_%=1�onediv:ș"Hourglass_Off":�
#<[�got_%>4�times(got_%,10):�r_=1�10:Nb_%(r_)=�(div_$(finder_%(r_))):�:ș"Hourglass_Off":�
#Fgneeded_%=10�got_%:�r_=1�10:gc_%(r_)=0:�:got_%=0:�r_%=1�9:�div_(r_%)=��got_%=got_%+1:gc_%(got_%)=r_%
#d��:�:flag_=�:�r_=1�10:finder_%(r_)=0:�:�r_=1�10:ș"Hourglass_Percentage",r_/10*100:ran_%=�(got_%):Nb_%(r_)=�(div_$(gc_%(ran_%))):finder_%(ran_%)=finder_%(ran_%)+1:�:�t_=1�got_%:�finder_%(t_)<needed_% flag_=�
#�"�:�flag_=�:ș"Hourglass_Off":�
#�H��onediv:�r_%=1�9:�div_(r_%)=���tr_%=1�10:Nb_%(tr_%)=�(div_$(r_%)):�
#��:�
$8��Add:WAdd_%=�fWS("Add"):�addy_(1)�sI(WAdd_%,"Add1")
$,�addy_(2)�sI(WAdd_%,"Add2")
$6�addy_(3)�sI(WAdd_%,"Add3")
$@�addy_(4)�sI(WAdd_%,"Add4")
$J�addy_(5)�sI(WAdd_%,"Add5")
$T�addy_(6)�sI(WAdd_%,"Add6")
$^(�addcarry_(1)�sI(WAdd_%,"AddCarry1")
$h(�addcarry_(2)�sI(WAdd_%,"AddCarry2")
$r(�addcarry_(3)�sI(WAdd_%,"AddCarry3")
$|!�Anowts_%�sI(WAdd_%,"Anowts")
$��
$�>ݤAnowts_:�addcarry_(2)Anowts_%=�:�usI(WAdd_%,"Anowts"):=�
$�$�Anowts_%=�Anowts_%=��Anowts_%=�
$��Acz:=�
$�=��Acz:�addy_(1)��addy_=1 Anowts_%=�:�usI(WAdd_%,"Anowts")
$��
$�*ݤaddy_:c_=0:�t_=1�6:�addy_(t_)c_=c_+1
$� �:=c_
%?ݤAdd1_:�addy_(1)��addy_=1 addy_(1)=�:�sI(WAdd_%,"Add1"):=�
%"�addy_(1)addy_(1)=��addy_(1)=�
%�Acz:=�
%&?ݤAdd2_:�addy_(2)��addy_=1 addy_(2)=�:�sI(WAdd_%,"Add2"):=�
%0"�addy_(2)addy_(2)=��addy_(2)=�
%:�Acz:=�
%D?ݤAdd3_:�addy_(3)��addy_=1 addy_(3)=�:�sI(WAdd_%,"Add3"):=�
%N"�addy_(3)addy_(3)=��addy_(3)=�
%X�Acz:=�
%b?ݤAdd4_:�addy_(4)��addy_=1 addy_(4)=�:�sI(WAdd_%,"Add4"):=�
%l"�addy_(4)addy_(4)=��addy_(4)=�
%v�Acz:=�
%�?ݤAdd5_:�addy_(5)��addy_=1 addy_(5)=�:�sI(WAdd_%,"Add5"):=�
%�"�addy_(5)addy_(5)=��addy_(5)=�
%��Acz:=�
%�?ݤAdd6_:�addy_(6)��addy_=1 addy_(6)=�:�sI(WAdd_%,"Add6"):=�
%�"�addy_(6)addy_(6)=��addy_(6)=�
%��Acz:=�
%�cݤAddCarry1_:�addcarry_(1)�addcarry_(2)+addcarry_(3)=�addcarry_(1)=�:�sI(WAdd_%,"AddCarry1"):=�
%Ќ�addcarry_(1)=�addcarry_(1)=�:�sI(WAdd_%,"AddCarry1"):addcarry_(2)=�:�usI(WAdd_%,"AddCarry2"):addcarry_(3)=�:�usI(WAdd_%,"AddCarry3"):=�
%�cݤAddCarry2_:�addcarry_(2)�addcarry_(1)+addcarry_(3)=�addcarry_(2)=�:�sI(WAdd_%,"AddCarry2"):=�
%��addcarry_(2)=�addcarry_(2)=�:�sI(WAdd_%,"AddCarry2"):addcarry_(1)=�:�usI(WAdd_%,"AddCarry1"):addcarry_(3)=�:�usI(WAdd_%,"AddCarry3"):Anowts_%=�:�usI(WAdd_%,"Anowts"):=�
%�cݤAddCarry3_:�addcarry_(3)�addcarry_(1)+addcarry_(2)=�addcarry_(3)=�:�sI(WAdd_%,"AddCarry3"):=�
%���addcarry_(3)=�addcarry_(3)=�:�sI(WAdd_%,"AddCarry3"):addcarry_(1)=�:�usI(WAdd_%,"AddCarry1"):addcarry_(2)=�:�usI(WAdd_%,"AddCarry2"):=�
&
& �ݤAddgo_:�GetTitles:many_=12:�whatadds:�addup:started_%=�:�usI(WAdd_%,"Addgo"):ș"Hourglass_Off":last_=3:quit_=�:Clue_$="Add1a":=�sums
&RY��whatadds:got_%=0:�r_=1�6:�addy_(r_)got_%=got_%+1:addytype_(got_%)=r_:gc_%(got_%)=r_
&f9�:�got_%=1�r_=1�12:lineaddy_(r_)=addytype_(got_%):�:�
&z\�got_%=6�times(got_%,12):�r_=1�12:lineaddy_(r_)=gc_%(finder_%(r_)):�:ș"Hourglass_Off":�
&��needed_%=12�got_%:ș"Hourglass_On":�:�r_=1�12:finder_%(r_)=0:�:flag_=�:�r_=1�12:ș"Hourglass_Percentage",r_/12*100:�:flig_=�:ran_%=�(got_%):�r_>1�gc_%(ran_%)=lineaddy_(r_-1)flig_=�
&�u�flig_=�:lineaddy_(r_)=gc_%(ran_%):finder_%(ran_%)=finder_%(ran_%)+1:�:�t_=1�got_%:�finder_%(t_)<needed_% flag_=�
'"�:�flag_=�:ș"Hourglass_Off":�
'.j��addup:dummy_=�(-�):�t_=1�12:a_(t_)=-1:b_(t_)=-1:�:ș"Hourglass_On":�t_=1�12:�lineaddy_(t_)=1 ran_%=9
'`�lineaddy_(t_)=2 ran_%=99
'j�lineaddy_(t_)=3 ran_%=999
't�lineaddy_(t_)=4 ran_%=9999
'~ �lineaddy_(t_)=5 ran_%=99999
'�!�lineaddy_(t_)=6 ran_%=999999
'�[ș"Hourglass_Percentage",t_/10*100:�:flag_=0:a_=�(ran_%):b_=�(ran_%):�Anowts_%�Anoughts
'��addcarry_(1)�noaddcarry
'��addcarry_(2)�alladdcarry
'�
�t_>1�
'�*�e_=1�t_-1:�a_=a_(e_)�b_=b_(e_)flag_=1
'��
'�3�:�flag_=0:a_(t_)=a_:b_(t_)=b_:c_(t_)=a_+b_:�:�
(��Anoughts:n_=�(2):�n_=1�
(<Ev_$=�(a_):�w_=2��(v_$):rr_=�(4):�rr_=1�rr_=2�rr_=3��v_$,w_,1)="0"
(P�:a_=�(v_$)
(Z�:�n_=2�
(nEv_$=�(b_):�w_=2��(v_$):rr_=�(4):�rr_=1�rr_=2�rr_=3��v_$,w_,1)="0"
(��:b_=�(v_$)
(��:�
(�Q��noaddcarry:a_$=�(a_):b_$=�(b_):la_=�(a_$):lb_=�(b_$):z_=la_:�lb_<la_ z_=lb_
(�6�r_=z_�1�-1:�(�a_$,r_,1))+�(�b_$,r_,1))>9 flag_=1
(��:�
(�R��alladdcarry:a_$=�(a_):b_$=�(b_):la_=�(a_$):lb_=�(b_$):z_=la_:�lb_>la_ z_=lb_
(�7�r_=z_�1�-1:�(�a_$,r_,1))+�(�b_$,r_,1))<10 flag_=1
(��:�
)6D��subtract:WSub_%=�fWS("Subtract"):�subby_(1)�sI(WSub_%,"Take1")
)J!�subby_(2)�sI(WSub_%,"Take2")
)T!�subby_(3)�sI(WSub_%,"Take3")
)^!�subby_(4)�sI(WSub_%,"Take4")
)h!�subby_(5)�sI(WSub_%,"Take5")
)r!�subby_(6)�sI(WSub_%,"Take6")
)|(�subcarry_(1)�sI(WSub_%,"SubCarry1")
)�(�subcarry_(2)�sI(WSub_%,"SubCarry2")
)�(�subcarry_(3)�sI(WSub_%,"SubCarry3")
)��nowts_%�sI(WSub_%,"nowts")
)��
)�.ݤsubby_:c_=0:�m_=1�6:�subby_(m_)=�c_=c_+1
)� �:=c_
)�HݤTake1_:�subby_(1)��subby_=1 subby_(1)=�:�sI(WSub_%,"Take1"):�cz:=�
)�%�subby_(1)subby_(1)=��subby_(1)=�
)�
�cz:=�
)�HݤTake2_:�subby_(2)��subby_=1 subby_(2)=�:�sI(WSub_%,"Take2"):�cz:=�
*%�subby_(2)subby_(2)=��subby_(2)=�
*
�cz:=�
*HݤTake3_:�subby_(3)��subby_=1 subby_(3)=�:�sI(WSub_%,"Take3"):�cz:=�
*&%�subby_(3)subby_(3)=��subby_(3)=�
*0
�cz:=�
*:HݤTake4_:�subby_(4)��subby_=1 subby_(4)=�:�sI(WSub_%,"Take4"):�cz:=�
*D%�subby_(4)subby_(4)=��subby_(4)=�
*N
�cz:=�
*XHݤTake5_:�subby_(5)��subby_=1 subby_(5)=�:�sI(WSub_%,"Take5"):�cz:=�
*b%�subby_(5)subby_(5)=��subby_(5)=�
*l
�cz:=�
*vHݤTake6_:�subby_(6)��subby_=1 subby_(6)=�:�sI(WSub_%,"Take6"):�cz:=�
*�%�subby_(6)subby_(6)=��subby_(6)=�
*�
�cz:=�
*�gݤSubCarry1_:�subcarry_(1)�subcarry_(2)+subcarry_(3)=�subcarry_(1)=�:�sI(WSub_%,"SubCarry1"):�cz:=�
*���subcarry_(1)=�subcarry_(1)=�:�sI(WSub_%,"SubCarry1"):subcarry_(2)=�:�usI(WSub_%,"SubCarry2"):subcarry_(3)=�:�usI(WSub_%,"SubCarry3"):nowts_%=�:�usI(WSub_%,"nowts"):�cz:=�
*�gݤSubCarry2_:�subcarry_(2)�subcarry_(1)+subcarry_(3)=�subcarry_(2)=�:�sI(WSub_%,"SubCarry2"):�cz:=�
*���subcarry_(2)=�subcarry_(2)=�:�sI(WSub_%,"SubCarry2"):subcarry_(1)=�:�usI(WSub_%,"SubCarry1"):subcarry_(3)=�:�usI(WSub_%,"SubCarry3"):�cz:=�
*�gݤSubCarry3_:�subcarry_(3)�subcarry_(2)+subcarry_(3)=�subcarry_(3)=�:�sI(WSub_%,"SubCarry3"):�cz:=�
*А�subcarry_(3)=�subcarry_(3)=�:�sI(WSub_%,"SubCarry3"):subcarry_(1)=�:�usI(WSub_%,"SubCarry1"):subcarry_(2)=�:�usI(WSub_%,"SubCarry2"):�cz:=�
*�
*�;ݤnowts_:�subcarry_(1)nowts_%=�:�usI(WSub_%,"nowts"):=�
*�T�nowts_%=�nowts_%=�:�sI(WSub_%,"nowts")��nowts_%=�nowts_%=�:�usI(WSub_%,"nowts")
*�
�cz:=�
+/��cz:z_%=0:�g_%=1�6:�subby_(g_%)=�z_%=z_%+1
+��:�z_%=1�subby_(1)=�nowts_%=�:�usI(WSub_%,"nowts"):subcarry_(1)=�:�sI(WSub_%,"SubCarry1"):subcarry_(2)=�:�usI(WSub_%,"SubCarry2"):subcarry_(3)=�:�usI(WSub_%,"SubCarry3")
+ �
+H�ݤTakego_:�GetTitles:�whattakes:�takeup:last_=3:quit_=�:Clue_$="Sub1a":started_%=�:ș"Hourglass_Off":�usI(WSub_%,"Takego"):=�sums
+�\��whattakes:got_%=0:�r_=1�6:�subby_(r_)got_%=got_%+1:subbytype_(got_%)=r_:gc_%(got_%)=r_
+�;�:�got_%=1�r_=1�12:linesubby_(r_)=subbytype_(got_%):�:�
+�]�got_%=6�times(got_%,12):�r_=1�12:linesubby_(r_)=gc_%(finder_%(r_)):�:ș"Hourglass_Off":�
+��needed_%=12�got_%:�:�r_=1�12:finder_%(r_)=0:�:flag_=�:�r_=1�12:ș"Hourglass_Percentage",r_/12*100:�:flig_=�:ran_%=�(got_%):�r_>1�gc_%(ran_%)=linesubby_(r_-1)flig_=�
,$v�flig_=�:linesubby_(r_)=gc_%(ran_%):finder_%(ran_%)=finder_%(ran_%)+1:�:�t_=1�got_%:�finder_%(t_)<needed_% flag_=�
,B"�:�flag_=�:ș"Hourglass_Off":�
,`l��takeup:dummy_=�(-�):�t_=1�12:a_(t_)=-1:b_(t_)=-1:�:ș"Hourglass_On":�t_=1�12:�linesubby_(t_)=1 ran_%=9
,��linesubby_(t_)=2 ran_%=99
,��linesubby_(t_)=3 ran_%=999
,� �linesubby_(t_)=4 ran_%=9999
,�!�linesubby_(t_)=5 ran_%=99999
,�"�linesubby_(t_)=6 ran_%=999999
,�uș"Hourglass_Percentage",t_/10*100:�:flag_=0:�:a_=�(ran_%):�noughts:b_=�(ran_%):�a_>b_:�subcarry_(1)=��nosubcarry
,��subcarry_(2)=��allsubcarry
-
�t_>1�
-
*�e_=1�t_-1:�a_=a_(e_)�b_=b_(e_)flag_=1
-�
-3�:�flag_=0:a_(t_)=a_:b_(t_)=b_:c_(t_)=a_-b_:�:�
-Z@��nosubcarry:a_$=�(a_):b_$=�(b_):�r_=1��(a_$):�checkvall:�:�
-�M��allsubcarry:a_$=�(a_):b_$=�(b_):zz_=�(a_$):�r_=zz_�1�-1:�r_<>1�checkval
-��:�
-�3��checkval:�(�b_$,r_,1))<=�(�a_$,r_,1))flag_=1
-��
-�4��checkvall:�(�a_$,r_,1))<=�(�b_$,r_,1))flag_=1
-��
-���noughts:�nowts_%=��
-�Ev_$=�(a_):�w_=2��(v_$):rr_=�(4):�rr_=1�rr_=2�rr_=3��v_$,w_,1)="0"
.�:a_=�(v_$):�
.JG��multiply:WMult_%=�fWS("Multiply"):�multy_(1)�sI(WMult_%,"Multy1")
.^#�multy_(2)�sI(WMult_%,"Multy2")
.h#�multy_(3)�sI(WMult_%,"Multy3")
.r#�multy_(4)�sI(WMult_%,"Multy4")
.|#�multy_(5)�sI(WMult_%,"Multy5")
.�#�multy_(6)�sI(WMult_%,"Multy6")
.�!�mult_(1)�sI(WMult_%,"mult1")
.�!�mult_(2)�sI(WMult_%,"mult2")
.�!�mult_(3)�sI(WMult_%,"mult3")
.�!�mult_(4)�sI(WMult_%,"mult4")
.�!�mult_(5)�sI(WMult_%,"mult5")
.�!�mult_(6)�sI(WMult_%,"mult6")
.�!�mult_(7)�sI(WMult_%,"mult7")
.�!�mult_(8)�sI(WMult_%,"mult8")
.�!�mult_(9)�sI(WMult_%,"mult9")
.�"�Mnowts_%�sI(WMult_%,"Mnowts")
.��
/.ݤMnowts_:�Mnowts_%=�Mnowts_%=��Mnowts_%=�
/&�Mcz:=�
/:@��Mcz:�multy_(1)��multy_=1 Mnowts_%=�:�usI(WMult_%,"Mnowts")
/D�
/X.ݤmulty_:c_=0:�m_=1�6:�multy_(m_)=�c_=c_+1
/b �:=c_
/lGݤMulty1_:�multy_(1)��multy_=1 multy_(1)=�:�sI(WMult_%,"Multy1"):=�
/v%�multy_(1)multy_(1)=��multy_(1)=�
/��Mcz:=�
/�GݤMulty2_:�multy_(2)��multy_=1 multy_(2)=�:�sI(WMult_%,"Multy2"):=�
/�%�multy_(2)multy_(2)=��multy_(2)=�
/��Mcz:=�
/�GݤMulty3_:�multy_(3)��multy_=1 multy_(3)=�:�sI(WMult_%,"Multy3"):=�
/�%�multy_(3)multy_(3)=��multy_(3)=�
/��Mcz:=�
/�GݤMulty4_:�multy_(4)��multy_=1 multy_(4)=�:�sI(WMult_%,"Multy4"):=�
/�%�multy_(4)multy_(4)=��multy_(4)=�
/��Mcz:=�
/�GݤMulty5_:�multy_(5)��multy_=1 multy_(5)=�:�sI(WMult_%,"Multy5"):=�
/�%�multy_(5)multy_(5)=��multy_(5)=�
/��Mcz:=�
0GݤMulty6_:�multy_(6)��multy_=1 multy_(6)=�:�sI(WMult_%,"Multy6"):=�
0%�multy_(6)multy_(6)=��multy_(6)=�
0�Mcz:=�
0 ,ݤmult_:c_=0:�m_=1�9:�mult_(m_)=�c_=c_+1
0* �:=c_
04Aݤmult1_:�mult_(1)��mult_=1mult_(1)=�:�sI(WMult_%,"mult1"):=�
0>"�mult_(1)mult_(1)=��mult_(1)=�
0H=�
0RBݤmult2_:�mult_(2)��mult_=1 mult_(2)=�:�sI(WMult_%,"mult2"):=�
0\"�mult_(2)mult_(2)=��mult_(2)=�
0f=�
0pBݤmult3_:�mult_(3)��mult_=1 mult_(3)=�:�sI(WMult_%,"mult3"):=�
0z"�mult_(3)mult_(3)=��mult_(3)=�
0�=�
0�Bݤmult4_:�mult_(4)��mult_=1 mult_(4)=�:�sI(WMult_%,"mult4"):=�
0�"�mult_(4)mult_(4)=��mult_(4)=�
0�=�
0�Bݤmult5_:�mult_(5)��mult_=1 mult_(5)=�:�sI(WMult_%,"mult5"):=�
0�"�mult_(5)mult_(5)=��mult_(5)=�
0�=�
0�Bݤmult6_:�mult_(6)��mult_=1 mult_(6)=�:�sI(WMult_%,"mult6"):=�
0�"�mult_(6)mult_(6)=��mult_(6)=�
0�=�
0�Bݤmult7_:�mult_(7)��mult_=1 mult_(7)=�:�sI(WMult_%,"mult7"):=�
0�"�mult_(7)mult_(7)=��mult_(7)=�
0�=�
1Bݤmult8_:�mult_(8)��mult_=1 mult_(8)=�:�sI(WMult_%,"mult8"):=�
1"�mult_(8)mult_(8)=��mult_(8)=�
1=�
1$Bݤmult9_:�mult_(9)��mult_=1 mult_(9)=�:�sI(WMult_%,"mult9"):=�
1."�mult_(9)mult_(9)=��mult_(9)=�
18=�
1`�ݤMultygo_:�GetTitles:dummy_=�(-�):�whatmultlines:�whatmult:�calcmult:last_=3:quit_=�:Clue_$="Multy":started_%=�:�usI(WMult_%,"Multygo"):ș"Hourglass_Off":=�sums
1�`��whatmultlines:got_%=0:�r_=1�6:�multy_(r_)got_%=got_%+1:multytype_(got_%)=r_:gc_%(got_%)=r_
1�;�:�got_%=1�r_=1�12:linemulty_(r_)=multytype_(got_%):�:�
1�]�got_%=6�times(got_%,12):�r_=1�12:linemulty_(r_)=gc_%(finder_%(r_)):�:ș"Hourglass_Off":�
1Ĺneeded_%=12�got_%:ș"Hourglass_On":�:�r_=1�12:finder_%(r_)=0:�:flag_=�:�r_=1�12:ș"Hourglass_Percentage",r_/12*100:�:flig_=�:ran_%=�(got_%):�r_>1�gc_%(ran_%)=linemulty_(r_-1)flig_=�
2(v�flig_=�:linemulty_(r_)=gc_%(ran_%):finder_%(ran_%)=finder_%(ran_%)+1:�:�t_=1�got_%:�finder_%(t_)<needed_% flag_=�
2F"�:�flag_=�:ș"Hourglass_Off":�
2d<��calcmult:�mult_=1��multy_=1�multy_(1)many_=9�many_=12
2xAș"Hourglass_On":�t_=1�many_:�linemulty_(t_)=1 ran_%=9:rn_%=0
2�%�linemulty_(t_)=2 ran_%=99:rn_%=9
2�'�linemulty_(t_)=3 ran_%=999:rn_%=99
2�)�linemulty_(t_)=4 ran_%=9999:rn_%=999
2�+�linemulty_(t_)=5 ran_%=99999:rn_%=9999
2�-�linemulty_(t_)=6 ran_%=999999:rn_%=99999
2�Zș"Hourglass_Percentage",t_/12*100:�:flag_=0:�:a_=�(ran_%):�a_>rn_%:b_=Nb_%(t_):�t_>1�
2�*�e_=1�t_-1:�a_=a_(e_)�b_=b_(e_)flag_=1
2��
3�:�Mnowts_%�Mnoughts
3O�flag_=0:a_(t_)=a_:b_(t_)=b_:c_(t_)=a_*b_:�:started_%=�:ș"Hourglass_Off":�
3JP��Mnoughts:v_$=�(a_):�w_=2��(v_$):rr_=�(4):�rr_=1�rr_=2�rr_=3��v_$,w_,1)="0"
3^�:a_=�(v_$):�
3rK��onemult:�r_%=1�9:�mult_(r_%)=���tr_%=1�12:Nb_%(tr_%)=�(mult_$(r_%)):�
3|�:�
3�`��whatmult:�r_=1�12:gc_%(r_)=0:�:got_%=0:�r_%=1�9:�mult_(r_%)=�got_%=got_%+1:gc_%(got_%)=r_%
3��:�got_%=1�onemult:�
3�J�got_%>5�times(got_%,12):�r_=1�12:Nb_%(r_)=�(mult_$(finder_%(r_))):�:�
3��ș"Hourglass_On":needed_%=12�got_%:�:flag_=�:�r_=1�12:finder_%(r_)=0:�:�r_=1�12:ș"Hourglass_Percentage",r_/12*100:ran_%=�(got_%):Nb_%(r_)=�(mult_$(gc_%(ran_%))):finder_%(ran_%)=finder_%(ran_%)+1:�
4.�t_=1�got_%:�finder_%(t_)<needed_% flag_=�
4&"�:�flag_=�:ș"Hourglass_Off":�
4b>��Divide:WDiv_%=�fWS("Divide"):�dvy_(1)�sI(WDiv_%,"Divy1")
4��dvy_(2)�sI(WDiv_%,"Divy2")
4��dvy_(3)�sI(WDiv_%,"Divy3")
4��dvy_(4)�sI(WDiv_%,"Divy4")
4��dvy_(5)�sI(WDiv_%,"Divy5")
4��dv_(1)�sI(WDiv_%,"dv1")
4��dv_(2)�sI(WDiv_%,"dv2")
4��dv_(3)�sI(WDiv_%,"dv3")
4��dv_(4)�sI(WDiv_%,"dv4")
4��dv_(5)�sI(WDiv_%,"dv5")
4��dv_(6)�sI(WDiv_%,"dv6")
4��dv_(7)�sI(WDiv_%,"dv7")
4��dv_(8)�sI(WDiv_%,"dv8")
4��dv_(9)�sI(WDiv_%,"dv9")
5!�Dnowts_%�sI(WDiv_%,"Dnowts")
5�remainders:�
54.ݤDnowts_:�Dnowts_%=�Dnowts_%=��Dnowts_%=�
5>�Dcz:=�
5R:��Dcz:�dvy_(1)��dvy=1 Dnowts_%=�:�usI(WDiv_%,"Dnowts")
5\�
5p_��remainders:�Remainder_$="No"�sI(WDiv_%,"Drem1"):�usI(WDiv_%,"Drem2"):�usI(WDiv_%,"Drem3")
5�S�Remainder_$="All"�sI(WDiv_%,"Drem2"):�usI(WDiv_%,"Drem1"):�usI(WDiv_%,"Drem3")
5�S�Remainder_$="Ran"�sI(WDiv_%,"Drem3"):�usI(WDiv_%,"Drem1"):�usI(WDiv_%,"Drem2")
5��
5�,ݤDrem1_:Remainder_$="No":�remainders:=�
5�-ݤDrem2_:Remainder_$="All":�remainders:=�
5�-ݤDrem3_:Remainder_$="Ran":�remainders:=�
5�)ݤdvy:c_=0:�h_=1�5:�dvy_(h_)=�c_=c_+1
5� �:=c_
5�=ݤDivy1_:�dvy_(1)��dvy=1 dvy_(1)=�:�sI(WDiv_%,"Divy1"):=�
5��dvy_(1)dvy_(1)=��dvy_(1)=�
6�Dcz:=�
6=ݤDivy2_:�dvy_(2)��dvy=1 dvy_(2)=�:�sI(WDiv_%,"Divy2"):=�
6$�dvy_(2)dvy_(2)=��dvy_(2)=�
6.�Dcz:=�
68=ݤDivy3_:�dvy_(3)��dvy=1 dvy_(3)=�:�sI(WDiv_%,"Divy3"):=�
6L�dvy_(3)dvy_(3)=��dvy_(3)=�
6V�Dcz:=�
6`=ݤDivy4_:�dvy_(4)��dvy=1 dvy_(4)=�:�sI(WDiv_%,"Divy4"):=�
6t�dvy_(4)dvy_(4)=��dvy_(4)=�
6~�Dcz:=�
6�=ݤDivy5_:�dvy_(5)��dvy=1 dvy_(5)=�:�sI(WDiv_%,"Divy5"):=�
6��dvy_(5)dvy_(5)=��dvy_(5)=�
6��Dcz:=�
6�'ݤdv:c_=0:�h_=1�9:�dv_(h_)=�c_=c_+1
6� �:=c_
6�6ݤdv1_:�dv_(1)��dv=1 dv_(1)=�:�sI(WDiv_%,"dv1"):=�
6��dv_(1)dv_(1)=��dv_(1)=�
6�=�
6�6ݤdv2_:�dv_(2)��dv=1 dv_(2)=�:�sI(WDiv_%,"dv2"):=�
7 �dv_(2)dv_(2)=��dv_(2)=�
7
=�
76ݤdv3_:�dv_(3)��dv=1 dv_(3)=�:�sI(WDiv_%,"dv3"):=�
7(�dv_(3)dv_(3)=��dv_(3)=�
72=�
7<6ݤdv4_:�dv_(4)��dv=1 dv_(4)=�:�sI(WDiv_%,"dv4"):=�
7P�dv_(4)dv_(4)=��dv_(4)=�
7Z=�
7d6ݤdv5_:�dv_(5)��dv=1 dv_(5)=�:�sI(WDiv_%,"dv5"):=�
7x�dv_(5)dv_(5)=��dv_(5)=�
7�=�
7�6ݤdv6_:�dv_(6)��dv=1 dv_(6)=�:�sI(WDiv_%,"dv6"):=�
7��dv_(6)dv_(6)=��dv_(6)=�
7�=�
7�6ݤdv7_:�dv_(7)��dv=1 dv_(7)=�:�sI(WDiv_%,"dv7"):=�
7��dv_(7)dv_(7)=��dv_(7)=�
7�=�
7�6ݤdv8_:�dv_(8)��dv=1 dv_(8)=�:�sI(WDiv_%,"dv8"):=�
7��dv_(8)dv_(8)=��dv_(8)=�
7�=�
86ݤdv9_:�dv_(9)��dv=1 dv_(9)=�:�sI(WDiv_%,"dv9"):=�
8�dv_(9)dv_(9)=��dv_(9)=�
8"=�
8J�ݤDivyGo_:�GetTitles:dummy_=�(-�):�whatdivline:�whatdivy:�calcdivy:last_=3:quit_=�:Clue_$="Divy":started_%=�:ș"Hourglass_Off":�usI(WDiv_%,"DivyGo"):=�sums
8|\ݤsums:�gWx("Choices")�n_=�window("GrafIt"):n_=�window("Choices"):=��=�window("GrafIt")
8�
8�D��onedvy:�r_%=1�9:�dv_(r_%)��tr_%=1�12:Nb_%(tr_%)=�(dv_$(r_%)):�
8��:�
8�^��whatdivy:�r_=1�12:gc_%(r_)=0:�:got_%=0:�r_%=1�9:�dv_(r_%)=�got_%=got_%+1:gc_%(got_%)=r_%
8��:�got_%=1�onedvy:�
8�H�got_%>5�times(got_%,12):�r_=1�12:Nb_%(r_)=�(dv_$(finder_%(r_))):�:�
8�ș"Hourglass_On":needed_%=12�got_%:�:�r_=1�12:finder_%(r_)=0:�:flag_=�:�r_=1�12:ș"Hourglass_Percentage",r_/12*100:�:flig_=�:ran_%=�(got_%):Nb_%=�(dv_$(gc_%(ran_%))):�r_>1�
9�Nb_%=Nb_%(r_-1)flig_=�
9&{�:�flig_=�:Nb_%(r_)=�(dv_$(gc_%(ran_%))):finder_%(ran_%)=finder_%(ran_%)+1:�:�t_=1�got_%:�finder_%(t_)<needed_% flag_=�
9X"�:�flag_=�:ș"Hourglass_Off":�
9lG��whatdivline:got_%=0:�r_=1�5:�dvy_(r_)got_%=got_%+1:gc_%(got_%)=r_
9�4�:�got_%=1��r_=1�12:linedvy_(r_)=gc_%(got_%):�:�
9�]needed_%=12�got_%:�:flag_=�:�r_=1�12:�:flig_=�:ran_%=�(got_%):linedvy_=gc_%(ran_%):�r_>1�
9�#�linedvy_=linedvy_(r_-1)flig_=�
9�x�:�flig_=�:linedvy_(r_)=gc_%(ran_%):finder_%(ran_%)=finder_%(ran_%)+1:�:�tr_=1�got_%:�finder_%(tr_)<needed_% flag_=�
:�:�flag_=�:�
:*P��Dnoughts:v_$=�(a_):�w_=2��(v_$):rr_=�(4):�rr_=1�rr_=2�rr_=3��v_$,w_,1)="0"
:>�:a_=�(v_$):�
:RJ��calcdivy:many_=12:tr_=�:�dvy=1��dv=1�dvy_(1)�Remainder_$="No" tr_=�
:f,�tr_�dv_(7)�tr_�dv_(8)�tr_�dv_(9)many_=9
:p@ș"Hourglass_On":�t_=1�many_:�linedvy_(t_)=1 ran_%=99:rn_%=9
:�%�linedvy_(t_)=2 ran_%=999:rn_%=99
:�'�linedvy_(t_)=3 ran_%=9999:rn_%=999
:�)�linedvy_(t_)=4 ran_%=99999:rn_%=9999
:�+�linedvy_(t_)=5 ran_%=999999:rn_%=99999
:�Cș"Hourglass_Percentage",t_/12*100:�:flag_=0:�Remainder_$="No"�
:�0�:a_=�(ran_%):b_=Nb_%(t_):�Dnowts_%�Dnoughts
:��a_�b_=0�a_>rn_%
:��:�Remainder_$="All"�remp
:��Remainder_$="Ran"�
;randy_=�(2):�randy_=1�
;0�:a_=�(ran_%):b_=Nb_%(t_):�Dnowts_%�Dnoughts
;.�a_�b_=0�a_>rn_%
;8�:�randy_=2�remp
;L�:�t_>1�
;j*�e_=1�t_-1:�a_=a_(e_)�b_=b_(e_)flag_=1
;t�
;~`�:�flag_=0:a_(t_)=a_:b_(t_)=b_:�a_�b_<>0 c_(t_)=a_�b_:rem_(t_)=a_�b_�c_(t_)=a_/b_:rem_(t_)=0
;�%�:started_%=�:ș"Hourglass_Off":�
;�A��remp:�:remflag=�:a_=�(ran_%):b_=Nb_%(t_):�Dnowts_%�Dnoughts
;�Gc_=a_/b_:poin_=0:c_$=�(c_):�cc_=1��(c_$):�c_$,cc_,1)="." poin_=cc_
<