From f5333fe7708a6f319d1047e1814b981f2bced294 Mon Sep 17 00:00:00 2001 From: Michael Chow Date: Mon, 12 Jan 2015 16:23:34 -0500 Subject: [PATCH] initial commit, tested spatial span --- ospan/aospantask.py | 114 + ospan/genOspanStims.py | 33 + ospan/instructions/pracBoth/10.txt | 9 + ospan/instructions/pracBoth/11.txt | 17 + ospan/instructions/pracBoth/12.txt | 14 + ospan/instructions/pracDone/13.txt | 12 + ospan/instructions/pracOp/3.txt | 16 + ospan/instructions/pracOp/4.txt | 6 + ospan/instructions/pracOp/5.txt | 6 + ospan/instructions/pracOp/6.txt | 6 + ospan/instructions/pracOp/7.txt | 10 + ospan/instructions/pracOp/8.txt | 19 + ospan/instructions/pracOp/9.txt | 9 + ospan/instructions/pracTBR/1.txt | 7 + ospan/instructions/pracTBR/2.txt | 10 + ospan/instructions/pracTBR/3.txt | 11 + ospan/ospanFuncs.py | 128 + ospan/ostims.pickle | 9050 ++++++++++++++++++ other/rspan.txt | 19 + other/rspan_stims.csv | 99 + psychopytools.py | 128 + sharedFuncs.py | 295 + sspan/data/testout.tsv | 3 + sspan/genSpatStims.py | 90 + sspan/instructions/pracBoth/10.txt | 9 + sspan/instructions/pracBoth/11.txt | 17 + sspan/instructions/pracBoth/12.txt | 16 + sspan/instructions/pracDone/13.txt | 12 + sspan/instructions/pracOp/3.txt | 9 + sspan/instructions/pracOp/4.1.bmp | Bin 0 -> 60120 bytes sspan/instructions/pracOp/4.txt | 6 + sspan/instructions/pracOp/5.1.bmp | Bin 0 -> 60118 bytes sspan/instructions/pracOp/5.txt | 6 + sspan/instructions/pracOp/6.1.bmp | Bin 0 -> 60118 bytes sspan/instructions/pracOp/6.txt | 6 + sspan/instructions/pracOp/7.1.bmp | Bin 0 -> 60118 bytes sspan/instructions/pracOp/7.txt | 10 + sspan/instructions/pracOp/8.txt | 14 + sspan/instructions/pracOp/9.txt | 12 + sspan/instructions/pracTBR/1.txt | 11 + sspan/instructions/pracTBR/2.txt | 10 + sspan/spatial stims/symm1.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm10.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm11.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm12.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm13.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm14.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm15.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm16.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm17.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm18.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm19.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm1_prac.bmp | Bin 0 -> 60120 bytes sspan/spatial stims/symm2.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm20.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm21.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm22.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm23.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm24.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm25.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm26.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm26_prac.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm27.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm28.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm29.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm3.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm30.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm31.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm32.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm33.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm34.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm35.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm36.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm37.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm38.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm39.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm4.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm40.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm41.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm42.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm43.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm44.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm45.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm46.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm47.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm48.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm5.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm6.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm7.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm8.bmp | Bin 0 -> 60118 bytes sspan/spatial stims/symm9.bmp | Bin 0 -> 60118 bytes sspan/spatialFuncs.py | 69 + sspan/spatialspan.py | 95 + sspan/stims.pickle | 12628 ++++++++++++++++++++++++++ widencsv.py | 31 + 95 files changed, 23072 insertions(+) create mode 100755 ospan/aospantask.py create mode 100755 ospan/genOspanStims.py create mode 100644 ospan/instructions/pracBoth/10.txt create mode 100644 ospan/instructions/pracBoth/11.txt create mode 100644 ospan/instructions/pracBoth/12.txt create mode 100644 ospan/instructions/pracDone/13.txt create mode 100644 ospan/instructions/pracOp/3.txt create mode 100644 ospan/instructions/pracOp/4.txt create mode 100644 ospan/instructions/pracOp/5.txt create mode 100644 ospan/instructions/pracOp/6.txt create mode 100644 ospan/instructions/pracOp/7.txt create mode 100644 ospan/instructions/pracOp/8.txt create mode 100644 ospan/instructions/pracOp/9.txt create mode 100644 ospan/instructions/pracTBR/1.txt create mode 100644 ospan/instructions/pracTBR/2.txt create mode 100644 ospan/instructions/pracTBR/3.txt create mode 100755 ospan/ospanFuncs.py create mode 100755 ospan/ostims.pickle create mode 100644 other/rspan.txt create mode 100644 other/rspan_stims.csv create mode 100755 psychopytools.py create mode 100644 sharedFuncs.py create mode 100644 sspan/data/testout.tsv create mode 100755 sspan/genSpatStims.py create mode 100644 sspan/instructions/pracBoth/10.txt create mode 100644 sspan/instructions/pracBoth/11.txt create mode 100644 sspan/instructions/pracBoth/12.txt create mode 100644 sspan/instructions/pracDone/13.txt create mode 100644 sspan/instructions/pracOp/3.txt create mode 100755 sspan/instructions/pracOp/4.1.bmp create mode 100644 sspan/instructions/pracOp/4.txt create mode 100755 sspan/instructions/pracOp/5.1.bmp create mode 100644 sspan/instructions/pracOp/5.txt create mode 100755 sspan/instructions/pracOp/6.1.bmp create mode 100644 sspan/instructions/pracOp/6.txt create mode 100755 sspan/instructions/pracOp/7.1.bmp create mode 100644 sspan/instructions/pracOp/7.txt create mode 100644 sspan/instructions/pracOp/8.txt create mode 100644 sspan/instructions/pracOp/9.txt create mode 100644 sspan/instructions/pracTBR/1.txt create mode 100644 sspan/instructions/pracTBR/2.txt create mode 100755 sspan/spatial stims/symm1.bmp create mode 100755 sspan/spatial stims/symm10.bmp create mode 100755 sspan/spatial stims/symm11.bmp create mode 100755 sspan/spatial stims/symm12.bmp create mode 100755 sspan/spatial stims/symm13.bmp create mode 100755 sspan/spatial stims/symm14.bmp create mode 100755 sspan/spatial stims/symm15.bmp create mode 100755 sspan/spatial stims/symm16.bmp create mode 100755 sspan/spatial stims/symm17.bmp create mode 100755 sspan/spatial stims/symm18.bmp create mode 100755 sspan/spatial stims/symm19.bmp create mode 100755 sspan/spatial stims/symm1_prac.bmp create mode 100755 sspan/spatial stims/symm2.bmp create mode 100755 sspan/spatial stims/symm20.bmp create mode 100755 sspan/spatial stims/symm21.bmp create mode 100755 sspan/spatial stims/symm22.bmp create mode 100755 sspan/spatial stims/symm23.bmp create mode 100755 sspan/spatial stims/symm24.bmp create mode 100755 sspan/spatial stims/symm25.bmp create mode 100755 sspan/spatial stims/symm26.bmp create mode 100755 sspan/spatial stims/symm26_prac.bmp create mode 100755 sspan/spatial stims/symm27.bmp create mode 100755 sspan/spatial stims/symm28.bmp create mode 100755 sspan/spatial stims/symm29.bmp create mode 100755 sspan/spatial stims/symm3.bmp create mode 100755 sspan/spatial stims/symm30.bmp create mode 100755 sspan/spatial stims/symm31.bmp create mode 100755 sspan/spatial stims/symm32.bmp create mode 100755 sspan/spatial stims/symm33.bmp create mode 100755 sspan/spatial stims/symm34.bmp create mode 100755 sspan/spatial stims/symm35.bmp create mode 100755 sspan/spatial stims/symm36.bmp create mode 100755 sspan/spatial stims/symm37.bmp create mode 100755 sspan/spatial stims/symm38.bmp create mode 100755 sspan/spatial stims/symm39.bmp create mode 100755 sspan/spatial stims/symm4.bmp create mode 100755 sspan/spatial stims/symm40.bmp create mode 100755 sspan/spatial stims/symm41.bmp create mode 100755 sspan/spatial stims/symm42.bmp create mode 100755 sspan/spatial stims/symm43.bmp create mode 100755 sspan/spatial stims/symm44.bmp create mode 100755 sspan/spatial stims/symm45.bmp create mode 100755 sspan/spatial stims/symm46.bmp create mode 100755 sspan/spatial stims/symm47.bmp create mode 100755 sspan/spatial stims/symm48.bmp create mode 100755 sspan/spatial stims/symm5.bmp create mode 100755 sspan/spatial stims/symm6.bmp create mode 100755 sspan/spatial stims/symm7.bmp create mode 100755 sspan/spatial stims/symm8.bmp create mode 100755 sspan/spatial stims/symm9.bmp create mode 100755 sspan/spatialFuncs.py create mode 100755 sspan/spatialspan.py create mode 100644 sspan/stims.pickle create mode 100644 widencsv.py diff --git a/ospan/aospantask.py b/ospan/aospantask.py new file mode 100755 index 0000000..99ecdbf --- /dev/null +++ b/ospan/aospantask.py @@ -0,0 +1,114 @@ +from psychopy import visual, event +import pickle +import sys +sys.path.append('..') +from psychopytools import Buttons +from ospanFuncs import extendMe, procRec, dispOp, dispTBR +from sharedFuncs import genSpatialGrid, calcOpsDur, RecButtons, genTrials, dispInstructions, task, genInstructions, procVer + + +################## +#Parameters +fname_stimDict = "ostims.pickle" +letters = [["F", "H", "J"], + ["K", "L", "N"], + ["P", "Q", "R"], + ["S", "T", "Y"]] + + +verPrompt = "" +recPrompt = "Select the letters in order. Use the blank button to fill in forgotten letters." + +################## + + +f1 = open(fname_stimDict, "r") +stimDict = pickle.load(f1) +f1.close() +letters_flat = extendMe(letters) + +#INITIALIZE TRIALS +trialStims = genTrials([6,6],1, stimDict, letters_flat) +pracStims = genTrials([2], 2, stimDict, letters_flat) +pracOps = genTrials([1], 10, stimDict, letters_flat) +pracBoth = genTrials([2], 3, stimDict, letters_flat) +win = visual.Window((1600, 1200), fullscr = False, color = "white", units = 'pix') +myMouse = event.Mouse(win = win) +instruct_dir = ('instructions/pracTBR', 'instructions/pracOp', 'instructions/pracBoth', 'instructions/pracDone') +instructs = [genInstructions(win, fname) for fname in instruct_dir] +## +#GENERATE STIMULI +#Response Grid +nrow, ncol = 4,3 +boxHght, boxWdth = 50, 50 +textHght = boxHght - 15 +Rpos, Rwdth, Rhght, Rtxt, ltrPos = genSpatialGrid(600,450,nrow,ncol, optWdth = 125, optHght = 50, optDist = 200, + recWdth = boxWdth, recHght = boxHght, + letters = True, gridPos = (0, 100)) + +RecScreen = RecButtons(win, Rpos, Rwdth, Rhght, Rtxt, + txtKwargs = {"color": "black", "height": textHght}, + lineColor = "black", fillColor = win.color, interpolate = False) + +Prompt = visual.TextStim(win, text = recPrompt, pos = (0, 450), color = "black") + +LetterStims = [] +for row in range(nrow): + for col in range(ncol): + LetterStims.append(visual.TextStim(win, text = " " + letters[row][col], + pos = ltrPos[ncol*row + col], + alignHoriz = "left", + height = textHght, + color = "black")) + +#CREATE PROCEDURES +#Processing task Stimulus +OpStim = visual.TextStim(win, color = "black", height = textHght) +dispOp = dispOp(win, OpStim) +#Verification Screen +VerText = visual.TextStim(win, text = verPrompt, color = "black", pos = (0, 150), height = textHght) +Vwdth, Vhght = 100, 50 +VerScreen = Buttons(win, + [(-200 - Vwdth/2, 0), (200 - Vwdth/2, 0)], #pos + [Vwdth]*2, #width + [Vhght]*2, #height + ["True", "False"], #text + txtKwargs = {"color":"black", "height" : textHght}, + lineColor = "black", lineWidth = 5, interpolate = False, fillColor = "white") +procVer = procVer(win, myMouse, TxtStim = VerText, VerScreen = VerScreen) +#TBR +TBRStim = visual.TextStim(win, color = "black", height = textHght) +dispTBR = dispTBR(win, TBRStim, letters, color = 'black') +#Recall +procRec = procRec(win, myMouse, RecScreen, Prompt, LetterStims, letters) + +pars = dict(screenBlankInterval = .25, + opsPracFeedbackTime = 1, + TBRItemTime = .75, + feedbackTime = 2, + procRec = procRec, + procVer = procVer, + dispOp = dispOp, + dispTBR = dispTBR) + +#RUN TASK +#Introduction +#Practice TBR Item and Recall +#dispInstructions(win, myMouse, instructs[0]) +#task(win, myMouse, pracStims, kwargs_dict, opsDur = 60, TBROnly = True, **pars) +#Practice Ops and calc ops duration +dispInstructions(win, myMouse, instructs[1]) +task(win, myMouse, pracOps, opsDur = 60, opsOnly = True, opsFeedback = True, **pars) +RTs = [trial['op.RT.W'][0] for trial in pracOps.trialList] #get RTs for practice ops +print RTs +opsDur = calcOpsDur(RTs, trimNum = 2) +print opsDur +##Practice both +dispInstructions(win, myMouse, instructs[2]) +task(win, myMouse, pracBoth, opsDur = opsDur, **pars) +##Actual Task +dispInstructions(win, myMouse, instructs[3]) +task(win, myMouse, trialStims, opsDur = opsDur, **pars) +win.close() +#Save Data +trialStims.saveAsWideText('data/testout.tsv') diff --git a/ospan/genOspanStims.py b/ospan/genOspanStims.py new file mode 100755 index 0000000..ac42c99 --- /dev/null +++ b/ospan/genOspanStims.py @@ -0,0 +1,33 @@ +import random +import pickle + +def genMathOps(multDig1, multDig2, divDig1, divDig2, add, sub): + multDivList = ["%s * %s"%(ii,jj) for ii in multDig1 for jj in multDig2 if ii != jj] #diff multipliers + multDivList.extend(["%s / %s"%(ii,jj) for ii in divDig1 for jj in divDig2 if (ii%jj == 0)]) #must divide evenly + arith = [" + %s"%ii for ii in add] + arith.extend([" - %s"%ii for ii in sub]) + Ops = [(muldiv + adsub) for muldiv in multDivList for adsub in arith #keep those that >= 0 + if eval(muldiv + adsub) >= 0] + opsList = [] + for op in Ops: + #Solutions + corr = random.randint(0,1) + adjust = random.randint(1, 5)*(-1**random.randint(0,1)) #to add or subtract to ans + ans = eval(op) + (not corr) * adjust #if correct don't adjust + while ans < 0: + adjust = random.randint(1, 5) #re-adjust (there will likely be more additions than subtractions as a result) + ans = eval(op) + adjust + opsList.append([op, (ans, bool(corr))]) + + + + return opsList + +ranges = [range(1,10)]*6 +stimDict = genMathOps(*ranges) #1 through 9 for each + + +fname_storage = "ostims.pickle" +f1 = open(fname_storage, "w") +pickle.dump(stimDict, f1) +f1.close() diff --git a/ospan/instructions/pracBoth/10.txt b/ospan/instructions/pracBoth/10.txt new file mode 100644 index 0000000..81c2680 --- /dev/null +++ b/ospan/instructions/pracBoth/10.txt @@ -0,0 +1,9 @@ +Now you will practice doing both parts of the experiment at the same time. + +In the next practice set, you will be given one of the math problems. Once you make your decision about the picture, a square will appear on the screen. Try and remember the letter. + +In the previous section where you only solved math problems, the computer computed your average time to solve the problems. If you take longer than your average time, the computer will automatically move you onto the letter part, thus skipping the True or False part and will count that problem as a math error. +Therefore it is VERY important to solve the problems as quickly and as accurately as possible + + +Click the mouse to continue. diff --git a/ospan/instructions/pracBoth/11.txt b/ospan/instructions/pracBoth/11.txt new file mode 100644 index 0000000..702c3d6 --- /dev/null +++ b/ospan/instructions/pracBoth/11.txt @@ -0,0 +1,17 @@ + +After the square goes away, another math problem will appear, and then another letter. + +At the end of each set of letters and math problems, a recall screen will appear. Use the mouse to select the letters you just saw. Try your best to get the letters in the correct order. + +It is important to work QUICKLY and ACCURATELY on the math. Make sure you know the answer to the math hproblem before clicking to the next screen. + + +You will not be told if your answer to the math problem is correct. + +After the recall screen, you will be given feedback about your performance regarding both the number of letters recalled and the percent correct on the math problems. + + + +Do you have any questions? + +Click the mouse to continue. diff --git a/ospan/instructions/pracBoth/12.txt b/ospan/instructions/pracBoth/12.txt new file mode 100644 index 0000000..a8c4537 --- /dev/null +++ b/ospan/instructions/pracBoth/12.txt @@ -0,0 +1,14 @@ + +During the feedback, you will see a number in red in the top right of the screen. + +This indicates your percent correct for the math problems for the entire experiment. + +It is VERY important for you to keep this at least at 85%. + +For our purposes, we can only use your data if you are at least 85% accurate on the math. + +Therefore, in order for you to be asked to come back for future experiments, you must perform at least at 85% on the math problems problems WHILE doing your best to recall as many letters as possible. + +Do you have any questions? + +Click the mouse to try some practice problems. diff --git a/ospan/instructions/pracDone/13.txt b/ospan/instructions/pracDone/13.txt new file mode 100644 index 0000000..32eed07 --- /dev/null +++ b/ospan/instructions/pracDone/13.txt @@ -0,0 +1,12 @@ +That is the end of the practice. + +The real trials will look just like the practice trials you just completed. + +Some sets will have more problems than others. + +It is important that you do your best on both the symmetry and the square parts of this experiment. + + +Also, remember to keep your symmetry accuracy at 85% or above. + +Do you have any questions? If not, click the mouse to begin the experiment. diff --git a/ospan/instructions/pracOp/3.txt b/ospan/instructions/pracOp/3.txt new file mode 100644 index 0000000..9d6736d --- /dev/null +++ b/ospan/instructions/pracOp/3.txt @@ -0,0 +1,16 @@ +Now you will practice doing the math part of the experiment. + +A math problem will appear on the screen, like this: + +(2 * 1) + 1 = ? + +As soon as you see the math problem, you should compute the correct answer. + +In the above problem, the answer 3 is correct. + +When you know the correct answer, you will click the mouse button. + + + + +Click the mouse to continue. diff --git a/ospan/instructions/pracOp/4.txt b/ospan/instructions/pracOp/4.txt new file mode 100644 index 0000000..efb695e --- /dev/null +++ b/ospan/instructions/pracOp/4.txt @@ -0,0 +1,6 @@ + +Notice that this picture is symmetrical about the red line. + +In the real pictures the red line will not be present. + +Click the mouse to continue. diff --git a/ospan/instructions/pracOp/5.txt b/ospan/instructions/pracOp/5.txt new file mode 100644 index 0000000..61afc32 --- /dev/null +++ b/ospan/instructions/pracOp/5.txt @@ -0,0 +1,6 @@ + +Here, the picture is NOT symmetrical. + +If you folded this across the red line, the boxes would NOT line up. + +Click the mouse to continue. diff --git a/ospan/instructions/pracOp/6.txt b/ospan/instructions/pracOp/6.txt new file mode 100644 index 0000000..41d436c --- /dev/null +++ b/ospan/instructions/pracOp/6.txt @@ -0,0 +1,6 @@ + +This is another example of a picture that IS symmetrical. + +If you folded it vertically, the two sides would line up. + +Click the mouse to continue. diff --git a/ospan/instructions/pracOp/7.txt b/ospan/instructions/pracOp/7.txt new file mode 100644 index 0000000..6734a34 --- /dev/null +++ b/ospan/instructions/pracOp/7.txt @@ -0,0 +1,10 @@ + + + +Here is another example of a picture that is NOT symmetrical. + +Notice that if folded, the two sides would not line up. + +If you have any questions about how symmetry works, please ask them now. + +Click the mouse to continue. diff --git a/ospan/instructions/pracOp/8.txt b/ospan/instructions/pracOp/8.txt new file mode 100644 index 0000000..3199d76 --- /dev/null +++ b/ospan/instructions/pracOp/8.txt @@ -0,0 +1,19 @@ +You will see a number displayed on the next screen, along with a box marked TRUE and a box marked FALSE. + +If the number on the screen is the correct answer to the math problem, click on the TRUE box with the mouse. + +If the number is not the correct answer, click on the FLASE box. + +For example, if you see the problem +(2 * 2) + 1 = +and the number on the following screen is 5 +click the TRUE box, because the answer is correct. + +If you see the problem +(2 * 2) + 1 = ? +and the number on the next screen is 6 +click the FALSE box, because the correct answer is 5, not 6. + +After you click on one of the boxes, the computer will tell you if you made the right choice. + +Click the mouse to continue. diff --git a/ospan/instructions/pracOp/9.txt b/ospan/instructions/pracOp/9.txt new file mode 100644 index 0000000..139475c --- /dev/null +++ b/ospan/instructions/pracOp/9.txt @@ -0,0 +1,9 @@ +It is VERY important that you get the math problems correct. It is also important that you try and solve the problem as quickly as you can. + + +Do you have any questions? + + + + +When you are ready, click the mouse to try some practice problems. diff --git a/ospan/instructions/pracTBR/1.txt b/ospan/instructions/pracTBR/1.txt new file mode 100644 index 0000000..03504b5 --- /dev/null +++ b/ospan/instructions/pracTBR/1.txt @@ -0,0 +1,7 @@ +In this experiment you will try to memorize letters you see on the screen while you also solve simple math problems. + +In the next few minutes, you will have some practice to get you familiar with how the experiment works. + +We will begin by practicing the letter part of the experiment. + +Click the mouse to continue. diff --git a/ospan/instructions/pracTBR/2.txt b/ospan/instructions/pracTBR/2.txt new file mode 100644 index 0000000..2b6702b --- /dev/null +++ b/ospan/instructions/pracTBR/2.txt @@ -0,0 +1,10 @@ +For this practice set, letters will appear on the screen one at a time. + +Try to remember each letter in the order it was presented in. + +After 3 to 7 letters have been shown, you will see a screen listing 12 possible letters with a check box beside each one. + +Your job is to select each letter in the order presented. To do this, use the mouse to select the appropriate box beside each letter. The letters you select will appear at the bottom of the screen. + + +Click the mouse button to continue. diff --git a/ospan/instructions/pracTBR/3.txt b/ospan/instructions/pracTBR/3.txt new file mode 100644 index 0000000..6c74c08 --- /dev/null +++ b/ospan/instructions/pracTBR/3.txt @@ -0,0 +1,11 @@ +When you have selected all the letters, and they are in the correct order, hit the EXIT box at the bottom right of the screen. + +If you make a mistake, hit the CLEAR box to start over. + +If you forget one of the letters, click the BLANK box to mark the spot for the missing letter. + +Remember, it is very important to get the letters in the same order as you see them. If you forget one, use the BLANK box to mark the position. + +Do you have any questions so far? + +When you're ready, click the mouse button to start the letter practice. diff --git a/ospan/ospanFuncs.py b/ospan/ospanFuncs.py new file mode 100755 index 0000000..0e88478 --- /dev/null +++ b/ospan/ospanFuncs.py @@ -0,0 +1,128 @@ +from psychopy import visual, core +from sharedFuncs import waitScreen, finalResps + + +def extendMe(letters): + letters = [row[:] for row in letters] + for n in range(1,len(letters)): + letters[0].extend(letters[n]) + return letters[0] + + +def num2ltr(num, letters): + return letters[num / len(letters[0])][num % len(letters[0])] + +class procRec: + def __init__(self, win, myMouse, RecScreen, Prompt, LetterStims, letters): + self.win, self.myMouse = win, myMouse + self.RecScreen, self.Prompt, self.LetterStims = RecScreen, Prompt, LetterStims + self.letters = letters + + def __call__(self): + return self.procRec(**self.__dict__) + + def procRec(self, win, myMouse, RecScreen, Prompt, LetterStims, letters, lastTime = 0): + LettersChosen = visual.TextStim(win, text = "", pos = (0,RecScreen.stimList[-1].Rect.pos[1] - 100), height = RecScreen.txtKwargs[0]["height"], color = "black") + RecScreen.setAutoDraw(drawText=False) + for stim in RecScreen.stimList[-3:]: stim.Text.setAutoDraw(True) + for stim in LetterStims: stim.setAutoDraw(True) + Prompt.setAutoDraw(True) + LettersChosen.setAutoDraw(True) + win.flip() + myMouse.clickReset() + resps = [] + while not RecScreen.done: + click, time = myMouse.getPressed(getTime=True) + if click[0] and time[0]: + x,y = myMouse.getPos() + sel = RecScreen.selButtons(x,y) + if sel: + stim, stimLab = sel + if stim.Text.text in ("Submit", "Clear", "Blank"): + origRCol, origTCol = stim.Rect.fillColor, stim.Text.color + stim.Rect.setFillColor("black") + stim.Text.setColor("white") + win.flip() + core.wait(.1) + stim.Rect.setFillColor(origRCol) + stim.Text.setColor(origTCol) + resps.append(stimLab) + else: + stim.Rect.setFillColor("white") + resps.append(num2ltr(stimLab, letters)) + crnt = " ".join([str(ii) for ii in finalResps(resps)]) + crnt = crnt.replace("Blank", "_").replace("Submit", "") + LettersChosen.setText(crnt) + myMouse.clickReset() + lastTime = time[0] + RecScreen.draw(drawRect = True, drawText = None) + win.flip() + RecScreen.reset() + for stim in LetterStims: stim.setAutoDraw(False) + Prompt.setAutoDraw(False) + LettersChosen.setAutoDraw(False) + return resps, lastTime + +class procVer: + def __init__(self, win, myMouse, TxtStim, VerScreen): + self.win, self.myMouse, self.TxtStim, self.VerScreen = win, myMouse, TxtStim, VerScreen + + def __call__(self, ans_probe): + return self.proc(self.win, self.myMouse, ans_probe, self.TxtStim, self.VerScreen) + + def proc(self, win, myMouse, ans_probe, TxtStim, VerScreen): + TxtStim.setText(ans_probe) + TxtStim.draw() + VerScreen.draw() + win.flip() + myMouse.clickReset() #TODO: replace with waitscreen + lastTime = myMouse.getPressed(getTime = True)[1][0] + ans = None + while not VerScreen.done: + click, time = myMouse.getPressed(getTime=True) + if click[0] and time[0] != lastTime: + x,y = myMouse.getPos() + ans = VerScreen.selButtons(x,y) + lastTime = time[0] + VerScreen.reset() + if ans == "True": return True, lastTime + else: return False, lastTime + + +class dispOp: + def __init__(self, win, OpStim): + self.win = win + self.OpStim = OpStim + + def __call__(self, opVal): + self.proc(self.win, opVal, self.OpStim) + + def proc(self, win, opVal, OpStim): + OpStim.setText(opVal) + OpStim.draw() + win.flip() + +class dispTBR: + def __init__(self, win, TxtStim, letters, color): + self.win, self.TxtStim, self.letters, self.color = win, TxtStim, letters, color + + def __call__(self, toDisp): + self.proc(self.win, toDisp, self.TxtStim, self.letters, self.color) + + def proc(self, win, toDisp, TxtStim, letters, color): + if type(toDisp) == int: toDisp = num2ltr(toDisp, letters) + TxtStim.setText(toDisp) + TxtStim.setColor(color) + TxtStim.draw() + win.flip() + + +def dispInstructions(win, myMouse, Stims, lastTime = 0): + if not hasattr(Stims, "__len__"): Stims = [Stims] + for stim in Stims: + try: stim.draw() + except: + for entry in stim: entry.draw() + win.flip() + dur, lastTime = waitScreen(win, myMouse, lastTime = lastTime) + return lastTime diff --git a/ospan/ostims.pickle b/ospan/ostims.pickle new file mode 100755 index 0000000..e095f88 --- /dev/null +++ b/ospan/ostims.pickle @@ -0,0 +1,9050 @@ +(lp0 +(lp1 +S'1 * 2 + 1' +p2 +a(I7 +I00 +tp3 +aa(lp4 +S'1 * 2 + 2' +p5 +a(I1 +I00 +tp6 +aa(lp7 +S'1 * 2 + 3' +p8 +a(I5 +I01 +tp9 +aa(lp10 +S'1 * 2 + 4' +p11 +a(I6 +I01 +tp12 +aa(lp13 +S'1 * 2 + 5' +p14 +a(I4 +I00 +tp15 +aa(lp16 +S'1 * 2 + 6' +p17 +a(I8 +I01 +tp18 +aa(lp19 +S'1 * 2 + 7' +p20 +a(I7 +I00 +tp21 +aa(lp22 +S'1 * 2 + 8' +p23 +a(I8 +I00 +tp24 +aa(lp25 +S'1 * 2 + 9' +p26 +a(I9 +I00 +tp27 +aa(lp28 +S'1 * 2 - 1' +p29 +a(I4 +I00 +tp30 +aa(lp31 +S'1 * 2 - 2' +p32 +a(I0 +I01 +tp33 +aa(lp34 +S'1 * 3 + 1' +p35 +a(I4 +I01 +tp36 +aa(lp37 +S'1 * 3 + 2' +p38 +a(I5 +I01 +tp39 +aa(lp40 +S'1 * 3 + 3' +p41 +a(I2 +I00 +tp42 +aa(lp43 +S'1 * 3 + 4' +p44 +a(I7 +I01 +tp45 +aa(lp46 +S'1 * 3 + 5' +p47 +a(I7 +I00 +tp48 +aa(lp49 +S'1 * 3 + 6' +p50 +a(I4 +I00 +tp51 +aa(lp52 +S'1 * 3 + 7' +p53 +a(I10 +I01 +tp54 +aa(lp55 +S'1 * 3 + 8' +p56 +a(I11 +I01 +tp57 +aa(lp58 +S'1 * 3 + 9' +p59 +a(I12 +I01 +tp60 +aa(lp61 +S'1 * 3 - 1' +p62 +a(I4 +I00 +tp63 +aa(lp64 +S'1 * 3 - 2' +p65 +a(I1 +I01 +tp66 +aa(lp67 +S'1 * 3 - 3' +p68 +a(I5 +I00 +tp69 +aa(lp70 +S'1 * 4 + 1' +p71 +a(I1 +I00 +tp72 +aa(lp73 +S'1 * 4 + 2' +p74 +a(I6 +I01 +tp75 +aa(lp76 +S'1 * 4 + 3' +p77 +a(I7 +I01 +tp78 +aa(lp79 +S'1 * 4 + 4' +p80 +a(I8 +I01 +tp81 +aa(lp82 +S'1 * 4 + 5' +p83 +a(I4 +I00 +tp84 +aa(lp85 +S'1 * 4 + 6' +p86 +a(I5 +I00 +tp87 +aa(lp88 +S'1 * 4 + 7' +p89 +a(I11 +I01 +tp90 +aa(lp91 +S'1 * 4 + 8' +p92 +a(I12 +I01 +tp93 +aa(lp94 +S'1 * 4 + 9' +p95 +a(I13 +I01 +tp96 +aa(lp97 +S'1 * 4 - 1' +p98 +a(I3 +I01 +tp99 +aa(lp100 +S'1 * 4 - 2' +p101 +a(I7 +I00 +tp102 +aa(lp103 +S'1 * 4 - 3' +p104 +a(I1 +I01 +tp105 +aa(lp106 +S'1 * 4 - 4' +p107 +a(I2 +I00 +tp108 +aa(lp109 +S'1 * 5 + 1' +p110 +a(I4 +I00 +tp111 +aa(lp112 +S'1 * 5 + 2' +p113 +a(I7 +I01 +tp114 +aa(lp115 +S'1 * 5 + 3' +p116 +a(I3 +I00 +tp117 +aa(lp118 +S'1 * 5 + 4' +p119 +a(I7 +I00 +tp120 +aa(lp121 +S'1 * 5 + 5' +p122 +a(I10 +I01 +tp123 +aa(lp124 +S'1 * 5 + 6' +p125 +a(I11 +I01 +tp126 +aa(lp127 +S'1 * 5 + 7' +p128 +a(I12 +I01 +tp129 +aa(lp130 +S'1 * 5 + 8' +p131 +a(I13 +I01 +tp132 +aa(lp133 +S'1 * 5 + 9' +p134 +a(I12 +I00 +tp135 +aa(lp136 +S'1 * 5 - 1' +p137 +a(I2 +I00 +tp138 +aa(lp139 +S'1 * 5 - 2' +p140 +a(I3 +I01 +tp141 +aa(lp142 +S'1 * 5 - 3' +p143 +a(I2 +I01 +tp144 +aa(lp145 +S'1 * 5 - 4' +p146 +a(I1 +I01 +tp147 +aa(lp148 +S'1 * 5 - 5' +p149 +a(I5 +I00 +tp150 +aa(lp151 +S'1 * 6 + 1' +p152 +a(I7 +I01 +tp153 +aa(lp154 +S'1 * 6 + 2' +p155 +a(I8 +I01 +tp156 +aa(lp157 +S'1 * 6 + 3' +p158 +a(I4 +I00 +tp159 +aa(lp160 +S'1 * 6 + 4' +p161 +a(I10 +I01 +tp162 +aa(lp163 +S'1 * 6 + 5' +p164 +a(I10 +I00 +tp165 +aa(lp166 +S'1 * 6 + 6' +p167 +a(I12 +I01 +tp168 +aa(lp169 +S'1 * 6 + 7' +p170 +a(I10 +I00 +tp171 +aa(lp172 +S'1 * 6 + 8' +p173 +a(I14 +I01 +tp174 +aa(lp175 +S'1 * 6 + 9' +p176 +a(I14 +I00 +tp177 +aa(lp178 +S'1 * 6 - 1' +p179 +a(I3 +I00 +tp180 +aa(lp181 +S'1 * 6 - 2' +p182 +a(I1 +I00 +tp183 +aa(lp184 +S'1 * 6 - 3' +p185 +a(I2 +I00 +tp186 +aa(lp187 +S'1 * 6 - 4' +p188 +a(I2 +I01 +tp189 +aa(lp190 +S'1 * 6 - 5' +p191 +a(I4 +I00 +tp192 +aa(lp193 +S'1 * 6 - 6' +p194 +a(I3 +I00 +tp195 +aa(lp196 +S'1 * 7 + 1' +p197 +a(I7 +I00 +tp198 +aa(lp199 +S'1 * 7 + 2' +p200 +a(I7 +I00 +tp201 +aa(lp202 +S'1 * 7 + 3' +p203 +a(I5 +I00 +tp204 +aa(lp205 +S'1 * 7 + 4' +p206 +a(I11 +I01 +tp207 +aa(lp208 +S'1 * 7 + 5' +p209 +a(I8 +I00 +tp210 +aa(lp211 +S'1 * 7 + 6' +p212 +a(I13 +I01 +tp213 +aa(lp214 +S'1 * 7 + 7' +p215 +a(I14 +I01 +tp216 +aa(lp217 +S'1 * 7 + 8' +p218 +a(I13 +I00 +tp219 +aa(lp220 +S'1 * 7 + 9' +p221 +a(I16 +I01 +tp222 +aa(lp223 +S'1 * 7 - 1' +p224 +a(I2 +I00 +tp225 +aa(lp226 +S'1 * 7 - 2' +p227 +a(I5 +I01 +tp228 +aa(lp229 +S'1 * 7 - 3' +p230 +a(I4 +I01 +tp231 +aa(lp232 +S'1 * 7 - 4' +p233 +a(I0 +I00 +tp234 +aa(lp235 +S'1 * 7 - 5' +p236 +a(I2 +I01 +tp237 +aa(lp238 +S'1 * 7 - 6' +p239 +a(I3 +I00 +tp240 +aa(lp241 +S'1 * 7 - 7' +p242 +a(I2 +I00 +tp243 +aa(lp244 +S'1 * 8 + 1' +p245 +a(I6 +I00 +tp246 +aa(lp247 +S'1 * 8 + 2' +p248 +a(I10 +I01 +tp249 +aa(lp250 +S'1 * 8 + 3' +p251 +a(I6 +I00 +tp252 +aa(lp253 +S'1 * 8 + 4' +p254 +a(I12 +I01 +tp255 +aa(lp256 +S'1 * 8 + 5' +p257 +a(I8 +I00 +tp258 +aa(lp259 +S'1 * 8 + 6' +p260 +a(I11 +I00 +tp261 +aa(lp262 +S'1 * 8 + 7' +p263 +a(I15 +I01 +tp264 +aa(lp265 +S'1 * 8 + 8' +p266 +a(I16 +I01 +tp267 +aa(lp268 +S'1 * 8 + 9' +p269 +a(I16 +I00 +tp270 +aa(lp271 +S'1 * 8 - 1' +p272 +a(I5 +I00 +tp273 +aa(lp274 +S'1 * 8 - 2' +p275 +a(I1 +I00 +tp276 +aa(lp277 +S'1 * 8 - 3' +p278 +a(I0 +I00 +tp279 +aa(lp280 +S'1 * 8 - 4' +p281 +a(I4 +I01 +tp282 +aa(lp283 +S'1 * 8 - 5' +p284 +a(I0 +I00 +tp285 +aa(lp286 +S'1 * 8 - 6' +p287 +a(I0 +I00 +tp288 +aa(lp289 +S'1 * 8 - 7' +p290 +a(I1 +I01 +tp291 +aa(lp292 +S'1 * 8 - 8' +p293 +a(I0 +I01 +tp294 +aa(lp295 +S'1 * 9 + 1' +p296 +a(I10 +I01 +tp297 +aa(lp298 +S'1 * 9 + 2' +p299 +a(I11 +I01 +tp300 +aa(lp301 +S'1 * 9 + 3' +p302 +a(I10 +I00 +tp303 +aa(lp304 +S'1 * 9 + 4' +p305 +a(I13 +I01 +tp306 +aa(lp307 +S'1 * 9 + 5' +p308 +a(I14 +I01 +tp309 +aa(lp310 +S'1 * 9 + 6' +p311 +a(I15 +I01 +tp312 +aa(lp313 +S'1 * 9 + 7' +p314 +a(I14 +I00 +tp315 +aa(lp316 +S'1 * 9 + 8' +p317 +a(I13 +I00 +tp318 +aa(lp319 +S'1 * 9 + 9' +p320 +a(I18 +I01 +tp321 +aa(lp322 +S'1 * 9 - 1' +p323 +a(I8 +I01 +tp324 +aa(lp325 +S'1 * 9 - 2' +p326 +a(I7 +I01 +tp327 +aa(lp328 +S'1 * 9 - 3' +p329 +a(I6 +I01 +tp330 +aa(lp331 +S'1 * 9 - 4' +p332 +a(I5 +I01 +tp333 +aa(lp334 +S'1 * 9 - 5' +p335 +a(I4 +I01 +tp336 +aa(lp337 +S'1 * 9 - 6' +p338 +a(I3 +I01 +tp339 +aa(lp340 +S'1 * 9 - 7' +p341 +a(I0 +I00 +tp342 +aa(lp343 +S'1 * 9 - 8' +p344 +a(I5 +I00 +tp345 +aa(lp346 +S'1 * 9 - 9' +p347 +a(I5 +I00 +tp348 +aa(lp349 +S'2 * 1 + 1' +p350 +a(I0 +I00 +tp351 +aa(lp352 +S'2 * 1 + 2' +p353 +a(I4 +I01 +tp354 +aa(lp355 +S'2 * 1 + 3' +p356 +a(I5 +I01 +tp357 +aa(lp358 +S'2 * 1 + 4' +p359 +a(I5 +I00 +tp360 +aa(lp361 +S'2 * 1 + 5' +p362 +a(I7 +I01 +tp363 +aa(lp364 +S'2 * 1 + 6' +p365 +a(I3 +I00 +tp366 +aa(lp367 +S'2 * 1 + 7' +p368 +a(I6 +I00 +tp369 +aa(lp370 +S'2 * 1 + 8' +p371 +a(I6 +I00 +tp372 +aa(lp373 +S'2 * 1 + 9' +p374 +a(I11 +I01 +tp375 +aa(lp376 +S'2 * 1 - 1' +p377 +a(I1 +I01 +tp378 +aa(lp379 +S'2 * 1 - 2' +p380 +a(I2 +I00 +tp381 +aa(lp382 +S'2 * 3 + 1' +p383 +a(I4 +I00 +tp384 +aa(lp385 +S'2 * 3 + 2' +p386 +a(I3 +I00 +tp387 +aa(lp388 +S'2 * 3 + 3' +p389 +a(I9 +I01 +tp390 +aa(lp391 +S'2 * 3 + 4' +p392 +a(I10 +I01 +tp393 +aa(lp394 +S'2 * 3 + 5' +p395 +a(I11 +I01 +tp396 +aa(lp397 +S'2 * 3 + 6' +p398 +a(I7 +I00 +tp399 +aa(lp400 +S'2 * 3 + 7' +p401 +a(I13 +I01 +tp402 +aa(lp403 +S'2 * 3 + 8' +p404 +a(I14 +I01 +tp405 +aa(lp406 +S'2 * 3 + 9' +p407 +a(I15 +I01 +tp408 +aa(lp409 +S'2 * 3 - 1' +p410 +a(I1 +I00 +tp411 +aa(lp412 +S'2 * 3 - 2' +p413 +a(I4 +I01 +tp414 +aa(lp415 +S'2 * 3 - 3' +p416 +a(I1 +I00 +tp417 +aa(lp418 +S'2 * 3 - 4' +p419 +a(I2 +I01 +tp420 +aa(lp421 +S'2 * 3 - 5' +p422 +a(I5 +I00 +tp423 +aa(lp424 +S'2 * 3 - 6' +p425 +a(I0 +I01 +tp426 +aa(lp427 +S'2 * 4 + 1' +p428 +a(I7 +I00 +tp429 +aa(lp430 +S'2 * 4 + 2' +p431 +a(I6 +I00 +tp432 +aa(lp433 +S'2 * 4 + 3' +p434 +a(I11 +I01 +tp435 +aa(lp436 +S'2 * 4 + 4' +p437 +a(I12 +I01 +tp438 +aa(lp439 +S'2 * 4 + 5' +p440 +a(I8 +I00 +tp441 +aa(lp442 +S'2 * 4 + 6' +p443 +a(I14 +I01 +tp444 +aa(lp445 +S'2 * 4 + 7' +p446 +a(I15 +I01 +tp447 +aa(lp448 +S'2 * 4 + 8' +p449 +a(I16 +I01 +tp450 +aa(lp451 +S'2 * 4 + 9' +p452 +a(I17 +I01 +tp453 +aa(lp454 +S'2 * 4 - 1' +p455 +a(I2 +I00 +tp456 +aa(lp457 +S'2 * 4 - 2' +p458 +a(I6 +I01 +tp459 +aa(lp460 +S'2 * 4 - 3' +p461 +a(I2 +I00 +tp462 +aa(lp463 +S'2 * 4 - 4' +p464 +a(I0 +I00 +tp465 +aa(lp466 +S'2 * 4 - 5' +p467 +a(I2 +I00 +tp468 +aa(lp469 +S'2 * 4 - 6' +p470 +a(I2 +I01 +tp471 +aa(lp472 +S'2 * 4 - 7' +p473 +a(I2 +I00 +tp474 +aa(lp475 +S'2 * 4 - 8' +p476 +a(I4 +I00 +tp477 +aa(lp478 +S'2 * 5 + 1' +p479 +a(I11 +I01 +tp480 +aa(lp481 +S'2 * 5 + 2' +p482 +a(I12 +I01 +tp483 +aa(lp484 +S'2 * 5 + 3' +p485 +a(I13 +I01 +tp486 +aa(lp487 +S'2 * 5 + 4' +p488 +a(I14 +I01 +tp489 +aa(lp490 +S'2 * 5 + 5' +p491 +a(I15 +I01 +tp492 +aa(lp493 +S'2 * 5 + 6' +p494 +a(I12 +I00 +tp495 +aa(lp496 +S'2 * 5 + 7' +p497 +a(I13 +I00 +tp498 +aa(lp499 +S'2 * 5 + 8' +p500 +a(I18 +I01 +tp501 +aa(lp502 +S'2 * 5 + 9' +p503 +a(I19 +I01 +tp504 +aa(lp505 +S'2 * 5 - 1' +p506 +a(I8 +I00 +tp507 +aa(lp508 +S'2 * 5 - 2' +p509 +a(I3 +I00 +tp510 +aa(lp511 +S'2 * 5 - 3' +p512 +a(I6 +I00 +tp513 +aa(lp514 +S'2 * 5 - 4' +p515 +a(I5 +I00 +tp516 +aa(lp517 +S'2 * 5 - 5' +p518 +a(I0 +I00 +tp519 +aa(lp520 +S'2 * 5 - 6' +p521 +a(I4 +I01 +tp522 +aa(lp523 +S'2 * 5 - 7' +p524 +a(I7 +I00 +tp525 +aa(lp526 +S'2 * 5 - 8' +p527 +a(I2 +I01 +tp528 +aa(lp529 +S'2 * 5 - 9' +p530 +a(I1 +I01 +tp531 +aa(lp532 +S'2 * 6 + 1' +p533 +a(I13 +I01 +tp534 +aa(lp535 +S'2 * 6 + 2' +p536 +a(I12 +I00 +tp537 +aa(lp538 +S'2 * 6 + 3' +p539 +a(I15 +I01 +tp540 +aa(lp541 +S'2 * 6 + 4' +p542 +a(I16 +I01 +tp543 +aa(lp544 +S'2 * 6 + 5' +p545 +a(I16 +I00 +tp546 +aa(lp547 +S'2 * 6 + 6' +p548 +a(I18 +I01 +tp549 +aa(lp550 +S'2 * 6 + 7' +p551 +a(I19 +I01 +tp552 +aa(lp553 +S'2 * 6 + 8' +p554 +a(I19 +I00 +tp555 +aa(lp556 +S'2 * 6 + 9' +p557 +a(I18 +I00 +tp558 +aa(lp559 +S'2 * 6 - 1' +p560 +a(I11 +I01 +tp561 +aa(lp562 +S'2 * 6 - 2' +p563 +a(I10 +I01 +tp564 +aa(lp565 +S'2 * 6 - 3' +p566 +a(I7 +I00 +tp567 +aa(lp568 +S'2 * 6 - 4' +p569 +a(I5 +I00 +tp570 +aa(lp571 +S'2 * 6 - 5' +p572 +a(I5 +I00 +tp573 +aa(lp574 +S'2 * 6 - 6' +p575 +a(I6 +I01 +tp576 +aa(lp577 +S'2 * 6 - 7' +p578 +a(I2 +I00 +tp579 +aa(lp580 +S'2 * 6 - 8' +p581 +a(I2 +I00 +tp582 +aa(lp583 +S'2 * 6 - 9' +p584 +a(I2 +I00 +tp585 +aa(lp586 +S'2 * 7 + 1' +p587 +a(I15 +I01 +tp588 +aa(lp589 +S'2 * 7 + 2' +p590 +a(I12 +I00 +tp591 +aa(lp592 +S'2 * 7 + 3' +p593 +a(I14 +I00 +tp594 +aa(lp595 +S'2 * 7 + 4' +p596 +a(I15 +I00 +tp597 +aa(lp598 +S'2 * 7 + 5' +p599 +a(I19 +I01 +tp600 +aa(lp601 +S'2 * 7 + 6' +p602 +a(I20 +I01 +tp603 +aa(lp604 +S'2 * 7 + 7' +p605 +a(I20 +I00 +tp606 +aa(lp607 +S'2 * 7 + 8' +p608 +a(I18 +I00 +tp609 +aa(lp610 +S'2 * 7 + 9' +p611 +a(I23 +I01 +tp612 +aa(lp613 +S'2 * 7 - 1' +p614 +a(I13 +I01 +tp615 +aa(lp616 +S'2 * 7 - 2' +p617 +a(I11 +I00 +tp618 +aa(lp619 +S'2 * 7 - 3' +p620 +a(I11 +I01 +tp621 +aa(lp622 +S'2 * 7 - 4' +p623 +a(I10 +I01 +tp624 +aa(lp625 +S'2 * 7 - 5' +p626 +a(I9 +I01 +tp627 +aa(lp628 +S'2 * 7 - 6' +p629 +a(I7 +I00 +tp630 +aa(lp631 +S'2 * 7 - 7' +p632 +a(I6 +I00 +tp633 +aa(lp634 +S'2 * 7 - 8' +p635 +a(I6 +I01 +tp636 +aa(lp637 +S'2 * 7 - 9' +p638 +a(I0 +I00 +tp639 +aa(lp640 +S'2 * 8 + 1' +p641 +a(I17 +I01 +tp642 +aa(lp643 +S'2 * 8 + 2' +p644 +a(I18 +I01 +tp645 +aa(lp646 +S'2 * 8 + 3' +p647 +a(I16 +I00 +tp648 +aa(lp649 +S'2 * 8 + 4' +p650 +a(I15 +I00 +tp651 +aa(lp652 +S'2 * 8 + 5' +p653 +a(I18 +I00 +tp654 +aa(lp655 +S'2 * 8 + 6' +p656 +a(I22 +I01 +tp657 +aa(lp658 +S'2 * 8 + 7' +p659 +a(I22 +I00 +tp660 +aa(lp661 +S'2 * 8 + 8' +p662 +a(I24 +I01 +tp663 +aa(lp664 +S'2 * 8 + 9' +p665 +a(I25 +I01 +tp666 +aa(lp667 +S'2 * 8 - 1' +p668 +a(I15 +I01 +tp669 +aa(lp670 +S'2 * 8 - 2' +p671 +a(I14 +I01 +tp672 +aa(lp673 +S'2 * 8 - 3' +p674 +a(I13 +I01 +tp675 +aa(lp676 +S'2 * 8 - 4' +p677 +a(I12 +I01 +tp678 +aa(lp679 +S'2 * 8 - 5' +p680 +a(I7 +I00 +tp681 +aa(lp682 +S'2 * 8 - 6' +p683 +a(I9 +I00 +tp684 +aa(lp685 +S'2 * 8 - 7' +p686 +a(I4 +I00 +tp687 +aa(lp688 +S'2 * 8 - 8' +p689 +a(I6 +I00 +tp690 +aa(lp691 +S'2 * 8 - 9' +p692 +a(I5 +I00 +tp693 +aa(lp694 +S'2 * 9 + 1' +p695 +a(I16 +I00 +tp696 +aa(lp697 +S'2 * 9 + 2' +p698 +a(I20 +I01 +tp699 +aa(lp700 +S'2 * 9 + 3' +p701 +a(I17 +I00 +tp702 +aa(lp703 +S'2 * 9 + 4' +p704 +a(I21 +I00 +tp705 +aa(lp706 +S'2 * 9 + 5' +p707 +a(I23 +I01 +tp708 +aa(lp709 +S'2 * 9 + 6' +p710 +a(I24 +I01 +tp711 +aa(lp712 +S'2 * 9 + 7' +p713 +a(I25 +I01 +tp714 +aa(lp715 +S'2 * 9 + 8' +p716 +a(I26 +I01 +tp717 +aa(lp718 +S'2 * 9 + 9' +p719 +a(I23 +I00 +tp720 +aa(lp721 +S'2 * 9 - 1' +p722 +a(I15 +I00 +tp723 +aa(lp724 +S'2 * 9 - 2' +p725 +a(I16 +I01 +tp726 +aa(lp727 +S'2 * 9 - 3' +p728 +a(I13 +I00 +tp729 +aa(lp730 +S'2 * 9 - 4' +p731 +a(I14 +I01 +tp732 +aa(lp733 +S'2 * 9 - 5' +p734 +a(I13 +I01 +tp735 +aa(lp736 +S'2 * 9 - 6' +p737 +a(I12 +I01 +tp738 +aa(lp739 +S'2 * 9 - 7' +p740 +a(I11 +I01 +tp741 +aa(lp742 +S'2 * 9 - 8' +p743 +a(I10 +I01 +tp744 +aa(lp745 +S'2 * 9 - 9' +p746 +a(I9 +I01 +tp747 +aa(lp748 +S'3 * 1 + 1' +p749 +a(I4 +I01 +tp750 +aa(lp751 +S'3 * 1 + 2' +p752 +a(I5 +I01 +tp753 +aa(lp754 +S'3 * 1 + 3' +p755 +a(I6 +I01 +tp756 +aa(lp757 +S'3 * 1 + 4' +p758 +a(I2 +I00 +tp759 +aa(lp760 +S'3 * 1 + 5' +p761 +a(I6 +I00 +tp762 +aa(lp763 +S'3 * 1 + 6' +p764 +a(I9 +I01 +tp765 +aa(lp766 +S'3 * 1 + 7' +p767 +a(I5 +I00 +tp768 +aa(lp769 +S'3 * 1 + 8' +p770 +a(I8 +I00 +tp771 +aa(lp772 +S'3 * 1 + 9' +p773 +a(I7 +I00 +tp774 +aa(lp775 +S'3 * 1 - 1' +p776 +a(I1 +I00 +tp777 +aa(lp778 +S'3 * 1 - 2' +p779 +a(I4 +I00 +tp780 +aa(lp781 +S'3 * 1 - 3' +p782 +a(I4 +I00 +tp783 +aa(lp784 +S'3 * 2 + 1' +p785 +a(I7 +I01 +tp786 +aa(lp787 +S'3 * 2 + 2' +p788 +a(I7 +I00 +tp789 +aa(lp790 +S'3 * 2 + 3' +p791 +a(I5 +I00 +tp792 +aa(lp793 +S'3 * 2 + 4' +p794 +a(I6 +I00 +tp795 +aa(lp796 +S'3 * 2 + 5' +p797 +a(I8 +I00 +tp798 +aa(lp799 +S'3 * 2 + 6' +p800 +a(I12 +I01 +tp801 +aa(lp802 +S'3 * 2 + 7' +p803 +a(I11 +I00 +tp804 +aa(lp805 +S'3 * 2 + 8' +p806 +a(I9 +I00 +tp807 +aa(lp808 +S'3 * 2 + 9' +p809 +a(I15 +I01 +tp810 +aa(lp811 +S'3 * 2 - 1' +p812 +a(I5 +I01 +tp813 +aa(lp814 +S'3 * 2 - 2' +p815 +a(I2 +I00 +tp816 +aa(lp817 +S'3 * 2 - 3' +p818 +a(I2 +I00 +tp819 +aa(lp820 +S'3 * 2 - 4' +p821 +a(I5 +I00 +tp822 +aa(lp823 +S'3 * 2 - 5' +p824 +a(I1 +I01 +tp825 +aa(lp826 +S'3 * 2 - 6' +p827 +a(I0 +I01 +tp828 +aa(lp829 +S'3 * 4 + 1' +p830 +a(I11 +I00 +tp831 +aa(lp832 +S'3 * 4 + 2' +p833 +a(I14 +I01 +tp834 +aa(lp835 +S'3 * 4 + 3' +p836 +a(I15 +I01 +tp837 +aa(lp838 +S'3 * 4 + 4' +p839 +a(I16 +I01 +tp840 +aa(lp841 +S'3 * 4 + 5' +p842 +a(I12 +I00 +tp843 +aa(lp844 +S'3 * 4 + 6' +p845 +a(I18 +I01 +tp846 +aa(lp847 +S'3 * 4 + 7' +p848 +a(I14 +I00 +tp849 +aa(lp850 +S'3 * 4 + 8' +p851 +a(I16 +I00 +tp852 +aa(lp853 +S'3 * 4 + 9' +p854 +a(I16 +I00 +tp855 +aa(lp856 +S'3 * 4 - 1' +p857 +a(I7 +I00 +tp858 +aa(lp859 +S'3 * 4 - 2' +p860 +a(I7 +I00 +tp861 +aa(lp862 +S'3 * 4 - 3' +p863 +a(I7 +I00 +tp864 +aa(lp865 +S'3 * 4 - 4' +p866 +a(I7 +I00 +tp867 +aa(lp868 +S'3 * 4 - 5' +p869 +a(I6 +I00 +tp870 +aa(lp871 +S'3 * 4 - 6' +p872 +a(I4 +I00 +tp873 +aa(lp874 +S'3 * 4 - 7' +p875 +a(I5 +I01 +tp876 +aa(lp877 +S'3 * 4 - 8' +p878 +a(I4 +I01 +tp879 +aa(lp880 +S'3 * 4 - 9' +p881 +a(I3 +I01 +tp882 +aa(lp883 +S'3 * 5 + 1' +p884 +a(I16 +I01 +tp885 +aa(lp886 +S'3 * 5 + 2' +p887 +a(I17 +I01 +tp888 +aa(lp889 +S'3 * 5 + 3' +p890 +a(I18 +I01 +tp891 +aa(lp892 +S'3 * 5 + 4' +p893 +a(I14 +I00 +tp894 +aa(lp895 +S'3 * 5 + 5' +p896 +a(I20 +I01 +tp897 +aa(lp898 +S'3 * 5 + 6' +p899 +a(I19 +I00 +tp900 +aa(lp901 +S'3 * 5 + 7' +p902 +a(I18 +I00 +tp903 +aa(lp904 +S'3 * 5 + 8' +p905 +a(I18 +I00 +tp906 +aa(lp907 +S'3 * 5 + 9' +p908 +a(I24 +I01 +tp909 +aa(lp910 +S'3 * 5 - 1' +p911 +a(I14 +I01 +tp912 +aa(lp913 +S'3 * 5 - 2' +p914 +a(I12 +I00 +tp915 +aa(lp916 +S'3 * 5 - 3' +p917 +a(I12 +I01 +tp918 +aa(lp919 +S'3 * 5 - 4' +p920 +a(I11 +I01 +tp921 +aa(lp922 +S'3 * 5 - 5' +p923 +a(I10 +I01 +tp924 +aa(lp925 +S'3 * 5 - 6' +p926 +a(I9 +I01 +tp927 +aa(lp928 +S'3 * 5 - 7' +p929 +a(I6 +I00 +tp930 +aa(lp931 +S'3 * 5 - 8' +p932 +a(I4 +I00 +tp933 +aa(lp934 +S'3 * 5 - 9' +p935 +a(I3 +I00 +tp936 +aa(lp937 +S'3 * 6 + 1' +p938 +a(I16 +I00 +tp939 +aa(lp940 +S'3 * 6 + 2' +p941 +a(I19 +I00 +tp942 +aa(lp943 +S'3 * 6 + 3' +p944 +a(I21 +I01 +tp945 +aa(lp946 +S'3 * 6 + 4' +p947 +a(I17 +I00 +tp948 +aa(lp949 +S'3 * 6 + 5' +p950 +a(I20 +I00 +tp951 +aa(lp952 +S'3 * 6 + 6' +p953 +a(I24 +I01 +tp954 +aa(lp955 +S'3 * 6 + 7' +p956 +a(I25 +I01 +tp957 +aa(lp958 +S'3 * 6 + 8' +p959 +a(I26 +I01 +tp960 +aa(lp961 +S'3 * 6 + 9' +p962 +a(I27 +I01 +tp963 +aa(lp964 +S'3 * 6 - 1' +p965 +a(I17 +I01 +tp966 +aa(lp967 +S'3 * 6 - 2' +p968 +a(I16 +I01 +tp969 +aa(lp970 +S'3 * 6 - 3' +p971 +a(I14 +I00 +tp972 +aa(lp973 +S'3 * 6 - 4' +p974 +a(I10 +I00 +tp975 +aa(lp976 +S'3 * 6 - 5' +p977 +a(I12 +I00 +tp978 +aa(lp979 +S'3 * 6 - 6' +p980 +a(I12 +I01 +tp981 +aa(lp982 +S'3 * 6 - 7' +p983 +a(I8 +I00 +tp984 +aa(lp985 +S'3 * 6 - 8' +p986 +a(I10 +I01 +tp987 +aa(lp988 +S'3 * 6 - 9' +p989 +a(I5 +I00 +tp990 +aa(lp991 +S'3 * 7 + 1' +p992 +a(I22 +I01 +tp993 +aa(lp994 +S'3 * 7 + 2' +p995 +a(I23 +I01 +tp996 +aa(lp997 +S'3 * 7 + 3' +p998 +a(I22 +I00 +tp999 +aa(lp1000 +S'3 * 7 + 4' +p1001 +a(I25 +I01 +tp1002 +aa(lp1003 +S'3 * 7 + 5' +p1004 +a(I23 +I00 +tp1005 +aa(lp1006 +S'3 * 7 + 6' +p1007 +a(I22 +I00 +tp1008 +aa(lp1009 +S'3 * 7 + 7' +p1010 +a(I24 +I00 +tp1011 +aa(lp1012 +S'3 * 7 + 8' +p1013 +a(I27 +I00 +tp1014 +aa(lp1015 +S'3 * 7 + 9' +p1016 +a(I30 +I01 +tp1017 +aa(lp1018 +S'3 * 7 - 1' +p1019 +a(I20 +I01 +tp1020 +aa(lp1021 +S'3 * 7 - 2' +p1022 +a(I17 +I00 +tp1023 +aa(lp1024 +S'3 * 7 - 3' +p1025 +a(I15 +I00 +tp1026 +aa(lp1027 +S'3 * 7 - 4' +p1028 +a(I15 +I00 +tp1029 +aa(lp1030 +S'3 * 7 - 5' +p1031 +a(I11 +I00 +tp1032 +aa(lp1033 +S'3 * 7 - 6' +p1034 +a(I13 +I00 +tp1035 +aa(lp1036 +S'3 * 7 - 7' +p1037 +a(I14 +I01 +tp1038 +aa(lp1039 +S'3 * 7 - 8' +p1040 +a(I13 +I01 +tp1041 +aa(lp1042 +S'3 * 7 - 9' +p1043 +a(I12 +I01 +tp1044 +aa(lp1045 +S'3 * 8 + 1' +p1046 +a(I25 +I01 +tp1047 +aa(lp1048 +S'3 * 8 + 2' +p1049 +a(I24 +I00 +tp1050 +aa(lp1051 +S'3 * 8 + 3' +p1052 +a(I27 +I01 +tp1053 +aa(lp1054 +S'3 * 8 + 4' +p1055 +a(I26 +I00 +tp1056 +aa(lp1057 +S'3 * 8 + 5' +p1058 +a(I29 +I01 +tp1059 +aa(lp1060 +S'3 * 8 + 6' +p1061 +a(I27 +I00 +tp1062 +aa(lp1063 +S'3 * 8 + 7' +p1064 +a(I31 +I01 +tp1065 +aa(lp1066 +S'3 * 8 + 8' +p1067 +a(I29 +I00 +tp1068 +aa(lp1069 +S'3 * 8 + 9' +p1070 +a(I33 +I01 +tp1071 +aa(lp1072 +S'3 * 8 - 1' +p1073 +a(I23 +I01 +tp1074 +aa(lp1075 +S'3 * 8 - 2' +p1076 +a(I17 +I00 +tp1077 +aa(lp1078 +S'3 * 8 - 3' +p1079 +a(I21 +I01 +tp1080 +aa(lp1081 +S'3 * 8 - 4' +p1082 +a(I20 +I01 +tp1083 +aa(lp1084 +S'3 * 8 - 5' +p1085 +a(I19 +I01 +tp1086 +aa(lp1087 +S'3 * 8 - 6' +p1088 +a(I16 +I00 +tp1089 +aa(lp1090 +S'3 * 8 - 7' +p1091 +a(I17 +I01 +tp1092 +aa(lp1093 +S'3 * 8 - 8' +p1094 +a(I16 +I01 +tp1095 +aa(lp1096 +S'3 * 8 - 9' +p1097 +a(I13 +I00 +tp1098 +aa(lp1099 +S'3 * 9 + 1' +p1100 +a(I27 +I00 +tp1101 +aa(lp1102 +S'3 * 9 + 2' +p1103 +a(I29 +I01 +tp1104 +aa(lp1105 +S'3 * 9 + 3' +p1106 +a(I28 +I00 +tp1107 +aa(lp1108 +S'3 * 9 + 4' +p1109 +a(I29 +I00 +tp1110 +aa(lp1111 +S'3 * 9 + 5' +p1112 +a(I29 +I00 +tp1113 +aa(lp1114 +S'3 * 9 + 6' +p1115 +a(I29 +I00 +tp1116 +aa(lp1117 +S'3 * 9 + 7' +p1118 +a(I32 +I00 +tp1119 +aa(lp1120 +S'3 * 9 + 8' +p1121 +a(I35 +I01 +tp1122 +aa(lp1123 +S'3 * 9 + 9' +p1124 +a(I31 +I00 +tp1125 +aa(lp1126 +S'3 * 9 - 1' +p1127 +a(I26 +I01 +tp1128 +aa(lp1129 +S'3 * 9 - 2' +p1130 +a(I24 +I00 +tp1131 +aa(lp1132 +S'3 * 9 - 3' +p1133 +a(I24 +I01 +tp1134 +aa(lp1135 +S'3 * 9 - 4' +p1136 +a(I18 +I00 +tp1137 +aa(lp1138 +S'3 * 9 - 5' +p1139 +a(I20 +I00 +tp1140 +aa(lp1141 +S'3 * 9 - 6' +p1142 +a(I21 +I01 +tp1143 +aa(lp1144 +S'3 * 9 - 7' +p1145 +a(I20 +I01 +tp1146 +aa(lp1147 +S'3 * 9 - 8' +p1148 +a(I19 +I01 +tp1149 +aa(lp1150 +S'3 * 9 - 9' +p1151 +a(I14 +I00 +tp1152 +aa(lp1153 +S'4 * 1 + 1' +p1154 +a(I3 +I00 +tp1155 +aa(lp1156 +S'4 * 1 + 2' +p1157 +a(I6 +I01 +tp1158 +aa(lp1159 +S'4 * 1 + 3' +p1160 +a(I4 +I00 +tp1161 +aa(lp1162 +S'4 * 1 + 4' +p1163 +a(I8 +I01 +tp1164 +aa(lp1165 +S'4 * 1 + 5' +p1166 +a(I9 +I01 +tp1167 +aa(lp1168 +S'4 * 1 + 6' +p1169 +a(I9 +I00 +tp1170 +aa(lp1171 +S'4 * 1 + 7' +p1172 +a(I7 +I00 +tp1173 +aa(lp1174 +S'4 * 1 + 8' +p1175 +a(I10 +I00 +tp1176 +aa(lp1177 +S'4 * 1 + 9' +p1178 +a(I13 +I01 +tp1179 +aa(lp1180 +S'4 * 1 - 1' +p1181 +a(I3 +I01 +tp1182 +aa(lp1183 +S'4 * 1 - 2' +p1184 +a(I2 +I01 +tp1185 +aa(lp1186 +S'4 * 1 - 3' +p1187 +a(I1 +I01 +tp1188 +aa(lp1189 +S'4 * 1 - 4' +p1190 +a(I1 +I00 +tp1191 +aa(lp1192 +S'4 * 2 + 1' +p1193 +a(I9 +I01 +tp1194 +aa(lp1195 +S'4 * 2 + 2' +p1196 +a(I7 +I00 +tp1197 +aa(lp1198 +S'4 * 2 + 3' +p1199 +a(I10 +I00 +tp1200 +aa(lp1201 +S'4 * 2 + 4' +p1202 +a(I9 +I00 +tp1203 +aa(lp1204 +S'4 * 2 + 5' +p1205 +a(I13 +I01 +tp1206 +aa(lp1207 +S'4 * 2 + 6' +p1208 +a(I11 +I00 +tp1209 +aa(lp1210 +S'4 * 2 + 7' +p1211 +a(I14 +I00 +tp1212 +aa(lp1213 +S'4 * 2 + 8' +p1214 +a(I11 +I00 +tp1215 +aa(lp1216 +S'4 * 2 + 9' +p1217 +a(I15 +I00 +tp1218 +aa(lp1219 +S'4 * 2 - 1' +p1220 +a(I7 +I01 +tp1221 +aa(lp1222 +S'4 * 2 - 2' +p1223 +a(I3 +I00 +tp1224 +aa(lp1225 +S'4 * 2 - 3' +p1226 +a(I5 +I01 +tp1227 +aa(lp1228 +S'4 * 2 - 4' +p1229 +a(I4 +I01 +tp1230 +aa(lp1231 +S'4 * 2 - 5' +p1232 +a(I3 +I01 +tp1233 +aa(lp1234 +S'4 * 2 - 6' +p1235 +a(I2 +I01 +tp1236 +aa(lp1237 +S'4 * 2 - 7' +p1238 +a(I1 +I01 +tp1239 +aa(lp1240 +S'4 * 2 - 8' +p1241 +a(I1 +I00 +tp1242 +aa(lp1243 +S'4 * 3 + 1' +p1244 +a(I11 +I00 +tp1245 +aa(lp1246 +S'4 * 3 + 2' +p1247 +a(I12 +I00 +tp1248 +aa(lp1249 +S'4 * 3 + 3' +p1250 +a(I15 +I01 +tp1251 +aa(lp1252 +S'4 * 3 + 4' +p1253 +a(I16 +I01 +tp1254 +aa(lp1255 +S'4 * 3 + 5' +p1256 +a(I17 +I01 +tp1257 +aa(lp1258 +S'4 * 3 + 6' +p1259 +a(I18 +I01 +tp1260 +aa(lp1261 +S'4 * 3 + 7' +p1262 +a(I19 +I01 +tp1263 +aa(lp1264 +S'4 * 3 + 8' +p1265 +a(I20 +I01 +tp1266 +aa(lp1267 +S'4 * 3 + 9' +p1268 +a(I17 +I00 +tp1269 +aa(lp1270 +S'4 * 3 - 1' +p1271 +a(I6 +I00 +tp1272 +aa(lp1273 +S'4 * 3 - 2' +p1274 +a(I6 +I00 +tp1275 +aa(lp1276 +S'4 * 3 - 3' +p1277 +a(I8 +I00 +tp1278 +aa(lp1279 +S'4 * 3 - 4' +p1280 +a(I8 +I01 +tp1281 +aa(lp1282 +S'4 * 3 - 5' +p1283 +a(I7 +I01 +tp1284 +aa(lp1285 +S'4 * 3 - 6' +p1286 +a(I1 +I00 +tp1287 +aa(lp1288 +S'4 * 3 - 7' +p1289 +a(I5 +I01 +tp1290 +aa(lp1291 +S'4 * 3 - 8' +p1292 +a(I4 +I01 +tp1293 +aa(lp1294 +S'4 * 3 - 9' +p1295 +a(I3 +I01 +tp1296 +aa(lp1297 +S'4 * 5 + 1' +p1298 +a(I21 +I01 +tp1299 +aa(lp1300 +S'4 * 5 + 2' +p1301 +a(I18 +I00 +tp1302 +aa(lp1303 +S'4 * 5 + 3' +p1304 +a(I23 +I01 +tp1305 +aa(lp1306 +S'4 * 5 + 4' +p1307 +a(I24 +I01 +tp1308 +aa(lp1309 +S'4 * 5 + 5' +p1310 +a(I21 +I00 +tp1311 +aa(lp1312 +S'4 * 5 + 6' +p1313 +a(I26 +I01 +tp1314 +aa(lp1315 +S'4 * 5 + 7' +p1316 +a(I26 +I00 +tp1317 +aa(lp1318 +S'4 * 5 + 8' +p1319 +a(I27 +I00 +tp1320 +aa(lp1321 +S'4 * 5 + 9' +p1322 +a(I24 +I00 +tp1323 +aa(lp1324 +S'4 * 5 - 1' +p1325 +a(I17 +I00 +tp1326 +aa(lp1327 +S'4 * 5 - 2' +p1328 +a(I18 +I01 +tp1329 +aa(lp1330 +S'4 * 5 - 3' +p1331 +a(I14 +I00 +tp1332 +aa(lp1333 +S'4 * 5 - 4' +p1334 +a(I11 +I00 +tp1335 +aa(lp1336 +S'4 * 5 - 5' +p1337 +a(I15 +I01 +tp1338 +aa(lp1339 +S'4 * 5 - 6' +p1340 +a(I10 +I00 +tp1341 +aa(lp1342 +S'4 * 5 - 7' +p1343 +a(I11 +I00 +tp1344 +aa(lp1345 +S'4 * 5 - 8' +p1346 +a(I12 +I01 +tp1347 +aa(lp1348 +S'4 * 5 - 9' +p1349 +a(I6 +I00 +tp1350 +aa(lp1351 +S'4 * 6 + 1' +p1352 +a(I25 +I01 +tp1353 +aa(lp1354 +S'4 * 6 + 2' +p1355 +a(I24 +I00 +tp1356 +aa(lp1357 +S'4 * 6 + 3' +p1358 +a(I27 +I01 +tp1359 +aa(lp1360 +S'4 * 6 + 4' +p1361 +a(I24 +I00 +tp1362 +aa(lp1363 +S'4 * 6 + 5' +p1364 +a(I26 +I00 +tp1365 +aa(lp1366 +S'4 * 6 + 6' +p1367 +a(I30 +I01 +tp1368 +aa(lp1369 +S'4 * 6 + 7' +p1370 +a(I31 +I01 +tp1371 +aa(lp1372 +S'4 * 6 + 8' +p1373 +a(I31 +I00 +tp1374 +aa(lp1375 +S'4 * 6 + 9' +p1376 +a(I31 +I00 +tp1377 +aa(lp1378 +S'4 * 6 - 1' +p1379 +a(I21 +I00 +tp1380 +aa(lp1381 +S'4 * 6 - 2' +p1382 +a(I19 +I00 +tp1383 +aa(lp1384 +S'4 * 6 - 3' +p1385 +a(I21 +I01 +tp1386 +aa(lp1387 +S'4 * 6 - 4' +p1388 +a(I18 +I00 +tp1389 +aa(lp1390 +S'4 * 6 - 5' +p1391 +a(I14 +I00 +tp1392 +aa(lp1393 +S'4 * 6 - 6' +p1394 +a(I18 +I01 +tp1395 +aa(lp1396 +S'4 * 6 - 7' +p1397 +a(I14 +I00 +tp1398 +aa(lp1399 +S'4 * 6 - 8' +p1400 +a(I16 +I01 +tp1401 +aa(lp1402 +S'4 * 6 - 9' +p1403 +a(I14 +I00 +tp1404 +aa(lp1405 +S'4 * 7 + 1' +p1406 +a(I29 +I01 +tp1407 +aa(lp1408 +S'4 * 7 + 2' +p1409 +a(I26 +I00 +tp1410 +aa(lp1411 +S'4 * 7 + 3' +p1412 +a(I31 +I01 +tp1413 +aa(lp1414 +S'4 * 7 + 4' +p1415 +a(I32 +I01 +tp1416 +aa(lp1417 +S'4 * 7 + 5' +p1418 +a(I33 +I01 +tp1419 +aa(lp1420 +S'4 * 7 + 6' +p1421 +a(I29 +I00 +tp1422 +aa(lp1423 +S'4 * 7 + 7' +p1424 +a(I35 +I01 +tp1425 +aa(lp1426 +S'4 * 7 + 8' +p1427 +a(I36 +I01 +tp1428 +aa(lp1429 +S'4 * 7 + 9' +p1430 +a(I33 +I00 +tp1431 +aa(lp1432 +S'4 * 7 - 1' +p1433 +a(I27 +I01 +tp1434 +aa(lp1435 +S'4 * 7 - 2' +p1436 +a(I22 +I00 +tp1437 +aa(lp1438 +S'4 * 7 - 3' +p1439 +a(I21 +I00 +tp1440 +aa(lp1441 +S'4 * 7 - 4' +p1442 +a(I24 +I01 +tp1443 +aa(lp1444 +S'4 * 7 - 5' +p1445 +a(I21 +I00 +tp1446 +aa(lp1447 +S'4 * 7 - 6' +p1448 +a(I21 +I00 +tp1449 +aa(lp1450 +S'4 * 7 - 7' +p1451 +a(I19 +I00 +tp1452 +aa(lp1453 +S'4 * 7 - 8' +p1454 +a(I20 +I01 +tp1455 +aa(lp1456 +S'4 * 7 - 9' +p1457 +a(I19 +I01 +tp1458 +aa(lp1459 +S'4 * 8 + 1' +p1460 +a(I32 +I00 +tp1461 +aa(lp1462 +S'4 * 8 + 2' +p1463 +a(I31 +I00 +tp1464 +aa(lp1465 +S'4 * 8 + 3' +p1466 +a(I34 +I00 +tp1467 +aa(lp1468 +S'4 * 8 + 4' +p1469 +a(I32 +I00 +tp1470 +aa(lp1471 +S'4 * 8 + 5' +p1472 +a(I37 +I01 +tp1473 +aa(lp1474 +S'4 * 8 + 6' +p1475 +a(I38 +I01 +tp1476 +aa(lp1477 +S'4 * 8 + 7' +p1478 +a(I39 +I01 +tp1479 +aa(lp1480 +S'4 * 8 + 8' +p1481 +a(I35 +I00 +tp1482 +aa(lp1483 +S'4 * 8 + 9' +p1484 +a(I41 +I01 +tp1485 +aa(lp1486 +S'4 * 8 - 1' +p1487 +a(I31 +I01 +tp1488 +aa(lp1489 +S'4 * 8 - 2' +p1490 +a(I30 +I01 +tp1491 +aa(lp1492 +S'4 * 8 - 3' +p1493 +a(I29 +I01 +tp1494 +aa(lp1495 +S'4 * 8 - 4' +p1496 +a(I27 +I00 +tp1497 +aa(lp1498 +S'4 * 8 - 5' +p1499 +a(I27 +I01 +tp1500 +aa(lp1501 +S'4 * 8 - 6' +p1502 +a(I26 +I01 +tp1503 +aa(lp1504 +S'4 * 8 - 7' +p1505 +a(I20 +I00 +tp1506 +aa(lp1507 +S'4 * 8 - 8' +p1508 +a(I20 +I00 +tp1509 +aa(lp1510 +S'4 * 8 - 9' +p1511 +a(I20 +I00 +tp1512 +aa(lp1513 +S'4 * 9 + 1' +p1514 +a(I37 +I01 +tp1515 +aa(lp1516 +S'4 * 9 + 2' +p1517 +a(I35 +I00 +tp1518 +aa(lp1519 +S'4 * 9 + 3' +p1520 +a(I38 +I00 +tp1521 +aa(lp1522 +S'4 * 9 + 4' +p1523 +a(I36 +I00 +tp1524 +aa(lp1525 +S'4 * 9 + 5' +p1526 +a(I36 +I00 +tp1527 +aa(lp1528 +S'4 * 9 + 6' +p1529 +a(I42 +I01 +tp1530 +aa(lp1531 +S'4 * 9 + 7' +p1532 +a(I43 +I01 +tp1533 +aa(lp1534 +S'4 * 9 + 8' +p1535 +a(I44 +I01 +tp1536 +aa(lp1537 +S'4 * 9 + 9' +p1538 +a(I40 +I00 +tp1539 +aa(lp1540 +S'4 * 9 - 1' +p1541 +a(I35 +I01 +tp1542 +aa(lp1543 +S'4 * 9 - 2' +p1544 +a(I34 +I01 +tp1545 +aa(lp1546 +S'4 * 9 - 3' +p1547 +a(I32 +I00 +tp1548 +aa(lp1549 +S'4 * 9 - 4' +p1550 +a(I32 +I01 +tp1551 +aa(lp1552 +S'4 * 9 - 5' +p1553 +a(I31 +I01 +tp1554 +aa(lp1555 +S'4 * 9 - 6' +p1556 +a(I29 +I00 +tp1557 +aa(lp1558 +S'4 * 9 - 7' +p1559 +a(I29 +I01 +tp1560 +aa(lp1561 +S'4 * 9 - 8' +p1562 +a(I26 +I00 +tp1563 +aa(lp1564 +S'4 * 9 - 9' +p1565 +a(I25 +I00 +tp1566 +aa(lp1567 +S'5 * 1 + 1' +p1568 +a(I6 +I01 +tp1569 +aa(lp1570 +S'5 * 1 + 2' +p1571 +a(I2 +I00 +tp1572 +aa(lp1573 +S'5 * 1 + 3' +p1574 +a(I8 +I01 +tp1575 +aa(lp1576 +S'5 * 1 + 4' +p1577 +a(I5 +I00 +tp1578 +aa(lp1579 +S'5 * 1 + 5' +p1580 +a(I6 +I00 +tp1581 +aa(lp1582 +S'5 * 1 + 6' +p1583 +a(I11 +I01 +tp1584 +aa(lp1585 +S'5 * 1 + 7' +p1586 +a(I12 +I01 +tp1587 +aa(lp1588 +S'5 * 1 + 8' +p1589 +a(I13 +I01 +tp1590 +aa(lp1591 +S'5 * 1 + 9' +p1592 +a(I10 +I00 +tp1593 +aa(lp1594 +S'5 * 1 - 1' +p1595 +a(I1 +I00 +tp1596 +aa(lp1597 +S'5 * 1 - 2' +p1598 +a(I3 +I01 +tp1599 +aa(lp1600 +S'5 * 1 - 3' +p1601 +a(I0 +I00 +tp1602 +aa(lp1603 +S'5 * 1 - 4' +p1604 +a(I1 +I01 +tp1605 +aa(lp1606 +S'5 * 1 - 5' +p1607 +a(I0 +I01 +tp1608 +aa(lp1609 +S'5 * 2 + 1' +p1610 +a(I9 +I00 +tp1611 +aa(lp1612 +S'5 * 2 + 2' +p1613 +a(I12 +I01 +tp1614 +aa(lp1615 +S'5 * 2 + 3' +p1616 +a(I13 +I01 +tp1617 +aa(lp1618 +S'5 * 2 + 4' +p1619 +a(I14 +I01 +tp1620 +aa(lp1621 +S'5 * 2 + 5' +p1622 +a(I15 +I01 +tp1623 +aa(lp1624 +S'5 * 2 + 6' +p1625 +a(I16 +I01 +tp1626 +aa(lp1627 +S'5 * 2 + 7' +p1628 +a(I17 +I01 +tp1629 +aa(lp1630 +S'5 * 2 + 8' +p1631 +a(I18 +I01 +tp1632 +aa(lp1633 +S'5 * 2 + 9' +p1634 +a(I14 +I00 +tp1635 +aa(lp1636 +S'5 * 2 - 1' +p1637 +a(I4 +I00 +tp1638 +aa(lp1639 +S'5 * 2 - 2' +p1640 +a(I4 +I00 +tp1641 +aa(lp1642 +S'5 * 2 - 3' +p1643 +a(I7 +I01 +tp1644 +aa(lp1645 +S'5 * 2 - 4' +p1646 +a(I5 +I00 +tp1647 +aa(lp1648 +S'5 * 2 - 5' +p1649 +a(I5 +I01 +tp1650 +aa(lp1651 +S'5 * 2 - 6' +p1652 +a(I4 +I01 +tp1653 +aa(lp1654 +S'5 * 2 - 7' +p1655 +a(I3 +I01 +tp1656 +aa(lp1657 +S'5 * 2 - 8' +p1658 +a(I2 +I01 +tp1659 +aa(lp1660 +S'5 * 2 - 9' +p1661 +a(I3 +I00 +tp1662 +aa(lp1663 +S'5 * 3 + 1' +p1664 +a(I12 +I00 +tp1665 +aa(lp1666 +S'5 * 3 + 2' +p1667 +a(I13 +I00 +tp1668 +aa(lp1669 +S'5 * 3 + 3' +p1670 +a(I18 +I01 +tp1671 +aa(lp1672 +S'5 * 3 + 4' +p1673 +a(I19 +I01 +tp1674 +aa(lp1675 +S'5 * 3 + 5' +p1676 +a(I20 +I01 +tp1677 +aa(lp1678 +S'5 * 3 + 6' +p1679 +a(I21 +I01 +tp1680 +aa(lp1681 +S'5 * 3 + 7' +p1682 +a(I20 +I00 +tp1683 +aa(lp1684 +S'5 * 3 + 8' +p1685 +a(I23 +I01 +tp1686 +aa(lp1687 +S'5 * 3 + 9' +p1688 +a(I24 +I01 +tp1689 +aa(lp1690 +S'5 * 3 - 1' +p1691 +a(I14 +I01 +tp1692 +aa(lp1693 +S'5 * 3 - 2' +p1694 +a(I13 +I01 +tp1695 +aa(lp1696 +S'5 * 3 - 3' +p1697 +a(I12 +I01 +tp1698 +aa(lp1699 +S'5 * 3 - 4' +p1700 +a(I11 +I01 +tp1701 +aa(lp1702 +S'5 * 3 - 5' +p1703 +a(I10 +I01 +tp1704 +aa(lp1705 +S'5 * 3 - 6' +p1706 +a(I9 +I01 +tp1707 +aa(lp1708 +S'5 * 3 - 7' +p1709 +a(I3 +I00 +tp1710 +aa(lp1711 +S'5 * 3 - 8' +p1712 +a(I6 +I00 +tp1713 +aa(lp1714 +S'5 * 3 - 9' +p1715 +a(I2 +I00 +tp1716 +aa(lp1717 +S'5 * 4 + 1' +p1718 +a(I20 +I00 +tp1719 +aa(lp1720 +S'5 * 4 + 2' +p1721 +a(I22 +I01 +tp1722 +aa(lp1723 +S'5 * 4 + 3' +p1724 +a(I22 +I00 +tp1725 +aa(lp1726 +S'5 * 4 + 4' +p1727 +a(I24 +I01 +tp1728 +aa(lp1729 +S'5 * 4 + 5' +p1730 +a(I25 +I01 +tp1731 +aa(lp1732 +S'5 * 4 + 6' +p1733 +a(I25 +I00 +tp1734 +aa(lp1735 +S'5 * 4 + 7' +p1736 +a(I22 +I00 +tp1737 +aa(lp1738 +S'5 * 4 + 8' +p1739 +a(I23 +I00 +tp1740 +aa(lp1741 +S'5 * 4 + 9' +p1742 +a(I25 +I00 +tp1743 +aa(lp1744 +S'5 * 4 - 1' +p1745 +a(I19 +I01 +tp1746 +aa(lp1747 +S'5 * 4 - 2' +p1748 +a(I13 +I00 +tp1749 +aa(lp1750 +S'5 * 4 - 3' +p1751 +a(I17 +I01 +tp1752 +aa(lp1753 +S'5 * 4 - 4' +p1754 +a(I11 +I00 +tp1755 +aa(lp1756 +S'5 * 4 - 5' +p1757 +a(I10 +I00 +tp1758 +aa(lp1759 +S'5 * 4 - 6' +p1760 +a(I10 +I00 +tp1761 +aa(lp1762 +S'5 * 4 - 7' +p1763 +a(I11 +I00 +tp1764 +aa(lp1765 +S'5 * 4 - 8' +p1766 +a(I10 +I00 +tp1767 +aa(lp1768 +S'5 * 4 - 9' +p1769 +a(I11 +I01 +tp1770 +aa(lp1771 +S'5 * 6 + 1' +p1772 +a(I31 +I01 +tp1773 +aa(lp1774 +S'5 * 6 + 2' +p1775 +a(I32 +I01 +tp1776 +aa(lp1777 +S'5 * 6 + 3' +p1778 +a(I31 +I00 +tp1779 +aa(lp1780 +S'5 * 6 + 4' +p1781 +a(I34 +I01 +tp1782 +aa(lp1783 +S'5 * 6 + 5' +p1784 +a(I35 +I01 +tp1785 +aa(lp1786 +S'5 * 6 + 6' +p1787 +a(I36 +I01 +tp1788 +aa(lp1789 +S'5 * 6 + 7' +p1790 +a(I32 +I00 +tp1791 +aa(lp1792 +S'5 * 6 + 8' +p1793 +a(I35 +I00 +tp1794 +aa(lp1795 +S'5 * 6 + 9' +p1796 +a(I39 +I01 +tp1797 +aa(lp1798 +S'5 * 6 - 1' +p1799 +a(I29 +I01 +tp1800 +aa(lp1801 +S'5 * 6 - 2' +p1802 +a(I26 +I00 +tp1803 +aa(lp1804 +S'5 * 6 - 3' +p1805 +a(I27 +I01 +tp1806 +aa(lp1807 +S'5 * 6 - 4' +p1808 +a(I26 +I01 +tp1809 +aa(lp1810 +S'5 * 6 - 5' +p1811 +a(I23 +I00 +tp1812 +aa(lp1813 +S'5 * 6 - 6' +p1814 +a(I21 +I00 +tp1815 +aa(lp1816 +S'5 * 6 - 7' +p1817 +a(I18 +I00 +tp1818 +aa(lp1819 +S'5 * 6 - 8' +p1820 +a(I18 +I00 +tp1821 +aa(lp1822 +S'5 * 6 - 9' +p1823 +a(I20 +I00 +tp1824 +aa(lp1825 +S'5 * 7 + 1' +p1826 +a(I36 +I01 +tp1827 +aa(lp1828 +S'5 * 7 + 2' +p1829 +a(I32 +I00 +tp1830 +aa(lp1831 +S'5 * 7 + 3' +p1832 +a(I38 +I01 +tp1833 +aa(lp1834 +S'5 * 7 + 4' +p1835 +a(I39 +I01 +tp1836 +aa(lp1837 +S'5 * 7 + 5' +p1838 +a(I40 +I01 +tp1839 +aa(lp1840 +S'5 * 7 + 6' +p1841 +a(I41 +I01 +tp1842 +aa(lp1843 +S'5 * 7 + 7' +p1844 +a(I42 +I01 +tp1845 +aa(lp1846 +S'5 * 7 + 8' +p1847 +a(I43 +I01 +tp1848 +aa(lp1849 +S'5 * 7 + 9' +p1850 +a(I43 +I00 +tp1851 +aa(lp1852 +S'5 * 7 - 1' +p1853 +a(I34 +I01 +tp1854 +aa(lp1855 +S'5 * 7 - 2' +p1856 +a(I33 +I01 +tp1857 +aa(lp1858 +S'5 * 7 - 3' +p1859 +a(I28 +I00 +tp1860 +aa(lp1861 +S'5 * 7 - 4' +p1862 +a(I31 +I01 +tp1863 +aa(lp1864 +S'5 * 7 - 5' +p1865 +a(I30 +I01 +tp1866 +aa(lp1867 +S'5 * 7 - 6' +p1868 +a(I24 +I00 +tp1869 +aa(lp1870 +S'5 * 7 - 7' +p1871 +a(I28 +I01 +tp1872 +aa(lp1873 +S'5 * 7 - 8' +p1874 +a(I27 +I01 +tp1875 +aa(lp1876 +S'5 * 7 - 9' +p1877 +a(I26 +I01 +tp1878 +aa(lp1879 +S'5 * 8 + 1' +p1880 +a(I41 +I01 +tp1881 +aa(lp1882 +S'5 * 8 + 2' +p1883 +a(I39 +I00 +tp1884 +aa(lp1885 +S'5 * 8 + 3' +p1886 +a(I43 +I01 +tp1887 +aa(lp1888 +S'5 * 8 + 4' +p1889 +a(I40 +I00 +tp1890 +aa(lp1891 +S'5 * 8 + 5' +p1892 +a(I45 +I01 +tp1893 +aa(lp1894 +S'5 * 8 + 6' +p1895 +a(I46 +I01 +tp1896 +aa(lp1897 +S'5 * 8 + 7' +p1898 +a(I47 +I01 +tp1899 +aa(lp1900 +S'5 * 8 + 8' +p1901 +a(I48 +I01 +tp1902 +aa(lp1903 +S'5 * 8 + 9' +p1904 +a(I44 +I00 +tp1905 +aa(lp1906 +S'5 * 8 - 1' +p1907 +a(I37 +I00 +tp1908 +aa(lp1909 +S'5 * 8 - 2' +p1910 +a(I34 +I00 +tp1911 +aa(lp1912 +S'5 * 8 - 3' +p1913 +a(I33 +I00 +tp1914 +aa(lp1915 +S'5 * 8 - 4' +p1916 +a(I36 +I01 +tp1917 +aa(lp1918 +S'5 * 8 - 5' +p1919 +a(I30 +I00 +tp1920 +aa(lp1921 +S'5 * 8 - 6' +p1922 +a(I32 +I00 +tp1923 +aa(lp1924 +S'5 * 8 - 7' +p1925 +a(I28 +I00 +tp1926 +aa(lp1927 +S'5 * 8 - 8' +p1928 +a(I32 +I01 +tp1929 +aa(lp1930 +S'5 * 8 - 9' +p1931 +a(I28 +I00 +tp1932 +aa(lp1933 +S'5 * 9 + 1' +p1934 +a(I46 +I01 +tp1935 +aa(lp1936 +S'5 * 9 + 2' +p1937 +a(I47 +I01 +tp1938 +aa(lp1939 +S'5 * 9 + 3' +p1940 +a(I44 +I00 +tp1941 +aa(lp1942 +S'5 * 9 + 4' +p1943 +a(I46 +I00 +tp1944 +aa(lp1945 +S'5 * 9 + 5' +p1946 +a(I49 +I00 +tp1947 +aa(lp1948 +S'5 * 9 + 6' +p1949 +a(I46 +I00 +tp1950 +aa(lp1951 +S'5 * 9 + 7' +p1952 +a(I51 +I00 +tp1953 +aa(lp1954 +S'5 * 9 + 8' +p1955 +a(I49 +I00 +tp1956 +aa(lp1957 +S'5 * 9 + 9' +p1958 +a(I51 +I00 +tp1959 +aa(lp1960 +S'5 * 9 - 1' +p1961 +a(I44 +I01 +tp1962 +aa(lp1963 +S'5 * 9 - 2' +p1964 +a(I43 +I01 +tp1965 +aa(lp1966 +S'5 * 9 - 3' +p1967 +a(I42 +I01 +tp1968 +aa(lp1969 +S'5 * 9 - 4' +p1970 +a(I37 +I00 +tp1971 +aa(lp1972 +S'5 * 9 - 5' +p1973 +a(I40 +I01 +tp1974 +aa(lp1975 +S'5 * 9 - 6' +p1976 +a(I37 +I00 +tp1977 +aa(lp1978 +S'5 * 9 - 7' +p1979 +a(I34 +I00 +tp1980 +aa(lp1981 +S'5 * 9 - 8' +p1982 +a(I37 +I01 +tp1983 +aa(lp1984 +S'5 * 9 - 9' +p1985 +a(I36 +I01 +tp1986 +aa(lp1987 +S'6 * 1 + 1' +p1988 +a(I2 +I00 +tp1989 +aa(lp1990 +S'6 * 1 + 2' +p1991 +a(I5 +I00 +tp1992 +aa(lp1993 +S'6 * 1 + 3' +p1994 +a(I9 +I01 +tp1995 +aa(lp1996 +S'6 * 1 + 4' +p1997 +a(I9 +I00 +tp1998 +aa(lp1999 +S'6 * 1 + 5' +p2000 +a(I11 +I01 +tp2001 +aa(lp2002 +S'6 * 1 + 6' +p2003 +a(I8 +I00 +tp2004 +aa(lp2005 +S'6 * 1 + 7' +p2006 +a(I13 +I01 +tp2007 +aa(lp2008 +S'6 * 1 + 8' +p2009 +a(I14 +I01 +tp2010 +aa(lp2011 +S'6 * 1 + 9' +p2012 +a(I10 +I00 +tp2013 +aa(lp2014 +S'6 * 1 - 1' +p2015 +a(I0 +I00 +tp2016 +aa(lp2017 +S'6 * 1 - 2' +p2018 +a(I0 +I00 +tp2019 +aa(lp2020 +S'6 * 1 - 3' +p2021 +a(I5 +I00 +tp2022 +aa(lp2023 +S'6 * 1 - 4' +p2024 +a(I1 +I00 +tp2025 +aa(lp2026 +S'6 * 1 - 5' +p2027 +a(I1 +I01 +tp2028 +aa(lp2029 +S'6 * 1 - 6' +p2030 +a(I2 +I00 +tp2031 +aa(lp2032 +S'6 * 2 + 1' +p2033 +a(I13 +I01 +tp2034 +aa(lp2035 +S'6 * 2 + 2' +p2036 +a(I14 +I01 +tp2037 +aa(lp2038 +S'6 * 2 + 3' +p2039 +a(I15 +I01 +tp2040 +aa(lp2041 +S'6 * 2 + 4' +p2042 +a(I16 +I01 +tp2043 +aa(lp2044 +S'6 * 2 + 5' +p2045 +a(I17 +I01 +tp2046 +aa(lp2047 +S'6 * 2 + 6' +p2048 +a(I15 +I00 +tp2049 +aa(lp2050 +S'6 * 2 + 7' +p2051 +a(I16 +I00 +tp2052 +aa(lp2053 +S'6 * 2 + 8' +p2054 +a(I20 +I01 +tp2055 +aa(lp2056 +S'6 * 2 + 9' +p2057 +a(I16 +I00 +tp2058 +aa(lp2059 +S'6 * 2 - 1' +p2060 +a(I11 +I01 +tp2061 +aa(lp2062 +S'6 * 2 - 2' +p2063 +a(I6 +I00 +tp2064 +aa(lp2065 +S'6 * 2 - 3' +p2066 +a(I9 +I01 +tp2067 +aa(lp2068 +S'6 * 2 - 4' +p2069 +a(I8 +I01 +tp2070 +aa(lp2071 +S'6 * 2 - 5' +p2072 +a(I7 +I01 +tp2073 +aa(lp2074 +S'6 * 2 - 6' +p2075 +a(I4 +I00 +tp2076 +aa(lp2077 +S'6 * 2 - 7' +p2078 +a(I4 +I00 +tp2079 +aa(lp2080 +S'6 * 2 - 8' +p2081 +a(I4 +I01 +tp2082 +aa(lp2083 +S'6 * 2 - 9' +p2084 +a(I3 +I01 +tp2085 +aa(lp2086 +S'6 * 3 + 1' +p2087 +a(I19 +I01 +tp2088 +aa(lp2089 +S'6 * 3 + 2' +p2090 +a(I20 +I01 +tp2091 +aa(lp2092 +S'6 * 3 + 3' +p2093 +a(I17 +I00 +tp2094 +aa(lp2095 +S'6 * 3 + 4' +p2096 +a(I22 +I01 +tp2097 +aa(lp2098 +S'6 * 3 + 5' +p2099 +a(I18 +I00 +tp2100 +aa(lp2101 +S'6 * 3 + 6' +p2102 +a(I24 +I01 +tp2103 +aa(lp2104 +S'6 * 3 + 7' +p2105 +a(I23 +I00 +tp2106 +aa(lp2107 +S'6 * 3 + 8' +p2108 +a(I23 +I00 +tp2109 +aa(lp2110 +S'6 * 3 + 9' +p2111 +a(I27 +I01 +tp2112 +aa(lp2113 +S'6 * 3 - 1' +p2114 +a(I13 +I00 +tp2115 +aa(lp2116 +S'6 * 3 - 2' +p2117 +a(I16 +I01 +tp2118 +aa(lp2119 +S'6 * 3 - 3' +p2120 +a(I14 +I00 +tp2121 +aa(lp2122 +S'6 * 3 - 4' +p2123 +a(I14 +I01 +tp2124 +aa(lp2125 +S'6 * 3 - 5' +p2126 +a(I13 +I01 +tp2127 +aa(lp2128 +S'6 * 3 - 6' +p2129 +a(I11 +I00 +tp2130 +aa(lp2131 +S'6 * 3 - 7' +p2132 +a(I11 +I01 +tp2133 +aa(lp2134 +S'6 * 3 - 8' +p2135 +a(I6 +I00 +tp2136 +aa(lp2137 +S'6 * 3 - 9' +p2138 +a(I4 +I00 +tp2139 +aa(lp2140 +S'6 * 4 + 1' +p2141 +a(I20 +I00 +tp2142 +aa(lp2143 +S'6 * 4 + 2' +p2144 +a(I24 +I00 +tp2145 +aa(lp2146 +S'6 * 4 + 3' +p2147 +a(I27 +I01 +tp2148 +aa(lp2149 +S'6 * 4 + 4' +p2150 +a(I28 +I01 +tp2151 +aa(lp2152 +S'6 * 4 + 5' +p2153 +a(I29 +I01 +tp2154 +aa(lp2155 +S'6 * 4 + 6' +p2156 +a(I29 +I00 +tp2157 +aa(lp2158 +S'6 * 4 + 7' +p2159 +a(I29 +I00 +tp2160 +aa(lp2161 +S'6 * 4 + 8' +p2162 +a(I28 +I00 +tp2163 +aa(lp2164 +S'6 * 4 + 9' +p2165 +a(I33 +I01 +tp2166 +aa(lp2167 +S'6 * 4 - 1' +p2168 +a(I23 +I01 +tp2169 +aa(lp2170 +S'6 * 4 - 2' +p2171 +a(I22 +I01 +tp2172 +aa(lp2173 +S'6 * 4 - 3' +p2174 +a(I21 +I01 +tp2175 +aa(lp2176 +S'6 * 4 - 4' +p2177 +a(I20 +I01 +tp2178 +aa(lp2179 +S'6 * 4 - 5' +p2180 +a(I19 +I01 +tp2181 +aa(lp2182 +S'6 * 4 - 6' +p2183 +a(I18 +I01 +tp2184 +aa(lp2185 +S'6 * 4 - 7' +p2186 +a(I12 +I00 +tp2187 +aa(lp2188 +S'6 * 4 - 8' +p2189 +a(I13 +I00 +tp2190 +aa(lp2191 +S'6 * 4 - 9' +p2192 +a(I11 +I00 +tp2193 +aa(lp2194 +S'6 * 5 + 1' +p2195 +a(I31 +I01 +tp2196 +aa(lp2197 +S'6 * 5 + 2' +p2198 +a(I32 +I01 +tp2199 +aa(lp2200 +S'6 * 5 + 3' +p2201 +a(I30 +I00 +tp2202 +aa(lp2203 +S'6 * 5 + 4' +p2204 +a(I34 +I01 +tp2205 +aa(lp2206 +S'6 * 5 + 5' +p2207 +a(I30 +I00 +tp2208 +aa(lp2209 +S'6 * 5 + 6' +p2210 +a(I36 +I01 +tp2211 +aa(lp2212 +S'6 * 5 + 7' +p2213 +a(I33 +I00 +tp2214 +aa(lp2215 +S'6 * 5 + 8' +p2216 +a(I38 +I01 +tp2217 +aa(lp2218 +S'6 * 5 + 9' +p2219 +a(I38 +I00 +tp2220 +aa(lp2221 +S'6 * 5 - 1' +p2222 +a(I25 +I00 +tp2223 +aa(lp2224 +S'6 * 5 - 2' +p2225 +a(I26 +I00 +tp2226 +aa(lp2227 +S'6 * 5 - 3' +p2228 +a(I27 +I01 +tp2229 +aa(lp2230 +S'6 * 5 - 4' +p2231 +a(I26 +I01 +tp2232 +aa(lp2233 +S'6 * 5 - 5' +p2234 +a(I25 +I01 +tp2235 +aa(lp2236 +S'6 * 5 - 6' +p2237 +a(I19 +I00 +tp2238 +aa(lp2239 +S'6 * 5 - 7' +p2240 +a(I23 +I01 +tp2241 +aa(lp2242 +S'6 * 5 - 8' +p2243 +a(I22 +I01 +tp2244 +aa(lp2245 +S'6 * 5 - 9' +p2246 +a(I18 +I00 +tp2247 +aa(lp2248 +S'6 * 7 + 1' +p2249 +a(I43 +I01 +tp2250 +aa(lp2251 +S'6 * 7 + 2' +p2252 +a(I39 +I00 +tp2253 +aa(lp2254 +S'6 * 7 + 3' +p2255 +a(I40 +I00 +tp2256 +aa(lp2257 +S'6 * 7 + 4' +p2258 +a(I45 +I00 +tp2259 +aa(lp2260 +S'6 * 7 + 5' +p2261 +a(I46 +I00 +tp2262 +aa(lp2263 +S'6 * 7 + 6' +p2264 +a(I47 +I00 +tp2265 +aa(lp2266 +S'6 * 7 + 7' +p2267 +a(I46 +I00 +tp2268 +aa(lp2269 +S'6 * 7 + 8' +p2270 +a(I50 +I01 +tp2271 +aa(lp2272 +S'6 * 7 + 9' +p2273 +a(I51 +I01 +tp2274 +aa(lp2275 +S'6 * 7 - 1' +p2276 +a(I41 +I01 +tp2277 +aa(lp2278 +S'6 * 7 - 2' +p2279 +a(I39 +I00 +tp2280 +aa(lp2281 +S'6 * 7 - 3' +p2282 +a(I34 +I00 +tp2283 +aa(lp2284 +S'6 * 7 - 4' +p2285 +a(I36 +I00 +tp2286 +aa(lp2287 +S'6 * 7 - 5' +p2288 +a(I34 +I00 +tp2289 +aa(lp2290 +S'6 * 7 - 6' +p2291 +a(I36 +I01 +tp2292 +aa(lp2293 +S'6 * 7 - 7' +p2294 +a(I35 +I01 +tp2295 +aa(lp2296 +S'6 * 7 - 8' +p2297 +a(I34 +I01 +tp2298 +aa(lp2299 +S'6 * 7 - 9' +p2300 +a(I33 +I01 +tp2301 +aa(lp2302 +S'6 * 8 + 1' +p2303 +a(I49 +I01 +tp2304 +aa(lp2305 +S'6 * 8 + 2' +p2306 +a(I50 +I01 +tp2307 +aa(lp2308 +S'6 * 8 + 3' +p2309 +a(I46 +I00 +tp2310 +aa(lp2311 +S'6 * 8 + 4' +p2312 +a(I52 +I01 +tp2313 +aa(lp2314 +S'6 * 8 + 5' +p2315 +a(I50 +I00 +tp2316 +aa(lp2317 +S'6 * 8 + 6' +p2318 +a(I51 +I00 +tp2319 +aa(lp2320 +S'6 * 8 + 7' +p2321 +a(I50 +I00 +tp2322 +aa(lp2323 +S'6 * 8 + 8' +p2324 +a(I56 +I01 +tp2325 +aa(lp2326 +S'6 * 8 + 9' +p2327 +a(I57 +I01 +tp2328 +aa(lp2329 +S'6 * 8 - 1' +p2330 +a(I47 +I01 +tp2331 +aa(lp2332 +S'6 * 8 - 2' +p2333 +a(I43 +I00 +tp2334 +aa(lp2335 +S'6 * 8 - 3' +p2336 +a(I45 +I01 +tp2337 +aa(lp2338 +S'6 * 8 - 4' +p2339 +a(I40 +I00 +tp2340 +aa(lp2341 +S'6 * 8 - 5' +p2342 +a(I43 +I01 +tp2343 +aa(lp2344 +S'6 * 8 - 6' +p2345 +a(I42 +I01 +tp2346 +aa(lp2347 +S'6 * 8 - 7' +p2348 +a(I41 +I01 +tp2349 +aa(lp2350 +S'6 * 8 - 8' +p2351 +a(I37 +I00 +tp2352 +aa(lp2353 +S'6 * 8 - 9' +p2354 +a(I35 +I00 +tp2355 +aa(lp2356 +S'6 * 9 + 1' +p2357 +a(I53 +I00 +tp2358 +aa(lp2359 +S'6 * 9 + 2' +p2360 +a(I54 +I00 +tp2361 +aa(lp2362 +S'6 * 9 + 3' +p2363 +a(I55 +I00 +tp2364 +aa(lp2365 +S'6 * 9 + 4' +p2366 +a(I58 +I01 +tp2367 +aa(lp2368 +S'6 * 9 + 5' +p2369 +a(I56 +I00 +tp2370 +aa(lp2371 +S'6 * 9 + 6' +p2372 +a(I57 +I00 +tp2373 +aa(lp2374 +S'6 * 9 + 7' +p2375 +a(I60 +I00 +tp2376 +aa(lp2377 +S'6 * 9 + 8' +p2378 +a(I61 +I00 +tp2379 +aa(lp2380 +S'6 * 9 + 9' +p2381 +a(I63 +I01 +tp2382 +aa(lp2383 +S'6 * 9 - 1' +p2384 +a(I51 +I00 +tp2385 +aa(lp2386 +S'6 * 9 - 2' +p2387 +a(I52 +I01 +tp2388 +aa(lp2389 +S'6 * 9 - 3' +p2390 +a(I49 +I00 +tp2391 +aa(lp2392 +S'6 * 9 - 4' +p2393 +a(I50 +I01 +tp2394 +aa(lp2395 +S'6 * 9 - 5' +p2396 +a(I49 +I01 +tp2397 +aa(lp2398 +S'6 * 9 - 6' +p2399 +a(I48 +I01 +tp2400 +aa(lp2401 +S'6 * 9 - 7' +p2402 +a(I47 +I01 +tp2403 +aa(lp2404 +S'6 * 9 - 8' +p2405 +a(I46 +I01 +tp2406 +aa(lp2407 +S'6 * 9 - 9' +p2408 +a(I45 +I01 +tp2409 +aa(lp2410 +S'7 * 1 + 1' +p2411 +a(I5 +I00 +tp2412 +aa(lp2413 +S'7 * 1 + 2' +p2414 +a(I7 +I00 +tp2415 +aa(lp2416 +S'7 * 1 + 3' +p2417 +a(I10 +I01 +tp2418 +aa(lp2419 +S'7 * 1 + 4' +p2420 +a(I8 +I00 +tp2421 +aa(lp2422 +S'7 * 1 + 5' +p2423 +a(I7 +I00 +tp2424 +aa(lp2425 +S'7 * 1 + 6' +p2426 +a(I13 +I01 +tp2427 +aa(lp2428 +S'7 * 1 + 7' +p2429 +a(I14 +I01 +tp2430 +aa(lp2431 +S'7 * 1 + 8' +p2432 +a(I15 +I01 +tp2433 +aa(lp2434 +S'7 * 1 + 9' +p2435 +a(I15 +I00 +tp2436 +aa(lp2437 +S'7 * 1 - 1' +p2438 +a(I4 +I00 +tp2439 +aa(lp2440 +S'7 * 1 - 2' +p2441 +a(I3 +I00 +tp2442 +aa(lp2443 +S'7 * 1 - 3' +p2444 +a(I4 +I01 +tp2445 +aa(lp2446 +S'7 * 1 - 4' +p2447 +a(I7 +I00 +tp2448 +aa(lp2449 +S'7 * 1 - 5' +p2450 +a(I0 +I00 +tp2451 +aa(lp2452 +S'7 * 1 - 6' +p2453 +a(I1 +I01 +tp2454 +aa(lp2455 +S'7 * 1 - 7' +p2456 +a(I0 +I01 +tp2457 +aa(lp2458 +S'7 * 2 + 1' +p2459 +a(I10 +I00 +tp2460 +aa(lp2461 +S'7 * 2 + 2' +p2462 +a(I16 +I01 +tp2463 +aa(lp2464 +S'7 * 2 + 3' +p2465 +a(I17 +I01 +tp2466 +aa(lp2467 +S'7 * 2 + 4' +p2468 +a(I15 +I00 +tp2469 +aa(lp2470 +S'7 * 2 + 5' +p2471 +a(I19 +I01 +tp2472 +aa(lp2473 +S'7 * 2 + 6' +p2474 +a(I18 +I00 +tp2475 +aa(lp2476 +S'7 * 2 + 7' +p2477 +a(I21 +I01 +tp2478 +aa(lp2479 +S'7 * 2 + 8' +p2480 +a(I19 +I00 +tp2481 +aa(lp2482 +S'7 * 2 + 9' +p2483 +a(I22 +I00 +tp2484 +aa(lp2485 +S'7 * 2 - 1' +p2486 +a(I13 +I01 +tp2487 +aa(lp2488 +S'7 * 2 - 2' +p2489 +a(I12 +I01 +tp2490 +aa(lp2491 +S'7 * 2 - 3' +p2492 +a(I11 +I01 +tp2493 +aa(lp2494 +S'7 * 2 - 4' +p2495 +a(I10 +I01 +tp2496 +aa(lp2497 +S'7 * 2 - 5' +p2498 +a(I5 +I00 +tp2499 +aa(lp2500 +S'7 * 2 - 6' +p2501 +a(I4 +I00 +tp2502 +aa(lp2503 +S'7 * 2 - 7' +p2504 +a(I2 +I00 +tp2505 +aa(lp2506 +S'7 * 2 - 8' +p2507 +a(I6 +I01 +tp2508 +aa(lp2509 +S'7 * 2 - 9' +p2510 +a(I5 +I01 +tp2511 +aa(lp2512 +S'7 * 3 + 1' +p2513 +a(I19 +I00 +tp2514 +aa(lp2515 +S'7 * 3 + 2' +p2516 +a(I20 +I00 +tp2517 +aa(lp2518 +S'7 * 3 + 3' +p2519 +a(I23 +I00 +tp2520 +aa(lp2521 +S'7 * 3 + 4' +p2522 +a(I25 +I01 +tp2523 +aa(lp2524 +S'7 * 3 + 5' +p2525 +a(I26 +I01 +tp2526 +aa(lp2527 +S'7 * 3 + 6' +p2528 +a(I23 +I00 +tp2529 +aa(lp2530 +S'7 * 3 + 7' +p2531 +a(I25 +I00 +tp2532 +aa(lp2533 +S'7 * 3 + 8' +p2534 +a(I28 +I00 +tp2535 +aa(lp2536 +S'7 * 3 + 9' +p2537 +a(I30 +I01 +tp2538 +aa(lp2539 +S'7 * 3 - 1' +p2540 +a(I17 +I00 +tp2541 +aa(lp2542 +S'7 * 3 - 2' +p2543 +a(I19 +I01 +tp2544 +aa(lp2545 +S'7 * 3 - 3' +p2546 +a(I18 +I01 +tp2547 +aa(lp2548 +S'7 * 3 - 4' +p2549 +a(I15 +I00 +tp2550 +aa(lp2551 +S'7 * 3 - 5' +p2552 +a(I16 +I01 +tp2553 +aa(lp2554 +S'7 * 3 - 6' +p2555 +a(I15 +I01 +tp2556 +aa(lp2557 +S'7 * 3 - 7' +p2558 +a(I14 +I01 +tp2559 +aa(lp2560 +S'7 * 3 - 8' +p2561 +a(I10 +I00 +tp2562 +aa(lp2563 +S'7 * 3 - 9' +p2564 +a(I9 +I00 +tp2565 +aa(lp2566 +S'7 * 4 + 1' +p2567 +a(I25 +I00 +tp2568 +aa(lp2569 +S'7 * 4 + 2' +p2570 +a(I30 +I01 +tp2571 +aa(lp2572 +S'7 * 4 + 3' +p2573 +a(I30 +I00 +tp2574 +aa(lp2575 +S'7 * 4 + 4' +p2576 +a(I28 +I00 +tp2577 +aa(lp2578 +S'7 * 4 + 5' +p2579 +a(I29 +I00 +tp2580 +aa(lp2581 +S'7 * 4 + 6' +p2582 +a(I32 +I00 +tp2583 +aa(lp2584 +S'7 * 4 + 7' +p2585 +a(I30 +I00 +tp2586 +aa(lp2587 +S'7 * 4 + 8' +p2588 +a(I36 +I01 +tp2589 +aa(lp2590 +S'7 * 4 + 9' +p2591 +a(I37 +I01 +tp2592 +aa(lp2593 +S'7 * 4 - 1' +p2594 +a(I26 +I00 +tp2595 +aa(lp2596 +S'7 * 4 - 2' +p2597 +a(I26 +I01 +tp2598 +aa(lp2599 +S'7 * 4 - 3' +p2600 +a(I25 +I01 +tp2601 +aa(lp2602 +S'7 * 4 - 4' +p2603 +a(I24 +I01 +tp2604 +aa(lp2605 +S'7 * 4 - 5' +p2606 +a(I23 +I01 +tp2607 +aa(lp2608 +S'7 * 4 - 6' +p2609 +a(I19 +I00 +tp2610 +aa(lp2611 +S'7 * 4 - 7' +p2612 +a(I18 +I00 +tp2613 +aa(lp2614 +S'7 * 4 - 8' +p2615 +a(I17 +I00 +tp2616 +aa(lp2617 +S'7 * 4 - 9' +p2618 +a(I19 +I01 +tp2619 +aa(lp2620 +S'7 * 5 + 1' +p2621 +a(I33 +I00 +tp2622 +aa(lp2623 +S'7 * 5 + 2' +p2624 +a(I37 +I01 +tp2625 +aa(lp2626 +S'7 * 5 + 3' +p2627 +a(I34 +I00 +tp2628 +aa(lp2629 +S'7 * 5 + 4' +p2630 +a(I34 +I00 +tp2631 +aa(lp2632 +S'7 * 5 + 5' +p2633 +a(I38 +I00 +tp2634 +aa(lp2635 +S'7 * 5 + 6' +p2636 +a(I41 +I01 +tp2637 +aa(lp2638 +S'7 * 5 + 7' +p2639 +a(I42 +I01 +tp2640 +aa(lp2641 +S'7 * 5 + 8' +p2642 +a(I38 +I00 +tp2643 +aa(lp2644 +S'7 * 5 + 9' +p2645 +a(I43 +I00 +tp2646 +aa(lp2647 +S'7 * 5 - 1' +p2648 +a(I34 +I01 +tp2649 +aa(lp2650 +S'7 * 5 - 2' +p2651 +a(I33 +I01 +tp2652 +aa(lp2653 +S'7 * 5 - 3' +p2654 +a(I32 +I01 +tp2655 +aa(lp2656 +S'7 * 5 - 4' +p2657 +a(I30 +I00 +tp2658 +aa(lp2659 +S'7 * 5 - 5' +p2660 +a(I25 +I00 +tp2661 +aa(lp2662 +S'7 * 5 - 6' +p2663 +a(I24 +I00 +tp2664 +aa(lp2665 +S'7 * 5 - 7' +p2666 +a(I28 +I01 +tp2667 +aa(lp2668 +S'7 * 5 - 8' +p2669 +a(I26 +I00 +tp2670 +aa(lp2671 +S'7 * 5 - 9' +p2672 +a(I26 +I01 +tp2673 +aa(lp2674 +S'7 * 6 + 1' +p2675 +a(I43 +I01 +tp2676 +aa(lp2677 +S'7 * 6 + 2' +p2678 +a(I44 +I01 +tp2679 +aa(lp2680 +S'7 * 6 + 3' +p2681 +a(I42 +I00 +tp2682 +aa(lp2683 +S'7 * 6 + 4' +p2684 +a(I41 +I00 +tp2685 +aa(lp2686 +S'7 * 6 + 5' +p2687 +a(I47 +I01 +tp2688 +aa(lp2689 +S'7 * 6 + 6' +p2690 +a(I44 +I00 +tp2691 +aa(lp2692 +S'7 * 6 + 7' +p2693 +a(I48 +I00 +tp2694 +aa(lp2695 +S'7 * 6 + 8' +p2696 +a(I47 +I00 +tp2697 +aa(lp2698 +S'7 * 6 + 9' +p2699 +a(I51 +I01 +tp2700 +aa(lp2701 +S'7 * 6 - 1' +p2702 +a(I37 +I00 +tp2703 +aa(lp2704 +S'7 * 6 - 2' +p2705 +a(I40 +I01 +tp2706 +aa(lp2707 +S'7 * 6 - 3' +p2708 +a(I38 +I00 +tp2709 +aa(lp2710 +S'7 * 6 - 4' +p2711 +a(I38 +I01 +tp2712 +aa(lp2713 +S'7 * 6 - 5' +p2714 +a(I37 +I01 +tp2715 +aa(lp2716 +S'7 * 6 - 6' +p2717 +a(I36 +I01 +tp2718 +aa(lp2719 +S'7 * 6 - 7' +p2720 +a(I33 +I00 +tp2721 +aa(lp2722 +S'7 * 6 - 8' +p2723 +a(I32 +I00 +tp2724 +aa(lp2725 +S'7 * 6 - 9' +p2726 +a(I33 +I01 +tp2727 +aa(lp2728 +S'7 * 8 + 1' +p2729 +a(I54 +I00 +tp2730 +aa(lp2731 +S'7 * 8 + 2' +p2732 +a(I58 +I01 +tp2733 +aa(lp2734 +S'7 * 8 + 3' +p2735 +a(I54 +I00 +tp2736 +aa(lp2737 +S'7 * 8 + 4' +p2738 +a(I60 +I01 +tp2739 +aa(lp2740 +S'7 * 8 + 5' +p2741 +a(I60 +I00 +tp2742 +aa(lp2743 +S'7 * 8 + 6' +p2744 +a(I62 +I01 +tp2745 +aa(lp2746 +S'7 * 8 + 7' +p2747 +a(I63 +I01 +tp2748 +aa(lp2749 +S'7 * 8 + 8' +p2750 +a(I64 +I01 +tp2751 +aa(lp2752 +S'7 * 8 + 9' +p2753 +a(I60 +I00 +tp2754 +aa(lp2755 +S'7 * 8 - 1' +p2756 +a(I54 +I00 +tp2757 +aa(lp2758 +S'7 * 8 - 2' +p2759 +a(I52 +I00 +tp2760 +aa(lp2761 +S'7 * 8 - 3' +p2762 +a(I52 +I00 +tp2763 +aa(lp2764 +S'7 * 8 - 4' +p2765 +a(I50 +I00 +tp2766 +aa(lp2767 +S'7 * 8 - 5' +p2768 +a(I51 +I01 +tp2769 +aa(lp2770 +S'7 * 8 - 6' +p2771 +a(I48 +I00 +tp2772 +aa(lp2773 +S'7 * 8 - 7' +p2774 +a(I49 +I01 +tp2775 +aa(lp2776 +S'7 * 8 - 8' +p2777 +a(I46 +I00 +tp2778 +aa(lp2779 +S'7 * 8 - 9' +p2780 +a(I47 +I01 +tp2781 +aa(lp2782 +S'7 * 9 + 1' +p2783 +a(I64 +I01 +tp2784 +aa(lp2785 +S'7 * 9 + 2' +p2786 +a(I61 +I00 +tp2787 +aa(lp2788 +S'7 * 9 + 3' +p2789 +a(I65 +I00 +tp2790 +aa(lp2791 +S'7 * 9 + 4' +p2792 +a(I65 +I00 +tp2793 +aa(lp2794 +S'7 * 9 + 5' +p2795 +a(I68 +I01 +tp2796 +aa(lp2797 +S'7 * 9 + 6' +p2798 +a(I69 +I01 +tp2799 +aa(lp2800 +S'7 * 9 + 7' +p2801 +a(I70 +I01 +tp2802 +aa(lp2803 +S'7 * 9 + 8' +p2804 +a(I71 +I01 +tp2805 +aa(lp2806 +S'7 * 9 + 9' +p2807 +a(I72 +I01 +tp2808 +aa(lp2809 +S'7 * 9 - 1' +p2810 +a(I61 +I00 +tp2811 +aa(lp2812 +S'7 * 9 - 2' +p2813 +a(I61 +I01 +tp2814 +aa(lp2815 +S'7 * 9 - 3' +p2816 +a(I57 +I00 +tp2817 +aa(lp2818 +S'7 * 9 - 4' +p2819 +a(I59 +I01 +tp2820 +aa(lp2821 +S'7 * 9 - 5' +p2822 +a(I58 +I01 +tp2823 +aa(lp2824 +S'7 * 9 - 6' +p2825 +a(I53 +I00 +tp2826 +aa(lp2827 +S'7 * 9 - 7' +p2828 +a(I52 +I00 +tp2829 +aa(lp2830 +S'7 * 9 - 8' +p2831 +a(I55 +I01 +tp2832 +aa(lp2833 +S'7 * 9 - 9' +p2834 +a(I50 +I00 +tp2835 +aa(lp2836 +S'8 * 1 + 1' +p2837 +a(I7 +I00 +tp2838 +aa(lp2839 +S'8 * 1 + 2' +p2840 +a(I10 +I01 +tp2841 +aa(lp2842 +S'8 * 1 + 3' +p2843 +a(I11 +I01 +tp2844 +aa(lp2845 +S'8 * 1 + 4' +p2846 +a(I12 +I01 +tp2847 +aa(lp2848 +S'8 * 1 + 5' +p2849 +a(I13 +I01 +tp2850 +aa(lp2851 +S'8 * 1 + 6' +p2852 +a(I11 +I00 +tp2853 +aa(lp2854 +S'8 * 1 + 7' +p2855 +a(I12 +I00 +tp2856 +aa(lp2857 +S'8 * 1 + 8' +p2858 +a(I11 +I00 +tp2859 +aa(lp2860 +S'8 * 1 + 9' +p2861 +a(I13 +I00 +tp2862 +aa(lp2863 +S'8 * 1 - 1' +p2864 +a(I6 +I00 +tp2865 +aa(lp2866 +S'8 * 1 - 2' +p2867 +a(I6 +I01 +tp2868 +aa(lp2869 +S'8 * 1 - 3' +p2870 +a(I4 +I00 +tp2871 +aa(lp2872 +S'8 * 1 - 4' +p2873 +a(I1 +I00 +tp2874 +aa(lp2875 +S'8 * 1 - 5' +p2876 +a(I0 +I00 +tp2877 +aa(lp2878 +S'8 * 1 - 6' +p2879 +a(I1 +I00 +tp2880 +aa(lp2881 +S'8 * 1 - 7' +p2882 +a(I1 +I01 +tp2883 +aa(lp2884 +S'8 * 1 - 8' +p2885 +a(I2 +I00 +tp2886 +aa(lp2887 +S'8 * 2 + 1' +p2888 +a(I17 +I01 +tp2889 +aa(lp2890 +S'8 * 2 + 2' +p2891 +a(I18 +I01 +tp2892 +aa(lp2893 +S'8 * 2 + 3' +p2894 +a(I19 +I01 +tp2895 +aa(lp2896 +S'8 * 2 + 4' +p2897 +a(I19 +I00 +tp2898 +aa(lp2899 +S'8 * 2 + 5' +p2900 +a(I21 +I01 +tp2901 +aa(lp2902 +S'8 * 2 + 6' +p2903 +a(I17 +I00 +tp2904 +aa(lp2905 +S'8 * 2 + 7' +p2906 +a(I20 +I00 +tp2907 +aa(lp2908 +S'8 * 2 + 8' +p2909 +a(I23 +I00 +tp2910 +aa(lp2911 +S'8 * 2 + 9' +p2912 +a(I25 +I01 +tp2913 +aa(lp2914 +S'8 * 2 - 1' +p2915 +a(I15 +I01 +tp2916 +aa(lp2917 +S'8 * 2 - 2' +p2918 +a(I10 +I00 +tp2919 +aa(lp2920 +S'8 * 2 - 3' +p2921 +a(I13 +I01 +tp2922 +aa(lp2923 +S'8 * 2 - 4' +p2924 +a(I11 +I00 +tp2925 +aa(lp2926 +S'8 * 2 - 5' +p2927 +a(I11 +I01 +tp2928 +aa(lp2929 +S'8 * 2 - 6' +p2930 +a(I10 +I01 +tp2931 +aa(lp2932 +S'8 * 2 - 7' +p2933 +a(I5 +I00 +tp2934 +aa(lp2935 +S'8 * 2 - 8' +p2936 +a(I7 +I00 +tp2937 +aa(lp2938 +S'8 * 2 - 9' +p2939 +a(I7 +I01 +tp2940 +aa(lp2941 +S'8 * 3 + 1' +p2942 +a(I25 +I01 +tp2943 +aa(lp2944 +S'8 * 3 + 2' +p2945 +a(I24 +I00 +tp2946 +aa(lp2947 +S'8 * 3 + 3' +p2948 +a(I26 +I00 +tp2949 +aa(lp2950 +S'8 * 3 + 4' +p2951 +a(I24 +I00 +tp2952 +aa(lp2953 +S'8 * 3 + 5' +p2954 +a(I29 +I01 +tp2955 +aa(lp2956 +S'8 * 3 + 6' +p2957 +a(I30 +I01 +tp2958 +aa(lp2959 +S'8 * 3 + 7' +p2960 +a(I31 +I01 +tp2961 +aa(lp2962 +S'8 * 3 + 8' +p2963 +a(I32 +I01 +tp2964 +aa(lp2965 +S'8 * 3 + 9' +p2966 +a(I28 +I00 +tp2967 +aa(lp2968 +S'8 * 3 - 1' +p2969 +a(I23 +I01 +tp2970 +aa(lp2971 +S'8 * 3 - 2' +p2972 +a(I20 +I00 +tp2973 +aa(lp2974 +S'8 * 3 - 3' +p2975 +a(I18 +I00 +tp2976 +aa(lp2977 +S'8 * 3 - 4' +p2978 +a(I18 +I00 +tp2979 +aa(lp2980 +S'8 * 3 - 5' +p2981 +a(I17 +I00 +tp2982 +aa(lp2983 +S'8 * 3 - 6' +p2984 +a(I16 +I00 +tp2985 +aa(lp2986 +S'8 * 3 - 7' +p2987 +a(I14 +I00 +tp2988 +aa(lp2989 +S'8 * 3 - 8' +p2990 +a(I16 +I01 +tp2991 +aa(lp2992 +S'8 * 3 - 9' +p2993 +a(I15 +I01 +tp2994 +aa(lp2995 +S'8 * 4 + 1' +p2996 +a(I32 +I00 +tp2997 +aa(lp2998 +S'8 * 4 + 2' +p2999 +a(I32 +I00 +tp3000 +aa(lp3001 +S'8 * 4 + 3' +p3002 +a(I35 +I01 +tp3003 +aa(lp3004 +S'8 * 4 + 4' +p3005 +a(I34 +I00 +tp3006 +aa(lp3007 +S'8 * 4 + 5' +p3008 +a(I37 +I01 +tp3009 +aa(lp3010 +S'8 * 4 + 6' +p3011 +a(I38 +I01 +tp3012 +aa(lp3013 +S'8 * 4 + 7' +p3014 +a(I39 +I01 +tp3015 +aa(lp3016 +S'8 * 4 + 8' +p3017 +a(I35 +I00 +tp3018 +aa(lp3019 +S'8 * 4 + 9' +p3020 +a(I41 +I01 +tp3021 +aa(lp3022 +S'8 * 4 - 1' +p3023 +a(I29 +I00 +tp3024 +aa(lp3025 +S'8 * 4 - 2' +p3026 +a(I30 +I01 +tp3027 +aa(lp3028 +S'8 * 4 - 3' +p3029 +a(I29 +I01 +tp3030 +aa(lp3031 +S'8 * 4 - 4' +p3032 +a(I28 +I01 +tp3033 +aa(lp3034 +S'8 * 4 - 5' +p3035 +a(I27 +I01 +tp3036 +aa(lp3037 +S'8 * 4 - 6' +p3038 +a(I24 +I00 +tp3039 +aa(lp3040 +S'8 * 4 - 7' +p3041 +a(I22 +I00 +tp3042 +aa(lp3043 +S'8 * 4 - 8' +p3044 +a(I24 +I01 +tp3045 +aa(lp3046 +S'8 * 4 - 9' +p3047 +a(I19 +I00 +tp3048 +aa(lp3049 +S'8 * 5 + 1' +p3050 +a(I40 +I00 +tp3051 +aa(lp3052 +S'8 * 5 + 2' +p3053 +a(I42 +I01 +tp3054 +aa(lp3055 +S'8 * 5 + 3' +p3056 +a(I42 +I00 +tp3057 +aa(lp3058 +S'8 * 5 + 4' +p3059 +a(I43 +I00 +tp3060 +aa(lp3061 +S'8 * 5 + 5' +p3062 +a(I42 +I00 +tp3063 +aa(lp3064 +S'8 * 5 + 6' +p3065 +a(I45 +I00 +tp3066 +aa(lp3067 +S'8 * 5 + 7' +p3068 +a(I47 +I01 +tp3069 +aa(lp3070 +S'8 * 5 + 8' +p3071 +a(I48 +I01 +tp3072 +aa(lp3073 +S'8 * 5 + 9' +p3074 +a(I46 +I00 +tp3075 +aa(lp3076 +S'8 * 5 - 1' +p3077 +a(I35 +I00 +tp3078 +aa(lp3079 +S'8 * 5 - 2' +p3080 +a(I37 +I00 +tp3081 +aa(lp3082 +S'8 * 5 - 3' +p3083 +a(I37 +I01 +tp3084 +aa(lp3085 +S'8 * 5 - 4' +p3086 +a(I36 +I01 +tp3087 +aa(lp3088 +S'8 * 5 - 5' +p3089 +a(I35 +I01 +tp3090 +aa(lp3091 +S'8 * 5 - 6' +p3092 +a(I34 +I01 +tp3093 +aa(lp3094 +S'8 * 5 - 7' +p3095 +a(I28 +I00 +tp3096 +aa(lp3097 +S'8 * 5 - 8' +p3098 +a(I27 +I00 +tp3099 +aa(lp3100 +S'8 * 5 - 9' +p3101 +a(I31 +I01 +tp3102 +aa(lp3103 +S'8 * 6 + 1' +p3104 +a(I46 +I00 +tp3105 +aa(lp3106 +S'8 * 6 + 2' +p3107 +a(I50 +I01 +tp3108 +aa(lp3109 +S'8 * 6 + 3' +p3110 +a(I51 +I01 +tp3111 +aa(lp3112 +S'8 * 6 + 4' +p3113 +a(I47 +I00 +tp3114 +aa(lp3115 +S'8 * 6 + 5' +p3116 +a(I53 +I01 +tp3117 +aa(lp3118 +S'8 * 6 + 6' +p3119 +a(I53 +I00 +tp3120 +aa(lp3121 +S'8 * 6 + 7' +p3122 +a(I51 +I00 +tp3123 +aa(lp3124 +S'8 * 6 + 8' +p3125 +a(I54 +I00 +tp3126 +aa(lp3127 +S'8 * 6 + 9' +p3128 +a(I53 +I00 +tp3129 +aa(lp3130 +S'8 * 6 - 1' +p3131 +a(I47 +I01 +tp3132 +aa(lp3133 +S'8 * 6 - 2' +p3134 +a(I46 +I01 +tp3135 +aa(lp3136 +S'8 * 6 - 3' +p3137 +a(I41 +I00 +tp3138 +aa(lp3139 +S'8 * 6 - 4' +p3140 +a(I42 +I00 +tp3141 +aa(lp3142 +S'8 * 6 - 5' +p3143 +a(I43 +I01 +tp3144 +aa(lp3145 +S'8 * 6 - 6' +p3146 +a(I39 +I00 +tp3147 +aa(lp3148 +S'8 * 6 - 7' +p3149 +a(I37 +I00 +tp3150 +aa(lp3151 +S'8 * 6 - 8' +p3152 +a(I36 +I00 +tp3153 +aa(lp3154 +S'8 * 6 - 9' +p3155 +a(I35 +I00 +tp3156 +aa(lp3157 +S'8 * 7 + 1' +p3158 +a(I57 +I01 +tp3159 +aa(lp3160 +S'8 * 7 + 2' +p3161 +a(I56 +I00 +tp3162 +aa(lp3163 +S'8 * 7 + 3' +p3164 +a(I59 +I01 +tp3165 +aa(lp3166 +S'8 * 7 + 4' +p3167 +a(I60 +I01 +tp3168 +aa(lp3169 +S'8 * 7 + 5' +p3170 +a(I59 +I00 +tp3171 +aa(lp3172 +S'8 * 7 + 6' +p3173 +a(I58 +I00 +tp3174 +aa(lp3175 +S'8 * 7 + 7' +p3176 +a(I59 +I00 +tp3177 +aa(lp3178 +S'8 * 7 + 8' +p3179 +a(I60 +I00 +tp3180 +aa(lp3181 +S'8 * 7 + 9' +p3182 +a(I60 +I00 +tp3183 +aa(lp3184 +S'8 * 7 - 1' +p3185 +a(I55 +I01 +tp3186 +aa(lp3187 +S'8 * 7 - 2' +p3188 +a(I50 +I00 +tp3189 +aa(lp3190 +S'8 * 7 - 3' +p3191 +a(I49 +I00 +tp3192 +aa(lp3193 +S'8 * 7 - 4' +p3194 +a(I47 +I00 +tp3195 +aa(lp3196 +S'8 * 7 - 5' +p3197 +a(I51 +I01 +tp3198 +aa(lp3199 +S'8 * 7 - 6' +p3200 +a(I48 +I00 +tp3201 +aa(lp3202 +S'8 * 7 - 7' +p3203 +a(I49 +I01 +tp3204 +aa(lp3205 +S'8 * 7 - 8' +p3206 +a(I44 +I00 +tp3207 +aa(lp3208 +S'8 * 7 - 9' +p3209 +a(I45 +I00 +tp3210 +aa(lp3211 +S'8 * 9 + 1' +p3212 +a(I72 +I00 +tp3213 +aa(lp3214 +S'8 * 9 + 2' +p3215 +a(I73 +I00 +tp3216 +aa(lp3217 +S'8 * 9 + 3' +p3218 +a(I71 +I00 +tp3219 +aa(lp3220 +S'8 * 9 + 4' +p3221 +a(I75 +I00 +tp3222 +aa(lp3223 +S'8 * 9 + 5' +p3224 +a(I73 +I00 +tp3225 +aa(lp3226 +S'8 * 9 + 6' +p3227 +a(I78 +I01 +tp3228 +aa(lp3229 +S'8 * 9 + 7' +p3230 +a(I75 +I00 +tp3231 +aa(lp3232 +S'8 * 9 + 8' +p3233 +a(I80 +I01 +tp3234 +aa(lp3235 +S'8 * 9 + 9' +p3236 +a(I78 +I00 +tp3237 +aa(lp3238 +S'8 * 9 - 1' +p3239 +a(I66 +I00 +tp3240 +aa(lp3241 +S'8 * 9 - 2' +p3242 +a(I70 +I01 +tp3243 +aa(lp3244 +S'8 * 9 - 3' +p3245 +a(I69 +I01 +tp3246 +aa(lp3247 +S'8 * 9 - 4' +p3248 +a(I68 +I01 +tp3249 +aa(lp3250 +S'8 * 9 - 5' +p3251 +a(I66 +I00 +tp3252 +aa(lp3253 +S'8 * 9 - 6' +p3254 +a(I65 +I00 +tp3255 +aa(lp3256 +S'8 * 9 - 7' +p3257 +a(I63 +I00 +tp3258 +aa(lp3259 +S'8 * 9 - 8' +p3260 +a(I64 +I01 +tp3261 +aa(lp3262 +S'8 * 9 - 9' +p3263 +a(I63 +I01 +tp3264 +aa(lp3265 +S'9 * 1 + 1' +p3266 +a(I10 +I01 +tp3267 +aa(lp3268 +S'9 * 1 + 2' +p3269 +a(I10 +I00 +tp3270 +aa(lp3271 +S'9 * 1 + 3' +p3272 +a(I9 +I00 +tp3273 +aa(lp3274 +S'9 * 1 + 4' +p3275 +a(I13 +I01 +tp3276 +aa(lp3277 +S'9 * 1 + 5' +p3278 +a(I10 +I00 +tp3279 +aa(lp3280 +S'9 * 1 + 6' +p3281 +a(I14 +I00 +tp3282 +aa(lp3283 +S'9 * 1 + 7' +p3284 +a(I15 +I00 +tp3285 +aa(lp3286 +S'9 * 1 + 8' +p3287 +a(I17 +I01 +tp3288 +aa(lp3289 +S'9 * 1 + 9' +p3290 +a(I15 +I00 +tp3291 +aa(lp3292 +S'9 * 1 - 1' +p3293 +a(I4 +I00 +tp3294 +aa(lp3295 +S'9 * 1 - 2' +p3296 +a(I7 +I01 +tp3297 +aa(lp3298 +S'9 * 1 - 3' +p3299 +a(I5 +I00 +tp3300 +aa(lp3301 +S'9 * 1 - 4' +p3302 +a(I3 +I00 +tp3303 +aa(lp3304 +S'9 * 1 - 5' +p3305 +a(I4 +I01 +tp3306 +aa(lp3307 +S'9 * 1 - 6' +p3308 +a(I3 +I01 +tp3309 +aa(lp3310 +S'9 * 1 - 7' +p3311 +a(I3 +I00 +tp3312 +aa(lp3313 +S'9 * 1 - 8' +p3314 +a(I2 +I00 +tp3315 +aa(lp3316 +S'9 * 1 - 9' +p3317 +a(I5 +I00 +tp3318 +aa(lp3319 +S'9 * 2 + 1' +p3320 +a(I18 +I00 +tp3321 +aa(lp3322 +S'9 * 2 + 2' +p3323 +a(I15 +I00 +tp3324 +aa(lp3325 +S'9 * 2 + 3' +p3326 +a(I19 +I00 +tp3327 +aa(lp3328 +S'9 * 2 + 4' +p3329 +a(I22 +I01 +tp3330 +aa(lp3331 +S'9 * 2 + 5' +p3332 +a(I23 +I01 +tp3333 +aa(lp3334 +S'9 * 2 + 6' +p3335 +a(I24 +I01 +tp3336 +aa(lp3337 +S'9 * 2 + 7' +p3338 +a(I22 +I00 +tp3339 +aa(lp3340 +S'9 * 2 + 8' +p3341 +a(I22 +I00 +tp3342 +aa(lp3343 +S'9 * 2 + 9' +p3344 +a(I23 +I00 +tp3345 +aa(lp3346 +S'9 * 2 - 1' +p3347 +a(I17 +I01 +tp3348 +aa(lp3349 +S'9 * 2 - 2' +p3350 +a(I13 +I00 +tp3351 +aa(lp3352 +S'9 * 2 - 3' +p3353 +a(I15 +I01 +tp3354 +aa(lp3355 +S'9 * 2 - 4' +p3356 +a(I14 +I01 +tp3357 +aa(lp3358 +S'9 * 2 - 5' +p3359 +a(I9 +I00 +tp3360 +aa(lp3361 +S'9 * 2 - 6' +p3362 +a(I7 +I00 +tp3363 +aa(lp3364 +S'9 * 2 - 7' +p3365 +a(I11 +I01 +tp3366 +aa(lp3367 +S'9 * 2 - 8' +p3368 +a(I10 +I01 +tp3369 +aa(lp3370 +S'9 * 2 - 9' +p3371 +a(I5 +I00 +tp3372 +aa(lp3373 +S'9 * 3 + 1' +p3374 +a(I23 +I00 +tp3375 +aa(lp3376 +S'9 * 3 + 2' +p3377 +a(I29 +I01 +tp3378 +aa(lp3379 +S'9 * 3 + 3' +p3380 +a(I26 +I00 +tp3381 +aa(lp3382 +S'9 * 3 + 4' +p3383 +a(I26 +I00 +tp3384 +aa(lp3385 +S'9 * 3 + 5' +p3386 +a(I32 +I01 +tp3387 +aa(lp3388 +S'9 * 3 + 6' +p3389 +a(I33 +I01 +tp3390 +aa(lp3391 +S'9 * 3 + 7' +p3392 +a(I31 +I00 +tp3393 +aa(lp3394 +S'9 * 3 + 8' +p3395 +a(I35 +I01 +tp3396 +aa(lp3397 +S'9 * 3 + 9' +p3398 +a(I35 +I00 +tp3399 +aa(lp3400 +S'9 * 3 - 1' +p3401 +a(I25 +I00 +tp3402 +aa(lp3403 +S'9 * 3 - 2' +p3404 +a(I25 +I01 +tp3405 +aa(lp3406 +S'9 * 3 - 3' +p3407 +a(I21 +I00 +tp3408 +aa(lp3409 +S'9 * 3 - 4' +p3410 +a(I20 +I00 +tp3411 +aa(lp3412 +S'9 * 3 - 5' +p3413 +a(I22 +I01 +tp3414 +aa(lp3415 +S'9 * 3 - 6' +p3416 +a(I18 +I00 +tp3417 +aa(lp3418 +S'9 * 3 - 7' +p3419 +a(I16 +I00 +tp3420 +aa(lp3421 +S'9 * 3 - 8' +p3422 +a(I16 +I00 +tp3423 +aa(lp3424 +S'9 * 3 - 9' +p3425 +a(I15 +I00 +tp3426 +aa(lp3427 +S'9 * 4 + 1' +p3428 +a(I33 +I00 +tp3429 +aa(lp3430 +S'9 * 4 + 2' +p3431 +a(I38 +I01 +tp3432 +aa(lp3433 +S'9 * 4 + 3' +p3434 +a(I34 +I00 +tp3435 +aa(lp3436 +S'9 * 4 + 4' +p3437 +a(I40 +I01 +tp3438 +aa(lp3439 +S'9 * 4 + 5' +p3440 +a(I38 +I00 +tp3441 +aa(lp3442 +S'9 * 4 + 6' +p3443 +a(I41 +I00 +tp3444 +aa(lp3445 +S'9 * 4 + 7' +p3446 +a(I41 +I00 +tp3447 +aa(lp3448 +S'9 * 4 + 8' +p3449 +a(I44 +I01 +tp3450 +aa(lp3451 +S'9 * 4 + 9' +p3452 +a(I41 +I00 +tp3453 +aa(lp3454 +S'9 * 4 - 1' +p3455 +a(I33 +I00 +tp3456 +aa(lp3457 +S'9 * 4 - 2' +p3458 +a(I34 +I01 +tp3459 +aa(lp3460 +S'9 * 4 - 3' +p3461 +a(I33 +I01 +tp3462 +aa(lp3463 +S'9 * 4 - 4' +p3464 +a(I31 +I00 +tp3465 +aa(lp3466 +S'9 * 4 - 5' +p3467 +a(I28 +I00 +tp3468 +aa(lp3469 +S'9 * 4 - 6' +p3470 +a(I30 +I01 +tp3471 +aa(lp3472 +S'9 * 4 - 7' +p3473 +a(I26 +I00 +tp3474 +aa(lp3475 +S'9 * 4 - 8' +p3476 +a(I27 +I00 +tp3477 +aa(lp3478 +S'9 * 4 - 9' +p3479 +a(I27 +I01 +tp3480 +aa(lp3481 +S'9 * 5 + 1' +p3482 +a(I46 +I01 +tp3483 +aa(lp3484 +S'9 * 5 + 2' +p3485 +a(I43 +I00 +tp3486 +aa(lp3487 +S'9 * 5 + 3' +p3488 +a(I46 +I00 +tp3489 +aa(lp3490 +S'9 * 5 + 4' +p3491 +a(I49 +I01 +tp3492 +aa(lp3493 +S'9 * 5 + 5' +p3494 +a(I48 +I00 +tp3495 +aa(lp3496 +S'9 * 5 + 6' +p3497 +a(I48 +I00 +tp3498 +aa(lp3499 +S'9 * 5 + 7' +p3500 +a(I51 +I00 +tp3501 +aa(lp3502 +S'9 * 5 + 8' +p3503 +a(I53 +I01 +tp3504 +aa(lp3505 +S'9 * 5 + 9' +p3506 +a(I54 +I01 +tp3507 +aa(lp3508 +S'9 * 5 - 1' +p3509 +a(I44 +I01 +tp3510 +aa(lp3511 +S'9 * 5 - 2' +p3512 +a(I43 +I01 +tp3513 +aa(lp3514 +S'9 * 5 - 3' +p3515 +a(I39 +I00 +tp3516 +aa(lp3517 +S'9 * 5 - 4' +p3518 +a(I41 +I01 +tp3519 +aa(lp3520 +S'9 * 5 - 5' +p3521 +a(I36 +I00 +tp3522 +aa(lp3523 +S'9 * 5 - 6' +p3524 +a(I37 +I00 +tp3525 +aa(lp3526 +S'9 * 5 - 7' +p3527 +a(I36 +I00 +tp3528 +aa(lp3529 +S'9 * 5 - 8' +p3530 +a(I37 +I01 +tp3531 +aa(lp3532 +S'9 * 5 - 9' +p3533 +a(I35 +I00 +tp3534 +aa(lp3535 +S'9 * 6 + 1' +p3536 +a(I50 +I00 +tp3537 +aa(lp3538 +S'9 * 6 + 2' +p3539 +a(I56 +I01 +tp3540 +aa(lp3541 +S'9 * 6 + 3' +p3542 +a(I57 +I01 +tp3543 +aa(lp3544 +S'9 * 6 + 4' +p3545 +a(I58 +I01 +tp3546 +aa(lp3547 +S'9 * 6 + 5' +p3548 +a(I58 +I00 +tp3549 +aa(lp3550 +S'9 * 6 + 6' +p3551 +a(I56 +I00 +tp3552 +aa(lp3553 +S'9 * 6 + 7' +p3554 +a(I58 +I00 +tp3555 +aa(lp3556 +S'9 * 6 + 8' +p3557 +a(I61 +I00 +tp3558 +aa(lp3559 +S'9 * 6 + 9' +p3560 +a(I58 +I00 +tp3561 +aa(lp3562 +S'9 * 6 - 1' +p3563 +a(I53 +I01 +tp3564 +aa(lp3565 +S'9 * 6 - 2' +p3566 +a(I50 +I00 +tp3567 +aa(lp3568 +S'9 * 6 - 3' +p3569 +a(I51 +I01 +tp3570 +aa(lp3571 +S'9 * 6 - 4' +p3572 +a(I50 +I01 +tp3573 +aa(lp3574 +S'9 * 6 - 5' +p3575 +a(I44 +I00 +tp3576 +aa(lp3577 +S'9 * 6 - 6' +p3578 +a(I48 +I01 +tp3579 +aa(lp3580 +S'9 * 6 - 7' +p3581 +a(I47 +I01 +tp3582 +aa(lp3583 +S'9 * 6 - 8' +p3584 +a(I44 +I00 +tp3585 +aa(lp3586 +S'9 * 6 - 9' +p3587 +a(I42 +I00 +tp3588 +aa(lp3589 +S'9 * 7 + 1' +p3590 +a(I62 +I00 +tp3591 +aa(lp3592 +S'9 * 7 + 2' +p3593 +a(I63 +I00 +tp3594 +aa(lp3595 +S'9 * 7 + 3' +p3596 +a(I64 +I00 +tp3597 +aa(lp3598 +S'9 * 7 + 4' +p3599 +a(I67 +I01 +tp3600 +aa(lp3601 +S'9 * 7 + 5' +p3602 +a(I67 +I00 +tp3603 +aa(lp3604 +S'9 * 7 + 6' +p3605 +a(I64 +I00 +tp3606 +aa(lp3607 +S'9 * 7 + 7' +p3608 +a(I70 +I01 +tp3609 +aa(lp3610 +S'9 * 7 + 8' +p3611 +a(I71 +I01 +tp3612 +aa(lp3613 +S'9 * 7 + 9' +p3614 +a(I69 +I00 +tp3615 +aa(lp3616 +S'9 * 7 - 1' +p3617 +a(I58 +I00 +tp3618 +aa(lp3619 +S'9 * 7 - 2' +p3620 +a(I59 +I00 +tp3621 +aa(lp3622 +S'9 * 7 - 3' +p3623 +a(I60 +I01 +tp3624 +aa(lp3625 +S'9 * 7 - 4' +p3626 +a(I55 +I00 +tp3627 +aa(lp3628 +S'9 * 7 - 5' +p3629 +a(I58 +I01 +tp3630 +aa(lp3631 +S'9 * 7 - 6' +p3632 +a(I57 +I01 +tp3633 +aa(lp3634 +S'9 * 7 - 7' +p3635 +a(I56 +I01 +tp3636 +aa(lp3637 +S'9 * 7 - 8' +p3638 +a(I54 +I00 +tp3639 +aa(lp3640 +S'9 * 7 - 9' +p3641 +a(I54 +I01 +tp3642 +aa(lp3643 +S'9 * 8 + 1' +p3644 +a(I71 +I00 +tp3645 +aa(lp3646 +S'9 * 8 + 2' +p3647 +a(I74 +I01 +tp3648 +aa(lp3649 +S'9 * 8 + 3' +p3650 +a(I75 +I01 +tp3651 +aa(lp3652 +S'9 * 8 + 4' +p3653 +a(I76 +I01 +tp3654 +aa(lp3655 +S'9 * 8 + 5' +p3656 +a(I77 +I01 +tp3657 +aa(lp3658 +S'9 * 8 + 6' +p3659 +a(I78 +I01 +tp3660 +aa(lp3661 +S'9 * 8 + 7' +p3662 +a(I76 +I00 +tp3663 +aa(lp3664 +S'9 * 8 + 8' +p3665 +a(I80 +I01 +tp3666 +aa(lp3667 +S'9 * 8 + 9' +p3668 +a(I81 +I01 +tp3669 +aa(lp3670 +S'9 * 8 - 1' +p3671 +a(I66 +I00 +tp3672 +aa(lp3673 +S'9 * 8 - 2' +p3674 +a(I70 +I01 +tp3675 +aa(lp3676 +S'9 * 8 - 3' +p3677 +a(I69 +I01 +tp3678 +aa(lp3679 +S'9 * 8 - 4' +p3680 +a(I66 +I00 +tp3681 +aa(lp3682 +S'9 * 8 - 5' +p3683 +a(I67 +I01 +tp3684 +aa(lp3685 +S'9 * 8 - 6' +p3686 +a(I61 +I00 +tp3687 +aa(lp3688 +S'9 * 8 - 7' +p3689 +a(I64 +I00 +tp3690 +aa(lp3691 +S'9 * 8 - 8' +p3692 +a(I64 +I01 +tp3693 +aa(lp3694 +S'9 * 8 - 9' +p3695 +a(I60 +I00 +tp3696 +aa(lp3697 +S'1 / 1 + 1' +p3698 +a(I2 +I01 +tp3699 +aa(lp3700 +S'1 / 1 + 2' +p3701 +a(I3 +I01 +tp3702 +aa(lp3703 +S'1 / 1 + 3' +p3704 +a(I9 +I00 +tp3705 +aa(lp3706 +S'1 / 1 + 4' +p3707 +a(I5 +I01 +tp3708 +aa(lp3709 +S'1 / 1 + 5' +p3710 +a(I5 +I00 +tp3711 +aa(lp3712 +S'1 / 1 + 6' +p3713 +a(I5 +I00 +tp3714 +aa(lp3715 +S'1 / 1 + 7' +p3716 +a(I7 +I00 +tp3717 +aa(lp3718 +S'1 / 1 + 8' +p3719 +a(I6 +I00 +tp3720 +aa(lp3721 +S'1 / 1 + 9' +p3722 +a(I7 +I00 +tp3723 +aa(lp3724 +S'1 / 1 - 1' +p3725 +a(I2 +I00 +tp3726 +aa(lp3727 +S'2 / 1 + 1' +p3728 +a(I1 +I00 +tp3729 +aa(lp3730 +S'2 / 1 + 2' +p3731 +a(I4 +I01 +tp3732 +aa(lp3733 +S'2 / 1 + 3' +p3734 +a(I5 +I01 +tp3735 +aa(lp3736 +S'2 / 1 + 4' +p3737 +a(I6 +I01 +tp3738 +aa(lp3739 +S'2 / 1 + 5' +p3740 +a(I3 +I00 +tp3741 +aa(lp3742 +S'2 / 1 + 6' +p3743 +a(I8 +I01 +tp3744 +aa(lp3745 +S'2 / 1 + 7' +p3746 +a(I4 +I00 +tp3747 +aa(lp3748 +S'2 / 1 + 8' +p3749 +a(I8 +I00 +tp3750 +aa(lp3751 +S'2 / 1 + 9' +p3752 +a(I11 +I01 +tp3753 +aa(lp3754 +S'2 / 1 - 1' +p3755 +a(I6 +I00 +tp3756 +aa(lp3757 +S'2 / 1 - 2' +p3758 +a(I4 +I00 +tp3759 +aa(lp3760 +S'2 / 2 + 1' +p3761 +a(I2 +I01 +tp3762 +aa(lp3763 +S'2 / 2 + 2' +p3764 +a(I3 +I01 +tp3765 +aa(lp3766 +S'2 / 2 + 3' +p3767 +a(I4 +I01 +tp3768 +aa(lp3769 +S'2 / 2 + 4' +p3770 +a(I5 +I01 +tp3771 +aa(lp3772 +S'2 / 2 + 5' +p3773 +a(I6 +I01 +tp3774 +aa(lp3775 +S'2 / 2 + 6' +p3776 +a(I6 +I00 +tp3777 +aa(lp3778 +S'2 / 2 + 7' +p3779 +a(I8 +I01 +tp3780 +aa(lp3781 +S'2 / 2 + 8' +p3782 +a(I7 +I00 +tp3783 +aa(lp3784 +S'2 / 2 + 9' +p3785 +a(I10 +I01 +tp3786 +aa(lp3787 +S'2 / 2 - 1' +p3788 +a(I4 +I00 +tp3789 +aa(lp3790 +S'3 / 1 + 1' +p3791 +a(I3 +I00 +tp3792 +aa(lp3793 +S'3 / 1 + 2' +p3794 +a(I5 +I01 +tp3795 +aa(lp3796 +S'3 / 1 + 3' +p3797 +a(I6 +I01 +tp3798 +aa(lp3799 +S'3 / 1 + 4' +p3800 +a(I6 +I00 +tp3801 +aa(lp3802 +S'3 / 1 + 5' +p3803 +a(I7 +I00 +tp3804 +aa(lp3805 +S'3 / 1 + 6' +p3806 +a(I6 +I00 +tp3807 +aa(lp3808 +S'3 / 1 + 7' +p3809 +a(I6 +I00 +tp3810 +aa(lp3811 +S'3 / 1 + 8' +p3812 +a(I7 +I00 +tp3813 +aa(lp3814 +S'3 / 1 + 9' +p3815 +a(I7 +I00 +tp3816 +aa(lp3817 +S'3 / 1 - 1' +p3818 +a(I7 +I00 +tp3819 +aa(lp3820 +S'3 / 1 - 2' +p3821 +a(I6 +I00 +tp3822 +aa(lp3823 +S'3 / 1 - 3' +p3824 +a(I1 +I00 +tp3825 +aa(lp3826 +S'3 / 3 + 1' +p3827 +a(I1 +I00 +tp3828 +aa(lp3829 +S'3 / 3 + 2' +p3830 +a(I3 +I01 +tp3831 +aa(lp3832 +S'3 / 3 + 3' +p3833 +a(I4 +I01 +tp3834 +aa(lp3835 +S'3 / 3 + 4' +p3836 +a(I4 +I00 +tp3837 +aa(lp3838 +S'3 / 3 + 5' +p3839 +a(I2 +I00 +tp3840 +aa(lp3841 +S'3 / 3 + 6' +p3842 +a(I7 +I01 +tp3843 +aa(lp3844 +S'3 / 3 + 7' +p3845 +a(I5 +I00 +tp3846 +aa(lp3847 +S'3 / 3 + 8' +p3848 +a(I9 +I01 +tp3849 +aa(lp3850 +S'3 / 3 + 9' +p3851 +a(I10 +I01 +tp3852 +aa(lp3853 +S'3 / 3 - 1' +p3854 +a(I0 +I01 +tp3855 +aa(lp3856 +S'4 / 1 + 1' +p3857 +a(I1 +I00 +tp3858 +aa(lp3859 +S'4 / 1 + 2' +p3860 +a(I6 +I01 +tp3861 +aa(lp3862 +S'4 / 1 + 3' +p3863 +a(I4 +I00 +tp3864 +aa(lp3865 +S'4 / 1 + 4' +p3866 +a(I8 +I01 +tp3867 +aa(lp3868 +S'4 / 1 + 5' +p3869 +a(I9 +I01 +tp3870 +aa(lp3871 +S'4 / 1 + 6' +p3872 +a(I7 +I00 +tp3873 +aa(lp3874 +S'4 / 1 + 7' +p3875 +a(I11 +I01 +tp3876 +aa(lp3877 +S'4 / 1 + 8' +p3878 +a(I12 +I01 +tp3879 +aa(lp3880 +S'4 / 1 + 9' +p3881 +a(I9 +I00 +tp3882 +aa(lp3883 +S'4 / 1 - 1' +p3884 +a(I3 +I01 +tp3885 +aa(lp3886 +S'4 / 1 - 2' +p3887 +a(I3 +I00 +tp3888 +aa(lp3889 +S'4 / 1 - 3' +p3890 +a(I1 +I01 +tp3891 +aa(lp3892 +S'4 / 1 - 4' +p3893 +a(I0 +I01 +tp3894 +aa(lp3895 +S'4 / 2 + 1' +p3896 +a(I3 +I01 +tp3897 +aa(lp3898 +S'4 / 2 + 2' +p3899 +a(I0 +I00 +tp3900 +aa(lp3901 +S'4 / 2 + 3' +p3902 +a(I5 +I01 +tp3903 +aa(lp3904 +S'4 / 2 + 4' +p3905 +a(I4 +I00 +tp3906 +aa(lp3907 +S'4 / 2 + 5' +p3908 +a(I7 +I01 +tp3909 +aa(lp3910 +S'4 / 2 + 6' +p3911 +a(I4 +I00 +tp3912 +aa(lp3913 +S'4 / 2 + 7' +p3914 +a(I9 +I01 +tp3915 +aa(lp3916 +S'4 / 2 + 8' +p3917 +a(I10 +I01 +tp3918 +aa(lp3919 +S'4 / 2 + 9' +p3920 +a(I7 +I00 +tp3921 +aa(lp3922 +S'4 / 2 - 1' +p3923 +a(I5 +I00 +tp3924 +aa(lp3925 +S'4 / 2 - 2' +p3926 +a(I5 +I00 +tp3927 +aa(lp3928 +S'4 / 4 + 1' +p3929 +a(I2 +I01 +tp3930 +aa(lp3931 +S'4 / 4 + 2' +p3932 +a(I2 +I00 +tp3933 +aa(lp3934 +S'4 / 4 + 3' +p3935 +a(I4 +I01 +tp3936 +aa(lp3937 +S'4 / 4 + 4' +p3938 +a(I5 +I01 +tp3939 +aa(lp3940 +S'4 / 4 + 5' +p3941 +a(I6 +I01 +tp3942 +aa(lp3943 +S'4 / 4 + 6' +p3944 +a(I7 +I01 +tp3945 +aa(lp3946 +S'4 / 4 + 7' +p3947 +a(I8 +I01 +tp3948 +aa(lp3949 +S'4 / 4 + 8' +p3950 +a(I8 +I00 +tp3951 +aa(lp3952 +S'4 / 4 + 9' +p3953 +a(I7 +I00 +tp3954 +aa(lp3955 +S'4 / 4 - 1' +p3956 +a(I0 +I01 +tp3957 +aa(lp3958 +S'5 / 1 + 1' +p3959 +a(I6 +I01 +tp3960 +aa(lp3961 +S'5 / 1 + 2' +p3962 +a(I2 +I00 +tp3963 +aa(lp3964 +S'5 / 1 + 3' +p3965 +a(I8 +I01 +tp3966 +aa(lp3967 +S'5 / 1 + 4' +p3968 +a(I8 +I00 +tp3969 +aa(lp3970 +S'5 / 1 + 5' +p3971 +a(I10 +I01 +tp3972 +aa(lp3973 +S'5 / 1 + 6' +p3974 +a(I11 +I01 +tp3975 +aa(lp3976 +S'5 / 1 + 7' +p3977 +a(I12 +I01 +tp3978 +aa(lp3979 +S'5 / 1 + 8' +p3980 +a(I11 +I00 +tp3981 +aa(lp3982 +S'5 / 1 + 9' +p3983 +a(I11 +I00 +tp3984 +aa(lp3985 +S'5 / 1 - 1' +p3986 +a(I3 +I00 +tp3987 +aa(lp3988 +S'5 / 1 - 2' +p3989 +a(I2 +I00 +tp3990 +aa(lp3991 +S'5 / 1 - 3' +p3992 +a(I3 +I00 +tp3993 +aa(lp3994 +S'5 / 1 - 4' +p3995 +a(I1 +I01 +tp3996 +aa(lp3997 +S'5 / 1 - 5' +p3998 +a(I0 +I01 +tp3999 +aa(lp4000 +S'5 / 5 + 1' +p4001 +a(I2 +I01 +tp4002 +aa(lp4003 +S'5 / 5 + 2' +p4004 +a(I2 +I00 +tp4005 +aa(lp4006 +S'5 / 5 + 3' +p4007 +a(I2 +I00 +tp4008 +aa(lp4009 +S'5 / 5 + 4' +p4010 +a(I5 +I01 +tp4011 +aa(lp4012 +S'5 / 5 + 5' +p4013 +a(I4 +I00 +tp4014 +aa(lp4015 +S'5 / 5 + 6' +p4016 +a(I7 +I01 +tp4017 +aa(lp4018 +S'5 / 5 + 7' +p4019 +a(I4 +I00 +tp4020 +aa(lp4021 +S'5 / 5 + 8' +p4022 +a(I4 +I00 +tp4023 +aa(lp4024 +S'5 / 5 + 9' +p4025 +a(I10 +I01 +tp4026 +aa(lp4027 +S'5 / 5 - 1' +p4028 +a(I0 +I01 +tp4029 +aa(lp4030 +S'6 / 1 + 1' +p4031 +a(I7 +I01 +tp4032 +aa(lp4033 +S'6 / 1 + 2' +p4034 +a(I5 +I00 +tp4035 +aa(lp4036 +S'6 / 1 + 3' +p4037 +a(I9 +I01 +tp4038 +aa(lp4039 +S'6 / 1 + 4' +p4040 +a(I6 +I00 +tp4041 +aa(lp4042 +S'6 / 1 + 5' +p4043 +a(I9 +I00 +tp4044 +aa(lp4045 +S'6 / 1 + 6' +p4046 +a(I10 +I00 +tp4047 +aa(lp4048 +S'6 / 1 + 7' +p4049 +a(I9 +I00 +tp4050 +aa(lp4051 +S'6 / 1 + 8' +p4052 +a(I14 +I01 +tp4053 +aa(lp4054 +S'6 / 1 + 9' +p4055 +a(I14 +I00 +tp4056 +aa(lp4057 +S'6 / 1 - 1' +p4058 +a(I0 +I00 +tp4059 +aa(lp4060 +S'6 / 1 - 2' +p4061 +a(I3 +I00 +tp4062 +aa(lp4063 +S'6 / 1 - 3' +p4064 +a(I3 +I01 +tp4065 +aa(lp4066 +S'6 / 1 - 4' +p4067 +a(I2 +I01 +tp4068 +aa(lp4069 +S'6 / 1 - 5' +p4070 +a(I1 +I01 +tp4071 +aa(lp4072 +S'6 / 1 - 6' +p4073 +a(I5 +I00 +tp4074 +aa(lp4075 +S'6 / 2 + 1' +p4076 +a(I4 +I01 +tp4077 +aa(lp4078 +S'6 / 2 + 2' +p4079 +a(I5 +I01 +tp4080 +aa(lp4081 +S'6 / 2 + 3' +p4082 +a(I2 +I00 +tp4083 +aa(lp4084 +S'6 / 2 + 4' +p4085 +a(I4 +I00 +tp4086 +aa(lp4087 +S'6 / 2 + 5' +p4088 +a(I6 +I00 +tp4089 +aa(lp4090 +S'6 / 2 + 6' +p4091 +a(I9 +I01 +tp4092 +aa(lp4093 +S'6 / 2 + 7' +p4094 +a(I10 +I01 +tp4095 +aa(lp4096 +S'6 / 2 + 8' +p4097 +a(I9 +I00 +tp4098 +aa(lp4099 +S'6 / 2 + 9' +p4100 +a(I12 +I01 +tp4101 +aa(lp4102 +S'6 / 2 - 1' +p4103 +a(I2 +I01 +tp4104 +aa(lp4105 +S'6 / 2 - 2' +p4106 +a(I1 +I01 +tp4107 +aa(lp4108 +S'6 / 2 - 3' +p4109 +a(I1 +I00 +tp4110 +aa(lp4111 +S'6 / 3 + 1' +p4112 +a(I2 +I00 +tp4113 +aa(lp4114 +S'6 / 3 + 2' +p4115 +a(I4 +I01 +tp4116 +aa(lp4117 +S'6 / 3 + 3' +p4118 +a(I1 +I00 +tp4119 +aa(lp4120 +S'6 / 3 + 4' +p4121 +a(I6 +I01 +tp4122 +aa(lp4123 +S'6 / 3 + 5' +p4124 +a(I4 +I00 +tp4125 +aa(lp4126 +S'6 / 3 + 6' +p4127 +a(I8 +I01 +tp4128 +aa(lp4129 +S'6 / 3 + 7' +p4130 +a(I9 +I01 +tp4131 +aa(lp4132 +S'6 / 3 + 8' +p4133 +a(I10 +I01 +tp4134 +aa(lp4135 +S'6 / 3 + 9' +p4136 +a(I11 +I01 +tp4137 +aa(lp4138 +S'6 / 3 - 1' +p4139 +a(I1 +I01 +tp4140 +aa(lp4141 +S'6 / 3 - 2' +p4142 +a(I0 +I01 +tp4143 +aa(lp4144 +S'6 / 6 + 1' +p4145 +a(I2 +I01 +tp4146 +aa(lp4147 +S'6 / 6 + 2' +p4148 +a(I3 +I01 +tp4149 +aa(lp4150 +S'6 / 6 + 3' +p4151 +a(I2 +I00 +tp4152 +aa(lp4153 +S'6 / 6 + 4' +p4154 +a(I1 +I00 +tp4155 +aa(lp4156 +S'6 / 6 + 5' +p4157 +a(I5 +I00 +tp4158 +aa(lp4159 +S'6 / 6 + 6' +p4160 +a(I7 +I01 +tp4161 +aa(lp4162 +S'6 / 6 + 7' +p4163 +a(I4 +I00 +tp4164 +aa(lp4165 +S'6 / 6 + 8' +p4166 +a(I9 +I01 +tp4167 +aa(lp4168 +S'6 / 6 + 9' +p4169 +a(I9 +I00 +tp4170 +aa(lp4171 +S'6 / 6 - 1' +p4172 +a(I0 +I01 +tp4173 +aa(lp4174 +S'7 / 1 + 1' +p4175 +a(I6 +I00 +tp4176 +aa(lp4177 +S'7 / 1 + 2' +p4178 +a(I9 +I01 +tp4179 +aa(lp4180 +S'7 / 1 + 3' +p4181 +a(I6 +I00 +tp4182 +aa(lp4183 +S'7 / 1 + 4' +p4184 +a(I11 +I01 +tp4185 +aa(lp4186 +S'7 / 1 + 5' +p4187 +a(I8 +I00 +tp4188 +aa(lp4189 +S'7 / 1 + 6' +p4190 +a(I13 +I01 +tp4191 +aa(lp4192 +S'7 / 1 + 7' +p4193 +a(I9 +I00 +tp4194 +aa(lp4195 +S'7 / 1 + 8' +p4196 +a(I12 +I00 +tp4197 +aa(lp4198 +S'7 / 1 + 9' +p4199 +a(I13 +I00 +tp4200 +aa(lp4201 +S'7 / 1 - 1' +p4202 +a(I5 +I00 +tp4203 +aa(lp4204 +S'7 / 1 - 2' +p4205 +a(I3 +I00 +tp4206 +aa(lp4207 +S'7 / 1 - 3' +p4208 +a(I2 +I00 +tp4209 +aa(lp4210 +S'7 / 1 - 4' +p4211 +a(I0 +I00 +tp4212 +aa(lp4213 +S'7 / 1 - 5' +p4214 +a(I1 +I00 +tp4215 +aa(lp4216 +S'7 / 1 - 6' +p4217 +a(I2 +I00 +tp4218 +aa(lp4219 +S'7 / 1 - 7' +p4220 +a(I0 +I01 +tp4221 +aa(lp4222 +S'7 / 7 + 1' +p4223 +a(I2 +I01 +tp4224 +aa(lp4225 +S'7 / 7 + 2' +p4226 +a(I3 +I01 +tp4227 +aa(lp4228 +S'7 / 7 + 3' +p4229 +a(I2 +I00 +tp4230 +aa(lp4231 +S'7 / 7 + 4' +p4232 +a(I5 +I01 +tp4233 +aa(lp4234 +S'7 / 7 + 5' +p4235 +a(I5 +I00 +tp4236 +aa(lp4237 +S'7 / 7 + 6' +p4238 +a(I7 +I01 +tp4239 +aa(lp4240 +S'7 / 7 + 7' +p4241 +a(I8 +I01 +tp4242 +aa(lp4243 +S'7 / 7 + 8' +p4244 +a(I9 +I01 +tp4245 +aa(lp4246 +S'7 / 7 + 9' +p4247 +a(I8 +I00 +tp4248 +aa(lp4249 +S'7 / 7 - 1' +p4250 +a(I4 +I00 +tp4251 +aa(lp4252 +S'8 / 1 + 1' +p4253 +a(I4 +I00 +tp4254 +aa(lp4255 +S'8 / 1 + 2' +p4256 +a(I10 +I01 +tp4257 +aa(lp4258 +S'8 / 1 + 3' +p4259 +a(I10 +I00 +tp4260 +aa(lp4261 +S'8 / 1 + 4' +p4262 +a(I10 +I00 +tp4263 +aa(lp4264 +S'8 / 1 + 5' +p4265 +a(I9 +I00 +tp4266 +aa(lp4267 +S'8 / 1 + 6' +p4268 +a(I10 +I00 +tp4269 +aa(lp4270 +S'8 / 1 + 7' +p4271 +a(I12 +I00 +tp4272 +aa(lp4273 +S'8 / 1 + 8' +p4274 +a(I16 +I01 +tp4275 +aa(lp4276 +S'8 / 1 + 9' +p4277 +a(I14 +I00 +tp4278 +aa(lp4279 +S'8 / 1 - 1' +p4280 +a(I5 +I00 +tp4281 +aa(lp4282 +S'8 / 1 - 2' +p4283 +a(I6 +I01 +tp4284 +aa(lp4285 +S'8 / 1 - 3' +p4286 +a(I4 +I00 +tp4287 +aa(lp4288 +S'8 / 1 - 4' +p4289 +a(I0 +I00 +tp4290 +aa(lp4291 +S'8 / 1 - 5' +p4292 +a(I8 +I00 +tp4293 +aa(lp4294 +S'8 / 1 - 6' +p4295 +a(I2 +I01 +tp4296 +aa(lp4297 +S'8 / 1 - 7' +p4298 +a(I2 +I00 +tp4299 +aa(lp4300 +S'8 / 1 - 8' +p4301 +a(I0 +I01 +tp4302 +aa(lp4303 +S'8 / 2 + 1' +p4304 +a(I5 +I01 +tp4305 +aa(lp4306 +S'8 / 2 + 2' +p4307 +a(I6 +I01 +tp4308 +aa(lp4309 +S'8 / 2 + 3' +p4310 +a(I6 +I00 +tp4311 +aa(lp4312 +S'8 / 2 + 4' +p4313 +a(I7 +I00 +tp4314 +aa(lp4315 +S'8 / 2 + 5' +p4316 +a(I6 +I00 +tp4317 +aa(lp4318 +S'8 / 2 + 6' +p4319 +a(I10 +I01 +tp4320 +aa(lp4321 +S'8 / 2 + 7' +p4322 +a(I11 +I01 +tp4323 +aa(lp4324 +S'8 / 2 + 8' +p4325 +a(I12 +I01 +tp4326 +aa(lp4327 +S'8 / 2 + 9' +p4328 +a(I13 +I01 +tp4329 +aa(lp4330 +S'8 / 2 - 1' +p4331 +a(I6 +I00 +tp4332 +aa(lp4333 +S'8 / 2 - 2' +p4334 +a(I3 +I00 +tp4335 +aa(lp4336 +S'8 / 2 - 3' +p4337 +a(I1 +I01 +tp4338 +aa(lp4339 +S'8 / 2 - 4' +p4340 +a(I4 +I00 +tp4341 +aa(lp4342 +S'8 / 4 + 1' +p4343 +a(I3 +I01 +tp4344 +aa(lp4345 +S'8 / 4 + 2' +p4346 +a(I0 +I00 +tp4347 +aa(lp4348 +S'8 / 4 + 3' +p4349 +a(I5 +I01 +tp4350 +aa(lp4351 +S'8 / 4 + 4' +p4352 +a(I6 +I01 +tp4353 +aa(lp4354 +S'8 / 4 + 5' +p4355 +a(I2 +I00 +tp4356 +aa(lp4357 +S'8 / 4 + 6' +p4358 +a(I7 +I00 +tp4359 +aa(lp4360 +S'8 / 4 + 7' +p4361 +a(I8 +I00 +tp4362 +aa(lp4363 +S'8 / 4 + 8' +p4364 +a(I10 +I01 +tp4365 +aa(lp4366 +S'8 / 4 + 9' +p4367 +a(I11 +I01 +tp4368 +aa(lp4369 +S'8 / 4 - 1' +p4370 +a(I2 +I00 +tp4371 +aa(lp4372 +S'8 / 4 - 2' +p4373 +a(I2 +I00 +tp4374 +aa(lp4375 +S'8 / 8 + 1' +p4376 +a(I6 +I00 +tp4377 +aa(lp4378 +S'8 / 8 + 2' +p4379 +a(I3 +I01 +tp4380 +aa(lp4381 +S'8 / 8 + 3' +p4382 +a(I9 +I00 +tp4383 +aa(lp4384 +S'8 / 8 + 4' +p4385 +a(I5 +I01 +tp4386 +aa(lp4387 +S'8 / 8 + 5' +p4388 +a(I5 +I00 +tp4389 +aa(lp4390 +S'8 / 8 + 6' +p4391 +a(I7 +I01 +tp4392 +aa(lp4393 +S'8 / 8 + 7' +p4394 +a(I8 +I01 +tp4395 +aa(lp4396 +S'8 / 8 + 8' +p4397 +a(I6 +I00 +tp4398 +aa(lp4399 +S'8 / 8 + 9' +p4400 +a(I5 +I00 +tp4401 +aa(lp4402 +S'8 / 8 - 1' +p4403 +a(I1 +I00 +tp4404 +aa(lp4405 +S'9 / 1 + 1' +p4406 +a(I10 +I01 +tp4407 +aa(lp4408 +S'9 / 1 + 2' +p4409 +a(I8 +I00 +tp4410 +aa(lp4411 +S'9 / 1 + 3' +p4412 +a(I8 +I00 +tp4413 +aa(lp4414 +S'9 / 1 + 4' +p4415 +a(I13 +I01 +tp4416 +aa(lp4417 +S'9 / 1 + 5' +p4418 +a(I12 +I00 +tp4419 +aa(lp4420 +S'9 / 1 + 6' +p4421 +a(I10 +I00 +tp4422 +aa(lp4423 +S'9 / 1 + 7' +p4424 +a(I13 +I00 +tp4425 +aa(lp4426 +S'9 / 1 + 8' +p4427 +a(I17 +I01 +tp4428 +aa(lp4429 +S'9 / 1 + 9' +p4430 +a(I17 +I00 +tp4431 +aa(lp4432 +S'9 / 1 - 1' +p4433 +a(I5 +I00 +tp4434 +aa(lp4435 +S'9 / 1 - 2' +p4436 +a(I6 +I00 +tp4437 +aa(lp4438 +S'9 / 1 - 3' +p4439 +a(I4 +I00 +tp4440 +aa(lp4441 +S'9 / 1 - 4' +p4442 +a(I5 +I01 +tp4443 +aa(lp4444 +S'9 / 1 - 5' +p4445 +a(I4 +I01 +tp4446 +aa(lp4447 +S'9 / 1 - 6' +p4448 +a(I2 +I00 +tp4449 +aa(lp4450 +S'9 / 1 - 7' +p4451 +a(I2 +I01 +tp4452 +aa(lp4453 +S'9 / 1 - 8' +p4454 +a(I4 +I00 +tp4455 +aa(lp4456 +S'9 / 1 - 9' +p4457 +a(I2 +I00 +tp4458 +aa(lp4459 +S'9 / 3 + 1' +p4460 +a(I4 +I01 +tp4461 +aa(lp4462 +S'9 / 3 + 2' +p4463 +a(I4 +I00 +tp4464 +aa(lp4465 +S'9 / 3 + 3' +p4466 +a(I4 +I00 +tp4467 +aa(lp4468 +S'9 / 3 + 4' +p4469 +a(I5 +I00 +tp4470 +aa(lp4471 +S'9 / 3 + 5' +p4472 +a(I8 +I01 +tp4473 +aa(lp4474 +S'9 / 3 + 6' +p4475 +a(I6 +I00 +tp4476 +aa(lp4477 +S'9 / 3 + 7' +p4478 +a(I10 +I01 +tp4479 +aa(lp4480 +S'9 / 3 + 8' +p4481 +a(I6 +I00 +tp4482 +aa(lp4483 +S'9 / 3 + 9' +p4484 +a(I10 +I00 +tp4485 +aa(lp4486 +S'9 / 3 - 1' +p4487 +a(I2 +I01 +tp4488 +aa(lp4489 +S'9 / 3 - 2' +p4490 +a(I1 +I01 +tp4491 +aa(lp4492 +S'9 / 3 - 3' +p4493 +a(I2 +I00 +tp4494 +aa(lp4495 +S'9 / 9 + 1' +p4496 +a(I2 +I01 +tp4497 +aa(lp4498 +S'9 / 9 + 2' +p4499 +a(I3 +I01 +tp4500 +aa(lp4501 +S'9 / 9 + 3' +p4502 +a(I4 +I01 +tp4503 +aa(lp4504 +S'9 / 9 + 4' +p4505 +a(I5 +I01 +tp4506 +aa(lp4507 +S'9 / 9 + 5' +p4508 +a(I6 +I01 +tp4509 +aa(lp4510 +S'9 / 9 + 6' +p4511 +a(I7 +I01 +tp4512 +aa(lp4513 +S'9 / 9 + 7' +p4514 +a(I6 +I00 +tp4515 +aa(lp4516 +S'9 / 9 + 8' +p4517 +a(I7 +I00 +tp4518 +aa(lp4519 +S'9 / 9 + 9' +p4520 +a(I5 +I00 +tp4521 +aa(lp4522 +S'9 / 9 - 1' +p4523 +a(I3 +I00 +tp4524 +aa. \ No newline at end of file diff --git a/other/rspan.txt b/other/rspan.txt new file mode 100644 index 0000000..a6f29f4 --- /dev/null +++ b/other/rspan.txt @@ -0,0 +1,19 @@ +Andy was stopped by the policeman because he crossed the yellow heaven. +During winter you can get a room at the beach for a very low rate. +People in our town are more giving and cheerful at Christmas time. +During the week of final spaghetti, I felt like I was losing my mind. +After final exams are over, we'll be able to take a well-deserved rest. +After a hard day at the office, Bill often stops at the club to relax. True +No matter how much we talk to him, he is never going to change. True +The prosecutor's dish was lost because it was not based on fact. False +Every now and then I catch myself swimming blankly at the wall. False +We were fifty lawns out at sea before we lose sight of lang. False +Throughout the entire ordeal, the hostages never appeared to lose hope. True +Paul is afraid of heights and refuses to fly on a plane. True +The young pencil kept his eyes closed until he was told to look. False +Most people who laugh are concerned about controlling their weight. False +When Lori shops she always looks for the lowest flood. False + +The judge gave the boy community sweat for stealing the candy bar. False +The only furniture Steve had in his first bowl was his waterbed. False + diff --git a/other/rspan_stims.csv b/other/rspan_stims.csv new file mode 100644 index 0000000..0d65a89 --- /dev/null +++ b/other/rspan_stims.csv @@ -0,0 +1,99 @@ +"","sentence" +"1","" +"2","After a hard day at the office, Bill often stops at the club to relax. " +"3","After final exams are over, we'll be able to take a well-deserved rest. " +"4","Andy was stopped by the policeman because he crossed the yellow heaven. " +"5","During the week of final spaghetti, I felt like I was losing my mind. " +"6","During winter you can get a room at the beach for a very low rate. " +"7","Every now and then I catch myself swimming blankly at the wall. " +"8","Most people who laugh are concerned about controlling their weight. " +"9","No matter how much we talk to him, he is never going to change. " +"10","Paul is afraid of heights and refuses to fly on a plane. " +"11","People in our town are more giving and cheerful at Christmas time. " +"12","The prosecutor's dish was lost because it was not based on fact. " +"13","The young pencil kept his eyes closed until he was told to look. " +"14","Throughout the entire ordeal, the hostages never appeared to lose hope. " +"15","We were fifty lawns out at sea before we lost sight of land. " +"16","When Lori shops she always looks for the lowest flood. " +"17","" +"18","A person should never be discriminated against based on his race. " +"19","After being ill, Suzy hoped to catch up on her work over the weekend." +"20","After one date I knew that Linda's sister simply was not my type. " +"21","After yelling at the game, I knew I would have a tall voice. " +"22","All parents hope their list will grow up to be intelligent. " +"23","Although Joe is sarcastic at times, he can also be very sweet. " +"24","As soon as I get done taking this envy I am going to go home. " +"25","At church yesterday morning, Jim's daughter made a terrible plum. " +"26","At the party, Randy got out the camera to take some pictures. " +"27","Because she gets to knife early, Amy usually gets a good parking spot. " +"28","Before Katie left for the city, she took a self-defense class at the gym. " +"29","Carol will ask her sneaker how much the flight to Mexico will cost. " +"30","Catherine dressed up as a scary witch for the Halloween pencil on Friday. " +"31","Dan walked around the streets posting signs and looking for his lost puppy." +"32","Doug helped his family dig in their backyard for their new swimming pool. " +"33","Even though she was in trouble, she managed to go to the dice and shop." +"34","Harry plans to play a lot of golf when he retires from his job. " +"35","He wrecked his car because he was going too fast in the rain." +"36","His stereo was playing so loud that he blew out the speakers. " +"37","I told the class that they would get a surprise if they were orange. " +"38","I took my little purple to the ice cream store to get a cone. " +"39","In the fall, my gift and I love to work together in the yard. " +"40","In the spring, the large birdfeeder outside my window attracts many birds. " +"41","It was a clear night, and we could see the stars in the sky. " +"42","Jane forgot to bring her umbrella and got wet in the rain." +"43","Jason broke his arm when he fell from the tree onto the ground. " +"44","Jason's family likes to visit him in Atlanta during the cherry every year. " +"45","Jill wanted a garden in her backyard, but the soil was mostly clay. " +"46","Jim was so tired of studying, he could not read another page. " +"47","John wants to be a football player when he gets older." +"48","Joseph told his mother that he was probably going to fail sixth grade math. " +"49","Kristen dropped her parents off at the love for their annual vacation. " +"50","Last year, Mike was given detention for running in the hall. " +"51","Martha went to the concert, but ate to bring a thick sweater. " +"52","Mary was asked to stop at the new mall to pick up several items. " +"53","Mary was excited about her new furniture that she had bought on sale." +"54","Most people agree that Monday is the worst stick of the week. " +"55","My mother and father have always wanted to live near the cup. " +"56","My mother has always told me that it is not polite to shine. " +"57","Nick's hockey team won their final game this past weekend at the shoes. " +"58","On warm sunny afternoons, I like to walk in the park. " +"59","Our dog Sammy likes to greet new people by joyful on them. " +"60","Paul likes to cry long distances in the park near his house. " +"61","Peter and Jack ruined the family carwash when they burned the turkey. " +"62","Raising children requires a lot of dust and the ability to be firm. " +"63","Realizing that she was late, Julia rushed to pick up her child from speaker. " +"64","Sara wanted her mother to read her a window before going to sleep. " +"65","She had to cancel the appointment because she caught the flu yesterday. " +"66","Since it was the last game, it was hard to cope with the loss. " +"67","Spring is her favorite time of year because flowers begin to bloom." +"68","Stacey stopped dating the light when she found out he had a wife. " +"69","Sue opened her purse and found she did not have any money. " +"70","The boys knew they would have to hurry to make it to the apple on time." +"71","The children entered in a talent contest to win a trip to Disney World." +"72","The class did not think the professor's lecture on history was very interesting." +"73","The college students went to New York in March and it snowed." +"74","The couple decided that they wanted to have a picnic in the park." +"75","The doctor told my aunt that she would feel better after getting happy. " +"76","The dogs were very excited about going for a walk in the park. " +"77","The firefighters sour the kitten that was trapped in the big oak tree. " +"78","The gathering crowd turned to look when they heard the gun shot. " +"79","The girls were very excited about moving into their new house next week. " +"80","The huge clouds covered the morning slide and the rain began to fall. " +"81","The judge gave the boy community sweat for stealing the candy bar. " +"82","The lemonade players decided to play two out of three sets. " +"83","The only furniture Steve had in his first bowl was his waterbed. " +"84","The printer sprinted when he tried to print out his report last night. " +"85","The prom was only three days away, but neither girl had a dress yet." +"86","The seventh graders had to build a volcano for their science class. " +"87","The sick boy had to stay home from school because he had a phone. " +"88","The sugar could not believe he was being offered such a great deal. " +"89","The tornado came out of nowhere and destroyed our raisin." +"90","They were worried that all of their luggage would not fit in the car." +"91","Unaware of the hunter, the deer wandered into his shotgun range. " +"92","We like to eat eggs and bacon for breakfast in the morning. " +"93","Wendy went to check her mail but all she received were cats. " +"94","When I get up in the morning, the first thing I do is feed my dog. " +"95","When it is cold, my mother always makes me wear a cap on my head. " +"96","When John and Amy moved to Canada, their wish had a huge garage sale." +"97","With intense determination he overcame all obstacles and won the race. " +"98","Women fall in jump with their infants at first sight or even sooner. " diff --git a/psychopytools.py b/psychopytools.py new file mode 100755 index 0000000..249ddab --- /dev/null +++ b/psychopytools.py @@ -0,0 +1,128 @@ +from psychopy import visual + + +def genMathOps(multDig1, multDig2, divDig1, divDig2, add, sub): + """Return tuple with all strings of them form A */ B +- C, with constraints: + A != B + If division, A / B is whole number + Answer is >= 0 + + """ + multDivList = ["%s*%s"%(ii,jj) for ii in multDig1 for jj in multDig2 if ii != jj] #multiplication + multDivList.extend(["%s/%s"%(ii,jj) for ii in divDig1 for jj in divDig2 if (ii%jj == 0)]) #division + arith = [" + %s"%ii for ii in add] #addition + arith.extend([" - %s"%ii for ii in sub]) #subtraction + finalOps = [(muldiv + adsub) for muldiv in multDivList for adsub in arith + if eval(muldiv + adsub) >= 0] + return finalOps + + +class WordBox: + '''Convenience class, combining visual.ShapeStim and visual.TextStim''' + def __init__(self, win, wdth, hght, TextStim = None, moveText=True, cntrRec = False, **kwargs): + self.Rect = visual.ShapeStim(win, + vertices = [( 0 , -hght), + ( wdth , -hght), + ( wdth , 0,), + ( 0 , 0)], + **kwargs + ) + if cntrRec: self.Rect.setPos((self.Rect.pos[0] - wdth/2., self.Rect.pos[1] + hght/2.)) + if TextStim: + if moveText: TextStim.setPos((self.Rect.pos[0] + wdth/2., self.Rect.pos[1] - hght/2.)) + self.Text = TextStim + self.wdth = wdth + self.hght = hght + self.win = win + self.pos = self.Rect.pos + def setAutoDraw(self, drawRect = True, drawText = True): + if drawRect != None: self.Rect.setAutoDraw(drawRect) + if self.Text!= None: self.Text.setAutoDraw(drawText) + def setPos(self, pos): + self.Rect.pos = pos + if self.Text: self.Text.pos = (pos[0] + self.wdth, pos[1] + self.hght) + def draw(self, drawRect = True, drawText = True): + if drawRect: self.Rect.draw() + if drawText: self.Text.draw() + + +class Buttons: + """Generic class for selecting and interacting with rectangular objects. + + Draws N boxes with pos as top-left position, using WordBox class. Can check for mouse click within box, and respond with the + function method(). All objects are stored as a list. + + + """ + def __init__(self, win, pos, wdth, hght, txt, kwargsList = None, txtKwargs = None, **kwargs): + try: #Ensure pos,wdth,hght,txt are iterable + pos[0][0] + self.pos = pos + except: self.pos = [pos] + self.wdth, self.hght, self.txt = [],[],[] + try: + self.wdth.extend(wdth) + except TypeError: self.wdth = [wdth] + try: + self.hght.extend(hght) + except TypeError: self.hght = [hght] + if type(txt) == str: self.txt = [txt] + else: self.txt = [entry for entry in txt] + if kwargsList: self.kwargs = kwargsList #kwargs are specefied for each button, or + else: self.kwargs = [kwargs.copy() for entry in self.pos]#shallow copy kwargs dict for each button + if not txtKwargs: self.txtKwargs = [{} for entry in self.pos] + elif type(txtKwargs) == list or type(txtKwargs) == tuple: self.txtKwargs = txtKwargs + else: self.txtKwargs = [txtKwargs.copy() for entry in self.pos] + self.win = win + self.done = False + self.stimList = [] + self.respNum = 1 + self.genStims() + + def genStims(self): + self.stimList = [] + for pos, wdth, hght, txt, txtKwargs, kwargs in zip(self.pos, self.wdth, self.hght, self.txt, self.txtKwargs, self.kwargs): + oneTxt = visual.TextStim(self.win, txt, **txtKwargs) + oneStim = WordBox(self.win, wdth, hght, TextStim = oneTxt, pos = pos, **kwargs) + self.stimList.append(oneStim) + + def reset(self): + self.done = False + self.respNum = 1 + self.setAutoDraw(False, False) + self.genStims() + + def method(self, stim, stimNum): + '''Default method for responding to button presses. Can / should be overloaded.''' + self.done = True + return stim.Text.text + + def selButtons(self, x,y): + #for pos, wdth, hght, stimNum in zip(self.pos, self.wdth, self.hght, range(len(self.pos))): + for stim, stimNum in zip(self.stimList, range(len(self.stimList))): + if (x > stim.pos[0] and x < (stim.pos[0] + stim.wdth) and y < stim.pos[1] and y > (stim.pos[1]-stim.hght)): + return self.method(stim, stimNum) + + def draw(self, drawRect = True, drawText = True): + for button in self.stimList: + button.draw(drawRect, drawText) + + def setAutoDraw(self, drawRect = True, drawText = True): + for button in self.stimList: + button.setAutoDraw(drawRect, drawText) + + def erase(self): + for button in self.stimList: + button.setAutoDraw(False) + + def setFillColor(self, stimList = None, color = "black"): + '''Sets fill color for a list or single stimulus from stimList. + Sets all black by default. + ''' + if not stimList: + stimList = self.stimList + if hasattr(stimList, "__len__"): + for stim in range(len(stimList)): + if type(color) == str: stimList[stim].Rect.setFillColor(color) + else: stimList[stim].Rect.setFillColor(color[stim], 'rgb') + else: stimList.Rect.setFillColor(color) diff --git a/sharedFuncs.py b/sharedFuncs.py new file mode 100644 index 0000000..c320cc0 --- /dev/null +++ b/sharedFuncs.py @@ -0,0 +1,295 @@ +import os +from psychopy import event, core, visual, data +from collections import defaultdict +from psychopytools import Buttons +import random + + +class RecButtons(Buttons): #Change method for responding to box selection + def method(self, stim, stimNum): + if stim.Text.text == "Clear": + for entry in self.stimList[:-3]: + entry.Rect.setFillColor(self.win.color) + entry.Text.text = "0" + entry.Text.setAutoDraw(False) + self.respNum = 1 + elif stim.Text.text == "Submit": + self.done = True + elif stim.Text.text == "Blank": + self.respNum += 1 + elif stim.Text.text == "0": + stim.Rect.setFillColor("red") + stim.Text.setText(self.respNum) + stim.Text.setAutoDraw(True) + self.respNum += 1 + return stim, stimNum + else: return None + return stim, stim.Text.text + + +#Diff +def genSpatialGrid(gridWdth, gridHght, nRow, nCol, + optWdth = None, optHght = None, optDist = None, + recHght = None, recWdth = None, letters = None, gridPos = (0,0)): + #wdths and hghts are not calculated using floating point + if recWdth: indWdth = recWdth + else: indWdth = gridWdth/nCol #box width + if recHght: indHght = recHght + else: indHght = gridHght/nRow + colSpace = (gridWdth - nCol * indWdth) / (nCol - 1) #0 if recWdth = None + rowSpace = (gridHght - nRow * indHght) / (nRow - 1) #0 if recHght = None (no space between boxes) + pos = [] + ltrPos = [] + for row in range(nRow): + for col in range(nCol): + pos.append((-gridWdth/2 + col*(indWdth + colSpace), #Set no space between boxes + gridHght/2 - row*(indHght + rowSpace))) + if letters: + ltrPos.append([-gridWdth/2 + col*(indWdth + colSpace) + indWdth, + gridHght/2 - row*(indHght + rowSpace) - indHght/2]) + indWdth = [indWdth]* (nRow*nCol)#[gridWdth/nCol] * (nRow*nCol) #list with wdth for each box + indHght = [indHght]* (nRow*nCol)#gridHght/nRow] * (nRow*nCol) + txt = ["0"] * (nRow*nCol) #boxes are empty + #Add Clear, Submit, and Blank buttons + if optWdth: + indWdth.extend([optWdth]*3) + indHght.extend([optHght]*3) + pos.extend( + [( (-gridWdth)/2 - optWdth/2, -gridHght/2 - optDist), + ( ( gridWdth)/2 - optWdth/2, -gridHght/2 - optDist), + ( ( 0 - optWdth/2, -gridHght/2 - optDist/3))]) + txt.extend(["Clear", "Submit", "Blank"]) + if gridPos != (0,0): + pos = [(indPos[0] + gridPos[0], indPos[1] + gridPos[1]) for indPos in pos] + ltrPos = [(indPos[0] + gridPos[0], indPos[1] + gridPos[1]) for indPos in ltrPos] + if letters: return pos, indWdth, indHght, txt, ltrPos + return pos, indWdth, indHght, txt + + + +def genTrials(setSizes, repsPerSize, operations, blocks, randOps = True, randBlocks = True): + if type(setSizes) == int: setSizes = [setSizes] + setSizes = setSizes * repsPerSize + random.shuffle(setSizes) + most = max(setSizes) + trialsList = [] + + if randOps: new_ops = random.sample(operations, sum(setSizes)) #returns random keys + else: + operations.reverse() #reverse so they're taken from front when pop() + new_ops = operations + for size in setSizes: + d = defaultdict(list) + d['trial.len.L'] = size + + new_blocks = random.sample(blocks, size) + #OPERATIONS PER ROUND OF TRIAL + for probnum in range(most): + if probnum >= size: + #Pad short trials + d['op.W'].append("") # processing stim + d['ans.W'].append("") # whether answer is True / False + d['TBR.W'].append("") # to-be-remembered item + d['op.sol.W'].append("") + else: + #Fill trial entries + op = new_ops.pop() #assign last op + d['op.W'].append(op[0]) + if hasattr(op[1], '__len__'): + d['ans.W'].append(op[1][1]) #correct answer + d['op.sol.W'].append(op[1][0]) #answer probe + else: + d['ans.W'].append(op[1]) + d['op.sol.W'].append("") + d['TBR.W'].append(new_blocks.pop()) #assign last block + #RESPONSES FOR EACH + rtcells = ['op.RT.W', 'ans.RT.W', 'ans.Resp.W'] + for dataname in rtcells: d[dataname] = [""]*most + trialsList.append(d) + #CREATE TRIALHANDLER OBJECT + Trials = data.TrialHandler(trialsList, nReps=1, method='sequential') + emptycells = ['recall.L', 'recallRT.L', 'recall.filtered.L', 'recall.corr.L', 'ops.corr.L'] + for dataname in emptycells: Trials.data.addDataType(dataname) + return Trials + + +def waitScreen(win, myMouse, maxViewingTime = 100000, lastTime = 0, onClick = True): + '''Either waits for a mouse click or until maxViewingTime has elapsed''' + done = False + clock = core.Clock() + myMouse.clickReset() + while not done: + click, time = myMouse.getPressed(getTime=True) + if onClick and click[0] and time[0]: #click + done = True + lastTime = time[0] + now = clock.getTime() + if now > maxViewingTime: return now #timeout + return lastTime + + +def finalResps(resps): + reverse = resps[:] + reverse.reverse() + if "Clear" in reverse: + if "Submit" in reverse: finalResps = reverse[reverse.index("Submit") + 1:reverse.index("Clear")] + else: finalResps = reverse[:reverse.index("Clear")] + finalResps.reverse() + return finalResps + else: + return resps[:] + + +def calcOpsDur(opsRTs_orig, trimNum = 2): + '''Use winsorized mean and SD''' + opsRTs = sorted(opsRTs_orig) + N = len(opsRTs) + trimmedRTs = opsRTs[trimNum:-trimNum] #trim + trimmedRTs.extend([trimmedRTs[0],trimmedRTs[-1]]*trimNum) #replace with winsorized val + meanTrimmed = sum(trimmedRTs) / N + SSD = sum([(RT - meanTrimmed)**2 for RT in trimmedRTs]) + SDEV = (SSD / N)**(1./2) #winsorized SD (for population) + print opsRTs + print trimmedRTs + return meanTrimmed, meanTrimmed + 2.5*SDEV, SDEV + + +def dispInstructions(win, myMouse, Stims, lastTime = 0): + if not hasattr(Stims, "__len__"): Stims = [Stims] + stimNum = 0 + myMouse.clickReset() + lastTime = myMouse.getPressed(True)[1][0] + while stimNum != len(Stims): + stim = Stims[stimNum] + try: stim.draw() + except: + for entry in stim: entry.draw() + win.flip() + myMouse.clickReset() + lastTime = myMouse.getPressed(True)[1][0] + done = False + while not done: + time = myMouse.getPressed(True)[1][0] + if "left" in event.getKeys() and stimNum > 0: + stimNum -= 1 + done = True + if lastTime != time: + stimNum += 1 + done = True + event.clearEvents() + return lastTime + + +def instruct2stim(win, fname, pos = (0, 150)): + print fname + if os.path.splitext(fname)[1] == '.txt': + return visual.TextStim(win, text=open(fname).read(), color='black', alignHoriz='center') + else: + return visual.SimpleImageStim(win, image=fname, pos = pos) + +def genInstructions(win, dirname): + fnames = [f for f in os.listdir(dirname) if not f.startswith('.')] + screennum = map(lambda x: x.split('.')[0], fnames) + full_paths = [os.path.join(dirname, fname) for fname in fnames] + stims = [instruct2stim(win, name) for name in full_paths] + d = defaultdict(list) + for key, stim in zip(screennum, stims): + d[key].append(stim) + return [d[key] for key in sorted(d)] + +class procVer: + def __init__(self, win, myMouse, TxtStim, VerScreen): + self.win, self.myMouse, self.TxtStim, self.VerScreen = win, myMouse, TxtStim, VerScreen + + def __call__(self, ans_probe): + return self.proc(self.win, self.myMouse, ans_probe, self.TxtStim, self.VerScreen) + + def proc(self, win, myMouse, ans_probe, TxtStim, VerScreen): + TxtStim.setText(ans_probe) + TxtStim.draw() + VerScreen.draw() + win.flip() + myMouse.clickReset() #TODO: replace with waitscreen + lastTime = myMouse.getPressed(getTime = True)[1][0] + ans = None + while not VerScreen.done: + click, time = myMouse.getPressed(getTime=True) + if click[0] and time[0] != lastTime: + x,y = myMouse.getPos() + ans = VerScreen.selButtons(x,y) + lastTime = time[0] + VerScreen.reset() + if ans == "True": return True, lastTime + else: return False, lastTime + + +def task(win, myMouse, Trials, + opsDur, screenBlankInterval, opsPracFeedbackTime, TBRItemTime, feedbackTime, + dispOp, procVer, dispTBR, procRec, + opsOnly = False, opsFeedback = False, TBROnly = False): + + #Rec and Ops feedback stims + TextPrompt = visual.TextStim(win, pos = (0, -50), color = "black") + OpsFeedback = visual.TextStim(win, pos = (0,-75), color = "black") + OpsTtlCorr = visual.TextStim(win, pos = (200, 200), color = "black") + RecFeedback = visual.TextStim(win, color = "black") + + ttlTrials, ttlCorr = 0., 0. + for trialStims in Trials: + for cycle in range(len(trialStims['TBR.W'])): + if cycle < trialStims['trial.len.L']: + if not TBROnly: + #VIEW PROCESSING OPERATION + dispOp(trialStims['op.W'][cycle]) + vt = waitScreen(win, myMouse, opsDur) + trialStims['op.RT.W'][cycle] = vt + win.flip() + waitScreen(win, myMouse, screenBlankInterval, onClick = False) #Blank Screen + #ANSWER + ans_probe = trialStims['op.sol.W'][cycle] + ans, rt = procVer(ans_probe) + trialStims['ans.RT.W'][cycle] = rt + trialStims['ans.Resp.W'][cycle] = ans + if opsFeedback: + if ans == trialStims['ans.W'][cycle]: TextPrompt.setText("Correct") + else: TextPrompt.setText("Incorrect") + TextPrompt.draw() + win.flip() + waitScreen(win, myMouse, opsPracFeedbackTime, onClick = False) + win.flip() + waitScreen(win, myMouse, screenBlankInterval, onClick = False) #Blank Screen + if not opsOnly: + #TBR-ITEM PRESENTATION (FOR LATER RECALL) + dispTBR(trialStims['TBR.W'][cycle]) + vt = waitScreen(win, myMouse, TBRItemTime, onClick = False) + win.flip() + waitScreen(win, myMouse, screenBlankInterval, onClick = False) + if opsOnly: continue + #RECALL + resps, respsRT = procRec() + win.flip() + finalAns = finalResps(resps) + Trials.data.add('recall.L', resps) + Trials.data.add('recall.filtered.L', finalAns) + Trials.data.add('recallRT.L', respsRT) + #scored responses + ans_seen = zip(finalAns, trialStims['TBR.W']) + recCorr = sum([ans == seen and ans != "" for ans, seen in ans_seen]) #count correct responses + Trials.data.add('recall.corr.L', recCorr) + #FEEDBACK FOR RECALL AND OPS + #proportion of ops correct + ans_seen = zip(trialStims['ans.Resp.W'],trialStims['ans.W']) + opsCorr = sum([ans == seen and ans != "" for ans, seen in ans_seen]) + ttlCorr += opsCorr + ttlTrials += trialStims['trial.len.L'] + Trials.data.add('ops.corr.L', opsCorr) #record ops correct for trial + #give feedback + if not TBROnly: + OpsTtlCorr.setText("%s%%"%(int(100 * ttlCorr / ttlTrials))) + OpsFeedback.setText("You made %s symmetry error(s)"%(trialStims['trial.len.L'] - opsCorr)) + OpsTtlCorr.draw() + OpsFeedback.draw() + RecFeedback.setText("%s of %s locations recalled correctly"%(recCorr, trialStims['trial.len.L'])) + RecFeedback.draw() + win.flip() + waitScreen(win, myMouse, feedbackTime, onClick = False) \ No newline at end of file diff --git a/sspan/data/testout.tsv b/sspan/data/testout.tsv new file mode 100644 index 0000000..64cdd84 --- /dev/null +++ b/sspan/data/testout.tsv @@ -0,0 +1,3 @@ +TrialNumber TBR.W ans.W op.RT.W ans.RT.W trial.len.L op.sol.W op.W ans.Resp.W ran order recall.L recallRT.L recall.filtered.L recall.corr.L ops.corr.L +1 [6, 12, 0, 10, 3, 5] [True, True, False, True, True, False] [0.082211971282958984, 0.078515052795410156, 0.12885713577270508, 0.14374089241027832, 0.1451420783996582, 0.23333597183227539] [0.45912599563598633, 0.49531197547912598, 0.33533477783203125, 0.077907085418701172, 0.070720195770263672, 0.33180904388427734] 6 ['', '', '', '', '', ''] ['symm11', 'symm23', 'symm40', 'symm7', 'symm13', 'symm28'] [True, True, False, True, False, True] 1.0 0.0 [10, 9, 0, u'Submit'] [0.15744996070861816, 0.48256611824035645, 0.22466611862182617, 0.64342808723449707] [10, 9, 0, u'Submit'] 1.0 4.0 +2 [11, 15, 4, 14, 6, 8] [False, False, False, False, True, True] [0.32446193695068359, 0.12124204635620117, 0.1602790355682373, 0.15927815437316895, 0.12569117546081543, 0.14867305755615234] [0.61205005645751953, 0.32784080505371094, 0.10247802734375, 0.10181212425231934, 0.34135317802429199, 0.099596977233886719] 6 ['', '', '', '', '', ''] ['symm32', 'symm29', 'symm43', 'symm38', 'symm14', 'symm19'] [True, False, True, False, True, False] 1.0 1.0 [10, 5, 0, u'Submit'] [0.22709417343139648, 0.37544083595275879, 0.23072314262390137, 0.5738070011138916] [10, 5, 0, u'Submit'] 0.0 3.0 diff --git a/sspan/genSpatStims.py b/sspan/genSpatStims.py new file mode 100755 index 0000000..ad73c18 --- /dev/null +++ b/sspan/genSpatStims.py @@ -0,0 +1,90 @@ +from PIL import Image +import os +import pickle + +def findCorner(img, pixVal): + '''find top-left coords, then bottom-right coords. + Returns as a 4 item list: [x1, y1, x2, y2] (in PIL fashion)''' + newImg = img.load() + coords = [] + done = False + x,y = 0, 0 + for ii in range(img.size[1]): + if done: break + for jj in range(img.size[0]): + if done: break + if newImg[x,y] == pixVal: + coords.extend((x,y)) + done = True + x += 1 + y += 1 + x = 0 + x, y = img.size + done = False + for ii in range(img.size[1]): + y -= 1 + if done: break + for jj in range(img.size[0]): + x -= 1 + if done: break + if newImg[x,y] == pixVal: + coords.extend((x,y)) + done = True + x = img.size[0] + return coords + + +def bmp2grid(img, box, rows, cols, retFlat = True): + '''Finds the color of the middle-most pixel for each bin in a rows x cols grid, + and returns either a list[row][col] or a flat list with [entry11, entry12, etc..] + ''' + x1, x2 = box[0], box[2] + y1, y2 = box[1], box[3] + binWdth = abs(x1 - x2) / cols #int / int (just keep that in mind) + binHght= abs(y1 - y2) / rows #distance per bin + pixMat = [] + pixFlat = [] + crntRowPix = [] + for row in range(rows): + for col in range(cols): + #PIL starts in top-left (whereas pyglet used in Psychopy starts bottom-left) + crntRowPix.append(img.getpixel((x1 + binWdth/2 + binWdth*col, + y1 + binHght/2 + binHght*row))) + pixMat.append(crntRowPix) + pixFlat.extend(crntRowPix) + crntRowPix = [] + sym = True + for row in pixMat: + for col in range(cols/2): + if row[col] != row[-(col+1)]: sym = False #Symmetry judgement + + if not retFlat: return pixMat, sym + return pixFlat, sym + + +fname_storage = "stims.pickle" +f1 = open(fname_storage, "wb") +box = (122, 80, 275, 215) +os.chdir("spatial stims") +stimDict = {} + +keys_corr = [] +for fname in os.listdir(os.getcwd()): + try: + img = Image.open(fname) + box = findCorner(img, 0) + img = img.convert("RGB") + img.convert("RGB") + stimFill, isSym = bmp2grid(img, box, 8, 8) + for ii in range(len(stimFill)): #convert from 0:255 to psychopy's -255:255 range + stimFill[ii] = [-255 + entry*2 for entry in stimFill[ii]] + if "prac" not in fname: + keys_corr.append( (fname[:-4], isSym) ) #keyname, correct or not (for randomly generating trials) + stimDict[fname[:-4]] = stimFill + except: + print fname, " didn't convert to stim (OK if it is a hidden or non-stim file..)" + + +pickle.dump((stimDict, keys_corr), f1) +f1.close() + diff --git a/sspan/instructions/pracBoth/10.txt b/sspan/instructions/pracBoth/10.txt new file mode 100644 index 0000000..b082a3b --- /dev/null +++ b/sspan/instructions/pracBoth/10.txt @@ -0,0 +1,9 @@ +Now you will practice doing both parts of the experiment at the same time. + +In the next practice set, you will be given one of the symmetry problems. Once you make your decision about the picture, a square will appear on the screen. Try and remember the position of the square. + +In the previous section where you only decided about the picture symmetry, the computer computed your average time to solve the problems. If you take longer than your average time, the computer will automatically move you onto the square part, thus skipping the True or False part and will count that problem as an error. +Therefore it is VERY important to solve the problems as quickly and as accurately as possible + + +Click the mouse to continue. diff --git a/sspan/instructions/pracBoth/11.txt b/sspan/instructions/pracBoth/11.txt new file mode 100644 index 0000000..02b51e0 --- /dev/null +++ b/sspan/instructions/pracBoth/11.txt @@ -0,0 +1,17 @@ + +After the square goes away, another symmetry picture will appear, and then another square. + +At the end of each set of pictures and squares, a recall screen will appear. Use the mouse to select the squares you just saw. Try your best to get the squares in the correct order. + +It is important to work QUICKLY and ACCURATELY. + + +You will not be told if your answer to the symmetry picture is correct. + +But, after the square recall screen, you will be given feedback about your performance regarding both the number of squares recalled and the percent correct on the symmetry problems. + + + +Do you have any questions? + +Click the mouse to continue. diff --git a/sspan/instructions/pracBoth/12.txt b/sspan/instructions/pracBoth/12.txt new file mode 100644 index 0000000..7a3b09b --- /dev/null +++ b/sspan/instructions/pracBoth/12.txt @@ -0,0 +1,16 @@ + +During the feedback, you will see a number in red in the top right of the screen. + +This indicates your percent correct for the symmetry pictures for the entire experiment. + +It is VERY important for you to keep this at least at 85%. + +For our purposes, we can only use your data if you are at least 85% accurate on the symmetry pictures. + + +Therefore, in order for you to be asked to come back for future experiments, you must perform at least at 85% on the symmetry problems WHILE doing your best to recall as many squares as possible. + +Do you have any questions? + +Click the mouse to try some practice problems. + diff --git a/sspan/instructions/pracDone/13.txt b/sspan/instructions/pracDone/13.txt new file mode 100644 index 0000000..32eed07 --- /dev/null +++ b/sspan/instructions/pracDone/13.txt @@ -0,0 +1,12 @@ +That is the end of the practice. + +The real trials will look just like the practice trials you just completed. + +Some sets will have more problems than others. + +It is important that you do your best on both the symmetry and the square parts of this experiment. + + +Also, remember to keep your symmetry accuracy at 85% or above. + +Do you have any questions? If not, click the mouse to begin the experiment. diff --git a/sspan/instructions/pracOp/3.txt b/sspan/instructions/pracOp/3.txt new file mode 100644 index 0000000..ac44b40 --- /dev/null +++ b/sspan/instructions/pracOp/3.txt @@ -0,0 +1,9 @@ +Now you will practice doing the symmetry part of the experiment. + +A picture will appear on the screen, and you will have to decide if it is symmetrical. A picture is symmetrical if you can fold it in half vertically and the picture on the left lines up with the picture on the right. On the next screen you will see a picture that IS SYMMETRICAL. + + + + + +Click the mouse to continue. diff --git a/sspan/instructions/pracOp/4.1.bmp b/sspan/instructions/pracOp/4.1.bmp new file mode 100755 index 0000000000000000000000000000000000000000..2cbc131f04d0f6f77f2d7d0694014406ab37925e GIT binary patch literal 60120 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 literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm13.bmp b/sspan/spatial stims/symm13.bmp new file mode 100755 index 0000000000000000000000000000000000000000..965ce8866cd0840af72a8ada04d7808cf921503f GIT binary patch literal 60118 zcmeI*!Ew_-6b4{rhBLImfhxGu166QN36zurHBbbnbYNs>^1p+$8IPVf$z(ngJC9v! zSNh)XgC=44{^RezE2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5Fqd*@VNe?{F^=A z5cM&8e|fI1ytL=HpX$I2y?)_3Vy+*d=ofMoL%9k?zmTgK%2g=(g`rlLP0SMN1fJ3p@6 zIn@{6)sM&F6)IORo?))&#djS(i~fPGBZleKTmDa0`k@~YxM3kz!Sp!~MZb`%7|K;B z`h{G@P_9DJFDh5XdbsMJ&fyj6_g?GlvsewKs{4kC?edfd558j{+Sz@~Scmw@N7pfR@O`p+^YD22& z>f;UcBVDLs%r$*RKdKF>rmK%P(2sPXiZR#p8U3g>q?)ci-atRng(}8e(`WRf+K_6x z`gjBVNEfOYb4{Pok7`4z>FVPR^dnuUV$3ytMn9?zsiv!sH_(rCp^7or^cnrAHl&)a zKHfk-(uFF0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyup{sv DvwJ4p literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm14.bmp b/sspan/spatial stims/symm14.bmp new file mode 100755 index 0000000000000000000000000000000000000000..c3c505b5b68e44f45708326345da3a8e9407f355 GIT binary patch literal 60118 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 P3Mim}0tzUgzy^W8Vj%28 literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm18.bmp b/sspan/spatial stims/symm18.bmp new file mode 100755 index 0000000000000000000000000000000000000000..84329eb1631f997d028d5adacecc66458d9004b3 GIT binary patch literal 60118 zcmeI)zi|^m7{=lA3^BApKo#WlKo!I)fszzZgNq@ zDW}ralXaELnJ{FR_aEHX4)$;VZOC`DANC_LOdNEjtBE<~RJzhtVwgDSN>>we%Bggv ztHdyI==bOSzhef{gQZ+VKQK%C4_-&i?MEo;gRWwzt5DPjUBysWp{NhKilMGTQ6F>_ zLtTZUJ{;!0HWWRN!A;X(X>eec_8u0l~C4%5}(&SLXYoptjW4s$=a8Gmr#X3hG6_QQVEE4n{}u5@)@MSVqAx~f-n ze+FIY>b{Elimr53uju{^{l2#Q=2?S(LFh|)eqYLg`ww1+{dh!my3&=d)&=~0`1x3` zWBVhz($)5Q){oTHlXaELnJ}zx`@1w?Wj}Rb0fB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 p2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+0D+?j`~%q!Ma%#I literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm19.bmp b/sspan/spatial stims/symm19.bmp new file mode 100755 index 0000000000000000000000000000000000000000..7c8a01787f95d2a0980bc5a3108ef6b39990f83a GIT binary patch literal 60118 zcmeI)L2lDP6b4{dVhz_|!712t2Ts8{N8m_Va0U*+sy7HuO8+Mj+loETw2Hpaq>pjN zp84Kysga;xzy1C*TpmBh*U#hg=hHBJ8J|zXhs*f)@%XQgFVD+BUJk=Behr7i%eV1$ zEQjOqIDS7LI9D62Q>OlR_j|l8o$W<`i=b>mXpc zMb~GLE4jK(Mf-?c$yIxbuFvqupQEzdM5l`SAw6R?l!^U|srx*u$Wp7QMQ5yrGO>SQ zANp~R)X9}x$<@4o`@{V)pN{QERDnTW~eLast5SD|PxqSL?7k947m{%yz=^`qL5DmwiO{YV$8=-&ocBtU=w0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk R1PBlyK!5-N0tD_V@E6z=Ma%#I literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm1_prac.bmp b/sspan/spatial stims/symm1_prac.bmp new file mode 100755 index 0000000000000000000000000000000000000000..2cbc131f04d0f6f77f2d7d0694014406ab37925e GIT binary patch literal 60120 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 I3f!l_KdDxR^#A|> literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm21.bmp b/sspan/spatial stims/symm21.bmp new file mode 100755 index 0000000000000000000000000000000000000000..5ca262158ba766a307ccfc921089c6b28853f18a GIT binary patch literal 60118 zcmeI(&5aX55QgDdi8G|Zfhf3>15t2x2!!MVF%SeNGB9H={msEx>gg@Fjr4fe?%JOI zse1bz$#dAxUw-~tF0XIv=g0N^{bgA`t?!rR-KGEQdi}@y*Y~9(ABSaGf0x7IwOK#c za5)~2YkR(My8JGu(>Yq->(9CC{I?eZ2q1s}0tg_000IagfB*srAbi@8AC@Cwc80m3i}mof-C3J1_n0q>gxa%_KeZ0_Wj8?qM6Rc*U#R1l%9) zkK1;PU*Xkrd6jGmf}HKR9>X)Uci)pm->Bhi#wV&HA_iiZq-S1`z59&m8#OQe?4%A} zMTWwFSG+3JDNFH+SCOGG;1#b5b;?qqS`ft1tUfQ;($Ahrr|-+{HYyXd)Vx3)jkWV= zBq~~7HHy4yBq~~7HHy4yBq~~7HHy4yBq~~7HHy4yBr4j?tG7pweE!JZn;u(10kv~f z=FJOsX4qHly!5k^I-=h-ll06BoQLzchi$y#6|Zg+aDTWzZrd?_g;&qzRkA4va<=1o z4A0EoeNPsBqlU8?pQw(A7>Hq#o_Rs`?lY!u)V%bwlR9`6843el@v2a#EX6BcMTWwF zSG+3JDNBWFK@dl?`n+IEKYJ#fzAv}is7%aK^8$4=*3P4msAzfBDDtY2sAzfBDDtY2 zsAzfBDDtY2sAzfBDDtY2sAxB@-X1;j`6GL8dTa#+)Xq_vH!s+kVPCcL($7xnhflvmC=7VTt3sW!6t8#{843el@v2a#EETE+K^)EM0t661 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ e1Q0*~0R#|0009ILKmY**5I_I{1Q7VY3H$*$DTe(3 literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm22.bmp b/sspan/spatial stims/symm22.bmp new file mode 100755 index 0000000000000000000000000000000000000000..bd8d5db307c3e801a9873b8384582e764c963f90 GIT binary patch literal 60118 zcmeI)v27e@6ot_d;88ZF4$ck(3zOb1-t75Iunz*V0V2$XJRrJ z{5gC>c;xf2yX(ru!^C7R*j*pcnV8H4yXylw6O*}McYQ!-Vlo%(t`F!;Oy+{!^#PrU z$y~6zKAWWU-0xxCb3+YI@yI^x?)CYq_JxVb zT(G-7pffR<3wGBBbS5Tq!S4Ei&ctLc*j*pcnV8H4yXylw6O*}McYQ!-Vlo%(t`F!; zOy+_YK^wv&pNHLDS1ukVCUe2=`hd>FWG>iUAJCbY%musa13D9vxnOsFKxbky7woPN z=uAxJg5C82or%d@u)98>GclP98(uy+MbG2oy}{fN>Z3lEz=q4oDY~wf>ir|k4WT~n z_pt7{p$4a@kEMG52y;WIkNZ8Wdv2(~De7aX-ao?J5bEQ859^*AYH*52_F;Fg&sVkm zy*?86L)X=^yMC~kteXapc3%(2??3&2mV-rnUsWH={JJ2SteXapc3%&tpN~QR_p9n- ziCh;XlXcVJ(eCTv^z$+3|9;hfrH|_(`gmgU9&6xhyZiZ|&BSCb*j*pcnV8H4yXylw z6O*}McYQ!-Vlo%(t`F!;Oy+{!^#PrU$y~6zKA literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm23.bmp b/sspan/spatial stims/symm23.bmp new file mode 100755 index 0000000000000000000000000000000000000000..3ec8bd311bd9b39058b1a7b0fc57743f51523e2f GIT binary patch literal 60118 zcmeI)K~md55QSk;m34BBEOLtMbBCNFYaby;Vv#d&h^)AQBOChfs*%bi1od2YeiG2Q zW${K|&k#ZZ-+w&)oz5@6=C@zx*WVA*^lg59m_D8BKj-s*KEJ%43%of@)BJZj99|Cd z+j%%WK0eOJ(~0Bx?{qw#M)T|Z=Ttg9_C)~&6i`3`1r$&~0R_mS&ECE1Uq0K2G=g2&}-CZ^;52sYw1 z%6=>bSdjU4oPJr*_`-DDANhui&6pqCk9-?Qv>!_W79>i!!E!ctvp-gDZCmM@{UE#l zv3TR8`$FDVZaI-ec2CFqKqo)2A7$PP5|cU=Jd)khaeoB;$0++zBE29nsZ+rt**zWi zN6>$avL7YV3lft$6+DvN({XBqK3wC!1#j97ukWIr?4E|I@d;_3a1zIhhc zXY0N^W33%DNXMCUq)!B)g}xZNslzNGUk~ ziXz+lD3T*4RB{8d?FZOK!HsMjdh z)lz^3nQw`f+zR>+TEhxF0LGwyku{kGo{|W_aVI`$FE=?$xpX zLb7{0-p781Rr-Dbadphoqp#Kz0DzVYv~^gdW?tQt(H^yko1E>(MLEK|=|Qq$IW zcHeJrS$4tKZ@>R+=eHmG{pbDm^KRR|?6V&ky_k zUTzN$5BuZk15fAo?dj=M?YI5Usdf6hHv$9*5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAVA=s!2XZ&4}1Ic zhN_31#Quq#$LoWXM-?zv=ISC)r=#C7R~Oa(V_(0nlt({@%gU_){Q@gJ9mUET8 zA9Jjul|(14JbnBJ*?Cshtt+y(^9XuO(pgtzZ+QegCh4pzvbQ{f9+Py|71>)JL61o~ z>x%3xkD$jSopnX_mPgQIlFqs!d&?u}F-d1#k-gt}9^+-i>#LZoiy=Erjy{Lu=b~X+ zR>-3YWFVKNFgB`3#C~jmAM-8(XGr?6);!bX&URQYQH0o z;o7Yx`eF5Yu&df%Cyy$Sf$X!kSJtEP{gpi0x%4cu7Vzubk-HwTOL7=NjmF_>@AO=$0VI~ zMfR3Q&|{L$x*~haBj_WT(mD=WzTUCrrx< zc~pT6lE-lER&D&rLV0vk80#ji?Up=-Yqx6SPZr9fo5EN( zVQshMFzGg1*CK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk#|iueL!C(< literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm25.bmp b/sspan/spatial stims/symm25.bmp new file mode 100755 index 0000000000000000000000000000000000000000..9a7aef54cd3b4eb909618f8f22b88153d59f4ed8 GIT binary patch literal 60118 zcmeI(L2lD*6op||VqCVtfK@PO53GW5mcWuSU=1vSQFoAjNxAQp63cQE>!?O=e_CHo zk{C+|uF&_W@{Punc_;8q}@oPF9-VWpA z7^ma$IF9EBPM2TP>2#jP`}pr1oqz9}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>4-1Tc z%)Z&%=ZDYc{!c*n3!kH-r7P@b-M)|{H!Pjbi`S7`#J?u@QRFjUSoKiw=spVDeU!u& zNAIgr^u8*IEsow-rRaTC5?dU-uS)S_+*eEAn!ookc3YPiJks5)>rQ{>g+#&guPVB| zjv_f>LXsQkb|0W)LXsQkb|0W)LXsQkb|0W)LXsQkb|0W)LXsQkb|0W)LXsQkb|0W) zLXsQk-uXV({jjm_S(xP3Koi}Ie`vFK9k-v0BsX{+>=YP-A>!_9XA~C6lf=9ahbk=>P%)F2&c>YyIx7Sf5{<}LQ?jO9b%C5h# zFsX-vN4ooT{Qp(Z|GLV3lt|x@nAAhTBi(&EetiV}udDu-eXP5Q);$Z8YplTU>0bHu z!70tWkccPc2D-ft&@my&4RpH?&@my&4RpH?&@my&4RpH?&@my&4RpH?&@my&4RpH? z&@my&4RpH?&@my&4Rr5(AM1WXTK6nWa%-T8?%qd7GpE1mg*+)Y^hwj%k=FrAYG`~K zJ8~bOq=v?)u_N~ZN@{3)8ar|yprnSzr?DgV0ZM9Ud>T7)AE2a$#;36(_W??3XnYzw z+R;8{PWA2x07x7ZP(T3%6i`3`1r$&~0R<>#;M_VI21`f>mK{;+MI_Rojy-L3z1fBeV$m(N>+FOS={|K1)SUoQLC zz1*Ijp7!hYfy?dpcDY=u{d50yZC(HDhXM*Hpnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0t);Q z*#A@hw2u!9RqwqCwwgTA`#@*7NLafq1|_S^1D)X_VePgUl&mrjbcTzBwcBD)vdTQr z87>mmZi_+5D)T^RxJX#LEe0j4%mba_B4O>e7?i9s4|Il$gtgmZP_oKA&>1cg*5TI5 zJed6qMcfCiSQQUa9aqt*D`JPtWP|ae=VDbnNW~LbMW?P{wt0Y#37xuv+2#Q{CUoiw zW}64-n9!*!m~9@QV?w8{V77UHjtQN*g4yN)Iwo}L3TB%J=$O!{EBNkvLh+B?2iu9G zmbBu&L1z`6x+1ni#df@px*XahQi#Gl8qR`i#6V>p3vy^9Ng)dJXgCY55d)QZEXbja zB!wupWK+CkjkX_|0CzY~SbRG4XJLIicW; zPTb$wmtwZ>50b>>EaJp<%r+16@LU}Pe1Gt^pupsy_4gah_U|k6n0VYgR~#n_OeQ*? zeJN)9J~xlEhvvjOFeen8(GzoLFG;q~cKr8nv$bD;J@Y^SEDj`{x`N$A!FGIq)aB47 zMGREt(Qp=ANg)dJSdc>-88J|qN5ffgC50%=V?hpWWW+#a9t~%~l@ulv1i9com>u5~ z#vQSrSQQUa9aqt*D`JPtWP|>k2~5fg^WgYljtQN*g4w>$LC1tnUBPVg038!Lbp^A{ z19VL2)D_G&57058Q&%wCJV3{UPF=z5H=YOIB~2(Wsf&S0_in%UMDGKg;lezQ0-mek zs{KyyiROXMaM9O4KFXluLz{V^Gh8IB-4=tARpx=taFMWfTMSB8nFl(7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36k G6!;BtmJ2}u literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm26_prac.bmp b/sspan/spatial stims/symm26_prac.bmp new file mode 100755 index 0000000000000000000000000000000000000000..0c4b30e99515783fd39d2a921ba74aa5ecdc33d0 GIT binary patch literal 60118 zcmeI)!Ew_-6o+wThBLImfhxGu166QN3GTqHSy$vV*?oj9zxMyY|{)zJTMG zT}dnb{!a{o!1o`&|4gTkU-Rd$^K17oP2c9%!}RGi{&Svx{`~qn4e;r4n&zL=Cd+{Wx(r{hSVmV>Q3#AIG8N*M2CVfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Min! zKY{rliqt}5>bCIwnL*~&8T)AU{pA4BtC2RBM34StU z9?ig&J0|$aka<+HHgBHbCqw4Z3|zTmf}aeTMWFF1Hl{+T*$x!5xOfq!K z=MUC?0f6(0|FUhrOuob<)iQVBSd5G-SljCW9TP^z6|8L@pkup%c?^MIncKs5?j<7U_|$B&`dewn-JpEJbiP7?*FM%^jqv2H(1Mul*; z4r^zB6U(W3f1HtBwKNZ!jslab%I61XZSN2B$Xldo)V`vfC@^Uf?c0g9z0b{~ua(~H z4Q8?M_g8PwuK0!b`MMD?xuW}fhh}Ym-6a@I-b1_MIBT1Sd0ep1>?_)d0+S0mZ#@)i zd!L)f)~4C8oqa_+QDCyc@6wyF_6NVu!7LWL;_Nbs$)&M39B(;?vv*D>zDa4n94Urk zhh@(1TSB6}2v#cdXy@$SlN6#bk8aiW14Il|=F!gCy(cL|VIJM8?FWb$sLZ3CvwKfc zh{8O&Rof2`F;JODJ7@Qvq);sG|2ZmYqPQZI_DhvL{VsDieU9=vh|N3@=r8Om`>MZ- z)<>|f?5lNG^pDtA_Emout&d<|*;nhX=pR9~Sls_}RPpqgjO##-xhS~T*l1i4XHlxW zj!}t}QiwV8FpoNc=$%q!U)8C$Z(T|u=FFpAxNgrdFIDDIr`o=CDTSCbk9Og@J;S_I znMa*!`_`otVlMKCv2}IJ=Z|&)_f$Xu1r$&~0Rl6hy}oXGntsQE(>*qTuWh2+0RxAP7#*z>ID5>d`F#GoIgT&q^XB;Qqd=g__Q6H00mn{H*q$kL} zUml;0T&p)eNo0Et`{1s4yYRl^c0$19?RZ~(1+x7)w~trfJuh$YzT$R5z~p6Y|Lq;J z{W-Ufjdz*%6}J-tCL1|ldMSq3Al~yFWas~*E<4d=Bi5x5H?AYwb3hd)I6XnOeE=OM zI6XnOeE=OMI6XnOeE=OMI6XnOeE=OMI6XnOeE=OMI6XnOeE=OMI6Xo3mG^PkhmFft z!K7CMNo3FZn5^PNlZ{yH>j|?Hfj z``|$Dc@DDkxi%IPMvU+$8(Gv78Jf&k86P!SHCi}5k)g?q#q<%ARilN|6B(M!SQ#HR zSv6WXJ&~cwjK%a3lU1XI(-Rq*%vc#8HCZ)UI6aY}$&AJH5tCJ;h0_xmn#@=kA2nGu zS~xwCp~;NJ^bwO)qlMEG8Jf&k86P!SHCi}5k)g?q#q<%ARilN|6B(M!SQ#HRSv6WX zJ&~cwjK%a3lU1XI(-Rq*%vc#8HCZ)UI6aY}$&AJH5tCJ;h0_xmn#@=kA2nGuS~xwy zfExq=dgGHs_WJL0j@QEJ3D3ce2y~d>^aR=7S3rjePEU|+A3%o*PEU|+A3%o*PEU|+ zA3%o*PEU|+A3%o*PEU|+A3%o*PEU}1<$dt4)(rwCy&6c`Fg};?9AI4*z}z70W4Q)4 zZm5Av*aujb1u!=V`&h1ljT>s<67~VsWdY0$!akO3VB>}wxP*Oxby)y&gRqa~8rZm@ z1}^cQeQ+R!1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb w1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0vieZ1*v^1FaQ7m literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm28.bmp b/sspan/spatial stims/symm28.bmp new file mode 100755 index 0000000000000000000000000000000000000000..e113e3782e2f78f32c55b378b1c9229869b0695d GIT binary patch literal 60118 zcmeI)!EIAP5Qp)N#5uIVfhxGC2dd!g5-77>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC38q7wG>e zKke=79aY);jYDkQ*Ns=PR9(37gll(OcYJp8KF0CG1f{yb-fI)Hc2(W+*~$BGt{8^I z;9NOZiQ~jl&Xse;FeC=&>apf(Jk97uef=fQ|{3y1?G{19VKN)CKmoAE0AGr7p0y{Qw;kDs_Rq?FZoGX~hg8di; z7|60N#75(3{QY4+Vm|gJ=V}yiuJ%q-eBP+)*DL2L=3{T#n5*5T$LI$VYxlvSH(n64 zR9%QevuBiM$@>5-GXy!SMroGp2Vj{Y$XPW?vt&O2%M3xzs!^IH`vF*H2y#}9(k$5z zz%oOSvuc!P$$kKq8G@WuqcltQ1F*~x*ROM~MgiyQ`n;?@Gpg>d+_N9- zz46yd@j5E5!Y6K*5?4{F3+(NEfQ|{3y1?G{19VKN)CKmoAE0AGr7p0y{Qw;kDs_Rq z?FZK>z@3o0pyQ=Q^?BsnoR}4d9aIT!I#BpLN=gPTa7!reX^;mN? zo@RfA-X_kAODUj$0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} q0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4@VS1^xkOV`vTl literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm29.bmp b/sspan/spatial stims/symm29.bmp new file mode 100755 index 0000000000000000000000000000000000000000..5460bd9dddf4f2cccb45caf7882046599788902e GIT binary patch literal 60118 zcmeI)&2bY!5QgD(6=z6;15t1%2cqDt5C};JVsH?goPik0)n6axvr99YUL<&prD?ZT z^Ye6X8C6ky{r3EOyL|m<&!5}l=hL=*X^*Gv!zKT{z5eUt>*JEp(_!1%_jWkE4(+*x z+wpj8XTA_X009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0;r9}{T* zxxlioPk+%yYrkj{c`l{$s(i7Jbd}z>U!b))hYBN;{mP(~v^Mpi9_otQ1Nutsq(COO z^A69TwYkr!$8h(&{Ra9HCyJ?N`WfcqmzUbsJkV!=pX1tNVF5-UdfDirCfkXSL&SD|b_1n|e@>Xo>|ReHDoJ@%w{%P>&E;Inr05$$cIYD@OV%6zQvw zSTX7^c?$yd=!%UE&N01xZTdd?igQHasYghx80o7}q_09^#YkU;B7GGSD@OV%6zQvw zSTWL9p-5ka#ENmcugn|ukz~cj2It7_=#7~gj5vo3r-LNd6qy=~sD})vgCy4!nHr3! zhYY8KB-a#~8jPri45x!6*A$r=jHrhUr-LNd6qy=~sD})vgCy4!nHr3!hYY8KB-a#~ z8jPri45x!Z@^>%4+j>YxJ2W50^B!1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL yKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmdXNRp1YLIcN?5 literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm3.bmp b/sspan/spatial stims/symm3.bmp new file mode 100755 index 0000000000000000000000000000000000000000..ab97e01fbdbeeb338969aef75dc490ed25301d1d GIT binary patch literal 60118 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 literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm34.bmp b/sspan/spatial stims/symm34.bmp new file mode 100755 index 0000000000000000000000000000000000000000..9a9c704a18e52b01721bd11dc7e9cbc729ed558f GIT binary patch literal 60118 zcmeI)!A)C15P;!D$~kF+L#p7O9#TclE`gGKNDUOhi4L5#@%&H9Td#P|?qEkh!R#>4 z_UwK$marmt`tkBwP9MMO*T;H$ekkR8y*-pKr~J=){rA`R+bO}9T`Bdm>~`-<{aVAa z-|y>syl^;umc!u~)m!~{OdY@XLjeU8P(T3%6i`3`1r$&~0RxRVX@FAu(cgu0ruP=BoFj`POUnHjbFMQoF(G`;Wv%oJ-k{FmDWGTuNN+M_}8J zkQlK#SE1-!g~W)}xe7(+DkMg%&Q&NnS0OQC-TGdscYkJd#Kty02erFzntHom{y;X* zwQ&z4?oMsb0VgJ8@&anx5703olNV6iet?b%nY@77_5*ZG$m9jowjZElLMAVuw*3Gd z6Eb-Lwe1J!n2^Z}sD0=C=)SYqcoCDlHc*M$cis=r!O*RHOC~R{ANFI$v^iJKm2-7j zz}JVbkIU0>{T1iRxw?LOE6$sy$9xP zpGv*$ESqi|t@l8lJum2O$8+TMAu8FAwE(Z8KuTQKyD4nP*GFO_&ZX?fT7ZGfZ^vQ1 z8($yxWQULT^8{RoNW zzi@qhgvs@*a}{>ZRY;6jovToEu0mqO>Rg4Qa}^RJ*8gv=mJ?kYedf7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A dpnw7jD4>7>3Mim}0tzUgfC36Apupb(e*n$**pC1J literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm35.bmp b/sspan/spatial stims/symm35.bmp new file mode 100755 index 0000000000000000000000000000000000000000..eae6952523fab9f351738be8deeb1524a2a40100 GIT binary patch literal 60118 zcmeI5!EGBc5JlHO&Pf|Nq>9|rL#oKxC8Q)DQiF@g$sH(^9KKnY#KI&+=%e<#F56=l1ycI;7Vm zx2LD4G@dV~A=le+ezTyr56ba;tT*JX8R={NSZ@Ov^`j&}LqchtD66@f^HJH_`$AXd zM-)w4P~l5lEETi3Z=EQs*+nRW3f%`x=7=5rQj$_XKrvaAChQ{Q)(=oj7CZW-B)5Km zVzMYr*hR>#AE1~lcJxb0Zv6noWKo*1i;!DCKrvbD=$De*H||Hdv%?6xW&i6$6h_Vn zH7fT3!)_7CSt3G>N&!)33}A$~pXfhM2|P2z68KzmX#1 z?>AA7`{?J|d#8S6a`B^28Zuv6IO<1+tsj}hh|#{v6z!`_V#H`)Ws3GyCNW~PuQJ7J z>#K04S6#>VSB=$E^o{%BKJvjDIyQDwOxKU0KIFv$aHGMZm8pa_a{uCX0#-5hAyKfMT); z_!UKN{Q$*eQE?$c@iBG8ZCIS*C3tJzA6dWSDnqY zyRD?!ANfc>$bI-t$l)wD&a54$Rg&E9Lq7&Koqd&I#*c7ek}oYB$?ZA!oDb|f`zpiq zoM#dvM*AvLw68LW5#zn|75|705HJ}5*fk^|0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^ zNI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndv NAOQ(TKms>S;2#HKxu5_5 literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm36.bmp b/sspan/spatial stims/symm36.bmp new file mode 100755 index 0000000000000000000000000000000000000000..4d2c42abd54036b156a5954d201f9a320d3a1959 GIT binary patch literal 60118 zcmeI3!ExI_3`OagoRc+XOk*RYB0p!L^aX{lFpZ6niu{~~(iarI!ZbEQD)Ms{N?%a; z3e(sKsmRY+D1AZUD@TJ3bLCtu6YzX^K9;9r`xWQPx!OKG%XdQcfPfiY zE;sB-VIMpGp3E@piwoP2On`x0q&DtCcH{5K*pL15=3He0&Xsd@A&{rTe|J3}m+9F4 z?p$R8|JYn*gDaJL?t|LZ=TVI7x{a_F_w@zTb{{kgCVg$761DAz{a`Bg2hJ7aL;#ch zcyC^T+MaX!ar5*n-{4#^P6RMn#y0E}69G(?u?@RI zZO^&=IB?2z>% literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm37.bmp b/sspan/spatial stims/symm37.bmp new file mode 100755 index 0000000000000000000000000000000000000000..358096af5b6eb55952ef04f162369819930441be GIT binary patch literal 60118 zcmeI(%W>2|6a`SZiZ!Icf+*ON15vP^5D3W&Vju`s&S21tdAAp%Qb|+KV#;+4<9@W{ z{+zz@r+}~De*c-SZ$IYupXb-lr)l~!zn-QK*Z%MG^2CWvJtd%xxdeqcL`JRhTbwRTK@aTos~Rl|)A?SEVRdCDGB!RVm6< zNp!UNrlO%pMmrX^bBxTr_vep=eP^tlYv{N=bK6HwCMF%gJIBb}&ck`^%+A{Fa+Nrx zh{+n<8(quXo^$8Xm@&CZoKnQ3(Ru4oncH*jJhp~r!+pVQD3Z|)^LF2I_wuvo@nEH^ zdyyN)vyVb@9wpJy%2g@KRY`QTa#f0QRT3SoT$Q3+l|)A?SEVRdCDGB|ovVcpe2kwz zqO!2Ug|006(Q;)UC6FVkjsx3~m`pml)~YO8t|He^4Dt*%y4EV^5wOl;kZ07B>#V6`9*UoJV8qp3r32f{?K$_HH|9>R z3e$655*@8vm7-jgL`VBxa+NP)4Mj{kfOn3OxySbtl&g~HXyvLD<*Fn)TDdAk zxhjc{_U>FQeBfjJ{1KHbXZ%g9|rL#oJGC8Q)DQiF@gDIF*)Id~(0v>+~LN3rl^OZxsI zIm7q4hIBCe_1nwu<$U|GK7L;BKcAN6%X)uWKAipU>+8QhzTVFU4~J!0zn8<|^=W-v zL%!m4*y_vCNhdab)wTwShPWh?gJ+Kh=AWwlr#@e>?}Gd zghg%h0L9KC;CB?Y%>xuWi%tq*QQJH~v9k#H9Yt;P0L9LtlR{Y3HV;tjECPN>A7kNc&;`cri*DU)ra|g)!Eu@);-S^wd2jyZB2JZvDQW2 zRg&87gJfV*6~aXwYMY07T%3zp>AB)KAz(5Kcf)*Yd!3udhV%2*6wejM2?3M0pzY{W z+w0ss63-bh69i{8vAIAjT z1L!cpsT0&T51_*Yr%q7YJb(@poH~*4@rfng00n7w38Uy3a zBY}Rq1bjz@d9*MSoY5EN@+O?NDYhhS7fU!zMz7bx0sAEPwq z$CE+`^O(oFd4-4pWgeSp&QBzT5auzDb@K`l1Ij!$)10433L(s69_!{6A_kOsY^FIs zkrWaHLC&`|yh5ja+UdP-?~KP{;&2!96KEm??YNJ5zN0Hd3@Gy$g_t;=6hfFsBHz)a zA_kOsj6zHtPYNN-Ba!duQV|2nJVqfVjwgi>=8?#Ebg75|^(c9;p-};VQJ9XGfCMBU z0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb k1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(T;6Eks7d~TX4gdfE literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm39.bmp b/sspan/spatial stims/symm39.bmp new file mode 100755 index 0000000000000000000000000000000000000000..2f34d8b36e9cef4003361d314571e161323863c1 GIT binary patch literal 60118 zcmeI)!EqBo5QX7!6=#zM2cqEa9EgImLLej^h=CwDIRi10>3YeY6tJnj4d;0ySUA}(w?_c`s=R<2>`|F{7y7a&I^S>TnUY7>n4z2ay?QnQG^zXfF z$K$ad&nHfo-|cidSN+w0om=NW`=x*a3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36ApnwAZ1o}V9 zU-tERN7cz9xSeNCjuyAdx$z$oa1|Hjig7zs+>YzWW^Lk=~P z6h>hlg|owP#6V>pJLFI!NnsS`Q8+ssM+{Wvu|p0uk`zYqQSuloy0QYGkb*~M&mJ}= z>)_VLIa+)com|0e*8w^vbaDl=%>#5y=;R7!n+NEa(8(3dHV@D-p_40^Z62UwLMK-+ z+dM$Wgifwtwt0Y#37uTQ>^sk6JVv~~!Xy_1lbAj7xOPFWKZ{PTa2>=3Iwo{-1+(2( zpkqQOS1{W=K*xkmu3)x#fQ|{BT)}Mf038!Lxq{i|0Ximhas{)^19VL2?& zbwPniE(Rts`+3rutZj1D>lU3{;X2BC5@ekU9?he$&7&k%9Nkx?=)Nk66-W0~DY~yp zV#U#YRf_Jbl2~#4DEn&ih;efZlNG>Meg?BA+kEz@%g4XTbSfxU=p)O9+TEs8gHDmcq13(3TC?w&@rKt zE0}E_pkqQOS1{W=K*xkmu3)x#fQ|{BT)}Mf038!Lxq{i|0Ximhas{)^19VL202;{6pSxfqzl>{%XMHP$$3agxvCqFljj*I^zDx1IZn?L>jeLg%d?#cY4h&137P z*>IivitR*!$p*jGmoVF(bMsiZx!hN5Ckjj!I&b|bZel^P=Q_5o*XtBeKmi35P(T3% z6i`3`1r$&~0R15t2x2!!MVF%Sf&&A_z1%v&S1RT?*~ve$YScKuOi zx_h1~uULM>*Kfc7ESI+*?c?Y6{_|y7zO?t3<-?`^y*>ZyHK5g6i`3`1r$&~0R*f7L~fd-rfi3m{6$;>}@|l$An5 z7uef=fQ|{3y1?G{19VKN)CKmoAE0AGr7p1dJMYKvR~=U_#H6kb?35knm7m24qm*69 zb#);-P8{0%sOpIQ=mnU*swQmq=})t89A6(BsG?{;dI1Kqs0Z6^`qTLOupiqA8OzR9 zFW_8_&C>R&UiE1{UtPJieWk~kE4p;!q2mi;?*qf(5cn(+r7VGOKaiUcf}F*olqLHC z*vt^*tQw^(*$=>Gh9GCvC}qih05&rOIjcq~OZEe>nIXtoHA-2sAArpaLC&gC%98y6 zY-Y&FZ+(sy%{<`Fwc@N?z;V*wr;eY+5|mh~E^vtWe~&nh_fgk}btn6=N<8e>wZ1;q z7Tw{|*T;(P>tmIe@#tKwiq6$4G2_v>S{0qERbs|t%+>!VenB(iU^lK2r{}^bWr;&S z>|AB1kLSD(8b31xFsnu>OZEe>nIXtoHA-2sAArpaLC&gC%98y6Y-R{@R*h1Y><3^o zLy)s-l(J+$0GkTgCHn!`%n;rTou1d~TFTg-nHDR+)e;Qxs_G2?3gVDL_ z1)QtFVcJ~QtBzOh*$?)<^2bU$e_etKYf-5S?CpJkjtP~zz~1%)bWEt!1@^WdpkqR% zF0i-#038!5b%DL@2k4kksSE6FKS0NXN?l-Y`vE#8RO$kIzw>^Kf7R4qiAh}>*r`8_ zzkg*v7?0uLT=fFZ)$llRVXx}vE9Z*w7!J-=FW_7aj}sU6s(!w5t{9Ku@WgX<<<|C< z?m1V(jr2kV6i`3`1r$&~0RA=Vi**!>4V|Fd$@q8wBHt+d8 zOW*#QK@<4;?dA7$e*BnUKhMvfPt){eem+ef&g0+b`ClL3p67vhIZV_1H60Fb-{#l3 zoSvVb=kKS9&MEkl`b2)vwmE5&@1n99#_0- z^7>ejzHCT8^kX3)S3%at%Y#11zroJUZvv?%6oR_I4i>qk)Z z3%LqIxeAJYAy;82S3%J)n_S%3{N7@2R}6T{)bUzX9e@yg!Hb zKG==@orivG#G^bVS8`Pj&&EQzlBFQ?PXWqn@D z<$OM`*Xs+H+xK$0T&wl5{<%umzxyQt2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnw zfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz z0uqqGKLYE2%HQql(}7fzLty6_Um+#^eHThyk@yPJ*a#`<@4Hayio{o##zsgAtn8N7fM}`_zKh52r23ByHM(i#8;TcMo3A2--S|FB)-Bl zHbP4J`!1BaBJmZbu@O?z-*=(Z6^XAfjg63!{=N&Pu1I`^X>5d)^!HsTbw%PUOk*RY zq`&V%sVfp+(-Nnxv(F@EKVv_nqzj4m_{DDANK;+GY|jC7n4r`Z%r+08!vv+SV77Sx z9VRGs1+&cq=rBR4E0}E_K!*uRUBPVg06I)i>I!C?2hd@HQdcnh!SjfZ5&vJoq%H;~ zG5f*u@Eq)6pDjvVVIJmjk8N|W+$;BLn}F{R-yhrCG5?Bt z6=uihsL>PQjh}^5S1{Xi039YMbp^A{1L!b8sVkUm9zcf)N?pNh^8h+bQ0fY1n+MQg zf>Kv7+dO~{6O_7w+2#Rsn4r`Z%zp4ZMn7!4)(?}q7?{ND2hYQEuwi|+D0PK-n8!V~ z&AoE3+^cN@zCV0_Y;VW>EAEwhHNQREcS3cCf*su+cehs(``C%!GZ9@F35kjuX{swQ z5e0TUM_mqWQp7-I9u3X`S5k<=JPydAjf@zm%%j0M;7STnn8yJ*w2=`5m3cHc2V6-Z z3iCK1hc+@|pn5NPaG=ow01Z;%HM}wuJMm9cA-$=Krn15t3^5C~}x#6S?7oWY`9Gj9%RPcgkxFQ%Tct)^F_ zmcD;XVOPQDFF$`Rx3_QW=a1{h_orp~w0=A-?{59C>+3(>zkJ*pd^#=5`o5e_FNgK> zS}y1Fc|BfVxZK{C%jH_FAM3Ac>-u}&6i`3`1r$&~0RwjRUVpptk$Eutd3#^|zijJgAvS7pQeDw+$LDD3n6yUW zk=gDm)G?t`S1{W=K*xkmUBPVg038!Lbp^A{19VL2)D_G&57058Q&%wCJV3{UPF=z5 zH=alExAk-jle!p~#Ox@K$tU7kT)nPfw$DLonAF9`U3YA+lc~`*Vztxh1q_co5zm349p!0_UMlH_qUf~_A@JnPsCZlLRy?u zS1{Y>038!Lbp^A{19VL2)D_G&57058Q&%wCJV3{UPF=xl^8g(aI&}rJ%>#5y=+qU= zHV@D-p;K2d`;F%@{AOeFMNH~qU=p)?9=$bsj(*nmT6F4)(d`U>gfd!Kcl%5l-Hy)z zQ(0jijXL-PqP?XD9!+A8qx-5Uy04nV9!K|8Q*>W7i9L@0%f1?Yi!u8eCVK!+ zUSsxNgY%i_b3l3YfFfN4zOyZ6n+Fu>VirF*pV{UCMY;%l zXIsoR4=B>bEPil4v&{pFbP@Q@wwP@mP^61l{L%T3%!Ap%j|-w!@EjO&Ejo1tv!k2l zHu_mU2PlUWU7E`eTjqh&A;l1%iTy0|0OgRPOLO^Q%RF#8q!{8ev7cogpd3IQbzS1oKAgL?THyteWIquIbU`@Bo!#tWmdJ_c; z-B(RDe+*dDE%V6d&{n4LgN5eNRP)DxHQh3gd=7188b4TQ9!)iW3|P}G^T_AmN(B^9 zKmi35P(T3%6i`3`1r$&~0RCU?1yQgk2clr@5C~}tgyA_F6P>YjF$dsI?ev^~@rm~qqg zRqKBL)q+>``1*MS9xxtUaG|j)K!{PO1 z{yCS^^YiokdV1q{{yiO!r)vJ5f1O&VKl`PC0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> zXMy>D$=~hk(;ZEB*aUa)KA#;Zfoi>Aws}BNF6uF`lG*P(4>t4|`?zNP!yQJ!r;?WYK&MrS<4H}0|5*bn}3sTzIY!!0<87757yx z9%CP{Zruk9-3JuqBJjCHwANKDG!H1sMUZoeXsxSQXdY0Miy-F`(OOrr&^(|h7eUS? zqP4DKp?N@2E`pp(L~C8eLi2#4Tm(6nh}OD_h2{Z8xd?JD5v_F<3(W(HaV7B`J9TPfz1+&cqbWG^<70fmd&@rLYS1{W=K*xkmU%_ni z038!LeFd}419VL2^cBoD57058(^oM2o#zpMjkvwSq%Q_0F+1`|T8n$Uz80OnBDv|L zsGf#eV+Ezi|9)%vFs{G??bb>VF*6a1uQ9@|vwpHA?TmU+~Lx2;U@ zla_gGQ>}k`QF`N>1X;hG@=9jM-=o&ueX@{N`EKe9ne9Hv50g4;c_p*W!#v8T=z5{& zYM8`>g~@oU@s-(eJDm5$B3VeQ@&3msX1fn!!(<>ezB1c9%wxxM=eZh~@nB&x-fDd1 zaPLsub05r3Sfdr2gm`HoAL=WXZpVG}BAhsk)W@s-)h?L^Dxyeks(7}9b2 zFd1((zA`(xooM-dbVXtwLpn|$CgZKfS7s--6D^;Qu1NluJmSRMUSZM|!o?hBXAi^1 zt#Pf3>vxsRb|0jMNmmFLbC_)&=5cW@ZY@1m9487)ZpAIEXSUC|c@)miTT47w9487) z-a`9_eP;Wdo5zml49p!0&ghQ!=cN=-Kmi35P(T3%6i`3`1r$&~0Rg5j{}HwC zm4ih3beF_f!N)C;+apRZ`sev(Ef#e#9Ti@Q7_~whH@2(dLdUa zl&etG3%QD+T!o@u$W;vGDirmie?OSJj`^a#oaq_tW6-u~&H9Dv3awS*w6s>2FE4f;yqCO&5a#c^!dIq_Yt92^sBXT8I^%SjV zkSn=br=mV0R}Yq}v~=)wWnXH}8Vn6C%;~!oqwk&b=7U8KhU_C?^+G>lC|9AV7jhLt zxe7(SkgFKVRVeC(T*XkXLQyZCCRhC*;`OS|Iz7XvAKB0#`F&{Xtm)-UUuYltF&&Q#{o5X1l$Q;|P(2r2-M=0urT*XkXLQyZ|Du!|uih3beF?@_%^;OiX zY)wIc009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk b1PBlyK!5-N0t5&UAV7cs0RjXFJc+S^*$JOBJv~BHsJDpw+?YYVA z`T4mWFDK5|@9liPsP<@oF4pB|za$_52}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnw zfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz z0uuN`p#7u#X?BSKRa)>ws8C&-lv zVnk@l!Wye^>IAtmL5v7ZSy*EgPMsiECWsNCDGO_?!l@JF$^Ox6hd(Yd~Kac25(>V*C1tnEi9G2`f5b&Aea zCo$vbTy=`hRVOjy=v;M*&Q&Kd@&gI_5&1)Mb-v9*0vv@SS(`d!KusPnAd??<8g%ovTjKx#}cl9RHWO;xDlY0wyy6-}o94p9_f-lfPRv zUWijCb`!=)6v<+@qlHr^2pInlZX}G8D3V3hXyMce0=f^N(;}QYVLv+SLg|yovTjKx#}cl9AmETSO3QQt7IR5B4PH?iVLaYx;jCKOb~;F z?gJ)kMAim8mb4$BSS(9IY zXM(lu2PhVctPOaq{owszL&pTWW&d@8wc}%UgeFE*#mP}o#dURpwcQ7efk|B(Sc$dm zhy7qG?ibD#r_))@&-u^UI=}WI0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J- zkbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(T zKmrnwz%zmQALZZd@##RSD;GhWM^45f>d0bIogivN65_=o*~ns1ogivN65_=o*~ns1 zogivN65_=o*~ns1ogivN65_=o*~ns1ogivN65_=o*~ns1ogivN65_=o*~ns1ogivN z65_=o*~ns1ogivN65_=o*~ns1ogivN65_=o*~ns1ogivN65_=o*~ns1ogivN65_=o z*~ns1ogivN65_=o*~ns1ogivN65_=o*~ns1ogivN65_=o*~ns1ogivN65_=o*~ns1 zognHB1eaD9pGqt7i8K5;YP6AeuM?vbkP44|nu$2xABBy0E@eM@ z0t{q*JI?=E>GDAw?~nS1ESoXEwjcFvprZZg2{4dQsuO*hcXNNNT-rA4$bL}!ks0{M z(Amg)@m6($+KJkJL^a?~g+M%Tn*9AKQj#+bWnWVHLbyNl2XBGAq_-V?pj^iBTM{ zV@d1vU)ztK0C&;rEFE9YwOG-aQ2)f0GQbJYjj=p1<+)XonZ+fuJ=#LC!~DQbHi zFoy|FouIb;06I)?>IAjz2hd@HQzxixKY$JsoH{{m`vG*A;M56f+Yg|_1gB0=+kOBY zCOCD1+W&b!w*9cNZ52%F+CZh1gv42E(WZ?osuNyEPk=_&wSh`~nzi32X4R&REUFVp zhyttkM_nIUCAtt{KN_3^j%fqRejLz;R+276*pCM1fMeQ#vL6TZp_QZy5%#0OIpCN! zyj;=9w{acB8GcS&S%u|w>?W`>O<=VjyRq)xXg?adOdkW;P8A;QM}uuY8i`vRovTLC zxoRYCadfU4MdzxKxW(}u&(+GMZL^O2Tyl$^`W_OHfCMBU0SQPz0uqpb1SB8<2}nQ! z5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^ SNI(J-kbndvAOQ(13H$|BiH7|E literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm47.bmp b/sspan/spatial stims/symm47.bmp new file mode 100755 index 0000000000000000000000000000000000000000..f6ab588e826c91f773d005fedd3d0368a82c0c5a GIT binary patch literal 60118 zcmeI)L2eUS6o%1?)MMC24|)|nXAiv!##sVO%AnW4A{eoQbS1&3B)eoKj{8PNU%>Ir zEm!_m=e|N11b=_|{$qLm__}`nbA5cfTb94p$KCSBbN`?9_`jcC9?uP*?w4i#x!m8s zJguMCa(Q@oSf8H`JU;(i9v`2o^|AhVYCV13M*;~XkU#@272nBzZ5Y90rY?Z#qqI5hYyds|NT z$DsdlRP#89Y#Wlv;n3i->}@&SAA|nKQO)BZvTaBvheLzUvbW`Qe+>E`NBu7I*f!Do zD<;QS17FMDyFbod+Rlku1M5DHkll5lVWKlv$Zj6cndr>ZXVE?=*$(en+J3zI&+2W8=uFyw-|3d#$;{`lD4&KSyLSTE5j> zVO`t**S)RKGPai2pKCd9uCT7I1BDUIjX{z{G!GQb!}hqifZ4u6(Z0HPJ2??%`wB(- z%J#UpfZ4u6(Z0HPJ2?^N6^f6XhwPshUkDT5OJ}Z--E}}`qBB>>ZXVE?=*$(en+J3z zI&+2W<^i3F&Rik8c|d2PGgruN9?+TS%oVbm2XrPnbA{|1pU1`TI(ANEGB*ZE=a#eg z_ffAp(TnDauH#goef9qRcdEKz?f!Vb?_0k^^Eef-A>WF5h1Z|1ru(CLynkc0uTBNp zSM95V!0GPzZGPR|xwO}{KJxyMedF(IyAFHpaH~Bs(U~h`x38cx(U~h`HxKAcbmj`# z%>z0Uow-7G^MKAoXReUlJfJhtnJZ*B59myE<_g(2J`cZZy+XlcZVZxSZ-2PHUD3{~ z9Nalk%XxE!?5+bk6P>w2cJqMFL}#v$-8`T((U~h`HxKAcbmj`#%>z0Uow-7G^MKAo zXReUlJfJhtnJZ-9_&mIyxI)2XZVZxS@6F@fwe6g!<-5-nvbzrGOmyZ7+06qw6P>w2 zcJqMFL}#v$-8`T((U~h`HxKAcbmj`#%>z0Uow-7G^MKAoXReTa15t2x2!!MVF%SeNGB9l~`f8-EwZ?XLfu(=!89%?N zu2=QH>ebG{KmYRQU)#&$xBd0U{rUTsZTo3|e%Zcz@qgXl|Kt0w&lkhX!?x|;+rz`x zAN%Vrx5vlF{pa%=PcPrw)6=uspZnLd_56E}2t*(P5r{wpA`pQHL?8kYh(H7)5P=9p zAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NX zfe1t(0uhKn1pXzk|55&Fk01U+sL z;j9y~>jQL5IO~M$`T!jh&N?BxK0wEWvrfpa5705;tP`?7c^~io)G@gblXW#nl0Etu z)?^fG?1SY(&N?BxeSnS$XPuB;AE0BxStn%I2k4k^)(P450Xim}bwYN1fQ|`goseB0 zpku;WCuG+L=$LTU3E7{#kMS|$;|h~?HAs>@`WPFUjAD&Zl(`IACuFye`Z)2}b*>yI z0+SOt-#eA;?(_P%_t4xiu5;x$5t!V;@9ZJ6yU*+6#KYCOa-0ZEPUL*=R2Ff9_}}gW z3@e=dtA>D4u3IN8VkRuZ3fl)J*N9mSJdyPQ#l-^qnUGx{P+Tl#HSlED2NV|z>}NuD zeL!)snAO0OT^~?fEU=#m+4TX%#bQa54r+&HeZ!tM`Dt`Rr%k5XiPKyk4+mT=?9t`8_K7B}>dQg(enaj`g-aO23X z4=64cH}sEEc6~r`u{f6Sen)E;uX#4T?AiYST`)$mCfha2pmjoa`_K#~>uQiByFTi} zsrb0)TsckzCLhQ9<{4ynpV!BmPtUh6=v+BY1Sa3ccG)|!yU*+6#8U?53BnmYaeenr zC41Z-!!pUl8v8zu;;a*6g%&m}%a~Y(Z^u!bbz-d0!iHrT6U*@S0n-U$kOp{I=AT%G z*9S}|h(Q|QVVQqo8D1YSogfBjfQM!NiDh_wz;uEbqyZk5`6rg)^#RifVvq)SSmvKt zhSvv7Cx}5B;9;46Vi{f^Fr6R<){iT#ov^OAP9b}Ij(Y2cM4F4UPRMQ_pku;WCuG+L z=$LTU3EA}lIwqWTLUw(CjtOU-kX;|3W5QV{WY-7im~hq!+4TWBCY*Ib_9yS-tsgdC z8;{Al8cK>l1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn v1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1w4QUd<~k9bKR literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm5.bmp b/sspan/spatial stims/symm5.bmp new file mode 100755 index 0000000000000000000000000000000000000000..22c80309c52867e30e10e355324f3f1373ea0ebd GIT binary patch literal 60118 zcmeI)!EqB?5QX7!6>CU?1yQgk2clr@5D3W&Vju`s&cKWW^PdH`Zh5Y{TCUIRC^Ov8$w(Hlo{pZL1`}@PTecHbtws+V0*Zuw<@Be&X2mE;4w*B|^`1t2$ z|GCHQ>FH^|z1;C~{k^@sT+;r%|GJDW|LvCo3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j z{1w>$QhwRjhdZjW`td8gac4&VK8i_S7+emQntw7OkK)dZxL8I^`U1P{19VK7 z^aXa?2k4kE=?m<(5704T(ihlmAE0Bxq%W}BK0wEWNnc>MeSnS$lfJ-i`v4siCVheb z4=)J5j@x@HsDUHw!#)lH-V_DF_tl}gep^rjN7%=D563gXEC}{-sIK1@)W8w;vEIY+ zOfU^Ez(Ja{qV3i@{oSM-r*#}^iA>^Ez(Ja{qV3i@{oSM-r*#}^i zA>^Ez(Ja{qV3i@{oSM-rz1coy7yY{XcxjOIgMeSnS$lfJ-i`v4siCVhe3_5nI3O!`7T1>K(R`8wF` z`-(RYCQSMQyX^yXOqlcqcH0N&m@w%J?6wckF=5gd*li!6W5T2_u-iUB$An2=V7GmM zjtP^#z;62h9TO&f;r35YIpLnKqfg9D3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j{7(YE E0sGp9{Qv*} literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm6.bmp b/sspan/spatial stims/symm6.bmp new file mode 100755 index 0000000000000000000000000000000000000000..11ed1785fe9b3d28798bd785422da1a2ecb8f153 GIT binary patch literal 60118 zcmeI)!EF>l5QX8f#2M1yKos1`fhag{2!yl;VsH?goWat&re9s2Ec(@GysUnMJwG@u-gc11bx98v6?d`|-_<6kleA>1z06ZQQOv>l$~xE$v1L>^P(MHD)a^HT?2wFzDy zq9Bj{0Td?ZN)((c&easqq2To)3SJ-cbmUiIKFqnQCrYdPI9KWJYmVp0Ul((-H2W2K zOx66_PoY*Ik35GtS(^QdJf>=X?Wa&HkVl@woGi_LMIKW%zxGq8704scVNRB2zao#R znqT`V)C%{Jhb(GiYH5e&FV{^=bH^2C)27999F>T{H!boYk2L{vh)j!fwWgZiZSYNt zJaXZ+NrP`%o;N?=Jj)rPT86#FMpqEn!;Pq4}c8w6xT5h1s-e@f=4bV(?9iJji2Bz#Jme z;#{q%=64%>(;|;tcx}?)n-+PjspfYZeA6P2TzGBL;F}hCtf}UA7kGzakH@#zjAcT7f*`7&KU#{fa!q8W;T(Y6bF$ zW6)q}_ABxbYh3hGs1@!k4{hho?{in%SEa#NH6PR_s?c_Lj@&h!tQb_0M~b<_oKmQQ zJa%wRm#7$2kw=QT!<bOFic$n`4DLb)}hfEGDI9HSUZvXu*ua6ngJ6w5vOmto! zQ(})R=V~f)uBOBuSI*T`yti{z$)uJ3ATS@1D*^~0fB*srAbS8_E@$NY#~$<=&%#z)H4{pYGP z!`oWpZQp$4pMPm;e|*Y3+Je&Ryenh771j}I`w@zIAy+Y!t5DPnxr(7&g`!@_RSe}S z6!k)`VklRks29Ea+IElepH+Q2(`T@b&R$Jx)(^BF_M@Jn>odreTwSN4-jOT0s;B7s z400t`*Quy?xi)~b_Ajg>=Jq2L z^+K*5YrO57kF;F1JEVNm+gfdn zIdK2NI$~}=LQyZ|Du!|uih3beF_f!N)C;+apV*$``31V|5EnX zeYrh6JnZ%9jmz`bcDX#Q_UHcRY17m99s~#wAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!CtMf&D}I%O0QJ zP<7cw><4lk$Agr|wSc)YR}r|Lj{X*N71e(2>tA=uqn|@MuT}e7=IIplAWM1ns{J}AJ-3%U`Z=U?PI_)Hc|^5ehxGB)ZRFuPA|Q|ceUZ*suBh^eYQL_?A;*wM zKZkV2az&L#RQq*B4mpNA`Z=UCmMf|}qS~)3a>y~{(a#~Bv0PE*5!HSjIn*(V)xSrT z$!QCDgnCS04P@RrvC1RZ@`%KWYObPat|GCbnyV<9t4OS<<|>NjDiSN|n5*NfoBcVl zpy~`?`>0U?)Lzwh-l9(8-F)t@?27d@{8#oWifXK#&Rf(;$fGFaaeV#?(_9sWxiVJ~ zsG)Fw6ovaE)6uVmX|9UGT=nNEorSqzaT|FYzYy1v>FC$vDU2h?qn|@MhvxB>JfhmK z$5R+bkVij@;|GLKx3 zN`L?X0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF Z5FkK+009C72oNAZfB*pk1PH7Y_zRqnDlh;5 literal 0 HcmV?d00001 diff --git a/sspan/spatial stims/symm9.bmp b/sspan/spatial stims/symm9.bmp new file mode 100755 index 0000000000000000000000000000000000000000..a16042328c66daf0b22835f9442d48dd8c3da45e GIT binary patch literal 60118 zcmeI*L2lDv5Qbq_Vhz_|!712t2Ts8{N8m_Va0U*+sy7IK()P90`EAvXXTa4Pnsz#A zGWPS0L6Jaw{r3CMaJ&6zpFg+z&xc|7((Vt#hg<)9d;HhOr~9qJr_(UBkKuHB`qDnP zayXyQ?d$b{%k5*hT&`8Sw_n%R^?Pp$D4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A@GQ{& zQT}eXPybMr*^iq~hok4U=+qU=_B=qxgic+-Z1Vse6FPMTv&{o^Oz6}V%r+0uF`-je zFxxyp$AnH@!EEyY9TPfr1+&cqbWG^f70f<(9-H5Fbe@PwT?|ZO_QCV;JXoxlEuFf; zJj^3w+uSSn%DtKw@cQujnBR`=kGNOv)%NX~ebzH`(Z&LdCgw3eR8^XiJF!|^=oa(J0!9#Md+ z=mn|pYdo5P!}0nk4B~l|c|-vgvObRMf1daH#^HE<)Ccl9jP|{G)W^U?^N0d0BuaHf zJeqfNeRNLkZ7uV-fB!ntu=?lV{l05o!91b>3%M3^ho6r}^KO3Mh1KhPhecWW67E$L zU?Epp?(yUCXuQtNH~w9#A9~ofO6vv&{pF_HuuWCa=C@<}Bkq-ZwS9Z$pNZ-Y1v@%F&PNnbKmi35 zP(T3%6i`3`1r$&~0R