(* ::Package:: *) (* Separate the Module name from the Module[] *) (*KLUDGE,needs to be generalized*)qCanvasPOP0=ToString[Hold[DynamicModule[{pn,proc,err,level0,max,mult,diag0,answer,myEnabled,A1,answerStudent,A2,a1,a2,level1,stateH=False,state=False,vars,xxx,yyy,text,sol,prev,again,variation,variation2,hint,solution,procs,first=True,options,io,answers,canvas,canvas0,firstCanvas=True,v,choices},Panel[Column[{If[diag00==0||diag00==2,Panel[Row[{OpenerView[{Button["Try Again",(*AppendTo[level1[[3]],prev];*)first=ConstantArray[True,mult0]; level1=again;firstCanvas=True; {canvas,vars,sol,choices}=ReleaseHold[ToExpression[StringReplace[variation,{"canvasZ"->canvas0,"fghjkl"->ToString[pn]}]]]; Table[A2[[i]]=ToString[bigNumber];A1[[i]]=Null; myEnabled[[i]]=True,{i,1,mult0}];],""}],OpenerView[{Button["Hint",stateH=Not[stateH],Method->"Queued"],Dynamic[If[stateH==True,ReleaseHold[ToExpression[StringReplace[hint,{"ertyuiop"->ToString[vars,InputForm],ToUpperCase["ertyuiop"]->ToString[options,InputForm]}]]]]]},Dynamic[stateH]],OpenerView[{Button["Solution",state=Not[state],Method->"Queued"],Dynamic[If[state==True,ReleaseHold[ToExpression[StringReplace[solution,{"ertyuiop"->ToString[vars,InputForm],ToUpperCase["ertyuiop"]->ToString[options,InputForm]}]]]]]},Dynamic[state]]}]],""], Column[{(answers=Table[With[{i=i},Column[{Dynamic[A2[[i]]=If[TrueQ[A1[[i]]==Null],bigNumber,A1[[i]]]; a2=A2[[i]]; If[a2===bigNumber,"",myEnabled[[i]]=False; (*errNo set to the first for all*)""<> Which[ err[[i]][(sol)[[i]],a2,A1[[i]]]==True&&a2=!=bigNumber,(*a2=!=ToString[bigNumber] to Avoid ToExpression*)(*0 practice Module no record,1 test Module record,2 practice module record*)Which[diag00==0&&first[[i]]==True,"\!\(\* StyleBox[\"Correct\",\nFontColor->RGBColor[1, 0, 0]]\)",diag00==1,If[first[[i]]==True,io[pn,i,True,A1[[i]],diag00]]; first[[i]]=False;"",diag00==2,If[first[[i]]==True,io[pn,i,True,A1[[i]],diag00]]; first[[i]]=False; "\!\(\* StyleBox[\"Correct\",\nFontColor->RGBColor[1, 0, 0]]\)",True,""], err[[i]][(sol)[[i]],a2,A1[[i]]]==False&&a2=!=bigNumber,Which[diag00==0&&first[[i]]==True,"\!\(\* StyleBox[\"Incorrect\",\nFontColor->RGBColor[1, 0, 0]]\)",diag00==1,If[first[[i]]==True,io[pn,i,False,A1[[i]],diag00]]; first[[i]]=False;"",diag00==2,If[first[[i]]==True,io[pn,i,False,A1[[i]],diag00]]; first[[i]]=False; "\!\(\* StyleBox[\"Incorrect\",\nFontColor->RGBColor[1, 0, 0]]\)",True,""],True,"ERROR: WRONG ANSWER MATCHING\n"<>ToString/@sol]]] (*Dynamic has to be outside PopupMenue*) ,Dynamic@PopupMenu[Dynamic@A1[[i]],choices[[i]],If[TrueQ[A1[[i]]==Null],Enabled->True,Enabled->False]]}] (*inputsize has to be written over here*)],{i,1,mult0}]); Dynamic@( (*this has to be here to vary canvas varittions*) If[firstCanvas==True,ReleaseHold[ToExpression[ReleaseHold[ToExpression[canvas]]]];firstCanvas=False];ToExpression["canvasFunc"<>ToString[pn]]@{answers,options}) (*Dynamic@ReleaseHold[ToExpression[canvas]]*) }] (*ReleaseHold needs to be controlled or loops 20 times a second*) }]], (*{{level,Dynamic[level1[[1]]]},Range[max],ControlType\[Rule]PopupMenu},*)(*TrackedSymbols\[Rule]Manipulate,(*SaveDefinitions\[Rule]True,*)AppearanceElements\[Rule]None,SynchronousUpdating\[Rule]False,ContinuousAction\[Rule]False,*)Initialization:>( stateH=False;state=False; libs;(*add the needed functions and constants*)(*these are the parameters that used to be passed as argument list*)(*FIXME:mult0 has to be written over by replacement and cannot be initialized here*)pn=pn0;proc=proc0; err=ToExpression[err0];level0=level00;max=max0; mult=mult0;diag0=diag00; io=ToExpression[IO00]; SetOptions[EvaluationNotebook[],DynamicEvaluationTimeout->100]; SetOptions[EvaluationNotebook[],PrivateNotebookOptions->{"PluginToolbarEnabled"->False},DockedCells->Cell[BoxData[ToBoxes[Row[{Column[{Image[logo,ImageSize->125],"Prof. Madani\nHomework 1,Sept 2015"},ItemSize->{20,Automatic}],PopupMenu[Dynamic[CurrentValue[EvaluationNotebook[],"Magnification"]],Range[0.5,3,0.5]]},Spacer[5]]]],"DockedCell"]]; (*SetOptions[EvaluationNotebook[],PrivateNotebookOptions\[Rule]{"PluginToolbarEnabled"\[Rule]False},DockedCells\[Rule]Cell[BoxData[{ToBoxes[logo](*,ToBoxes[PopupMenu[Dynamic[CurrentValue[EvaluationNotebook[],"Magnification"]],Range[0.5,3,0.5]]]*)}],"DockedCell"]]; SetOptions[EvaluationNotebook[],DockedCells\[Rule]Cell[BoxData[ToBoxes[PopupMenu[Dynamic[CurrentValue[EvaluationNotebook[],"Magnification"]],Range[0.5,3,0.5]]]],"DockedCell"]];*) (*changing of the DynamicUpdateInterval did not alter anythin*)(*SetOptions[EvaluationNotebook[],"DynamicUpdateInterval"\[Rule]0.2];*)(*the rest here sets up the math for the question*)answer=ConstantArray[" ",mult]; A1=ConstantArray["",mult]; A2=ConstantArray[ToString[bigNumber],mult]; answerStudent=ConstantArray[" ",mult]; myEnabled=ConstantArray[True,mult]; first=ConstantArray[True,mult]; Table[A2[[i]]=ToString[bigNumber];A1[[i]]=Null; myEnabled[[i]]=True,{i,1,mult}]; If[mult>1,options=qRandList[{CharacterRange["a","z"][[1;;mult]],CharacterRange["A","Z"][[1;;mult]]}],options={" "}]; {again,variation,hint,solution,canvas0}=proc; again=ToExpression[again]; level1=again; {canvas,vars,sol,choices}=ReleaseHold[ToExpression[StringReplace[variation,{"canvasZ"->canvas0,"fghjkl"->ToString[pn]}]]]; firstCanvas=True;)]],InputForm]<>"\n"; qCanvas0=ToString[Hold[DynamicModule[{pn,proc,err,level0,max,mult,diag0,answer,myEnabled,A1,answerStudent,A2,a1,a2,level1,stateH=False,state=False,vars,xxx,yyy,text,sol,prev,again,variation,variation2,hint,solution,procs,first=True,options,io,answers,canvas,canvas0,firstCanvas=True},Panel[Column[{If[diag00==0||diag00==2,Panel[Row[{OpenerView[{Button["Try Again",(*AppendTo[level1[[3]],prev];*)first=ConstantArray[True,mult0]; level1=again;firstCanvas=True; {canvas,vars,sol}=ReleaseHold[ToExpression[StringReplace[variation,{"canvasZ"->canvas0,"fghjkl"->ToString[pn]}]]]; Table[A2[[i]]=ToString[bigNumber];A1[[i]]=Null; myEnabled[[i]]=True,{i,1,mult0}];],""}],OpenerView[{Button["Hint",stateH=Not[stateH],Method->"Queued"],Dynamic[If[stateH==True,ReleaseHold[ToExpression[StringReplace[hint,{"ertyuiop"->ToString[vars,InputForm],ToUpperCase["ertyuiop"]->ToString[options,InputForm]}]]]]]},Dynamic[stateH]],OpenerView[{Button["Solution",state=Not[state],Method->"Queued"],Dynamic[If[state==True,ReleaseHold[ToExpression[StringReplace[solution,{"ertyuiop"->ToString[vars,InputForm],ToUpperCase["ertyuiop"]->ToString[options,InputForm]}]]]]]},Dynamic[state]]}]],""], Column[{(answers=Table[With[{i=i},Column[{Dynamic[A2[[i]]=If[TrueQ[A1[[i]]==Null],ToString[bigNumber],A1[[i]]]; (*FIXME:need a much better parsing and filtering,problem is with 6.6 and.as dot in a sentence*)If[Length[StringSplit[StringReplace[A2[[i]],{","->" ",";"->" ",":"->" ","."->" "}]]]==1,a2=StringSplit[StringReplace[A2[[i]],{","->" ",";"->" ",":"->" ","."->" "}]][[1]],a2=StringSplit[StringReplace[A2[[i]],{","->" ",";"->" ",":"->" ","."->" "}]]]; If[ToExpression[a2]===bigNumber,"",myEnabled[[i]]=False; (*errNo set to the first for all*)""<> Which[ (*sol is not flattened*) err[[i]][(sol)[[i]],a2,A1[[i]]]==True&&ToExpression[a2]=!=bigNumber,(*a2=!=ToString[bigNumber] to Avoid ToExpression*)(*0 practice Module no record,1 test Module record,2 practice module record*)Which[diag00==0&&first[[i]]==True,"\!\(\* StyleBox[\"Correct\",\nFontColor->RGBColor[1, 0, 0]]\)",diag00==1,If[first[[i]]==True,io[pn,i,True,A1[[i]],diag00]]; first[[i]]=False;"",diag00==2,If[first[[i]]==True,io[pn,i,True,A1[[i]],diag00]]; first[[i]]=False; "\!\(\* StyleBox[\"Correct\",\nFontColor->RGBColor[1, 0, 0]]\)",True,""], (*sol is not flattened*) err[[i]][(sol)[[i]],a2,A1[[i]]]==False&&ToExpression[a2]=!=bigNumber,Which[diag00==0&&first[[i]]==True,"\!\(\* StyleBox[\"Incorrect\",\nFontColor->RGBColor[1, 0, 0]]\)",diag00==1,If[first[[i]]==True,io[pn,i,False,A1[[i]],diag00]]; first[[i]]=False;"",diag00==2,If[first[[i]]==True,io[pn,i,False,A1[[i]],diag00]]; first[[i]]=False; "\!\(\* StyleBox[\"Incorrect\",\nFontColor->RGBColor[1, 0, 0]]\)",True,""],True,"ERROR: WRONG ANSWER MATCHING\n"<>ToString/@sol]]] ,Deploy@InputField[Dynamic[A1[[i]]],String,Enabled->Dynamic[myEnabled[[i]]],FieldSize->inputsize0[[i]],FieldHint->" ?",FieldHintStyle->{Red}]}] (*inputsize has to be written over here*)],{i,1,mult0}]);(*Dynamic@(If[firstCanvas\[Equal]True,ReleaseHold[ToExpression[StringReplace[canvas,{"mmm"\[Rule]"canvasFUNC"<>ToString[pn]}]]]; firstCanvas=False];(ToExpression@("canvasFUNC"<>ToString[pn]))@answers)}] (*ReleaseHold needs to be controlled or loops 20 times a second*)*) (*Dynamic@(If[firstCanvas\[Equal]True,firstCanvas=False;ReleaseHold[ToExpression[ReleaseHold[ToExpression[canvas]]]],"hi"]),*) Dynamic@( (*this has to be here to vary canvas varittions*) If[firstCanvas==True,ReleaseHold[ToExpression[ReleaseHold[ToExpression[canvas]]]];firstCanvas=False];ToExpression["canvasFunc"<>ToString[pn]]@{answers,options}) (*Dynamic@ReleaseHold[ToExpression[canvas]]*) }] (*ReleaseHold needs to be controlled or loops 20 times a second*) }]], (*{{level,Dynamic[level1[[1]]]},Range[max],ControlType\[Rule]PopupMenu},*)(*TrackedSymbols\[Rule]Manipulate,(*SaveDefinitions\[Rule]True,*)AppearanceElements\[Rule]None,SynchronousUpdating\[Rule]False,ContinuousAction\[Rule]False,*)Initialization:>( stateH=False;state=False; libs;(*add the needed functions and constants*)(*these are the parameters that used to be passed as argument list*)(*FIXME:mult0 has to be written over by replacement and cannot be initialized here*)pn=pn0;proc=proc0; err=ToExpression[err0];level0=level00;max=max0; mult=mult0;diag0=diag00; io=ToExpression[IO00]; SetOptions[EvaluationNotebook[],DynamicEvaluationTimeout->100]; SetOptions[EvaluationNotebook[],PrivateNotebookOptions->{"PluginToolbarEnabled"->False},DockedCells->Cell[BoxData[ToBoxes[Row[{Column[{Image[logo,ImageSize->125],"Prof. Madani\nHomework 1,Sept 2015"},ItemSize->{20,Automatic}],PopupMenu[Dynamic[CurrentValue[EvaluationNotebook[],"Magnification"]],Range[0.5,3,0.5]]},Spacer[5]]]],"DockedCell"]]; (*SetOptions[EvaluationNotebook[],DockedCells\[Rule]Cell[BoxData[ToBoxes[PopupMenu[Dynamic[CurrentValue[EvaluationNotebook[],"Magnification"]],Range[0.5,3,0.5]]]],"DockedCell"]];*) (*changing of the DynamicUpdateInterval did not alter anythin*)(*SetOptions[EvaluationNotebook[],"DynamicUpdateInterval"\[Rule]0.2];*)(*the rest here sets up the math for the question*)answer=ConstantArray[" ",mult]; A1=ConstantArray["",mult]; A2=ConstantArray[ToString[bigNumber],mult]; answerStudent=ConstantArray[" ",mult]; myEnabled=ConstantArray[True,mult]; first=ConstantArray[True,mult]; Table[A2[[i]]=ToString[bigNumber];A1[[i]]=Null; myEnabled[[i]]=True,{i,1,mult}]; If[mult>1,options=qRandList[{CharacterRange["a","z"][[1;;mult]],CharacterRange["A","Z"][[1;;mult]]}],options={" "}]; {again,variation,hint,solution,canvas0}=proc; again=ToExpression[again]; level1=again; {canvas,vars,sol}=ReleaseHold[ToExpression[StringReplace[variation,{"canvasZ"->canvas0,"fghjkl"->ToString[pn]}]]]; firstCanvas=True;)]],InputForm]<>"\n"; (*KLUDGE,needs to be generalized*)qCanvasPOPINDUCTION=ToString[Hold[DynamicModule[{pn,proc,err,level0,max,mult,diag0,answer,myEnabled,A1,answerStudent,A2,a1,a2,level1,stateH=False,state=False,vars,xxx,yyy,text,sol,prev,again,variation,variation2,hint,solution,procs,first=True,options,io,answers,canvas,canvas0,firstCanvas=True,v},Panel[Column[{If[diag00==0||diag00==2,Panel[Row[{OpenerView[{Button["Try Again",(*AppendTo[level1[[3]],prev];*)first=ConstantArray[True,mult0]; level1=again;firstCanvas=True; v=({canvas,vars,sol}=ReleaseHold[ToExpression[StringReplace[variation,{"canvasZ"->canvas0,"fghjkl"->ToString[pn]}]]])[[2]]; Table[A2[[i]]=ToString[bigNumber];A1[[i]]=Null; myEnabled[[i]]=True,{i,1,mult0}];],""}],OpenerView[{Button["Hint",stateH=Not[stateH],Method->"Queued"],Dynamic[If[stateH==True,ReleaseHold[ToExpression[StringReplace[hint,{"ertyuiop"->ToString[vars,InputForm],ToUpperCase["ertyuiop"]->ToString[options,InputForm]}]]]]]},Dynamic[stateH]],OpenerView[{Button["Solution",state=Not[state],Method->"Queued"],Dynamic[If[state==True,ReleaseHold[ToExpression[StringReplace[solution,{"ertyuiop"->ToString[vars,InputForm],ToUpperCase["ertyuiop"]->ToString[options,InputForm]}]]]]]},Dynamic[state]]}]],""], Column[{(answers=Table[With[{i=i},Column[{Dynamic[A2[[i]]=If[TrueQ[A1[[i]]==Null],bigNumber,A1[[i]]]; a2=A2[[i]]; If[a2===bigNumber,"",myEnabled[[i]]=False; (*errNo set to the first for all*)""<> Which[ err[[i]][(Flatten@sol)[[i]],a2,A1[[i]]]==True&&a2=!=bigNumber,(*a2=!=ToString[bigNumber] to Avoid ToExpression*)(*0 practice Module no record,1 test Module record,2 practice module record*)Which[diag00==0&&first[[i]]==True,"\!\(\* StyleBox[\"Correct\",\nFontColor->RGBColor[1, 0, 0]]\)",diag00==1,If[first[[i]]==True,io[pn,i,True,A1[[i]],diag00]]; first[[i]]=False;"",diag00==2,If[first[[i]]==True,io[pn,i,True,A1[[i]],diag00]]; first[[i]]=False; "\!\(\* StyleBox[\"Correct\",\nFontColor->RGBColor[1, 0, 0]]\)",True,""], err[[i]][(Flatten@sol)[[i]],a2,A1[[i]]]==False&&a2=!=bigNumber,Which[diag00==0&&first[[i]]==True,"\!\(\* StyleBox[\"Incorrect\",\nFontColor->RGBColor[1, 0, 0]]\)",diag00==1,If[first[[i]]==True,io[pn,i,False,A1[[i]],diag00]]; first[[i]]=False;"",diag00==2,If[first[[i]]==True,io[pn,i,False,A1[[i]],diag00]]; first[[i]]=False; "\!\(\* StyleBox[\"Incorrect\",\nFontColor->RGBColor[1, 0, 0]]\)",True,""],True,"ERROR: WRONG ANSWER MATCHING\n"<>ToString/@sol]]] (*Dynamic has to be outside PopupMenue*) ,Dynamic@PopupMenu[Dynamic@A1[[i]],(((ToExpression@(v))[[1]])[[3]]),If[TrueQ[A1[[i]]==Null],Enabled->True,Enabled->False]]}] (*inputsize has to be written over here*)],{i,1,mult0}]); Dynamic@( (*this has to be here to vary canvas varittions*) If[firstCanvas==True,ReleaseHold[ToExpression[ReleaseHold[ToExpression[canvas]]]];firstCanvas=False];ToExpression["canvasFunc"<>ToString[pn]]@{answers,options}) (*Dynamic@ReleaseHold[ToExpression[canvas]]*) }] (*ReleaseHold needs to be controlled or loops 20 times a second*) }]], (*{{level,Dynamic[level1[[1]]]},Range[max],ControlType\[Rule]PopupMenu},*)(*TrackedSymbols\[Rule]Manipulate,(*SaveDefinitions\[Rule]True,*)AppearanceElements\[Rule]None,SynchronousUpdating\[Rule]False,ContinuousAction\[Rule]False,*)Initialization:>( stateH=False;state=False; libs;(*add the needed functions and constants*)(*these are the parameters that used to be passed as argument list*)(*FIXME:mult0 has to be written over by replacement and cannot be initialized here*)pn=pn0;proc=proc0; err=ToExpression[err0];level0=level00;max=max0; mult=mult0;diag0=diag00; io=ToExpression[IO00]; SetOptions[EvaluationNotebook[],DynamicEvaluationTimeout->100]; SetOptions[EvaluationNotebook[],PrivateNotebookOptions->{"PluginToolbarEnabled"->False},DockedCells->Cell[BoxData[ToBoxes[Row[{Column[{Image[logo,ImageSize->100],"Prof. Madani","Sept 2015"},ItemSize->{20,Automatic}],PopupMenu[Dynamic[CurrentValue[EvaluationNotebook[],"Magnification"]],Range[0.5,3,0.5]]},Spacer[5]]]],"DockedCell"]]; (*SetOptions[EvaluationNotebook[],PrivateNotebookOptions\[Rule]{"PluginToolbarEnabled"\[Rule]False},DockedCells\[Rule]Cell[BoxData[{ToBoxes[logo](*,ToBoxes[PopupMenu[Dynamic[CurrentValue[EvaluationNotebook[],"Magnification"]],Range[0.5,3,0.5]]]*)}],"DockedCell"]]; SetOptions[EvaluationNotebook[],DockedCells\[Rule]Cell[BoxData[ToBoxes[PopupMenu[Dynamic[CurrentValue[EvaluationNotebook[],"Magnification"]],Range[0.5,3,0.5]]]],"DockedCell"]];*) (*changing of the DynamicUpdateInterval did not alter anythin*)(*SetOptions[EvaluationNotebook[],"DynamicUpdateInterval"\[Rule]0.2];*)(*the rest here sets up the math for the question*)answer=ConstantArray[" ",mult]; A1=ConstantArray["",mult]; A2=ConstantArray[ToString[bigNumber],mult]; answerStudent=ConstantArray[" ",mult]; myEnabled=ConstantArray[True,mult]; first=ConstantArray[True,mult]; Table[A2[[i]]=ToString[bigNumber];A1[[i]]=Null; myEnabled[[i]]=True,{i,1,mult}]; If[mult>1,options=qRandList[{CharacterRange["a","z"][[1;;mult]],CharacterRange["A","Z"][[1;;mult]]}],options={" "}]; {again,variation,hint,solution,canvas0}=proc; again=ToExpression[again]; level1=again; {canvas,vars,sol}=ReleaseHold[ToExpression[StringReplace[variation,{"canvasZ"->canvas0,"fghjkl"->ToString[pn]}]]]; v=({canvas,vars,sol}=ReleaseHold[ToExpression[StringReplace[variation,{"canvasZ"->canvas0,"fghjkl"->ToString[pn]}]]])[[2]]; firstCanvas=True;)]],InputForm]<>"\n"; (*KLUDGE, needs to be generalized *) qpanelMultiTABLE=ToString[Hold[DynamicModule[{pn,proc,err,level0,max,mult,diag0,answer,myEnabled,A1,answerStudent,A2,a1,a2,level1,stateH=False,state=False,vars,xxx,yyy,text,sol,prev,again, variation,variation2,hint, solution, procs,first=True,options,io,answers}, Panel[Column[{ If[diag00==0 ||diag00==2,Panel[Row[{OpenerView[{Button["Try Again", (*AppendTo[level1[[3]],prev];*) first=ConstantArray[True,mult0+9]; level1=again; {text,vars,sol}=ReleaseHold[ToExpression[StringReplace[variation,{"fghjkl"->ToString[pn]}]]];Table[A2[[i]]=ToString[bigNumber];A1[[i]]=Null;myEnabled[[i]]=True,{i,1,mult0+9}];], ""}], OpenerView[{Button["Hint",stateH=Not[stateH],Method->"Queued"],Dynamic[If[stateH==True,ReleaseHold[ToExpression[StringReplace[hint,{"ertyuiop"->ToString[vars,InputForm],ToUpperCase["ertyuiop"]->ToString[options,InputForm]}]]]]]},Dynamic[stateH]], OpenerView[{Button["Solution",state=Not[state],Method->"Queued"],Dynamic[If[state==True,ReleaseHold[ToExpression[StringReplace[solution,{"ertyuiop"->ToString[vars,InputForm],ToUpperCase["ertyuiop"]->ToString[options,InputForm]}]]]]]},Dynamic[state]]}]],""], Column[{Dynamic[ReleaseHold[ToExpression[text[[1]]/.{"fghjkl"->pn}]]]}~Join~{Dynamic[ReleaseHold[ToExpression[StringReplace[text[[2]],{"FGHJKLabc"->options[[1]]}]]]]}~Join~{(answers=Table[With[{i=i}, Column[{ Dynamic[A2[[i]]=If[TrueQ[A1[[i]]==Null], ToString[bigNumber],A1[[i]]]; (*FIXME: need a much better parsing and filtering, problem is with 6.6 and . as dot in a sentence *) If[Length[StringSplit[StringReplace[A2[[i]],{","->" ",";"->" ",":"->" ","."->" "}]]]==1, a2=StringSplit[StringReplace[A2[[i]],{","->" ",";"->" ",":"->" ","."->" "}]][[1]],a2=StringSplit[StringReplace[A2[[i]],{","->" ",";"->" ",":"->" ","."->" "}]]];If[ToExpression[a2]===bigNumber,"", myEnabled[[i]]=False; (*errNo set to the first for all *) ""<>Which[err[[1]][sol[[i]],a2,A1[[i]]]==True&&ToExpression[a2]=!=bigNumber, (*a2=!=ToString[bigNumber] to Avoid ToExpression*) (* 0 practice Module no record, 1 test Module record, 2 practice module record*) Which[diag00==0&&first[[i]]==True,"\!\(\* StyleBox[\"Correct\",\nFontColor->RGBColor[1, 0, 0]]\)", diag00==1,If[first[[i]]==True,io[pn,i,True,A1[[i]], diag00]];first[[i]]=False;"", diag00==2,If[first[[i]]==True,io[pn,i,True,A1[[i]], diag00]];first[[i]]=False;"\!\(\* StyleBox[\"Correct\",\nFontColor->RGBColor[1, 0, 0]]\)",True, ""], err[[1]][sol[[i]],a2,A1[[i]]]==False&&ToExpression[a2]=!=bigNumber, Which[diag00==0&&first[[i]]==True,"\!\(\* StyleBox[\"Incorrect\",\nFontColor->RGBColor[1, 0, 0]]\)", diag00==1,If[first[[i]]==True,io[pn,i,False,A1[[i]], diag00]];first[[i]]=False;"", diag00==2,If[first[[i]]==True,io[pn,i,False,A1[[i]], diag00]];first[[i]]=False;"\!\(\* StyleBox[\"Incorrect\",\nFontColor->RGBColor[1, 0, 0]]\)",True, ""],True,""]]], Deploy@InputField[Dynamic[A1[[i]]],String,Enabled->Dynamic[myEnabled[[i]]],FieldSize->inputsize0[[1]],FieldHint->" ?",FieldHintStyle->{Red}]}] (*inputsize has to be written over here*) ],{i, 1,9}]);Dynamic@makeTextTable2[ToExpression[vars[[1]][[1]]],answers,ToExpression[vars[[1]][[2]]]]}], Column[Table[With[{i=i}, Column[{If[mult0>1,Dynamic[ReleaseHold[ToExpression[StringReplace[text[[i+2-9]],{"FGHJKLabc"->options[[i+1-9]]}]]]]," "] , Dynamic[A2[[i]]=If[TrueQ[A1[[i]]==Null], ToString[bigNumber],A1[[i]]]; (*FIXME: need a much better parsing and filtering, problem is with 6.6 and . as dot in a sentence *) If[Length[StringSplit[StringReplace[A2[[i]],{","->" ",";"->" ",":"->" ","."->" "}]]]==1, a2=StringSplit[StringReplace[A2[[i]],{","->" ",";"->" ",":"->" ","."->" "}]][[1]],a2=StringSplit[StringReplace[A2[[i]],{","->" ",";"->" ",":"->" ","."->" "}]]];If[ToExpression[a2]===bigNumber,"\nAnswer?", myEnabled[[i]]=False;"\nAnswer: "<>Which[err[[i+1-9]][sol[[i]],a2,A1[[i]]]==True&&ToExpression[a2]=!=bigNumber, (*a2=!=ToString[bigNumber] to Avoid ToExpression*) (* 0 practice Module no record, 1 test Module record, 2 practice module record*) Which[diag00==0&&first[[i]]==True,"Correct", diag00==1,If[first[[i]]==True,io[pn,i,True,A1[[i]], diag00]];first[[i]]=False;"", diag00==2,If[first[[i]]==True,io[pn,i,True,A1[[i]], diag00]];first[[i]]=False;"Correct",True, ""], err[[i+1-9]][sol[[i]],a2,A1[[i]]]==False&&ToExpression[a2]=!=bigNumber, Which[diag00==0&&first[[i]]==True,"Incorrect", diag00==1,If[first[[i]]==True,io[pn,i,False,A1[[i]], diag00]];first[[i]]=False;"", diag00==2,If[first[[i]]==True,io[pn,i,False,A1[[i]], diag00]];first[[i]]=False;"Incorrect",True, ""],True,""]]], Deploy@InputField[Dynamic[A1[[i]]],String,Enabled->Dynamic[myEnabled[[i]]],FieldSize->inputsize0[[i-9]]]}] (*inputsize has to be written over here*) ],{i, 10,10+1}]] }]], (*{{level,Dynamic[level1[[1]]]},Range[max],ControlType\[Rule]PopupMenu},*) (*TrackedSymbols->Manipulate,(* SaveDefinitions->True,*)AppearanceElements->None,SynchronousUpdating\[Rule]False,ContinuousAction\[Rule]False,*) Initialization:>(stateH=False;state=False; libs; (* add the needed functions and constants *) (* these are the parameters that used to be passed as argument list *) (* FIXME: mult0 has to be written over by replacement and cannot be initialized here *) pn=pn0;proc=proc0;err=ToExpression[err0];level0=level00;max=max0;mult=mult0+9;diag0=diag00; io=ToExpression[IO00]; SetOptions[EvaluationNotebook[],DynamicEvaluationTimeout->100]; SetOptions[EvaluationNotebook[],PrivateNotebookOptions->{"PluginToolbarEnabled"->False},DockedCells->Cell[BoxData[ToBoxes[Image[CompressedData[" 1:eJzsfXVgVdfy7om7hyS412+F3uLuToi74k6wBA0uxZIQdycNlAItUkopFClQ XIsWKVao0RaK9Hszs/Y5CfTed+/9vff6fq/v/LE44Zwta6+9vplvZs3Mahgz 1meIqU6nm2BN//hET+kUFxed4GtO/+mcMHFwjBn9EUjtETX+0iQkB8ZmbMb2 X2yhWaqF5EnThaqm/908OAvmgZlwiylH7b4jsGpJMC5s6I5vNzTFDxvc8N1G lz+l/V8fJ2Mztv+XmxHnxmZsf/1mxLmxGdtfvxlxbmzG9tdvRpwbm7H99ZsR 58ZmbH/9ZsS5sRnbX78ZcW5sxvbXb0acG5ux/fWbEefGZmx//WbEubEZ21+/ GXFubMb2129GnBubsf31mxHnxmZsf/1mxPmf1KrGV/+daUiWofE70IVWHVd1 fI72vWrPvx/TYNWePS/nmd+f/3/V8X/so7p+9Xnx7Hm65/r5fP9UH7MM7fnr PN+e79//ant+TP/wW3DOH1tItX5WO0f/bM88X7Xjql/jHz2XfP8vnv9Pa8/h /B/NRT3O62o4v7i+O+5sbIrvjDj/NxuNZ3ABdCHUQgtkfGVcQ9JhEZxKn6nQ hWVSy5FjTIILYRpUqM5h3IVV4UudXyDXNA3Og3mQaqbB6jw5X35T88y82nzj e1oE5VBT/ZHj9LgI1voYWqj1Lx2moamG/vN5LPOln+FZWj+r+ld9Pqlj0lWj v01CM6swb8BAVf/l3s/JDd1zeHoWe1nVjquSbfox5fHkT9OQzGfncXAmPYca A6vAPG0s1PfyvNS4r3qZq8ZdP/7Vni0sU67N46HO18vpqucT/RicpfqgXfMf yYF/Jieqy5jn5eh/penlrn7c9WNuuD79ZhaUCffoctTrMwKpi404/6/iXOHi 38O5OeGcsSvfhVfpR11Ynmqh6l0xZi0MOC8w6GO9njJ/Tq9UxznfS+E8U66l C2GMF9P1C2TOc7/0fTfgPFzh3CT4jzh/RudrODfM8T/gPOeZOWeqyZ1/hvXq csTkOZxXxzpjVrAu2M0yHKOXZ+aa7KtqCuf6Vp1bGXAeWq1PYVkG2aXOqY7z Kkzqr/2PeMWfjfMq2Zj1B9mqf87ncZ62qArn9zYacf7vNv18NszL0CxNJyjd oOaPwrmp4CpP5kp1HaL0ZKYB91XzqQrLz3NmvT5R188y4MvAC/Q4EtwzzktF pwv2+dzgQiV3RG5o9w5TsqvqeapkikVgAc2jAsP81M8rEwOO/9nYFBhadXlV 9Tw51e6j6crgZ7Euz2O4jvZdWIFqIXo+Rd+Fa7IzXI2Jfhz1MvMPOOBzQp7l Y1UySNP/z8iEPMP46OXhP3v2fw+jRpz/v9Cq8+dneGD1dxGW88z80HNKhdH0 Z7EelvkHPad0fbVmwLpePmQZ7ls1/6vN15Bq+lxwrukiDed6va/vp/6Zqjiz xmMJ5xaBhVV2QXAV1/if6erqWH9Wr2dVyUAN54p7K7ny7PMUGOyJZ+ykME2G 8f/D6diIHK3pZVaOzH29jOJm+hw2DTjXX8fQN02G6vsQWiVPFBdS42fE+f8f ODfwXj0fDPvHekJhhuaxgUcy90034MgqSDW+nkE+hFdr1WRIFc/U37NK3yj+ nyNyQPH2HO29V9kVCueajtRwrteXVbat3vel+ig6MbDKt6Cf39XtQIPdHfLH 9gzH18spvb0SqufmWdp45lSzhZ4dP73P7Vl9mleFe4Ocq3pHz+K5+jjo7fwq 3Op1+jM4r4ZxAzb/oYz732d3G3H+36cpnGdpOM+qNi80HWrQEdV1Y2Y1H06V z8c6MAc2AXmwCtT4QZimm8LznsFCFc5znrHpn23VcB5SnQfnVPH2kJwqO0M4 icK59EezT1U/lTwSOyLo2XtU59368XjWV1Ud48/ylSp7uWodoMou1mSTAZf6 50mv9kx6Hl+1zvAMjqvZx2q8qo+V9i7016v2/FUYqbK3DFwipIonVfkY/4hx I87/ejjXz+kqHqphUvOt623KKpuvmt/XML+zxE9sHVCg+d6qzbNQxSmrX0cX +qyeMdF+U+84p8pHYPBbVckW9rWLv130aTW7IrjwGf1usP/Ft16Fr6rnrKbv Qqq4vLKFc6r0smE+VskI/ZzUH2Poq9aq8xADLw7NfGb8DHwkuMrW0L8Lvayo sqfylLzU2+9hmQb/vV52VJcvepxUX/uoWqfLNMhQvW3yj3D+Z+DeiPM/F+dV 8786bqpsQvFXVfelPePbef495Rh8dEpvqGuIjVltTViPL/W7tg5Xbd1Yj9Wq taXqa0zpVTjVc91n/FCZBv1b5TeomtsGXhuaVaXvnvE/POe3qM6ptWOr41zP HfR9U+25NX6DDaD5zqu/h2o+PD2/qrJX8qrZN9V86gaZopqeS1Rfh35WHmXh WS6W/geZbcT5XxPnhjmo58UGnOcYdJt1UD4sg3OhCyRcsDyIYDzlQ9azQ+j7 0AzoorKhC6bPCNY59Devy9Gx1sHZsA3MhbV/NuxC8mHqn16Fc/rNlK7D79Yy OJ+4dr6a20HZJGOqrSMFpME8rOo7uQ/9X/obTvcPp35EFtH/uQ80dyNz1Dpy mP4+dM3wAnVOSAYsuY++abAKy5V7yRohPZ8ZP0sQyY+gVLpfphxrsL953kWW 0N90n6DcavYD45ZtYvo+UMMLP38Qr0dmKN1Lc9Q8nMbLNxM2JCccouhY35Uw DU+jY+g4+mTMmYXzs/M4s+1Nx9B46cLyFbb5OoGpsI2h7/0zlGwh/JuF6sel un7W5KfGoSzouUwD6bnpWP36HN+Lr2dGfTXo9OBs1arjOyz3n+L8n627GXH+ 37tVxzn/X+9bs6R5JfqA56pwevrktaGAbFgTfsyj8hXW2UfMn8wpCVOmhE8r ej8WvqmwD2HbnW34LNjQuWaELzO6lmloLswDs6Ux5mSeGXRunsgRPoYxaBFC MoPwzFhg+cDf64I0fRyQJXPWgvHgn0xzPwNmwWkyt1l+mATlV81dv3RY0/nW dB1LegZu1tyPoAzYRPJzMtaTYBKl1uRNouj69PzSIosV9hhXhGORJdq6n0VE kRpH9vlFk86PzlPPEpkvz2VF57HvQuedBOuIbMG3aSRdI3yV2CHmYcp/YBJY oHAerPpsEqHkE2PUJCAd9pGlMCG5acZygK5nydwrQPEHnX8azCL15xbKODGm LaiZ0fOZ8DvhPtI71ctRGV/tXQh++VN8Krkio4w4/+vg/Fn7s8qvbkX6zZr0 uLnocnr/USVKf9K8Zexaea+C5cBU0td0rH8qLP2S6TMdNoQ/mzDlE2bsWRL2 Lf3SYOuTBXu/PNjyOrbMo7Qq/4BhrT5b6Wn92nKQkimMETNfeuf+xAECCgSn FoRZO79MuLAf0HcZ7AOT4Eh9tqN570jYsCBM2foRjgPoGoR1E9LHrAsdwgiX PhmwpX5bD0yBfUAK9YkwEEz2Luvi4PRq69iZMItm7qI4iynLsLAswY4uME30 OGPYjsbDOiBDxsuMPkW/81ixXBQOkQIbkkVWzJWZkwh/yJD72ZA+t6JzbKlv dsGF4utg3S88XuP6ortZFtLzmpFckRZIPIj+z2PBWDWJKFQyOEz7FL6VKfzK hOSeDY0ry1r2mdqGF9P5ek6TI7JUj3WDXq+mz5/HuxHn/281g8+5mk9W4Txd 5r0dvWtZDzZgLgt2dE590n2vxOTjBdIfL0aVoinx0RdiCvFCdDFq0/txjyK9 HZhC2KIWuBJepNdeiFmNF6Iq4CF+cdKJdA3W08LHGeOi57I126FQmlVEMSwJ O+6EmRdGfgCXgEJ4hJWgTlQhmvL9aG6+QvqnSWQmGkdl4qVBxWhA370wpBiN YwvQlHRrTcKMZUgx2bPFcKK57kH3ajSkHI1ii/HCoEI0iclFw9h81InJQ+2h pXCna7D+k34xlllHh+cK5ljvW9J3PAa1hpSgFh3rHJAMpwFLUT88Aw1Jj9eJ LoLX4AqFI56zJHtY3pkEJhNOk4Rzm4aXSH9qRNF4ReejHj2LO2He0WeFfHqR PKk7qASOwqsyxX6xojEWXkX6mOWAG8ndhoNWw435EcsWtnnYtmA7hd8Zy5dI alG5gnOrwFVw8ktFI+qbJ+HcmZoV949lEjXBOp/Hcp19BBH5Rpz/FXBezR9l WE/V1nr0sa+s15nrmkaUi060pXnmEpAEh3Zj4NhsCBzeGg3HtybA+m/joXtx BBz+Pgn27abAecA81IhOgeOgdLhEka7qPgcWzSbA5s3xcO06F16xpIOCVwlu 2MYUvROucX/Wd8Q9WWdZEA9wZ7u680zoXh0Oz77L4dFrCUzfHgn7d0bC9c1R sGoaDas3RsDk9eEwfXUkTP42CrrXhsD0raFwaDkSTp2nwWpgBhxCi+E4YCHM 2oyCWfORsGo5Dro3R9C1xtDnGFi2iodtpzlw6rsMtUiuuBGW7Gjus3+CbQsz n1Q4EJ5qRxbAfWAyTFtOhtnfR6FmjwTU6R4Px5YjYENjYt1iLFx7LkB94vxu hBXW4czzhYNrNrR5YDG8ot+HS59UmLwdD/OWcXDsMgle/RJQo+cUWNKzWbee Ak/vFDQcUqlw7L9KbCKWwcxBbHotgGnzcag9cBnc6H0yZvV+BhP9uoKspdAz 0Bi6hqTCc8AiWLaeCN1bcbDpvRSOxDfYhjd7Tq8r/vJHH93/Xh1jxPmfhXO9 31XWvYKqYqT0+SJm/B449iV8NSwjyoQLvxCZhpQPL6N469co3HwDRdt+RNGn T1H02e9I+/AOErL3I3BeJWy7joBdvxlw6J2I8Tkn6PdfUfzxXfr9IOwIG65k m9qwLc18VI9z9icHZ4r9aUdctAbNVae+czG98jKKDvyOiLkfI2reFpTs/BaF W66ifPMdrN/9BMW7HqPg86co2QWU7wNydz1A8Z77yN58AUvfP4+GzFO7LIHv 3I3I3vkN0jZdQM62myj6/CHStv6Igp0PsKTya4xO2oMuo4rg0DEBLv0WowbN d7Y5rAIyqb8FqBdBvL/rDLwWuBzp277H3pvAke+BE/eBfTeA7ReApPVfo33M Kti3HgP7HrPgQvLMNDBd9CTzZFfiPK6k1y3aJMA7fhNyPnuC7XTuFz8D+6nt +w7Ydg6YW3wSDXvPgVW7BNQn7mBL78IiIBWuETQm/RZgWNYRpG27hfZDyE7p vUhkig3jk+wntpVEXrJPIaIEDmRn2Peei54TS7Fi4zUU0BjFpJ6EjXeyyAfb cBVDrAvQ1uMZ60ac/6VwrtZ7GefFhLFixeG1tRfxzbKOCCwi3bwWNgOWocXQ DHwL4BdqP1C7SH8cpT/205eXHgB36Lu71A5cB8YlfQqXtwZhWtIu/Pg7cP8J cI9+C5n9Hpx7zYQ7zScrWdtSus6M9DnrHtajLvR/q+7TMbboGK7QOZd/BcLj clGx7TIIDvj1KXCV7vnFWeBzOmDXVWDPZWqXqC+3gFOEPz7um4fAm2R/2LSa hpR1J/ETn0v9+IX6c4Y6eoZwdZLw+j39n3+7Svd57+Bd/D36XbgOWICaZIM4 0FxzIz3qRjIrZO46eU4eg+0ngfT1d5H20XdYexD47Dxw86l6/vU0IIOWbEZN 78VwDiJuQGPrRXaIU89ZaBs1B5sO35KxOEtjV7z7NySWXMW03AtI//Aujl6j /tBvp+hC8dk7YdUhDnWID7j6Z6IJ2QU2reNQtPtHOX83PW/NPolwGrgcrtRH R7IfrMhGYJteF7qacF8AT+L8bj2nY+TiddLv8ySXQud9DLsBy/+Ac+bwjHPB uhHnfwmcG9amOV4jqFoMXJiKX9evTZlHriZ7nbDuk4S2IzPxNWHjN5ovx28+ RJ32IfBsOw4uLcfi5b6TUbLjguBfLweWZO+Fzr4N3v/4qmCTphi+/Abw6jQW DYiHOpI9YBqofHFsA9vSpzPpPi+yDxoMnI6ThMnPSd816TwM5p4dsO7jc3hM 3z0mXK7M+xw6p05wo3s7Nh8Pe+LhLsSlnd4ZAq/WUXh/10XBXbcx78Pu7fFY WbwTD+k80Hfvb9wPy1p90aBNHOq3iCUZkoTDF38S2XCLfj9KQHtn0Eq49V9A XD2PdOgi9JlciEtPFcYnL6mEzq0HnOi6Nm+NhRXZDTZ/i4Tf+EycIjlDQ4TN x5/CmXhy/cgy1KDxc+s1H37TynDurpJBHx64jHpto+jcobBvMR2urefA7vUx sGnshwVZ2/Ej1L2St1yGc4cJaELz/0WSiS6tRmPdFz/gAY8xjUXlofvEx0eh SUw2HPxXwiYwVY1pWAVhtxh1Ysrh0iUeY+aXyzuZn0Pv5MVQ8QvYyppnpsqZ Cau2lvH8OpsR53+R9mzeGut0ttd4LcuC+LwT6SIb7+VoMSIT39Ak5Tm2++Zj 1Og2Gq+zn4xszloDk6BrOABr9yidK5ihA3tFpKJJqzG4dPupnHePsJK/9Rwc Wk9C0+gK4cXmEp+TSXovE43IBrZoNhwbj36Hi4+Bl8MWow7Z/LXIBq6gOc8Y JzVN+vkManScgreGFaJeSBqakO5tGJ6NepGpqDFwPhr0m4eF6+/hnaFrYN8q DkllO+X+D+j8is3H4NU8Dm+Hl+MFsmldO0/Ay33G4NgdpdcZD1uO/wI3sudf HVwCy3aTsYFIOuvQ4h3XYfVmBJoNzydZlSG/NyKZ9UJMHtx7TMfLvafgInXw kzOAwzvjSAcXwJm4ds/RmfjqByXrPjt5j54xFF5+S9A4qpgwWok6pPdfjqnA W4RLXeMwJJUeEKyzzEhadwwObSfi7cEkL1qNQOWu63hCz/GUxpKPWbL2EMxa DEfTIWWw8kkjXlSk1vyD8+ERWwGnbrMxala5HDs6eYfwCuYqVtXybwzxORwz US1W+Y91Kf5YO8SI8//OrXrcuT6/KccQw804Z78x+6KcIgoI5yvRnHH+i9LX n5Necus7BXUDaX770vwLLYbzgPkYGJeCOw+Uzr9Pc3F5+UXo6vhh4uLVgiHG 2m3CQdjUNXDsOAu1Y0pkbZffac1Yso87TMXIZdtwm45bVL4bZh3G49XhJcQZ xqNs63U8eKqusXzdWdi0nYS6ERmwHbgCzrLmR3M2YKXwV3f/dJi3n0+yhPRZ 56l4t3i7nMf9Kv7wKFxbJuCl8LVw9cnCy0NLYN1qENI3HRf5xHLkGwKk9+h0 ePZZiFfCV+Hcdwqjy0sPw73deDSKJf3JfmzCFXNqXtOrP5g40etDkP7pL9h0 EbAhnvG3Qbnw7DEFey48VrJPnj0Prv3nwCOykM7LUr7CoBzY+WbDzb8QL0cU oWarYfjy68f4/rHC8pB3N6NuzxnwbDEC63ffxWMah98eqr6y/BmVvBX2Xaah TnQZLPzzDLEGTmElcOw6B3GL1onMGJO2DxadE+BJ8sdCq3NhqOsRol+TM+Lc iHOFs32Ec7vuY1Azkvh2aI7EpjgGLkWT/hNxkXjvI03vVu6+By/i9l5tR6Fy zx38TPP2Ec3Rw2RbNu2VAK/gFFmTZ7vc3S8JdTuPBak77CW+btt8MOn3VDQl TurUYqL4/hinv9D5K9ecgGO7CWgcnSNr57yebBagcRGy9Rnz7uH5qBlRCGs6 Lum9L6Q/v9EFKrdegjXp2kbRq+Hin0OyIg82nSYiPm+X2MYPNRk1Yl4FHDpN RetRhbj2i7IXjp5+BPsXglEriHhDFMmfgdmw65cu61324Xlw801CsxHlGLBw N+r7LoN7h8lYUHpMMP4Tnf/ZuV9g3zKSbO4MtfZOdooFyQhb9o3z3z4ZsvZn 32kSFq89onwK1Hadf4RGZO/UbDYCW74k257GZ8e+czIe/D4ukjDoT3aDS58l ZJOX0rtLl+vWjnwPrt3mYeSiMnxD4xaXtheOnaeTPjfi3IjzfwPnpHDdeo9H jbBk8QVb07kuASvw8sBJuESK47E2/5I3fEWccxyaBpHN3WsKrv2kZMCv1LI+ OgEr+q3BoGJZizInnV24/arMx47DcuDUZRbqhKejaWwebN+egLLPfsD9xwqH q9aeEl7cODyX9Gk2rAfmSj4N481Ei8njtW7WmZaE85Q1B8RH8JjOL9lwBnat JqIR8WT7AWloGJEP9+7TMCt/j+CKsfPtIyA0vgC1+i9CrX5zcIYEwH367gnZ xOt3XIVblwmw6zEXr0WXomFokeCTbV2HIJJ3vqtgRXh7ISIddTqRPXAd4hvg 8Vj83kHi0RPRYGgpTH1p3IIzaOyyJHbGMrxA+cbob/uBi9BlQjbuPlZjefcp +wXWQufcB5u+AE6S8f5Sm2Ccvf6zskeoHb3xO+r1ngYPn5Wir1l+egYXw7Xr bAxZkC9+0rhVu4gzGXFuxPm/xjnj7MA3QO2ecWKX1gwrxotD18OmTTxmpW80 8OM7hImBiWvgMmARXhpeCPvO4zAj4yPh/fz7DfpjQHwJ6ngvhke3GfCZWil8 Pf2j87B6ZwJeJH1rT3O2AdmSjq0TkP/xTeHOfP2UirOo3X4O3hm8Hg2DVqNp 5EaydTeiQeQa1OXz6LnMfZIJTxWw7TwJC4u3iV5knVyx9Rzs2k5B/chy1A8v wxsxxbBsEoDtX97Db9rawOfnn6Je9yl4kXS9ZbtJyP3sgvDenzW8nrj1GBOX rycePQz1ey4Q+8Ajokx4iS3ZELUHlcG5VyLCZ2XjjiYfmCPELt0My64z4BVb LvyDY4osQtME5xJvT3LKJoLj7FLh2W8aLhCen2qyrXLrCehse+Djg4RzEkiu zYLQb9Bc8YPo5er20z/Dpd0I1CZew3GIXiElcOsxGyMXFwvOxyXvgnPn2Uac G3H+L3HOGD16C6jVcSjq9p4N185zRN92H5SGM9ceK18wtdUHbpB9PQFu4Vli yzaKTocrzcGPDt8VvDDet519BI82w1Cz9VB8QdfcfV3zx5N97Ub2qj3pyIaD S2Dx1jiU7/rewGOTCvZBZ9cV7s0nwa7ZBJi/Nh62zabA7LUxMHtnIpyovw5+ q8heLYFdx8lYVrFT7sd4KdqwH9ZvDUUtOsap03ToXgjEkpxd+OWxWrPjtbFx aZ/DpmM8GscWwyMwCbUHTsHOm0/EVua+8xj8TMceOPcYQ+auhVubsXDolgiv qGw4R+VLrA2fPyfvQxkP9vN/T3/0S3gPdgNWwjG0WNYVOcfUInSVlquTK7Gr bFe7xRbBqetkfMGLf78rHO8nYmBh1wOb9wDHaCDq9ZiARj0mkrzZiB8eK47E 9kHO1jMwbT4WjQetRu2IUjh1n4nY2bniv5+Qvh927WcYcW7E+b/EOc+5w1d+ wt/6DEWf4SsQM7MYWWsP4uZ9xU/vkv7K33kDDl3iBON8DZvAQniFk57tvgJt BuWIPalff5uXvhmryveBKALCFm2FY/fZaBBG89yXbH+ahxwf6tAqHsXbbos+ f0gT//q3j3Hq8kMcvf4Eh649wombhLnzD3Ce19Wv0XVW7IZllzl4Zcg62Led iiWluwSjjLn3d+xD0/ZDMGBcLtmrH6Bi71npyy+kc3ldbNyqvTDvMAVekdzv dDhFkk4fuARNIpZj0/EHBj7ySNPtLHv2nb6NoQuKYNlhFGwGLCHZtAZ27aYi b8NB8YvzgXfpwA7DCmDXJwWuoeWwCea43DSJDzTxy4A58X/TyFLoAnJRK7oY jm3H4IuT3+F3Ta4cP38XtvbdsI14+xF6GPcu4/FSWIasJ6z64JTwjYfamE7O 3gfz1pPx8rC1hPNZGDG/GPRoGJ/5Jaw7zDL64Yw4/7dw/i3N3ROk+E5/D0Ps zH2ajGUf7Ed0Qr7Y5J6hGbDhewTl07XI9vQvQP1BG2DVfiZmF31uwN2NexA7 tPzzW7CgOVs3qoRs3Aw4BKg4MIkJI72dv/kbA8ZOXryLTXvOYdvRb/DhoSv4 aP8VbD98C1v33cH6/b9gQOIWOPZZiqZRa+DQbgZWrN6rsEwy4iYp4uM06a88 VLqbdeCFa/exLOtjtAh6l+TTLNQazLmzaYIFjnm3jy6C3cAVqNF+MhbmH8TZ u8oP/oPGL37TYm3KDt3Bq5Er4N6PuALZBgXrD+ERyT2QDLlLN2o7NA/O3hlw DimWHB3m7KzTeZwlV5ZzVMgOqhdZDOdWo7Hr8A3xWzJ+v/r6PqxsOuNj0udH 6WZOneJQJzgHjSOob61GYs3BO/hRW4+4QuMZOvt9uHQjjt4zEcPnFcl7Gpmy D3bd5hlxbsS5oWaTvlaBY3g+bAcmCc6v/6xwfob0Z/jkfAydXynxZ4JzaokZ H8DijUC8NCRf1oqs/JW84PxRHXF3q8A04pN5pINi8cnJH2R9iPXdVzQJG/ca By+fJLiGFEk+q+TNkb7jPBPbFvEo3PatzGGe80s4TsazN+z+zvHtQ2H6+kiY vjIMli8Ng/nfxsKRcOZC920Q9Z7o86SyPcI1WDdu+ewMOgavQMraS3I9giAu X3uC1zqMQK0+C1A7pggmAStgEZEGy6BVImssaUycQrLFZ2fdNh6efaZhyabz Evv6g9anh5puP0Fyq/eECti+MQhZ7x1Uuv+pWk9sNzIXjgOS4MQ5dIHZqk5O WIbEEHAeAXN3jluoG16CGm0nYCfJsceaPj9x7meYW3bAp/uJT5Hy9uw1Fa6+ qfCga3mRTHJsPxafX3wo74Fl11fUj07Rq+DVagxGkT5n38fwpN3El+YKzi21 GpZ6nPNa3H8nnHPeHuO8bu/hSF8cgksbeuD2hiZGnP9JOOc5t/8CUJdsUsdm gzBs8RrhjDzHr9Cc9J1ZCOe+i+AVUQYrP5XrqgtNgklkChwiM1EzIhNu3adh +MJK/PpQzE98+OV10tmxeCGWbPEBGSp+I4Rxvkpwbt1S4fw3TZ9nrr8C93az 8ObgSjSOXI1GUWtJd7+PF8NWo3F4OewD8mEXWITa4YS31vFIKdsneHlMuvW9 jUdJHgyG3evD8OGuC3j4RNkbe8+BuHYc6g0qkH7qyC63DcuQfC/OubX0TYe9 Xw79XgEnji/tPAn1+k3ByvXHceUXtW72629Knx64Ari9HoxZyRtFBnJ8zj1q YQs3wLb3QnhEl6icPa5LwfVzA9JVrllkvsSt1o0qh2OrcTh47p7IVZYhn+67 AQvbrti2lzg8kQmHdqNRJypXZCKv8bn7LMMrA6fjK/pNb69/Se+pfrMwjJtf gOt0jSn5RyVunu1zI86NOP9XOP+SbOBG3RPRnDi1XYthKPjkmOg1jtk4eAPw 6DgddcnOdCHOaxGSAl1EMkyjyBb1S5H8Tc7ripn7vlyLcbb59C+wJ33E8XAu 2r4MJmGpYr/qcV5MOBesUksq/wqurWaiCfFbe58MwmCm1KPkvHTGoqyx+Rei TjjZp21nIbnsoHBrPrd8y0mJx3uTsNak6xSJcWcs3qV+ZG27BN2bg1E7qlDl vnP9Feoz+8fdwsvkumZkU3BuiRvJAg+/FaTfJ+H14OXYevp3ucfTR0puTFlY iI5+U2RN7MfflByckrsLFp0mwSMqV+wBHZ1vFst5oFpebmSm8HgH4kG1+8/H 6dsPBOcck59Xfhg2Tv2w5XPFGby6ToBHUDL1KY3kUDY8I/Lg0nM2/KcVyb0e a+sLG7ceQ8ToRPG3j03dra2f5xlxbsT5/xTnrFv2f0NY7hSPev4ZeIGx2GUQ 9l35STgjz7Hi7feIv4/Ei4MJb0FJNJ+XCm9ne71mZAkcus5D7KKPxLbl6607 QjjvMBENowlfPinCZ3UGnBcQzic/g/OUyvNwbjuNeHmB1HnQ52ZyjSrGpyXp cxuffNSJWEO8fSaWF+0RXzrfq/TjM7BqGYdXB6+BW5f5CJmu+Ahz3RuE9bA5 FcJHON6E9bgT59R1TFS2QGiJ1IPgPHr78By40H3ZlnbzToJ9ixE4cPYX/M73 Iaxv3HYcOte22HtB3Zf1fOGnF2DTaijqxmTDLiwbVtG5Um/KlOvXBPBeOMR5 yF6w80lGm7GFuP1ErfPdoIEKGZkO59qh+PSQWj+v23MSagStkLwAjhdwpHfW ILpY4tln52wW2fVUs4s+3nkMNwn4Y1fthHPXmUacG3H+L3EucTK3ANeukyQf pRHHnfWciR6DluKOFjfG/qApKVvg0HGK6G/x5dG7tAnMR43QAth1noMRKz7B d4/V9Qh6cGo/GXXCsmAfkkFzLkX0OceR1CVb0rblRBR+clvpf2rL1p6GTTs6 PjpHbH6uo2QWlqflxGRL7RjWiXUiy0h+xGN5+R7Fnxlrm47ButV4NCK7oknU asL8BKxYvU9w/i1h6hgRE48+U+Dou1ywbtd3OaZVnEOvSWVw7ZMMJz+y0WkO cn4dc3lbXxXz6tYrHpNWfKDuQ8+/7uPT0Dn0wuz0o6LnGfu8HtCk2xg0DEmC je9K8UFw/SfOF7PjMfJfgQaxhL9OUzBn7RnhSJL3cvh7eLUYgnpvx2H9PuAU /VCj40i40zjZMwcPzFA1ffwyJIfWqf0IFHx6TvoisYlPlPydmPY5bDslGHFu xPm/hXPOI+PaCF4BKXDyTsaLsUVwbjcR87J24Mcn6pjLZCe+HUx2uvcyeITn qpyVgemyps1rzTELN+KHp8qO3HrkdzgSlutGko4LVhhn7s6xYRwnwzgv2H5T rstzd+WGs3DsMgVNhhTAPkjxVo6F47pO1nQvO7qXI3F4vpc9YWb5e7sM6+el W0/Cnnh7A8K4E8kCXiN3bDFYYkz0eSzvH/sedm1Gkc1fApceC3HwNrB61zXo XozF68PWw95f1b3j+HTX4Gx4UF89ek/F0DkFEkvH2JyXtRM1O85FzU6zsO3o 93J//n5B7g7JUX9lKMkgn3TxydkFEcbp7/ph+WganExcaRS+IHviLo3NaZIN LSOX4GW/xfBsEYc1+5V97tJxlNSQsCVbR2LrgshWJ77hQO+2YQz1r1UMPj55 TzjWY41njV31KWy7TIVntBHnRpz/a5x/Qfaha8+JqBmyinRKNqz9Vor/Stds LEr33pf5zDr9iyuQOevgPQ+u0VmSb1KHcOjYYyZGJm2Ra7EvescRwK1VPOoP 4nozyap2K/XDOWAV2eDZhPMJyNt+W1sbAxaWH4L528NRn3i9i3cKHDkXhGx0 C669QvY061hnwiKvQ1u0n4B3y3fg5ycqLu39rWdg35J4RsR74sNyJA7h6L0U jQbOUuv6j9U6WU7lcck75bW0Y9ceSOx7wIRsmL85GvWCS1E3ah3qxVSgAdkh r8Wshq5JENn+X0r/ThE2G/WZJTLQyT8FDQMSsesblet+nQDXOmwpHNvPxMux a1A/ohINo9aiYdhq1OqdBtMmsaj89JL49e5RfwfNriC5OBmvDSce1Hw0Vn/5 Ow7TTWoQb3cJJT0eqmrGmQVzXdoiqR3rGEX2hs8C1CWOcegblRPA72R0ysew 6TrdiPP/r3CeZ6j1pa8TXn3fIx5/tnWdGOc+y9Cc7MOrv6j5sp/XdfpNgxfh jGNJ2DduRXh3I51So/tMNbeg1pi3n3+KZiOJW/dNlJgXzhuxJtt+YvZufP9E 6dhdpyH6vE4kc/BV0ifOl3Qi27txZC7ppgnI2XFbdBLf/6NDP0osWIvYZLwe noQ3wjPxangWXiQ99srQXLxO9u8rJFdeHFwE2w7jsbJSrZ8/5ZztLWdh23wK YXStYR9ij8HE34ljjFm+Wa7/Ox33K+nlnE234dosFtuO3Za19qv0/azCY/Ds NhsWzeOh+9swWL8zBk5vj8b8/CMGX+SwpZ/AqfsCkm2kX2OKYNZ/PpoNW4X9 19Wa/UkamPA5m0mOjIHu1RGweHs8LN8Yj5f7rsQH+xWnuEyCZfDMcnh0noD6 MZkkszJh3SYOJV8+xTn6vZHPVNj0WQgXzlsJUHuz6ELKpJYA15z0GpQHp94L 0HNUnsQY87sYvnIb7Oj9eMbkiE2krxkv9Ua4BkFwbhXeQvU4r9of53mc62uJ 6v//j/a3f0avhFbt2Vy1p8Sz+3VU3wdE9j8nnKctCTLi/L+AcX29KP0+Caqu WLr4vqSeTIiqsW4bmA1nwr3twMVoPjoN15+qnOgD37ENO0NquLHdzXWR2C72 GEy2dM9pCJtVgZuP1FoTz9mvCB99Ez+Abf9lqBdbBuvOszGSbMXvNJ78EU1c 9lvXj8ogHr5K1TgJVHXk68YUS45L7q67uKPFdurrv1xim/eBytfi+jGXqZ2j A67Qbxxfl/zxd9DV7IMVa76U+7BNUbH9EmyIt9eNrZA+i0wJzCUZVAaLFpOR 88k9OZbvwf3bcvIJapNMmVJ8VOrXXKdrnKfr77vyBJ8euYc9x3/CZQL3HRqb M9SPIUu3wrFrImqRnudateahXL+9BLbey8WHvmrrDZwnzsDr2YfoGpsP3sB6 Iumfn1exOzfoGdd88QCtI1bCpes0iTdwIFumJn1ybbrig5A1sj23iBeMLYZN vyVSU0r896zTQ9WaHctfrpvp0nUGxi16X+JkJuUehkW7yahFODfzTyKZmiPx d+YhpSTzSrTa0Uqnqzr5Wq2fwDTJVxdZEKjt+8I1h7j2F80Vrm+tauDmqtrR PB/CCiV2QvaKDVZ16VUN2wx1LvslwrQ6+FyXl+0Orl3rr+1zz7W2YktRu98w rFrij4vru+LOhhfx3Qb3P20P9P/7WP1fa/o6r3purt+bR+I2uNYMY5feOb9b zvuyJDu8FunNcRnbEJ+9DdFJOyTfnG1jrm+s0/Z04BgynkM1es5C+Kx1mJOz E/ErP0RCzl60G0u2sncS3GhOOAxMRtvx5Zic9SmmZG9HwFLSM4SB2lF0T98k 8Z/LnOIalDSnXL3fhXfieiRk78SM9I8xPXkr5ufS3/lbSL9+jKUlezE7/VPM ztiJJUVfYEnudizI2wWfqe/Dk7DSKy6P+rAL8wr2wDe+BG79l4gNz/VcdZpO Y9+dR0ABavZdhvEZOzAxbQNmZH2C0at2wMNnOSy7zoZz25EITMjDu+/txQcH rmHX8fv4nNpGwul0ehavznFw7TVHbBN7kpHsH1T7Qah6HS5k/3Ce7Is+0zG3 bC82HvwGO099h/2XHmPT4R+wcs1J9BubC4fW4+HWZxHp8EKSdeky/szR3QYs R5/pmzCj5KD0sfXIMrj3SxZ5a+GfDMvwIrXXjZbvak/3rhdFHKvLJCQUn0C/ xM0yls5habCNyFF7OdA5Jr65Ujuba8xI7ckwrU4cxwRyXCPnufqlicyyCC+R fS8kJp9lAs0l1guq/rSqSc/1aXQ+6fJpLjXB6f90H6lpRc/Cdez4bzPGOPMQ jpkMUTVtrSOLqnBO+pxxnrrErxrOPYw4/3cwHpplqFNuWm2fbcY7r89IY54V pNX15prqEWXyPsy6zYFdz9mwGrBEYtVUrtUqqe1vRvyR35cpcchakQWSt8m1 DziH27HzTNQk25lrrrPPjH3LVj6psO6QSMfMhY74J887fe1FqQXL+zFG5ch+ BRznbtN7OWy7LIBjp7lw67oQVm1nQtdxOsy7J8K6YwLdZxqcu8+BVZtJsG03 EU5dpsN94ErUovnkHpAMk87TYdYmHk59FsOJ93mVeZYlddvN+V7+abAPKYHd QJqfXYkTd58Ep54zJL/M3j8dtYjbNxpUKFzYuv1UmL0TB4t3JkjejHmbabDp MQ81AskWH1oEd+JGThGZqgar1NrLhENELmqRHGs6JA81ApbT9WdA9/pQ2LQc B4tmI4m/kw3Qcirce72LBhHEjaKz1T5S7Nun+9sOTIEX4c+u71KYdKFx67kc jfwq8ELwBtQPX00yslTq0nJNfa7LLbZ3sMKyawzhaMBiWA1cjhpkOzlHF0Pn vQr27KeMLIQzYcuF5K9nTCn9XSj7x7gOXS11fh3p/x6cf0fvjGt0OkTQ+aHK nnMmTsT7RjAmLXnvDtL7UltQcnLyq/brYZ4RkC9ywok4BvsHbPxT5Hpcp599 Axa8509wtoFzMhdwi65Qca+L/XF5fWct7tWoz/9tnPMcjFD7j6q9zgplPzSp JRSsr/2Zr2qCM84j18AkohJWfUkfe6+A9QBqQYTTcHqvYdq7DWS+Vyq8kfMy vIaUoSbNF9Ynnv3eFS7rTNzVKYB4uS/Nc99kNKTjeY6y3GY+wD4lS94/iPdt CCYZQrY67/nC37uHke7qn07XSpH1rbphXCO5TDDo0GcBPPovhHPP+fAkbHNe OudhO/RaCPu+S2A7gI4f8h5x8wq4R5SqvWYictUeK5FZsheLLjxDxsI+rFRi X7lWDcs0d++lqMl+fNLz9n0XowbpVM9ehJceS+HZ+13S34vh0HuZerb+JNv6 ToVzv+lwHLgANsxTeX8a0rUWxFfcvedQHxNg3ytR6so2IhlZn/r7Io0717h6 fch61GQO45dC74OfPVf2w3Gk98A49yB81YvMh0v/FbBoTfLtjZmwe2u6xAiw jKvRbxGaDi6S/SoYQybaeh3H9HEujpMP9ZXwbkPnu5C+t+m/WHiUY7+5JP9m 03jNgnPfObAh+ebkvUDqy/LY2vacC7te8+A6cCFcvOfDtd98On4hrIkXOYdl aeuD2jzg2p7EZbjuvOxjxTXxiQMwp+HaGlxT1KbHHKkrwnLJ2rDHDsndyAJV j551SmA+PCIr0bD3CGQu9MfXH3Q2xrf/RzjX+920fRhC1N4I0vR7MEVo+6hJ 7eU80eWsf3tPeR++Uyrks2HwKtlfwMI3RWo/saw2DVd6n/fwkbhVev9uNL/6 TCxA5Oz30XcazeP+8/BS6CIMIF7/FuuG7svhxvmYXL8wIFdxApIxUhsmbBWs I0jf+mXDod8q9BpXjrDplfCb+T5eCFmKGjRH240rRfjc9xA+rRCh0yvgM6US 9XrMIq7+HoKnrkXw7A1oNoRs5H7L4OiXJXu+sS0p+wwFatwmKoWee6XIN0vf bPHhvxCUguAZ69F3dAGaUp+70X2CZtA1ifdHJaxDFF17UOJqRCWWIWRaGcJn liNmXgEC4lPo71x0Hpup7BSa424Dl6Ln1EqEzixBaEI2QqYWUitGvxFkv4Qu ROPu0+HcejKsWk+j+Z+MGpF5so+Kzl/twcD1YVgH1iD5aN9mPKJnrEXxh5dR ue0yijafxsq1BzFsyVo07TFJ/IL29KxO9P6svJPh5rsSbYZnwX9qCfUtF8HT S9B38mq86DsPPglFCEssof7nSL8ipuYjMiEHsTOzETwxCWEJmYih5wui40Km ldBz5cN7fDIGTshEyOw1aDs2C679E+EZpvbwUT68QsO+UIxf86hCwbozyVN3 30V4PTYVfnO3otOkdZI/bE84F/uJ957h/aoE54Wy/44n4bxJz1HIJpxfXcc4 b2zE+X+Kdc3fqdbUNL0druGf9xVjW42+4/3NeK8jN+/F2P218pux76tvfAXJ +kVwp9/VfgIKp6bhxcqHI/lqmaQTEnHkO4gPr+wYZJ76TsnGpSfAnptA/b5z RRe6RhaLLhf5QryPbUD2vVsEJolPmXXztjO/iz9703ngpYCFcGgzFqsPPZLv OJeOYztzPvkWuibhmFFwGtcfqe82fcX5XZNFF1r6a3sJy/4ljPkMmMVkqf0N BzLvXgPLtvFY+MF18XetPfArdF49sPOK8svd/JUa+8t+A76mzwv0/2vsa6T7 X6Nnuv07NXrWD08/hiXZGFyD7q2oNJyk427R7989UT537ttlGscbULXgP7kE zK+8gHrepDv7zoML79fEfIv4insUyad+s9FqeCZ2fK36cZkuwnlzp+mFnH2k +nDhZyB/+/foM/UDOPWdL7UhdS3GIWfL1+JX1PtF0z66hiGLtuBrqPvzGHGf +TdeA+E4Xa6fw7Ux7vymfIZ8jPRf809ee6zW8buMTiEesYBkteLazOvYZrDk PTMDcmQ/CKnlG7AEtfpMwOd0oYt0/uLNP5HdNZO4eaGyn1j3sx+AbAfGuaV/ AWpG/BHn337oRlg34vxftar9eDMN+3Yb9ufU9i83iypTNd39yB4k253j1N3I Xj1785HkZNxk//nEdJmPNYasFqyYEt5lzx7238heaSpmzGVAIs7QJDvxLaR2 DHPr0BkFuPW7mu/bCCDWrUejRnCG7Dcge4iGaHuE8Jod3bvm0AqYd5yI43SN WzT/3gxehtp9l8Ol1URsOPLYUGN23Zc/w7HFaLxI5zUm/nn+B/U9z8vhSyrg 0Zts++A88TfpWLeHFqh9Dn0zYE/PzM/Kdkn9PvE4RhjcfketX3l2Gi614X/U sDIz9VMETC5H+PxNiFq6Hb5ztiB00Q5Ezf8ES8pOiW/7cxISVu1nwdM7Fe2j luHST1oeLvVpYd5xDFu0E4OXbMbCtcdxUpNR3xHWeE2Sa2g7UP9rko3uEZ5K XHom2g9PEZnCx61a/xUa9Sbd3zMe9t3j4em/CN7zNuGjU0rOXCUMzig+ILLR psM0VGy/Kvmxj0gu7SdwetAYdRxVifjCM0jIP4ppOccwI/sY5mSdRsK723H8 /EOJ0ee1yOKPvsKkpM/pmONIpH5nbjgvuXAy5jQPdp76FY7txqNOVL7sv8k+ c/a763zS4MA+O296F8MqoXt7CEq/uK5qfK65ILmBNWkO8p5Ysvcc7x0QqfZx ZN7OscsK5yME58zbbxFvN+L838e55B4Hqz2W2L9u2Fdci4lQay2kX4OKZI9j 2aug61hc/PahxFZ9QxM2eGam2HW8D7LoRvajkO6R+FPBudqT1L73DFyk+blu zwXoXh9Ftt0K+E3OxB0t5pV1SMnuO7BpN1b8VDYhak9v5tRsRzuE5YvfzLbz BJz89jEOXb4P82aj8UbsGri2nIyPjz0W3cNzck7xl7LW/tawClg0H4f09cdV zB39tvP0bdg3H4amMcUSH8PXZt3O+y1ah5TBzDsP9WIqYd12Mt5de1T2iGg5 OhMuveJRp9s4yc+ROg70j09cNpzbx8Gd7FnbbrOIsyyhz4Vw77EYuhoDiEvs RcWJx7DpvhgexBHahM3Htfta7jyRAMsXIuHWeQGcu86AZashqNdrOPZceSDX 5zj83XTzWr3j4RbwLmqFJ0tNiU++eizPUrzxS7pHN9QJSoMr56PSWNkyvnov ga5uIIo/vS3yKOV9GouuibDpNBNlW89J3D0n4eav3genFnFowHsrtp9K4z5F asa5kEyq0WYOdC59sf3gLam7wVgeNot4d5NQOLWbBo8OM2D+cjg6R87CFZJb v2v57rPLjsKyczzqDiqTPB8TvzTxC1j75xKnJ7u8eyLCF2+Rtc7MTaeh8+yD BmTPO/ulio9R/PBhas9Kk3DFM3mts2ZEBRr10tvnXRXON7r/adz9/zZW/9f1 eeaz+lyr3y7xMcFZhvrtvNbBvndeW3PuPRUnSFnwXOS1cf8pZJv1ng/XULU+ Z1It3oHfG6/h2oUWwYF0KO8D8t7287Bgf3K/ZLETWcc+eqJywnk+vVv6BRw7 TpJ9DvndM/fjPVkdA7PhRTafTdsJOEY8f++lX2U9/bXBq6Xe85bDD1QdWGoz Sw5KDE7D6Hy4D3gXLcKX4+ufVf7Yd9TnyMS1cCMd5xVdSjo8XbDOfTQdkE9z rhQNwkpkTes4KZ1PTt0nHTQKrw4pQp2OcThymWDySMXLhZLNzz6vhjEZNI9T 4UG6zCWEc3Ry0SgmHx7EY136LoID2SEOPiloGbEMJJ4kBvXknYeo3TsR9SNK xa/24qhiWHWPQ/Sy9ySG8HdNj87I/RxmJEPsBiyVOnrfcM4btdhJ2ahLdr9r II1tQLbsC8V5A7VjK1HbPweuJKfO0zNnbT0LE8K4accZKKC/f9Pi7tPe2yN5 Bw0Hl0m93trROZIrVJdw+Wp0JWq0i8cnR29JHyTHLnkd3Hok4IXYIqmT/9qg fLh2mIzZeXvx4JGKqb1AF287aiUcB6yAc1i58CVzeoe8j5tHQAo8O4+WGji7 iOM4NB+Dl8gm8yL9wO9X9rDj+abF5Ojjcvh7j6hy4lbDlL+dcH7zwxcJ5x5G nP9HWFcxj6K/Q9SeLBKHyDjX7CX2e/N6KOtlhz4zcey2kt83f2Oc58o+I+4h BZLDpTCu9mPk/VW42YQVkT6fj4s/VeHco28yQqYX4hrNxYuXf5accN53gPdn GrpovcSj1x5cJLkiHD/u5J8Nd7o+x3twXbqdX9034Jz3Y/n48H05n+VPYvEh 2HRMEJw3IL1gSXqr8LO7hvoU73/xLWxbjkLd6CLZD132ZWafdHAJvEinO3Wb j8HLPhVuPGJhBVx6zMVLZI/UbT9B4fx3ZbsGztpA+isRdSPJ7gxKlv2VWRay X9s2YBU8eO8UsgfsIkpg7ZOEd0je0KMKbo58+wDOPWZI3UjOz+e8Uufg5TT3 55COfCI6ku9TuOWcYNSy92KMz9gpcvE3+i1h4RrYtErAK2M2S3wvr0Wyb9HC Jws1w1fDoet8zCo5jEk5e2TPRNbppTvO4b6Wr5dSuU84i2dUCWx4P9XgFImN 45ioupy733oSth27YbCFJiRVwr5LguS9OlFfXclGq0vP59xmHPae/kHkBz/X lrPfy3tpNLgSNqSnObaCx9m8zQTkfnpZfB39J39IY7oCnjRn7HjNg7i5abX9 evVxNKbaOoU7yeN6hPPUxf5ST+bmxpeNOP9PcK5h0iRY87eHlFMrVTqZxztc W9MKz5BaMIxzR9JBJ26r2O/bBJyASYWkzxdKvjjrRXVttaeLjs7na1hGEG/v kyg4X7P9K1i0mkS6bpn4dplbzkvejF2H7kn8NesPjmVrO3yJrPW4x5bCfCDZ ptQ/t9ByqXfG9ZUPEO+1bh6HN2PKyc4che2Hvpc6i4yN+QWHiF8moAnxicak Y50JI/7zPhDc8vWvcU2X2CVw6vuu2Oa6yBzxFzLmeY8l5tDrzjzGl9Rft/bD UN8/CU2D0uHZbozE6vM1uGZW0EzSe33eRX2Sg06+K2levwurgOWCF97TXNa1 AtKl1iPXeW5N9jn7CthGOXjrkdSC5RxXrh/FOs05LAMe3vG4RAPB9W04t23D 7lswbZEAxz7LMWj5h4LzJ7+xbHyIZv1nwJrw2DC2QPZpNg9Ilr0pORemJr2D Gj0XSmsQUQ6Td8ajYsdpQx3eVRVfEE+fidpRlbKOymv83NhPwXm8jm2nij7X 18iZsnKd7CHpHl4k+Xnc3DkXl/hS79EpYo+wTmcuwvLFpOUYwnoWPINWogbp gf4TVsv4F3x6FTbtE4mLr5E4R+aLOm3+yZ69HENHHNMyLFPDeQZcY0tQt+8Q LR5Oj3MvI87/I5zra4IVCMZ1NOeUPs+UNXGF8yzxizEOGOcnb6m5ose5Y9+F cIgoUP5r/fWZfxGX5WtYERfgfVMvCc7Pw7T1FInpCpiYgW8Jl3My9qFJm8Gi 2+9q+wh9dvlH1Og9WfYH5LnlSH3zilwHK7IhD5ONvPvsD7CjuduMaym3GI1t h78Xrsv5MAvzD8GlzRS8SPh1GrBM1r0t24/F9nN3Vbwsgajw47Owak/6bDDJ No7zCUkV7sB7J3cdmyS+4MT152DTeQrx1HzSszmo3SkO+64q3s054RzXW6vn ArwYlocmJMsaRK4i/puKOmRzcDyNNel0qXtF42bvsxwtIhbivFb78jhNel7r dg0knPvlox7pLNs+89FnWqHUwn6g6dE5eXtkv+a6Yfmy39zxHxSeOJ/8axJt U7N2ki0zHFbd4lF/SA5hL1NsKFvvDNQkHsXr8C8NWgurd8bhvc/OqP0n6ALp aw7Cod0s1IlcK3XphNOQXGI/i+C8dQJ2EHGTfFbOL17+gezp4hFVAZsgVTOQ a9UL52o7SmKK+ViWsxfoGf8eOg9e3rPwSkwq3Ik77SX5eOoe4N5qMGoTP7ej 9ymxsGIrFku8Bcc+8v65ss+8ptfZN8c4r91viCHu9Rbh/J4xHu7fx7k2llK3 JTRTs83VnlsSZxmSoXygNMd4/daK3gfj9QRNRMH5Q+btObAhvWsdpe2drtn2 FkHKx8V5kvbB+cJ9r9C8rNh2BbrWM+DgnQ6/ySXid52bdwKWTUMRnFCE65pd ym3dgVuwJ13Ne7DZ+5Lu8K8gXTsVp0mpfXHhF9iT3fz36BK4t2D7/BeZw4yN 2YUHYN+O9FxUGuz9lqt9nTpPx5TMT+R31odX7zyFV594OAaQHiadYx+eKjE0 Jq3iUPzZJVnv8/SeL3EpXKumPo1XTeLtB69W1XftNzoN5q8NhWdHmv8dZsOx ZZzsgWZBMkbXgbi2tkcx15Gw8luEZlGzcVnLzT9x5Xc0GpBM8uEDNCFbtlbv RbB+IwSbDt8x1KPgnNTapLMdSNZ5xZC+6xyPWetUTVd97Swep70X7mPYu5XE YcbCnsa5Fq/VUzP3IfvBN1Xyau2bj0PBh6cMY8u83aH1NNQmTEseQZjKbWBZ VzesQmrrCs41e37ysrVSG7NGZJmqXRmkbDJzvxUS22fzTgz2nflO1b+ltpne nUfHcXDrME7ikXnNM3b+Brj3mCn+C+aGEgfF67da3AbjXOZPoOLroitI3+jj 2znule1zY9zrf9D0uadabSbOW9GvpXPMaxXOM+UdmISVEs5LCOezcZKUGeuU 2zTR/OJJJgzQcF7N3uf3ZRVYIDWWHIOI25Pu+vqHKpzbD0yDT3yp4Hx2/gnU 6UC2X/tJiEv5BN8/rZrDeZsuSB7Xi5K7+b5wzQOXfsOXgvMRgnO3FhOw+ehv hty4xMIvYdee7PuodLiEp8OebMla9Jw1u47HMV4ofqps3JllB2DSIU7yYF04 Hrd/Ety7TJO9Dj84eJv6ORG1SBc60HPUjyhErc6T8eVVLQfvKa9rHUNiyUnM Kr6I6QUXML/0EhJLz2HhhpuIX38LNWNV/TXLiGyy1xfh74Pn4wLvZUPguUA4 19l3g83f41Gj7SR0iVmJHSfvy7PzHqhk5qLP1DJY95gOz9hcsflrDi6GZddJ SN16TPJjef3gwRO1rsXPve3ME8Qs2QZHjjEmjsU1ch39CecRpXBsPgHv7bwm a+EsQ3hPSbZt6hBvl5hyiYFWsQ6cI+vSmng7DZZ+n5fJK2jsu82EW1QZLANy Re/yeqcV6QdX4jocPxc0NVdq3vDzPRCuvwVNu47DN1yna+830L0ZK3UEnEh3 mBLXUXXxeH7lSpyGxL+x7y44R64v81SLb6/bV8P5+s64u74pflhvjHv9T/Fu WE/jGBn2m7M+Dk4XX4jELYQpnFuHEMfsORtnbz4RjvztA+WHYzvaLjJfuL7w gvBMkdNs+zPW7Xm/1R7KPl+9/QLpzImSRzFgSrb4ZeYUHoFXmwloTnLertlw FG+9JDUMWZZ8T3NmWsZncCHcvhxdCfNmY3Di2iPsP/Wt6HPm7S4tJmHzkcdV OC84Bru2s6TOIdeZseLc76HFsOo4BUvXnzfsk7jz3EPU6DAW9anfTciGtSce G597XGqcD55fCeeuiajB+XrET2sSDmp0JH3+DQx1sb6iC50mgXSIPg9SO0F/ HyAZcZRwt50OenX8OlmL55oPHGv6dvRcOYf9/j9RZ7cfu4stR+/i+LUHuP2r elauNVP42fd4NSgJzn3mih+c42W5Rh3nkNSNJTuJZGJ89h7Zg078ZI+0PSuh 1tW3nfoO/canqhpchJOXwyol37Vg8xm1Hw21jNW7COfxqBW1WuPOWcp2IV1a L7RSeHt1P9zE5Pdh13OW5IhaktzmPXQ5D1b2Tqfz3Qm/Js1HIW3LRcO+VWcu /4xdp+7j1GNVm8eh/yJ4RReLbc/cnOtjmYSlyJo5x0VJPDv7EoPzlT0p9no+ 4byCcK7i23n9/Lv1jfHjejf8sOH/PMb/GjivyvVVsa55qmm5v8rfnim8nXOK 7IKJOxNez918VIXzyWSz950vdShkvfsf5MfYEh+z7zUH5+4rnFu0iINH/8Xw ScjCTV4Hy/0SHq0n4zWycV8ISoUrcfXNRxQP5znJOsJ/Uh5q9los60WHiKce vfBTNZzH46OjTw11pZkf2LaZKeu4zE047ob9vm6El9cjlkv+Kusb9gUMmUu6 q+M8vBXzvtR+pe7hCyIZ1m9HoXFEFpz9M2S/tNpk67t2jMOBmwrj3GJnpcOj fQwaek9HA985xEkno9aAafAaEA9n4tvOHNc1IEN86m7EvZtFLsDF3xQfuE2K e+0nX2HTvmviL2BcfE/PGTxqKcxeiUZdv3TUpnfCeXs24dlq7YJzjHx4/+cy OHachvq9xiJl45eqzqzGf8Sup3dziwZuet5uqR//5qAPYNd8Koq3nVE1rOn3 1NIdUqOrJuFWchjk/adLLbx6oWvg1JL0+fHbqlYItfErycbvPl1iEnlNW/Ig OC/FP0fmh3V4HryIh7t2jsPhm09FnjCH53NH5e6FrstU1BtG9yI7iG173nOT a4lwbTBZMw9TebDcF8b6P8d5V9zdYMT5f4rzqloeOUqviy7OE70uOciBqhYA cymud+jadQrO3lJxMly3wGdiFlz7LRSdZaXluSp5kSXxN+yHsosshQXZjed/ gcRkmb41iewtXj9X+nxW3ik4t0pAw4h0eIWnwXXActTsMQ1Hr1XVTjxNiuq1 gYtg/8ZQnLz+lGzBH6Suw9tkL7q2mIGNh1TtKZ7rifmHYN9+mqwHq5ycfLEp 68eSnd5qDNZ8dsWwP9FHBFyH5vGo220ZouJUfN6UspMw6TgZNaJ57Z/zMTNR l7Dm2XkS9l1R/WF+HTxtNWr0mIcGhEEXn2Sy9QmTActhGcg+9yTxuXN8EdeD 4lzUVoOSZC2BMXnq+gOY1vaDzqU/SrecNdRbP3j5ARp2m4ImXCuezue4UQvJ D0qVd2BL74vzeeuT3HHzWwKT9qPxWtgS4vIXZW3+J63OO+OM7fiRKzbCo+9S 2LZNQOn2U4b935PLdpC+n6zy7YM0eR6iam/VD1tHsjMR2w+rtUjuW9zKDbDp Nltqu1iLfZ6j5TLmSe4J22o1ogrh1ncuBs0pM+yNdYQG1KHrVLiQLLDReD7H uVdfJ1e6Jk+rVaF0j6m2Hzvzd6kzQThftSRQ/O3fbiDe/idx9r8Szi0CCzRf TCrhPF3j76qWgIUWu8BrHZ70rtw6q/pJvLcx758SlJADx15z4RpZKrlFuiA9 J8iQNVnGCeemOPssxSUCbfm2S7Agm9Sz70oMGJ8m9nlC5nHxCbE/x8pvKVzI BnD2XobuQ5Olnoq+3tH2k2TT1uiEI+d/xCG6mMPfR6MZ2Z4uLafhw8Mw7Is+ J/+g2OdcC5r3GTbVcuxdSVe4Exf2G58pPkSWIbz/oPfYMpjUD8cHn1yVWjn1 fObB2ncZbCMzVI2cgEzUIX3n0WlyFc5JBwfP/QjWXRYSt8+XdT/RUSQnLQcV iszkMeP6cZxz7uqbgmahi/HVffUsJ288QuOuC9EsuAyeLUdi+9lfBBus/yr2 3IX1O6NQP6ZM8kbZF2rJNRsJB1JH0y8VdoR7e9KDtYeXSwyNVds4NPefjbWf XZL90vX4ZL9+3d7zYf338SRjzxrk5orynQacsywUPwzpc5Yr9QTnM7Hj8D21 h5yGc1vicoxz9reb63MZw/IV/6PzHei98zED47Jx9Sclcw/deipxcM7hpcKt 2C+pOGJOtXpU+npReqyr+Slx2fT+GOe1BefBuLDBiPP/tOn9bszBFM612NdQ tZ7J+QiSg87rmSSvOXbRuVMCdp3+XuYL52LEzskXTu4cVa5yEYUT0LuLUOug /O7ZrmwQkYQrNGnyPzwiNWPcyFYLnFogvH1e8Tk4tYmn+ZUuNVM4F5N9T5xL PnzxFpn/4kun+5Wv24ujp29gPylG+3dG442oYji3nIwPjzwxrPXOyd8n/nbG uWlAmpJnNCd5njWIyYF9y6ES56bnuRy77dbUFzc4Xm/nHejeGoo6Q4olt559 TZYB2ajF+yZ3ScCeq0pP8X4LAXPXwq7PItQbXC6xe7qAlTCJyhAZx+PAY8Y2 A69VOQ1chtaxyyXH5FfB+c+o1WUaXo6sIB2YhLYjsmVd/4dHCp/TMz6DfZd5 1I91kqfGvg+db6rMe5uIPIkz1Pmli13kQrZyQ8JR3V50/4YRmJOp9pH7TVtD GzHnM9g0GISPtl3GY61GV1LFHqmBq/S5lkcaruo+1JZ1tWn49Ogtgz90QtJa 2BJv55gVFSeRp/aUqBZD6RJJ+rz/AvjFZeBbTY4e/uaB+O9cyHbhcWD7Q2w7 I87/NIyrNQ1VA85c9HCmAeeSK0R8l8eZ1954znqRXrJqNRHbTt432MLTMtfD sc88wnmpxMOwL8eU4078V0l8lhPblH2WoM/sD8S/NS1zo+Rc1PBeJD48xv7M vGOwp+s2iSFuF6TqtrMfsPHQ1bBuPh4L8/bJ/Xg96mcyPn+hCbT75D3JVeH9 jJ1bjcemIw8Ma0285sw4r8d1Ffy0+kPhSl7VHkr9JD02dNmHoqd+IVxd/OYh ludslXqLUbPWwoXklltkrtgcnIPH85p9eq5dE7BXsyV+oL4EzquEebcZUseW dSvX25DYonBVg4XrLLOMsw8nGzMwGW9HLJIYn4cazt27J8CV7FuOVTFrPxWz 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 CuR8nuR8oiLj/vn3+r0YgyOnFXf+vCfnsEnE9jKb7fFiEueZeWv93uC02bCY 5ZxYMwEuroTZI8g/ZDbsfAq7JpOlsPqddVGHFYjv4f3omMub5c3/xzWSd9Pk ErJbqedLZg0nGHglccvlW/yB42ccj5sO6CT4loMlixtwvpjH7ZelnQx7+JhJ iyVYTxS1UcE7c3IO/4A2M268wMifkUeMtjnv4uGsw+ZweRDcS7TM+Nxwji2f TZ65qNuTorxmmBNAHEwbmTBuYcpLbLyi23BMyix64QcmKjhgxk9s8Xhjympe 4CPADyDnKa4N/EcJixnwnJAPYd487vAg3LzQbsO+69zyOeEeiRUzTj2Fa8Yz BN9HY3LW+Vv/Xs49bHFPzlfcxHJejX99cfJ8Dxeb147S9fN0Pt4m7zvec/Ny dd73K3G+7zl6MUJNPnBgoub43vlrYge3Pugrx6/+TvX6/Ofwrye7voLvfb/e 889D7TGvPZ43N7X1hFfbpZrfx6+6Ny9GqsxDqXJM73P/voj/NzX+VeLa+bl6 XV1vvv3Xcu191J7v+mvDf3/VuQ1d85vaub9e3at/HXlyjjwtemE/eBPXyfxP ynkw/m/GvK+/QM6DEYw5H/O+/gI5D0Yw5nzM+/oL5DwYwZjzMe/rL5DzYARj zse8r79AzoMRjDkf877+bhI5/yddc/kn "], "Byte", ColorSpace -> "RGB", Interleaving -> True]]],"DockedCell"]]; (* changing of the DynamicUpdateInterval did not alter anythin *) (*SetOptions[EvaluationNotebook[],"DynamicUpdateInterval"\[Rule]0.2];*) (* the rest here sets up the math for the question *) answer=ConstantArray[" ",mult]; A1=ConstantArray["",mult]; A2=ConstantArray[ToString[bigNumber],mult]; answerStudent=ConstantArray[" ",mult]; myEnabled=ConstantArray[True,mult]; first=ConstantArray[True,mult]; Table[A2[[i]]=ToString[bigNumber];A1[[i]]=Null;myEnabled[[i]]=True,{i,1,mult}]; If[mult> 1,options=qRandList[{CharacterRange["a","z"][[1;;mult-9]],CharacterRange["A","Z"][[1;;mult-9]]}],options={" "}]; {again, variation, hint, solution}=proc; again=ToExpression[again]; {text,vars,sol}=ReleaseHold[ToExpression[StringReplace[variation,{"fghjkl"->ToString[pn]}]]]; level1=again; ) ]],InputForm]<>"\n"; qpanelMulti=ToString[Hold[DynamicModule[{pn,proc,err,level0,max,mult,diag0,answer,myEnabled,A1,answerStudent,A2,a1,a2,level1,stateH=False,state=False,vars,xxx,yyy,text,sol,prev,again, variation,variation2,hint, solution, procs,first=True,options,io}, Panel[Column[{ If[diag00==0 ||diag00==2,Panel[Row[{OpenerView[{Button["Try Again", (*AppendTo[level1[[3]],prev];*) first=ConstantArray[True,mult0]; level1=again; {text,vars,sol}=ReleaseHold[ToExpression[StringReplace[variation,{"fghjkl"->ToString[pn]}]]];Table[A2[[i]]=ToString[bigNumber];A1[[i]]=Null;myEnabled[[i]]=True,{i,1,mult0}];], ""}], OpenerView[{Button["Hint",stateH=Not[stateH],Method->"Queued"],Dynamic[If[stateH==True,ReleaseHold[ToExpression[StringReplace[hint,{"ertyuiop"->ToString[vars,InputForm],ToUpperCase["ertyuiop"]->ToString[options,InputForm]}]]]]]},Dynamic[stateH]], OpenerView[{Button["Solution",state=Not[state],Method->"Queued"],Dynamic[If[state==True,ReleaseHold[ToExpression[StringReplace[solution,{"ertyuiop"->ToString[vars,InputForm],ToUpperCase["ertyuiop"]->ToString[options,InputForm]}]]]]]},Dynamic[state]]}]],""], Column[{Dynamic[ReleaseHold[ToExpression[text[[1]]/.{"fghjkl"->pn}]]]}~Join~Table[With[{i=i}, Column[{If[mult0>1,Dynamic[ReleaseHold[ToExpression[StringReplace[text[[i+1]],{"FGHJKLabc"->options[[i]]}]]]]," "] , Dynamic[A2[[i]]=If[TrueQ[A1[[i]]==Null], ToString[bigNumber],A1[[i]]]; (*FIXME: need a much better parsing and filtering, problem is with 6.6 and . as dot in a sentence *) If[Length[StringSplit[StringReplace[A2[[i]],{","->" ",";"->" ",":"->" ","."->" "}]]]==1, a2=StringSplit[StringReplace[A2[[i]],{","->" ",";"->" ",":"->" ","."->" "}]][[1]],a2=StringSplit[StringReplace[A2[[i]],{","->" ",";"->" ",":"->" ","."->" "}]]];If[ToExpression[a2]===bigNumber,"\nAnswer?", myEnabled[[i]]=False;"\nAnswer: "<>Which[err[[i]][sol[[i]],a2,A1[[i]]]==True&&ToExpression[a2]=!=bigNumber, prev=True; (*a2=!=ToString[bigNumber] to Avoid ToExpression*) (* 0 practice Module no record, 1 test Module record, 2 practice module record*) Which[diag00==0&&first[[i]]==True,"Correct", diag00==1,If[first[[i]]==True,io[pn,i,True,A1[[i]], diag00]];first[[i]]=False;"", diag00==2,If[first[[i]]==True,io[pn,i,True,A1[[i]], diag00]];first[[i]]=False;"Correct",True, ""], err[[i]][sol[[i]],a2,A1[[i]]]==False&&ToExpression[a2]=!=bigNumber,prev=False; Which[diag00==0&&first[[i]]==True,"Incorrect", diag00==1,If[first[[i]]==True,io[pn,i,False,A1[[i]], diag00]];first[[i]]=False;"", diag00==2,If[first[[i]]==True,io[pn,i,False,A1[[i]], diag00]];first[[i]]=False;"Incorrect",True, ""],True,""]]], Deploy@InputField[Dynamic[A1[[i]]],String,Enabled->Dynamic[myEnabled[[i]]],FieldSize->inputsize0[[i]]]}] (*inputsize has to be written over here*) ],{i, 1,mult0}]] }]], (*{{level,Dynamic[level1[[1]]]},Range[max],ControlType\[Rule]PopupMenu},*) (*TrackedSymbols->Manipulate,(* SaveDefinitions->True,*)AppearanceElements->None,SynchronousUpdating\[Rule]False,ContinuousAction\[Rule]False,*) Initialization:>(stateH=False;state=False; libs; (* add the needed functions and constants *) (* these are the parameters that used to be passed as argument list *) (* FIXME: mult0 has to be written over by replacement and cannot be initialized here *) pn=pn0;proc=proc0;err=ToExpression[err0];level0=level00;max=max0;mult=mult0;diag0=diag00; io=ToExpression[IO00]; SetOptions[EvaluationNotebook[],DynamicEvaluationTimeout->100]; SetOptions[EvaluationNotebook[],PrivateNotebookOptions->{"PluginToolbarEnabled"->False},DockedCells->Cell[BoxData[ToBoxes[Image[CompressedData[" 1:eJzsfXVgVdfy7om7hyS412+F3uLuToi74k6wBA0uxZIQdycNlAItUkopFClQ XIsWKVao0RaK9Hszs/Y5CfTed+/9vff6fq/v/LE44Zwta6+9vplvZs3Mahgz 1meIqU6nm2BN//hET+kUFxed4GtO/+mcMHFwjBn9EUjtETX+0iQkB8ZmbMb2 X2yhWaqF5EnThaqm/908OAvmgZlwiylH7b4jsGpJMC5s6I5vNzTFDxvc8N1G lz+l/V8fJ2Mztv+XmxHnxmZsf/1mxLmxGdtfvxlxbmzG9tdvRpwbm7H99ZsR 58ZmbH/9ZsS5sRnbX78ZcW5sxvbXb0acG5ux/fWbEefGZmx//WbEubEZ21+/ GXFubMb2129GnBubsf31mxHnxmZsf/1mxPmf1KrGV/+daUiWofE70IVWHVd1 fI72vWrPvx/TYNWePS/nmd+f/3/V8X/so7p+9Xnx7Hm65/r5fP9UH7MM7fnr PN+e79//ant+TP/wW3DOH1tItX5WO0f/bM88X7Xjql/jHz2XfP8vnv9Pa8/h /B/NRT3O62o4v7i+O+5sbIrvjDj/NxuNZ3ABdCHUQgtkfGVcQ9JhEZxKn6nQ hWVSy5FjTIILYRpUqM5h3IVV4UudXyDXNA3Og3mQaqbB6jw5X35T88y82nzj e1oE5VBT/ZHj9LgI1voYWqj1Lx2moamG/vN5LPOln+FZWj+r+ld9Pqlj0lWj v01CM6swb8BAVf/l3s/JDd1zeHoWe1nVjquSbfox5fHkT9OQzGfncXAmPYca A6vAPG0s1PfyvNS4r3qZq8ZdP/7Vni0sU67N46HO18vpqucT/RicpfqgXfMf yYF/Jieqy5jn5eh/penlrn7c9WNuuD79ZhaUCffoctTrMwKpi404/6/iXOHi 38O5OeGcsSvfhVfpR11Ynmqh6l0xZi0MOC8w6GO9njJ/Tq9UxznfS+E8U66l C2GMF9P1C2TOc7/0fTfgPFzh3CT4jzh/RudrODfM8T/gPOeZOWeqyZ1/hvXq csTkOZxXxzpjVrAu2M0yHKOXZ+aa7KtqCuf6Vp1bGXAeWq1PYVkG2aXOqY7z Kkzqr/2PeMWfjfMq2Zj1B9mqf87ncZ62qArn9zYacf7vNv18NszL0CxNJyjd oOaPwrmp4CpP5kp1HaL0ZKYB91XzqQrLz3NmvT5R188y4MvAC/Q4EtwzzktF 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 lrPfy3tpNLgSNqSnObaCx9m8zQTkfnpZfB39J39IY7oCnjRn7HjNg7i5abX9 evVxNKbaOoU7yeN6hPPUxf5ST+bmxpeNOP9PcK5h0iRY87eHlFMrVTqZxztc W9MKz5BaMIxzR9JBJ26r2O/bBJyASYWkzxdKvjjrRXVttaeLjs7na1hGEG/v kyg4X7P9K1i0mkS6bpn4dplbzkvejF2H7kn8NesPjmVrO3yJrPW4x5bCfCDZ ptQ/t9ByqXfG9ZUPEO+1bh6HN2PKyc4che2Hvpc6i4yN+QWHiF8moAnxicak Y50JI/7zPhDc8vWvcU2X2CVw6vuu2Oa6yBzxFzLmeY8l5tDrzjzGl9Rft/bD UN8/CU2D0uHZbozE6vM1uGZW0EzSe33eRX2Sg06+K2levwurgOWCF97TXNa1 AtKl1iPXeW5N9jn7CthGOXjrkdSC5RxXrh/FOs05LAMe3vG4RAPB9W04t23D 7lswbZEAxz7LMWj5h4LzJ7+xbHyIZv1nwJrw2DC2QPZpNg9Ilr0pORemJr2D Gj0XSmsQUQ6Td8ajYsdpQx3eVRVfEE+fidpRlbKOymv83NhPwXm8jm2nij7X 18iZsnKd7CHpHl4k+Xnc3DkXl/hS79EpYo+wTmcuwvLFpOUYwnoWPINWogbp gf4TVsv4F3x6FTbtE4mLr5E4R+aLOm3+yZ69HENHHNMyLFPDeQZcY0tQt+8Q LR5Oj3MvI87/I5zra4IVCMZ1NOeUPs+UNXGF8yzxizEOGOcnb6m5ose5Y9+F cIgoUP5r/fWZfxGX5WtYERfgfVMvCc7Pw7T1FInpCpiYgW8Jl3My9qFJm8Gi 2+9q+wh9dvlH1Og9WfYH5LnlSH3zilwHK7IhD5ONvPvsD7CjuduMaym3GI1t h78Xrsv5MAvzD8GlzRS8SPh1GrBM1r0t24/F9nN3Vbwsgajw47Owak/6bDDJ No7zCUkV7sB7J3cdmyS+4MT152DTeQrx1HzSszmo3SkO+64q3s054RzXW6vn ArwYlocmJMsaRK4i/puKOmRzcDyNNel0qXtF42bvsxwtIhbivFb78jhNel7r dg0knPvlox7pLNs+89FnWqHUwn6g6dE5eXtkv+a6Yfmy39zxHxSeOJ/8axJt U7N2ki0zHFbd4lF/SA5hL1NsKFvvDNQkHsXr8C8NWgurd8bhvc/OqP0n6ALp aw7Cod0s1IlcK3XphNOQXGI/i+C8dQJ2EHGTfFbOL17+gezp4hFVAZsgVTOQ a9UL52o7SmKK+ViWsxfoGf8eOg9e3rPwSkwq3Ik77SX5eOoe4N5qMGoTP7ej 9ymxsGIrFku8Bcc+8v65ss+8ptfZN8c4r91viCHu9Rbh/J4xHu7fx7k2llK3 JTRTs83VnlsSZxmSoXygNMd4/daK3gfj9QRNRMH5Q+btObAhvWsdpe2drtn2 FkHKx8V5kvbB+cJ9r9C8rNh2BbrWM+DgnQ6/ySXid52bdwKWTUMRnFCE65pd ym3dgVuwJ13Ne7DZ+5Lu8K8gXTsVp0mpfXHhF9iT3fz36BK4t2D7/BeZw4yN 2YUHYN+O9FxUGuz9lqt9nTpPx5TMT+R31odX7zyFV594OAaQHiadYx+eKjE0 Jq3iUPzZJVnv8/SeL3EpXKumPo1XTeLtB69W1XftNzoN5q8NhWdHmv8dZsOx ZZzsgWZBMkbXgbi2tkcx15Gw8luEZlGzcVnLzT9x5Xc0GpBM8uEDNCFbtlbv RbB+IwSbDt8x1KPgnNTapLMdSNZ5xZC+6xyPWetUTVd97Swep70X7mPYu5XE YcbCnsa5Fq/VUzP3IfvBN1Xyau2bj0PBh6cMY8u83aH1NNQmTEseQZjKbWBZ VzesQmrrCs41e37ysrVSG7NGZJmqXRmkbDJzvxUS22fzTgz2nflO1b+ltpne nUfHcXDrME7ikXnNM3b+Brj3mCn+C+aGEgfF67da3AbjXOZPoOLroitI3+jj 2znule1zY9zrf9D0uadabSbOW9GvpXPMaxXOM+UdmISVEs5LCOezcZKUGeuU 2zTR/OJJJgzQcF7N3uf3ZRVYIDWWHIOI25Pu+vqHKpzbD0yDT3yp4Hx2/gnU 6UC2X/tJiEv5BN8/rZrDeZsuSB7Xi5K7+b5wzQOXfsOXgvMRgnO3FhOw+ehv hty4xMIvYdee7PuodLiEp8OebMla9Jw1u47HMV4ofqps3JllB2DSIU7yYF04 Hrd/Ety7TJO9Dj84eJv6ORG1SBc60HPUjyhErc6T8eVVLQfvKa9rHUNiyUnM Kr6I6QUXML/0EhJLz2HhhpuIX38LNWNV/TXLiGyy1xfh74Pn4wLvZUPguUA4 19l3g83f41Gj7SR0iVmJHSfvy7PzHqhk5qLP1DJY95gOz9hcsflrDi6GZddJ SN16TPJjef3gwRO1rsXPve3ME8Qs2QZHjjEmjsU1ch39CecRpXBsPgHv7bwm a+EsQ3hPSbZt6hBvl5hyiYFWsQ6cI+vSmng7DZZ+n5fJK2jsu82EW1QZLANy Re/yeqcV6QdX4jocPxc0NVdq3vDzPRCuvwVNu47DN1yna+830L0ZK3UEnEh3 mBLXUXXxeH7lSpyGxL+x7y44R64v81SLb6/bV8P5+s64u74pflhvjHv9T/Fu WE/jGBn2m7M+Dk4XX4jELYQpnFuHEMfsORtnbz4RjvztA+WHYzvaLjJfuL7w gvBMkdNs+zPW7Xm/1R7KPl+9/QLpzImSRzFgSrb4ZeYUHoFXmwloTnLertlw FG+9JDUMWZZ8T3NmWsZncCHcvhxdCfNmY3Di2iPsP/Wt6HPm7S4tJmHzkcdV OC84Bru2s6TOIdeZseLc76HFsOo4BUvXnzfsk7jz3EPU6DAW9anfTciGtSce G597XGqcD55fCeeuiajB+XrET2sSDmp0JH3+DQx1sb6iC50mgXSIPg9SO0F/ HyAZcZRwt50OenX8OlmL55oPHGv6dvRcOYf9/j9RZ7cfu4stR+/i+LUHuP2r elauNVP42fd4NSgJzn3mih+c42W5Rh3nkNSNJTuJZGJ89h7Zg078ZI+0PSuh 1tW3nfoO/canqhpchJOXwyol37Vg8xm1Hw21jNW7COfxqBW1WuPOWcp2IV1a L7RSeHt1P9zE5Pdh13OW5IhaktzmPXQ5D1b2Tqfz3Qm/Js1HIW3LRcO+VWcu /4xdp+7j1GNVm8eh/yJ4RReLbc/cnOtjmYSlyJo5x0VJPDv7EoPzlT0p9no+ 4byCcK7i23n9/Lv1jfHjejf8sOH/PMb/GjivyvVVsa55qmm5v8rfnim8nXOK 7IKJOxNez918VIXzyWSz950vdShkvfsf5MfYEh+z7zUH5+4rnFu0iINH/8Xw ScjCTV4Hy/0SHq0n4zWycV8ISoUrcfXNRxQP5znJOsJ/Uh5q9los60WHiKce vfBTNZzH46OjTw11pZkf2LaZKeu4zE047ob9vm6El9cjlkv+Kusb9gUMmUu6 q+M8vBXzvtR+pe7hCyIZ1m9HoXFEFpz9M2S/tNpk67t2jMOBmwrj3GJnpcOj fQwaek9HA985xEkno9aAafAaEA9n4tvOHNc1IEN86m7EvZtFLsDF3xQfuE2K e+0nX2HTvmviL2BcfE/PGTxqKcxeiUZdv3TUpnfCeXs24dlq7YJzjHx4/+cy OHachvq9xiJl45eqzqzGf8Sup3dziwZuet5uqR//5qAPYNd8Koq3nVE1rOn3 1NIdUqOrJuFWchjk/adLLbx6oWvg1JL0+fHbqlYItfErycbvPl1iEnlNW/Ig OC/FP0fmh3V4HryIh7t2jsPhm09FnjCH53NH5e6FrstU1BtG9yI7iG173nOT a4lwbTBZMw9TebDcF8b6P8d5V9zdYMT5f4rzqloeOUqviy7OE70uOciBqhYA cymud+jadQrO3lJxMly3wGdiFlz7LRSdZaXluSp5kSXxN+yHsosshQXZjed/ gcRkmb41iewtXj9X+nxW3ik4t0pAw4h0eIWnwXXActTsMQ1Hr1XVTjxNiuq1 gYtg/8ZQnLz+lGzBH6Suw9tkL7q2mIGNh1TtKZ7rifmHYN9+mqwHq5ycfLEp 68eSnd5qDNZ8dsWwP9FHBFyH5vGo220ZouJUfN6UspMw6TgZNaJ57Z/zMTNR l7Dm2XkS9l1R/WF+HTxtNWr0mIcGhEEXn2Sy9QmTActhGcg+9yTxuXN8EdeD 4lzUVoOSZC2BMXnq+gOY1vaDzqU/SrecNdRbP3j5ARp2m4ImXCuezue4UQvJ D0qVd2BL74vzeeuT3HHzWwKT9qPxWtgS4vIXZW3+J63OO+OM7fiRKzbCo+9S 2LZNQOn2U4b935PLdpC+n6zy7YM0eR6iam/VD1tHsjMR2w+rtUjuW9zKDbDp Nltqu1iLfZ6j5TLmSe4J22o1ogrh1ncuBs0pM+yNdYQG1KHrVLiQLLDReD7H uVdfJ1e6Jk+rVaF0j6m2Hzvzd6kzQThftSRQ/O3fbiDe/idx9r8Szi0CCzRf TCrhPF3j76qWgIUWu8BrHZ70rtw6q/pJvLcx758SlJADx15z4RpZKrlFuiA9 J8iQNVnGCeemOPssxSUCbfm2S7Agm9Sz70oMGJ8m9nlC5nHxCbE/x8pvKVzI BnD2XobuQ5Olnoq+3tH2k2TT1uiEI+d/xCG6mMPfR6MZ2Z4uLafhw8Mw7Is+ J/+g2OdcC5r3GTbVcuxdSVe4Exf2G58pPkSWIbz/oPfYMpjUD8cHn1yVWjn1 fObB2ncZbCMzVI2cgEzUIX3n0WlyFc5JBwfP/QjWXRYSt8+XdT/RUSQnLQcV iszkMeP6cZxz7uqbgmahi/HVffUsJ288QuOuC9EsuAyeLUdi+9lfBBus/yr2 3IX1O6NQP6ZM8kbZF2rJNRsJB1JH0y8VdoR7e9KDtYeXSwyNVds4NPefjbWf XZL90vX4ZL9+3d7zYf338SRjzxrk5orynQacsywUPwzpc5Yr9QTnM7Hj8D21 h5yGc1vicoxz9reb63MZw/IV/6PzHei98zED47Jx9Sclcw/deipxcM7hpcKt 2C+pOGJOtXpU+npReqyr+Slx2fT+GOe1BefBuLDBiPP/tOn9bszBFM612NdQ tZ7J+QiSg87rmSSvOXbRuVMCdp3+XuYL52LEzskXTu4cVa5yEYUT0LuLUOug /O7ZrmwQkYQrNGnyPzwiNWPcyFYLnFogvH1e8Tk4tYmn+ZUuNVM4F5N9T5xL PnzxFpn/4kun+5Wv24ujp29gPylG+3dG442oYji3nIwPjzwxrPXOyd8n/nbG uWlAmpJnNCd5njWIyYF9y6ES56bnuRy77dbUFzc4Xm/nHejeGoo6Q4olt559 TZYB2ajF+yZ3ScCeq0pP8X4LAXPXwq7PItQbXC6xe7qAlTCJyhAZx+PAY8Y2 A69VOQ1chtaxyyXH5FfB+c+o1WUaXo6sIB2YhLYjsmVd/4dHCp/TMz6DfZd5 1I91kqfGvg+db6rMe5uIPIkz1Pmli13kQrZyQ8JR3V50/4YRmJOp9pH7TVtD GzHnM9g0GISPtl3GY61GV1LFHqmBq/S5lkcaruo+1JZ1tWn49Ogtgz90QtJa 2BJv55gVFSeRp/aUqBZD6RJJ+rz/AvjFZeBbTY4e/uaB+O9cyHbhcWD7Q2w7 I87/NIyrNQ1VA85c9HCmAeeSK0R8l8eZ1954znqRXrJqNRHbTt432MLTMtfD sc88wnmpxMOwL8eU4078V0l8lhPblH2WoM/sD8S/NS1zo+Rc1PBeJD48xv7M vGOwp+s2iSFuF6TqtrMfsPHQ1bBuPh4L8/bJ/Xg96mcyPn+hCbT75D3JVeH9 jJ1bjcemIw8Ma0285sw4r8d1Ffy0+kPhSl7VHkr9JD02dNmHoqd+IVxd/OYh ludslXqLUbPWwoXklltkrtgcnIPH85p9eq5dE7BXsyV+oL4EzquEebcZUseW dSvX25DYonBVg4XrLLOMsw8nGzMwGW9HLJIYn4cazt27J8CV7FuOVTFrPxWz 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 CuR8nuR8oiLj/vn3+r0YgyOnFXf+vCfnsEnE9jKb7fFiEueZeWv93uC02bCY 5ZxYMwEuroTZI8g/ZDbsfAq7JpOlsPqddVGHFYjv4f3omMub5c3/xzWSd9Pk ErJbqedLZg0nGHglccvlW/yB42ccj5sO6CT4loMlixtwvpjH7ZelnQx7+JhJ iyVYTxS1UcE7c3IO/4A2M268wMifkUeMtjnv4uGsw+ZweRDcS7TM+Nxwji2f TZ65qNuTorxmmBNAHEwbmTBuYcpLbLyi23BMyix64QcmKjhgxk9s8Xhjympe 4CPADyDnKa4N/EcJixnwnJAPYd487vAg3LzQbsO+69zyOeEeiRUzTj2Fa8Yz BN9HY3LW+Vv/Xs49bHFPzlfcxHJejX99cfJ8Dxeb147S9fN0Pt4m7zvec/Ny dd73K3G+7zl6MUJNPnBgoub43vlrYge3Pugrx6/+TvX6/Ofwrye7voLvfb/e 889D7TGvPZ43N7X1hFfbpZrfx6+6Ny9GqsxDqXJM73P/voj/NzX+VeLa+bl6 XV1vvv3Xcu191J7v+mvDf3/VuQ1d85vaub9e3at/HXlyjjwtemE/eBPXyfxP ynkw/m/GvK+/QM6DEYw5H/O+/gI5D0Yw5nzM+/oL5DwYwZjzMe/rL5DzYARj zse8r79AzoMRjDkf877+bhI5/yddc/kn "], "Byte", ColorSpace -> "RGB", Interleaving -> True]]],"DockedCell"]]; (* changing of the DynamicUpdateInterval did not alter anythin *) (*SetOptions[EvaluationNotebook[],"DynamicUpdateInterval"\[Rule]0.2];*) (* the rest here sets up the math for the question *) answer=ConstantArray[" ",mult]; A1=ConstantArray["",mult]; A2=ConstantArray[ToString[bigNumber],mult]; answerStudent=ConstantArray[" ",mult]; myEnabled=ConstantArray[True,mult]; first=ConstantArray[True,mult]; Table[A2[[i]]=ToString[bigNumber];A1[[i]]=Null;myEnabled[[i]]=True,{i,1,mult}]; If[mult> 1,options=qRandList[{CharacterRange["a","z"][[1;;mult]],CharacterRange["A","Z"][[1;;mult]]}],options={" "}]; {again, variation, hint, solution}=proc; again=ToExpression[again]; {text,vars,sol}=ReleaseHold[ToExpression[StringReplace[variation,{"fghjkl"->ToString[pn]}]]]; (*hint=ReleaseHold[ToExpression[hint]];*) level1=again; ) ]],InputForm]<>"\n";