An easy-to-use platform for EEG experimentation in the classroom
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

four tasks (run and display)

authored by

Yury Shevchenko and committed by
Teon L Brooks
03167b84 320cf87a

+9461 -190
+96 -77
app/components/AnalyzeComponent.js
··· 10 10 Button, 11 11 Checkbox, 12 12 Transition, 13 - Container 13 + Container, 14 + Sidebar 14 15 } from 'semantic-ui-react'; 15 16 import { isNil } from 'lodash'; 16 17 import Plot from 'react-plotly.js'; ··· 31 32 import SecondaryNavComponent from './SecondaryNavComponent'; 32 33 import ClickableHeadDiagramSVG from './svgs/ClickableHeadDiagramSVG'; 33 34 import JupyterPlotWidget from './JupyterPlotWidget'; 34 - 35 + import HelpSidebar from './CollectComponent/HelpSidebar'; 35 36 36 37 const ANALYZE_STEPS = { 37 38 OVERVIEW: 'OVERVIEW', ··· 68 69 selectedDependentVariable: string; 69 70 removeOutliers: boolean; 70 71 showDataPoints: boolean; 71 - displayInfoVisible: boolean; 72 + isSidebarVisible: boolean; 72 73 displayOutlierVisible: boolean; 73 74 displayMode: string; 75 + helpMode: string; 74 76 dependentVariables: Array<?{ 75 77 key: string, 76 78 text: string, ··· 93 95 saveSelectedDatasets: () => void; 94 96 handleStepClick: (Object, Object) => void; 95 97 toggleDisplayInfoVisibility: () => void; 96 - toggleOutlierInfoVisibility: () => void; 97 98 98 99 constructor(props: Props) { 99 100 super(props); ··· 107 108 selectedDependentVariable: '', 108 109 removeOutliers: false, 109 110 showDataPoints: false, 110 - displayInfoVisible: false, 111 + isSidebarVisible: false, 111 112 displayOutlierVisible: false, 112 113 displayMode: 'datapoints', 114 + helpMode: 'datapoints', 113 115 selectedFilePaths: [], 114 116 selectedSubjects: [], 115 117 selectedChannel: ··· 128 130 this.handleStepClick = this.handleStepClick.bind(this); 129 131 this.handleDropdownClick = this.handleDropdownClick.bind(this); 130 132 this.toggleDisplayInfoVisibility = this.toggleDisplayInfoVisibility.bind(this); 131 - this.toggleOutlierInfoVisibility = this.toggleOutlierInfoVisibility.bind(this); 132 133 } 133 134 134 135 async componentDidMount() { ··· 223 224 this.setState({ 224 225 removeOutliers: !this.state.removeOutliers, 225 226 dataToPlot: dataToPlot, 226 - layout: layout 227 + layout: layout, 228 + helpMode: 'outliers' 227 229 }); 228 230 } 229 231 ··· 244 246 245 247 handleDisplayModeChange(displayMode){ 246 248 if(this.state.selectedFilePaths && this.state.selectedFilePaths.length > 0){ 247 - console.log("displayMode", displayMode) 248 249 const { dataToPlot, layout } = aggregateDataForPlot( 249 250 readBehaviorData(this.state.selectedFilePaths), 250 251 this.state.selectedDependentVariable, ··· 255 256 this.setState({ 256 257 dataToPlot: dataToPlot, 257 258 layout: layout, 258 - displayMode: displayMode 259 + displayMode: displayMode, 260 + helpMode: displayMode, 259 261 }); 260 262 } 261 263 } 262 264 263 265 toggleDisplayInfoVisibility(){ 264 266 this.setState({ 265 - displayInfoVisible: !this.state.displayInfoVisible 266 - }); 267 - } 268 - 269 - toggleOutlierInfoVisibility(){ 270 - this.setState({ 271 - displayOutlierVisible: !this.state.displayOutlierVisible 267 + isSidebarVisible: !this.state.isSidebarVisible 272 268 }); 273 269 } 274 270 ··· 312 308 return <div />; 313 309 } 314 310 311 + renderHelpContent() { 312 + switch (this.state.helpMode) { 313 + case 'datapoints': 314 + return this.renderHelp( 315 + 'Data Points', 316 + `In this graph, each dot refers to one data point, clustered by group (e.g., conditions). 317 + It’s the most “neutral” way of presenting the data, of course, but it may be difficult to see any patterns. 318 + Why is it always a good idea to look at all your datapoints before interpreting any trends in the data?` 319 + ); 320 + case 'errorbars': 321 + return this.renderHelp( 322 + 'Bar Graph', 323 + `Bar graphs are the most common way to summarize data. 324 + It allows you to compare mean values between groups of datapoints (e.g., conditions), 325 + and the error bars give some indication of the variance (here: the standard error of the mean). 326 + Importantly, this way of summarizing data assumes that the mean is in fact representative of the data. 327 + Many researchers have veered away from bar graphs because they can be deceptive, especially without error bars. 328 + Can you think of any such cases?` 329 + ); 330 + case 'whiskers': 331 + return this.renderHelp( 332 + 'Box Plot', 333 + `Box plots summarize the data in a more informative way: 334 + they actually tell you something about the distribution of datapoints within a group, 335 + by taking the median as its reference point instead of the mean 336 + (the median is the “middle” point in a dataset after sorting it from the lowest to the highest value). 337 + The boxes represent so-called “quartiles” which are cut off at the value right between the median and the smallest value or highest value in the dataset. 338 + The lines (“whiskers”) show how much variability there is in the data outside of those quartiles; 339 + any outliers are shown as individual points. Can you go through each plot and describe exactly what you see? 340 + When you toggle between this view and the bar graph view, do the data look very different?` 341 + ); 342 + case 'outliers': 343 + default: 344 + return this.renderHelp( 345 + 'Outliers', 346 + `A datapoint is tagged as an “outlier” if its value exceeds 2 standard deviations below or above the mean of all data in the group. 347 + If a datapoint is unusually high or low (it “deviates”) compared to the rest of the group, 348 + it is likely a special case that doesn’t tell us anything informative about the group as a whole. 349 + Removing such outliers can help unskew the data. What might outliers mean in your dataset? 350 + Can you think of any other cases where identifying outliers can be helpful?` 351 + ); 352 + } 353 + } 354 + 355 + 356 + renderHelp(header: string, content: string) { 357 + return ( 358 + <React.Fragment> 359 + <Segment basic className={styles.helpContent}> 360 + <Button 361 + circular 362 + size="large" 363 + floated="right" 364 + icon="x" 365 + className={styles.closeButton} 366 + onClick={this.toggleDisplayInfoVisibility} 367 + /> 368 + <Header className={styles.helpHeader} as="h1"> 369 + {header} 370 + </Header> 371 + {content} 372 + </Segment> 373 + </React.Fragment> 374 + ); 375 + } 376 + 315 377 renderSectionContent() { 316 378 switch (this.state.activeStep) { 317 379 case ANALYZE_STEPS.OVERVIEW: ··· 455 517 label="Remove outliers" 456 518 onChange={this.handleRemoveOutliers} 457 519 /> 458 - <Button className='export' 459 - onClick={this.toggleOutlierInfoVisibility} 460 - > 461 - <Icon name="info circle" /> 462 - </Button> 463 - 464 - <p></p> 465 - <Transition visible={this.state.displayOutlierVisible} animation='horizontal flip' duration={500}> 466 - <Container> 467 - <p className="info"> 468 - A datapoint is tagged as an “outlier” if its value exceeds 2 standard deviations below or above the mean of all data in the group. 469 - If a datapoint is unusually high or low (it “deviates”) compared to the rest of the group, 470 - it is likely a special case that doesn’t tell us anything informative about the group as a whole. 471 - Removing such outliers can help unskew the data. What might outliers mean in your dataset? 472 - Can you think of any other cases where identifying outliers can be helpful? 473 - </p> 474 - </Container> 475 - </Transition> 476 520 477 521 <p></p> 478 522 <Button.Group> ··· 497 541 > 498 542 Box Plot 499 543 </Button> 544 + 500 545 </Button.Group> 501 546 502 - <Button className='export' 547 + <Button 548 + circular 549 + icon="question" 550 + className={styles.helpButton} 551 + floated="right" 503 552 onClick={this.toggleDisplayInfoVisibility} 504 - > 505 - <Icon name="info circle" /> 506 - </Button> 553 + /> 507 554 508 - <p></p> 509 - <Transition visible={this.state.displayInfoVisible && this.state.displayMode === 'datapoints'} animation='horizontal flip' duration={500}> 510 - <Container> 511 - <p className="info"> 512 - In this graph, each dot refers to one data point, clustered by group (e.g., conditions). 513 - It’s the most “neutral” way of presenting the data, of course, but it may be difficult to see any patterns. 514 - Why is it always a good idea to look at all your datapoints before interpreting any trends in the data? 515 - </p> 516 - </Container> 517 - </Transition> 555 + <Sidebar 556 + width="wide" 557 + direction="right" 558 + as={Segment} 559 + visible={this.state.isSidebarVisible} 560 + > 561 + <Segment basic padded vertical className={styles.helpSidebar}> 562 + {this.renderHelpContent()} 563 + </Segment> 564 + </Sidebar> 565 + </Segment> 518 566 519 - <Transition visible={this.state.displayInfoVisible && this.state.displayMode === 'errorbars'} animation='horizontal flip' duration={500}> 520 - <Container> 521 - <p className="info"> 522 - Bar graphs are the most common way to summarize data. 523 - It allows you to compare mean values between groups of datapoints (e.g., conditions), 524 - and the error bars give some indication of the variance (here: the standard error of the mean). 525 - Importantly, this way of summarizing data assumes that the mean is in fact representative of the data. 526 - Many researchers have veered away from bar graphs because they can be deceptive, especially without error bars. 527 - Can you think of any such cases? 528 - </p> 529 - </Container> 530 - </Transition> 531 - 532 - <Transition visible={this.state.displayInfoVisible && this.state.displayMode === 'whiskers'} animation='horizontal flip' duration={500}> 533 - <Container> 534 - <p className="info"> 535 - Box plots summarize the data in a more informative way: 536 - they actually tell you something about the distribution of datapoints within a group, 537 - by taking the median as its reference point instead of the mean 538 - (the median is the “middle” point in a dataset after sorting it from the lowest to the highest value). 539 - The boxes represent so-called “quartiles” which are cut off at the value right between the median and the smallest value or highest value in the dataset. 540 - The lines (“whiskers”) show how much variability there is in the data outside of those quartiles; 541 - any outliers are shown as individual points. Can you go through each plot and describe exactly what you see? 542 - When you toggle between this view and the bar graph view, do the data look very different? 543 - </p> 544 - </Container> 545 - </Transition> 546 - 547 - </Segment> 548 567 </Grid.Column> 549 568 </Grid> 550 569 );
+4 -3
app/components/CollectComponent/RunComponent.js
··· 4 4 import { Experiment, jsPsych } from 'jspsych-react'; 5 5 import { debounce } from 'lodash'; 6 6 import { Link } from 'react-router-dom'; 7 - import Mousetrap from 'mousetrap'; 7 + // import Mousetrap from 'mousetrap'; 8 8 import styles from '../styles/common.css'; 9 9 import InputModal from '../InputModal'; 10 10 import { injectEmotivMarker } from '../../utils/eeg/emotiv'; ··· 70 70 if (this.props.mainTimeline.length <= 0) { 71 71 this.props.experimentActions.loadDefaultTimeline(); 72 72 } 73 - Mousetrap.bind('esc', jsPsych.endCurrentTimeline); 73 + // Mousetrap.bind('esc', jsPsych.endCurrentTimeline); 74 74 } 75 75 76 76 componentWillUnmount() { 77 - Mousetrap.unbind('esc'); 77 + // Mousetrap.unbind('esc'); 78 78 } 79 79 80 80 handleSubjectEntry(event: Object, data: Object) { ··· 175 175 } 176 176 return ( 177 177 <ExperimentWindow settings={{ 178 + script: this.props.type, 178 179 on_finish: (csv) => { 179 180 this.props.experimentActions.stop({data: csv}); 180 181 }
+16 -27
app/components/HomeComponent/OverviewComponent.js
··· 1 1 import React, { Component } from 'react'; 2 2 import { Grid, Header, Button, Segment } from 'semantic-ui-react'; 3 + import { isNil } from 'lodash'; 3 4 import styles from '../styles/common.css'; 4 5 import { EXPERIMENTS } from '../../constants/constants'; 5 6 import SecondaryNavComponent from '../SecondaryNavComponent'; ··· 35 36 }; 36 37 this.handleStepClick = this.handleStepClick.bind(this); 37 38 this.handlePreview = this.handlePreview.bind(this); 39 + this.endPreview = this.endPreview.bind(this); 38 40 } 39 41 40 42 handleStepClick(step: string) { ··· 43 45 44 46 handlePreview() { 45 47 this.setState({ isPreviewing: !this.state.isPreviewing }); 48 + } 49 + 50 + endPreview() { 51 + this.setState({ isPreviewing: false }); 46 52 } 47 53 48 54 renderSectionContent() { ··· 52 58 <Grid relaxed padded className={styles.contentGrid}> 53 59 <Grid.Column 54 60 stretched 55 - width={6} 61 + width={10} 56 62 textAlign="right" 57 63 verticalAlign="middle" 58 64 className={styles.jsPsychColumn} ··· 60 66 <PreviewExperimentComponent 61 67 {...loadTimeline(this.props.type)} 62 68 isPreviewing={this.state.isPreviewing} 69 + onEnd={this.endPreview} 70 + type={this.props.type} 63 71 /> 64 72 </Grid.Column> 65 - <Grid.Column width={6} verticalAlign="middle"> 66 - <p> 67 - Subjects will view a series of images of{' '} 68 - <b> faces and houses</b> for <b>120 seconds</b> 69 - </p> 70 - <p> 71 - Subjects will mentally note which stimulus they are perceiving 72 - </p> 73 + <Grid.Column stretched width={6} verticalAlign="middle"> 74 + <Segment as="p" basic> 75 + {this.props.protocol} 76 + </Segment> 73 77 <PreviewButton 74 78 isPreviewing={this.state.isPreviewing} 75 79 onClick={this.handlePreview} ··· 86 90 textAlign="right" 87 91 verticalAlign="middle" 88 92 > 89 - <Header as="h1">The N170 ERP</Header> 93 + <Header as="h1">{this.props.background_title}</Header> 90 94 </Grid.Column> 91 95 <Grid.Column stretched width={6} verticalAlign="middle"> 92 96 <Segment as="p" basic> 93 - The N170 is a large negative event-related potential (ERP) 94 - component that occurs after the detection of faces, but not 95 - objects, scrambled faces, or other body parts such as hands. The 96 - N170 occurs around 170ms after face perception and is most 97 - easily detected at lateral posterior electrodes such as T5 and 98 - T6. Frontal or profile views of human (and animal) faces elicit 99 - the strongest N170 and the strength of the N170 does not seem to 100 - be influenced by how familiar a face is. Thus, although there is 101 - no consensus on the specific source of the N170, researchers 102 - believe it is related to activity in the fusiform face area, an 103 - area of the brain that shows a similar response pattern and is 104 - involved in encoding the holistic representation of a face (i.e 105 - eyes, nose mouth all arranged in the appropriate way). 97 + {this.props.background} 106 98 </Segment> 107 99 </Grid.Column> 108 100 </Grid> ··· 121 113 </Grid.Column> 122 114 <Grid.Column stretched width={6} verticalAlign="middle"> 123 115 <Segment as="p" basic> 124 - Faces contain a lot of information that is relevant to our 125 - survival. It 126 - {"'"}s important to be able to quickly recognize people you can 127 - trust and read emotions in both strangers and people you know 116 + {this.props.overview} 128 117 </Segment> 129 118 </Grid.Column> 130 119 </Grid>
+55 -6
app/components/HomeComponent/index.js
··· 16 16 import InputModal from '../InputModal'; 17 17 import SecondaryNavComponent from '../SecondaryNavComponent'; 18 18 import OverviewComponent from './OverviewComponent'; 19 + import { loadTimeline } from '../../utils/jspsych/functions'; 19 20 20 21 const HOME_STEPS = { 21 22 RECENT: 'RECENT', ··· 190 191 </Button> 191 192 </Segment> 192 193 </Grid.Column> 193 - {/* <Grid.Column> 194 + <Grid.Column> 194 195 <Segment basic className={styles.descriptionContainer}> 195 - <Image size="huge" src={faceHouseIcon} /> 196 + <Image src={faceHouseIcon} /> 196 197 <Header as="h1">Stroop</Header> 197 198 <p> 198 199 Investigate the cognitive process of selective attention with ··· 200 201 subject to name the color of a word instead of reading the 201 202 word itself. 202 203 </p> 203 - <Button disabled secondary> 204 + <Button 205 + secondary 206 + onClick={() => this.handleOpenOverview(EXPERIMENTS.STROOP)} 207 + > 204 208 Review 209 + </Button> 210 + <Button secondary> 211 + Customize 205 212 </Button> 206 213 <Button 207 - disabled 208 214 primary 209 215 onClick={() => this.handleNewExperiment(EXPERIMENTS.STROOP)} 210 216 > 211 217 Start Experiment 212 218 </Button> 213 - </Segment> */} 214 - {/* </Grid.Column> */} 219 + </Segment> 220 + </Grid.Column> 221 + <Grid.Column> 222 + <Segment basic className={styles.descriptionContainer}> 223 + <Image src={faceHouseIcon} /> 224 + <Header as="h1">Multi-tasking</Header> 225 + <p> 226 + The multi-tasking test 227 + </p> 228 + <Button 229 + secondary 230 + onClick={() => this.handleOpenOverview(EXPERIMENTS.MULTI)} 231 + > 232 + Review 233 + </Button> 234 + <Button 235 + primary 236 + onClick={() => this.handleNewExperiment(EXPERIMENTS.MULTI)} 237 + > 238 + Start Experiment 239 + </Button> 240 + </Segment> 241 + </Grid.Column> 242 + <Grid.Column> 243 + <Segment basic className={styles.descriptionContainer}> 244 + <Image src={faceHouseIcon} /> 245 + <Header as="h1">Attention</Header> 246 + <p> 247 + The visual search task 248 + </p> 249 + <Button 250 + secondary 251 + onClick={() => this.handleOpenOverview(EXPERIMENTS.SEARCH)} 252 + > 253 + Review 254 + </Button> 255 + <Button 256 + primary 257 + onClick={() => this.handleNewExperiment(EXPERIMENTS.SEARCH)} 258 + > 259 + Start Experiment 260 + </Button> 261 + </Segment> 262 + </Grid.Column> 215 263 <Grid.Column> 216 264 <Segment basic className={styles.descriptionContainer}> 217 265 <Image src={customIcon} /> ··· 237 285 if (this.state.isOverviewComponentOpen) { 238 286 return ( 239 287 <OverviewComponent 288 + {...loadTimeline(this.state.overviewExperimentType)} 240 289 type={this.state.overviewExperimentType} 241 290 onStartExperiment={this.handleNewExperiment} 242 291 onCloseOverview={this.handleCloseOverview}
+21 -12
app/components/PreviewExperimentComponent.js
··· 4 4 import { Segment } from 'semantic-ui-react'; 5 5 import callbackHTMLDisplay from '../utils/jspsych/plugins/callback-html-display'; 6 6 import callbackImageDisplay from '../utils/jspsych/plugins/callback-image-display'; 7 + import { ExperimentWindow } from '../utils/labjs'; 8 + 7 9 import { 8 10 parseTimeline, 9 11 instantiateTimeline, ··· 62 64 return <Segment basic />; 63 65 } 64 66 return ( 65 - <Experiment 66 - settings={{ 67 - timeline: this.handleTimeline(), 68 - show_progress_bar: this.props.params.showProgessBar, 69 - auto_update_progress_bar: false, 70 - preload_images: this.handleImages() 71 - }} 72 - plugins={{ 73 - 'callback-image-display': callbackImageDisplay, 74 - 'callback-html-display': callbackHTMLDisplay 75 - }} 76 - /> 67 + <ExperimentWindow 68 + settings={{ 69 + script: this.props.type, 70 + on_finish: (csv) => { 71 + this.props.onEnd() 72 + } 73 + }} /> 74 + // <Experiment 75 + // settings={{ 76 + // timeline: this.handleTimeline(), 77 + // show_progress_bar: this.props.params.showProgessBar, 78 + // auto_update_progress_bar: false, 79 + // preload_images: this.handleImages() 80 + // }} 81 + // plugins={{ 82 + // 'callback-image-display': callbackImageDisplay, 83 + // 'callback-html-display': callbackHTMLDisplay 84 + // }} 85 + // /> 77 86 ); 78 87 } 79 88 }
+22
app/components/styles/common.css
··· 79 79 80 80 .jsPsychColumn { 81 81 height: 100%; 82 + align-items: center; 82 83 } 83 84 84 85 .paramSlider { ··· 96 97 .analyzeColumn { 97 98 height: 100%; 98 99 } 100 + 101 + .helpButton { 102 + height: 44px !important; 103 + width: 44px !important; 104 + color: #fff !important; 105 + background-color: #007c70 !important; 106 + border-radius: 22px !important; 107 + } 108 + 109 + .helpSidebar { 110 + height: inherit; 111 + } 112 + 113 + .helpHeader { 114 + margin-bottom: 18px !important; 115 + } 116 + 117 + .helpContent { 118 + font-size: 18px !important; 119 + height: 80%; 120 + }
+2
app/constants/constants.js
··· 4 4 N170: 'Faces and Houses', 5 5 SSVEP: 'Steady-state Visual Evoked Potential', 6 6 STROOP: 'Stroop Task', 7 + MULTI: 'Multi-tasking', 8 + SEARCH: 'Visual search', 7 9 CUSTOM: 'Custom' 8 10 }; 9 11
+1 -1
app/reducers/experimentReducer.js
··· 49 49 subject: '', 50 50 session: 1, 51 51 isRunning: false, 52 - isEEGEnabled: true, 52 + isEEGEnabled: false, 53 53 description: { question: '', hypothesis: '', methods: '' } 54 54 }; 55 55
+42 -25
app/utils/behavior/compute.js
··· 15 15 let rtMean = {}, accuracyPercent = {}; 16 16 for(let condition of conditions){ 17 17 let rt = e 18 + .filter(row => row.response_given === 'yes') 19 + .filter(row => row.correct_response === 'true') 18 20 .filter(row => row.condition === condition) 19 21 .map(row => row.reaction_time) 20 22 .map(value => parseFloat(value)) 21 - rtMean[condition] = ss.mean(rt); 23 + rtMean[condition] = Math.round(ss.mean(rt)); 22 24 let accuracy = e 23 - .filter(row => row.condition === condition && row.correct) 24 - .map(row => row.correct) 25 - accuracyPercent[condition] = accuracy.length ? accuracy.length / 0.75 : ss.mean(e.filter(r => r.condition === condition).map(r => r.accuracy)); 25 + .filter(row => row.condition === condition && row.correct_response === 'true' && row.response_given === 'yes') 26 + accuracyPercent[condition] = accuracy.length ? Math.round(100 * (accuracy.length / e.filter(r => r.condition === condition ).length)) : ss.mean(e.filter(r => r.condition === condition).map(r => r.accuracy)); 26 27 } 27 28 return { 28 29 subject: e.map(r => r.subject)[0], ··· 31 32 ['RT_' + conditions[1]]: rtMean[conditions[1]], 32 33 ['Accuracy_' + conditions[0]]: accuracyPercent[conditions[0]], 33 34 ['Accuracy_' + conditions[1]]: accuracyPercent[conditions[1]], 35 + response_given: 'yes', 36 + correct_response: 'true' 34 37 } 35 38 }) 36 39 return aggregatedData; ··· 67 70 condition: condition, 68 71 session: e.session, 69 72 accuracy: parseFloat(e[`Accuracy_${condition}`]), 73 + response_given: e.response_given, 74 + correct_response: e.correct_response 70 75 } 71 76 }) 72 77 }); ··· 76 81 77 82 const filterData = (data, removeOutliers) => { 78 83 let filteredData = data.data 84 + .filter(row => row.trial_number) 79 85 .map(row => { 80 86 return { 81 - condition: row.event_title, 87 + condition: row.condition, 82 88 subject: data.meta.datafile.split('/').pop().split('-')[0], 83 89 session: data.meta.datafile.split('/').pop().split('-')[1], 84 90 reaction_time: parseFloat(row.reaction_time), 85 - correct: row.correct === 'true', 91 + correct_response: row.correct_response, 92 + trial_number: row.trial_number, 93 + response_given: row.response_given 86 94 } 87 95 }) 88 - .filter(row => row.reaction_time > 0 && row.correct) 96 + // .filter(row => row.reaction_time > 0 && row.correct) 89 97 if(removeOutliers){ 90 - const mean = ss.mean(filteredData.map(r => r.reaction_time)); 91 - const standardDeviation = ss.sampleStandardDeviation(filteredData.map(r => r.reaction_time)); 98 + const mean = ss.mean(filteredData.filter(r => r.response_given === 'yes' && r.correct_response === 'true').map(r => r.reaction_time)); 99 + const standardDeviation = ss.sampleStandardDeviation(filteredData.filter(r => r.response_given === 'yes' && r.correct_response === 'true').map(r => r.reaction_time)); 92 100 const upperBoarder = mean + 2 * standardDeviation; 93 101 const lowerBoarder = mean - 2 * standardDeviation; 94 - filteredData = filteredData.filter(r => r.reaction_time > lowerBoarder && r.reaction_time < upperBoarder); 102 + filteredData = filteredData.filter(r => (r.reaction_time > lowerBoarder && r.reaction_time < upperBoarder) || isNaN(r.reaction_time)); 95 103 } 96 104 return filteredData; 97 105 } 98 106 99 107 const computeRT = (data, dependentVariable, conditions, showDataPoints, colors, displayMode) => { 100 - let dataToPlot; 101 - 108 + let dataToPlot, maxValue = 0; 102 109 switch (displayMode) { 103 110 case "datapoints": 104 111 default: 105 112 let tickValuesX, tickTextX; 106 113 dataToPlot = conditions.reduce((obj, condition, i) => { 107 - const xRaw = data.reduce((a, b) => a.concat(b), []).filter(e => e.condition === condition).map(r => r.subject); 108 - const y = data.reduce((a, b) => a.concat(b), []).filter(e => e.condition === condition).map(r => r.reaction_time); 114 + const xRaw = data.reduce((a, b) => a.concat(b), []).filter(r => r.response_given === 'yes' && r.correct_response === 'true').filter(e => e.condition === condition).map(r => r.subject); 115 + const y = data.reduce((a, b) => a.concat(b), []).filter(r => r.response_given === 'yes' && r.correct_response === 'true').filter(e => e.condition === condition).map(r => r.reaction_time); 116 + maxValue = Math.max(...y) > maxValue ? Math.max(...y) : maxValue; 109 117 const subjects = Array.from(new Set(xRaw)) 110 118 const x = xRaw.map(x => (subjects.indexOf(x) + 1 + i/4 + (Math.random() - 0.5)/5 )); 111 119 tickValuesX = subjects.map(x => subjects.indexOf(x) + 1 + 1/8); ··· 116 124 dataToPlot['tickvals'] = tickValuesX; 117 125 dataToPlot['ticktext'] = tickTextX; 118 126 dataToPlot['lowerLimit'] = 0; 119 - dataToPlot['upperLimit'] = 1000; 127 + dataToPlot['upperLimit'] = maxValue > 1000 ? maxValue + 100 : 1000; 120 128 return makeDataPointsGraph(dataToPlot, conditions, colors, dependentVariable) 121 129 122 130 case "errorbars": 131 + let maxValueSE = 0; 123 132 dataToPlot = conditions.reduce((obj, condition, i) => { 124 - const xRaw = data.reduce((a, b) => a.concat(b), []).filter(e => e.condition === condition).map(r => r.subject); 133 + const xRaw = data.reduce((a, b) => a.concat(b), []).filter(r => r.response_given === 'yes' && r.correct_response === 'true').filter(e => e.condition === condition).map(r => r.subject); 125 134 const x = Array.from(new Set(xRaw)) 126 - const data_condition = data.map(d => d.filter(e => e.condition == condition)); 135 + const data_condition = data.map(d => d.filter(r => r.response_given === 'yes' && r.correct_response === 'true').filter(e => e.condition == condition)); 127 136 const y_bars_prep = x.map( 128 137 a => data_condition.map( 129 138 d => {return d.filter(e => e.subject === a)} 130 139 ).filter(d => d.length > 0) 131 140 ); 132 141 const y = y_bars_prep.map(y => ss.mean(y.reduce((a, b) => a.concat(b), []).map(r => r.reaction_time))); 142 + maxValue = Math.max(...y) > maxValue ? Math.max(...y) : maxValue; 133 143 const stErrorFunction = (array) => {return ss.sampleStandardDeviation(array) / Math.sqrt(array.length)}; 134 - const stErrors = data_condition.map(a => stErrorFunction(a.map(r => r.reaction_time))); 144 + const stErrors = data_condition.map(a => a.length > 1 ? stErrorFunction(a.map(r => r.reaction_time)) : 0); 145 + maxValueSE = Math.max(...stErrors) > maxValueSE ? Math.max(...stErrors) : maxValueSE; 135 146 obj[condition] = { x: x, y: y, stErrors: stErrors }; 136 147 return obj; 137 148 }, {}) 138 149 dataToPlot['lowerLimit'] = 0; 139 - dataToPlot['upperLimit'] = 1000; 150 + dataToPlot['upperLimit'] = maxValue > 1000 ? maxValue + maxValueSE + 100 : 1000; 140 151 return makeBarGraph(dataToPlot, conditions, colors, dependentVariable) 141 152 142 153 case "whiskers": 143 154 dataToPlot = conditions.reduce((obj, condition, i) => { 144 - const x = data.reduce((a, b) => a.concat(b), []).filter(e => e.condition === condition).map(r => r.subject); 145 - const y = data.reduce((a, b) => a.concat(b), []).filter(e => e.condition === condition).map(r => r.reaction_time); 155 + const x = data.reduce((a, b) => a.concat(b), []).filter(r => r.response_given === 'yes' && r.correct_response === 'true').filter(e => e.condition === condition).map(r => r.subject); 156 + const y = data.reduce((a, b) => a.concat(b), []).filter(r => r.response_given === 'yes' && r.correct_response === 'true').filter(e => e.condition === condition).map(r => r.reaction_time); 157 + maxValue = Math.max(...y) > maxValue ? Math.max(...y) : maxValue; 146 158 obj[condition] = { x: x, y: y }; 147 159 return obj; 148 160 }, {}) 149 161 dataToPlot['lowerLimit'] = 0; 150 - dataToPlot['upperLimit'] = 1000; 162 + dataToPlot['upperLimit'] = maxValue > 1000 ? maxValue + 100 : 1000; 151 163 return makeBoxPlot(dataToPlot, conditions, colors, dependentVariable) 152 164 } 153 165 } ··· 161 173 let tickValuesX, tickTextX; 162 174 dataToPlot = conditions.reduce((obj, condition, i) => { 163 175 const correctDataForCondition = data.map(d => d.filter(e => e.condition == condition)); 176 + 164 177 const y = correctDataForCondition.map(d => { 165 178 if(d.filter(l => l.accuracy).length > 0){ 166 179 return d.map(l => l.accuracy) 167 180 } else { 168 - return d.length / 0.75 181 + const c = d.filter(e => e.response_given === 'yes' && e.correct_response === 'true') 182 + return Math.round((c.length / d.length) * 100) 169 183 } 170 184 }).reduce( (acc, item) => acc.concat(item), []); 185 + 171 186 const xRaw = correctDataForCondition.map(d => { 172 187 if(d.filter(l => l.accuracy).length > 0){ 173 188 return d.map(l => l.subject) ··· 200 215 }) 201 216 }) 202 217 } else { 218 + const c = d.filter(e => e.response_given === 'yes' && e.correct_response === 'true'); 203 219 return ({ 204 - accuracy: d.length / 0.75, 220 + accuracy: Math.round((c.length / d.length) * 100), 205 221 subject: d.map(r => r.subject)[0], 206 222 }) 207 223 } ··· 233 249 if(d.filter(l => l.accuracy).length > 0){ 234 250 return d.map(l => l.accuracy) 235 251 } else { 236 - return d.length / 0.75 252 + const c = d.filter(e => e.response_given === 'yes' && e.correct_response === 'true') 253 + return Math.round((c.length / d.length) * 100) 237 254 } 238 255 }).reduce( (acc, item) => acc.concat(item), []); 239 256 const xRaw = correctDataForCondition.map(d => {
+16
app/utils/jspsych/functions.js
··· 7 7 import { buildOddballTimeline } from './timelines/oddball'; 8 8 import { buildN170Timeline } from './timelines/n170'; 9 9 import { buildSSVEPTimeline } from './timelines/ssvep'; 10 + import { buildStroopTimeline } from './timelines/stroop'; 11 + import { buildMultiTimeline } from './timelines/multi'; 12 + import { buildSearchTimeline } from './timelines/search'; 13 + 10 14 import { 11 15 MainTimeline, 12 16 Trial, ··· 43 47 44 48 case EXPERIMENTS.SSVEP: 45 49 timeline = buildSSVEPTimeline(); 50 + break; 51 + 52 + case EXPERIMENTS.STROOP: 53 + timeline = buildStroopTimeline(); 54 + break; 55 + 56 + case EXPERIMENTS.MULTI: 57 + timeline = buildMultiTimeline(); 58 + break; 59 + 60 + case EXPERIMENTS.SEARCH: 61 + timeline = buildSearchTimeline(); 46 62 break; 47 63 48 64 default:
+71
app/utils/jspsych/timelines/multi.js
··· 1 + import * as path from 'path'; 2 + import { EVENTS } from '../../../constants/constants'; 3 + 4 + // Default directories containing stimuli 5 + const rootFolder = __dirname; // Note: there's a weird issue where the fs readdir function reads from BrainWaves dir 6 + 7 + const facesDir = path.join(rootFolder, 'assets', 'face_house', 'faces'); 8 + const housesDir = path.join(rootFolder, 'assets', 'face_house', 'houses'); 9 + const fixation = path.join(rootFolder, 'assets', 'common', 'fixationcross.png'); 10 + 11 + export const buildMultiTimeline = () => ({ 12 + overview: 'Here is the placeholder for the overview of the Multi-tasking task', 13 + background: 'Here is the background of the Multi-tasking task', 14 + background_title: `Title`, 15 + protocol: 'Here is the protocol of the Multi-tasking task', 16 + params: { 17 + trialDuration: 1000, 18 + nbTrials: 150, 19 + iti: 500, 20 + jitter: 200, 21 + sampleType: 'with-replacement', 22 + pluginName: 'callback-image-display', 23 + intro: 24 + 'You will see the multi-tasking test. Press 1 when a face appears and 9 for a house. Press any key to continue', 25 + showProgressBar: false, 26 + stimulus1: { 27 + dir: facesDir, 28 + title: 'Face', 29 + type: EVENTS.STIMULUS_1, 30 + response: '1' 31 + }, 32 + stimulus2: { 33 + dir: housesDir, 34 + title: 'House', 35 + type: EVENTS.STIMULUS_2, 36 + response: '9' 37 + } 38 + }, 39 + mainTimeline: ['intro', 'faceHouseTimeline', 'end'], // array of trial and timeline ids 40 + trials: { 41 + intro: { 42 + type: 'callback-html-display', 43 + id: 'intro', 44 + post_trial_gap: 1000 45 + }, 46 + end: { 47 + id: 'end', 48 + type: 'callback-html-display', 49 + stimulus: 'Thanks for participating. Press any key to continue', 50 + response_ends_trial: true, 51 + post_trial_gap: 500 52 + } 53 + }, 54 + timelines: { 55 + faceHouseTimeline: { 56 + id: 'faceHouseTimeline', 57 + timeline: [ 58 + { 59 + id: 'interTrial', 60 + type: 'callback-image-display', 61 + stimulus: fixation, 62 + response_ends_trial: false 63 + }, 64 + { 65 + id: 'trial', 66 + response_ends_trial: false 67 + } 68 + ] 69 + } 70 + } 71 + });
+19
app/utils/jspsych/timelines/n170.js
··· 9 9 const fixation = path.join(rootFolder, 'assets', 'common', 'fixationcross.png'); 10 10 11 11 export const buildN170Timeline = () => ({ 12 + overview: `Faces contain a lot of information that is relevant to our 13 + survival. It's important to be able to quickly recognize people you can 14 + trust and read emotions in both strangers and people you know`, 15 + background_title: `The N170 ERP`, 16 + background: `The N170 is a large negative event-related potential (ERP) 17 + component that occurs after the detection of faces, but not 18 + objects, scrambled faces, or other body parts such as hands. The 19 + N170 occurs around 170ms after face perception and is most 20 + easily detected at lateral posterior electrodes such as T5 and 21 + T6. Frontal or profile views of human (and animal) faces elicit 22 + the strongest N170 and the strength of the N170 does not seem to 23 + be influenced by how familiar a face is. Thus, although there is 24 + no consensus on the specific source of the N170, researchers 25 + believe it is related to activity in the fusiform face area, an 26 + area of the brain that shows a similar response pattern and is 27 + involved in encoding the holistic representation of a face (i.e 28 + eyes, nose mouth all arranged in the appropriate way).`, 29 + protocol: `Subjects will view a series of images of faces and houses for 120 seconds. 30 + Subjects will mentally note which stimulus they are perceiving.`, 12 31 params: { 13 32 trialDuration: 1000, 14 33 nbTrials: 150,
+71
app/utils/jspsych/timelines/search.js
··· 1 + import * as path from 'path'; 2 + import { EVENTS } from '../../../constants/constants'; 3 + 4 + // Default directories containing stimuli 5 + const rootFolder = __dirname; // Note: there's a weird issue where the fs readdir function reads from BrainWaves dir 6 + 7 + const facesDir = path.join(rootFolder, 'assets', 'face_house', 'faces'); 8 + const housesDir = path.join(rootFolder, 'assets', 'face_house', 'houses'); 9 + const fixation = path.join(rootFolder, 'assets', 'common', 'fixationcross.png'); 10 + 11 + export const buildSearchTimeline = () => ({ 12 + overview: 'Here is the placeholder for the overview of the Visual Search task', 13 + background: 'Here is the background of the Visual Search task', 14 + background_title: `Title`, 15 + protocol: 'Here is the protocol of the Visual Search task', 16 + params: { 17 + trialDuration: 1000, 18 + nbTrials: 150, 19 + iti: 500, 20 + jitter: 200, 21 + sampleType: 'with-replacement', 22 + pluginName: 'callback-image-display', 23 + intro: 24 + 'You will see the visual search task. Press 1 when a face appears and 9 for a house. Press any key to continue', 25 + showProgressBar: false, 26 + stimulus1: { 27 + dir: facesDir, 28 + title: 'Face', 29 + type: EVENTS.STIMULUS_1, 30 + response: '1' 31 + }, 32 + stimulus2: { 33 + dir: housesDir, 34 + title: 'House', 35 + type: EVENTS.STIMULUS_2, 36 + response: '9' 37 + } 38 + }, 39 + mainTimeline: ['intro', 'faceHouseTimeline', 'end'], // array of trial and timeline ids 40 + trials: { 41 + intro: { 42 + type: 'callback-html-display', 43 + id: 'intro', 44 + post_trial_gap: 1000 45 + }, 46 + end: { 47 + id: 'end', 48 + type: 'callback-html-display', 49 + stimulus: 'Thanks for participating. Press any key to continue', 50 + response_ends_trial: true, 51 + post_trial_gap: 500 52 + } 53 + }, 54 + timelines: { 55 + faceHouseTimeline: { 56 + id: 'faceHouseTimeline', 57 + timeline: [ 58 + { 59 + id: 'interTrial', 60 + type: 'callback-image-display', 61 + stimulus: fixation, 62 + response_ends_trial: false 63 + }, 64 + { 65 + id: 'trial', 66 + response_ends_trial: false 67 + } 68 + ] 69 + } 70 + } 71 + });
+71
app/utils/jspsych/timelines/stroop.js
··· 1 + import * as path from 'path'; 2 + import { EVENTS } from '../../../constants/constants'; 3 + 4 + // Default directories containing stimuli 5 + const rootFolder = __dirname; // Note: there's a weird issue where the fs readdir function reads from BrainWaves dir 6 + 7 + const facesDir = path.join(rootFolder, 'assets', 'face_house', 'faces'); 8 + const housesDir = path.join(rootFolder, 'assets', 'face_house', 'houses'); 9 + const fixation = path.join(rootFolder, 'assets', 'common', 'fixationcross.png'); 10 + 11 + export const buildStroopTimeline = () => ({ 12 + overview: 'Here is the placeholder for the overview of the Stroop task', 13 + background: 'Here is the background of the Stroop task', 14 + background_title: `Title`, 15 + protocol: 'Here is the protocol of the Stroop task', 16 + params: { 17 + trialDuration: 1000, 18 + nbTrials: 150, 19 + iti: 500, 20 + jitter: 200, 21 + sampleType: 'with-replacement', 22 + pluginName: 'callback-image-display', 23 + intro: 24 + 'You will see the stroop task. Press 1 when a face appears and 9 for a house. Press any key to continue', 25 + showProgressBar: false, 26 + stimulus1: { 27 + dir: facesDir, 28 + title: 'Face', 29 + type: EVENTS.STIMULUS_1, 30 + response: '1' 31 + }, 32 + stimulus2: { 33 + dir: housesDir, 34 + title: 'House', 35 + type: EVENTS.STIMULUS_2, 36 + response: '9' 37 + } 38 + }, 39 + mainTimeline: ['intro', 'faceHouseTimeline', 'end'], // array of trial and timeline ids 40 + trials: { 41 + intro: { 42 + type: 'callback-html-display', 43 + id: 'intro', 44 + post_trial_gap: 1000 45 + }, 46 + end: { 47 + id: 'end', 48 + type: 'callback-html-display', 49 + stimulus: 'Thanks for participating. Press any key to continue', 50 + response_ends_trial: true, 51 + post_trial_gap: 500 52 + } 53 + }, 54 + timelines: { 55 + faceHouseTimeline: { 56 + id: 'faceHouseTimeline', 57 + timeline: [ 58 + { 59 + id: 'interTrial', 60 + type: 'callback-image-display', 61 + stimulus: fixation, 62 + response_ends_trial: false 63 + }, 64 + { 65 + id: 'trial', 66 + response_ends_trial: false 67 + } 68 + ] 69 + } 70 + } 71 + });
+33 -4
app/utils/labjs/index.js
··· 2 2 import clonedeep from "lodash.clonedeep"; 3 3 import * as lab from "./lib/lab"; 4 4 5 - import task from './scripts/stroop'; 5 + import visualsearch from './scripts/visualsearch'; 6 + import stroop from './scripts/stroop'; 7 + import multitasking from './scripts/multitasking'; 8 + import faceshouses from './scripts/faceshouses'; 6 9 7 10 class ExperimentWindow extends Component { 8 11 constructor(props) { ··· 11 14 12 15 componentDidMount() { 13 16 const {props} = this; 14 - this.study = lab.util.fromObject(clonedeep(task), lab); 17 + switch (props.settings.script) { 18 + case 'Multi-tasking': 19 + this.study = lab.util.fromObject(clonedeep(multitasking), lab); 20 + break; 21 + case 'Visual search': 22 + this.study = lab.util.fromObject(clonedeep(visualsearch), lab); 23 + break; 24 + case 'Stroop Task': 25 + this.study = lab.util.fromObject(clonedeep(stroop), lab); 26 + break; 27 + case 'Faces and Houses': 28 + this.study = lab.util.fromObject(clonedeep(faceshouses), lab); 29 + break; 30 + default: 31 + this.study = lab.util.fromObject(clonedeep(stroop), lab); 32 + }; 15 33 this.study.run(); 16 34 this.study.on('end', () => { 17 35 const csv = this.study.options.datastore.exportCsv(); 18 36 this.study = undefined; 19 37 props.settings.on_finish(csv); 20 - }) 38 + }); 39 + this.study.options.events['keydown'] = async (e) => { 40 + if(e.code === 'Escape'){ 41 + if(this.study){ 42 + await this.study.internals.controller.audioContext.close(); 43 + this.study.end(); 44 + } 45 + }; 46 + }; 21 47 } 22 48 23 49 componentWillUnmount() { 24 50 try { 25 - if(this.study) this.study.end(); 51 + if(this.study){ 52 + this.study.internals.controller.audioContext.close(); 53 + this.study.end(); 54 + } 26 55 } catch (e) { 27 56 console.log("Experiment closed before unmount"); 28 57 }
+407
app/utils/labjs/scripts/faceshouses.js
··· 1 + // Define study 2 + const studyObject = { 3 + "title": "root", 4 + "type": "lab.flow.Sequence", 5 + "parameters": {}, 6 + "plugins": [ 7 + { 8 + "type": "lab.plugins.Metadata" 9 + }, 10 + { 11 + "type": "lab.plugins.Download", 12 + "filePrefix": "the-face-house-task" 13 + } 14 + ], 15 + "metadata": { 16 + "title": "The face-house task", 17 + "description": "Faces contain a lot of information that is relevant to our survival. It's important to be able to quickly recognize people you can trust and read emotions in both strangers and people you know. ", 18 + "repository": "", 19 + "contributors": "Yury Shevchenko \u003Cyury.shevchenko@uni-konstanz.de\u003E" 20 + }, 21 + "files": {}, 22 + "responses": {}, 23 + "content": [ 24 + { 25 + "type": "lab.flow.Sequence", 26 + "files": { 27 + "Annie_3.jpg": "./utils/labjs/scripts/faceshouses/7a536fba60226293bf351cb6f9719fee15f3b693915c0a55b0f107377f10a7e1.jpg", 28 + "Blake_3.jpg": "./utils/labjs/scripts/faceshouses/3138f2fd1cba5a07f0b0ac61f8ee4754e6e0f07bd3ea520a75bc39c2d05ecece.jpg", 29 + "Don_3.jpg": "./utils/labjs/scripts/faceshouses/cc6bf44e75c27e0d57956ae95d4c2c64f0d41f666a1e3f9fff20927fe3844dfd.jpg", 30 + "Estelle_3.jpg": "./utils/labjs/scripts/faceshouses/5ce843ee780ba0c902ee1b06326c7e65fe840769c8621a8d9f8b75b5eb67bcd9.jpg", 31 + "Frank_3.jpg": "./utils/labjs/scripts/faceshouses/856ae9bd5ec82567011ae41e10dcfa2de9cfa7ddadc5c1388df2998142ab4d7f.jpg", 32 + "Janie_3.jpg": "./utils/labjs/scripts/faceshouses/a82a652abb85637af9fba1f4dbf7f69d906a14172a70df610e3be33c0058b9f6.jpg", 33 + "Joan_3.jpg": "./utils/labjs/scripts/faceshouses/d92c1965ad53b7533d5f00ace843e8f1c161ae7e72ad52b4511f3ab84a8eea73.jpg", 34 + "Jodi_3.jpg": "./utils/labjs/scripts/faceshouses/b746cdfd1099dfbe200a661a81ef2315935a5eafc855b8b373d9b633fadd8e6c.jpg", 35 + "Joe_3.jpg": "./utils/labjs/scripts/faceshouses/3e55b3ce099ffea5a4ebde02c7a0cb055fb6f9768116efc932e77e4319841bea.jpg", 36 + "Tim_3.jpg": "./utils/labjs/scripts/faceshouses/56136f19fc574a3a99761c9a7ce1fcc5149d6edcc60e942cc8e5db2f66e0db91.jpg", 37 + "Tom_3.jpg": "./utils/labjs/scripts/faceshouses/b87301f741db5d27e05e8d127ae729af9bb7e2e38484c8f29b52e442c333989d.jpg", 38 + "Wallace_3.jpg": "./utils/labjs/scripts/faceshouses/5ba782ee30b8213b554d61adb62091b63c509a539bdd693ed27c1cbc3db40272.jpg", 39 + "house1.3.jpg": "./utils/labjs/scripts/faceshouses/9f0121c6a70040d4abbcd41daf909797cef7438f406fc471c0def07f477f920e.jpg", 40 + "house2.2.jpg": "./utils/labjs/scripts/faceshouses/461aa813adbb5117b26b791c02864b2e88e6c2899c821f14d58b042c26628b92.jpg", 41 + "house3.1.jpg": "./utils/labjs/scripts/faceshouses/269317cfd165abfdbc48e400a6cfc89c2cfcd98a9c738ece5222e8d513bcf83a.jpg", 42 + "house4.3.jpg": "./utils/labjs/scripts/faceshouses/a87186061326f3e11259a95ba1229cfc3f1a4f4b06fb50c16ad3757105a2b69c.jpg", 43 + "house5.2.jpg": "./utils/labjs/scripts/faceshouses/f78f496ab685b1ae4661c6071358f1a6ab0e1238a0ed1bd157a32317c41a8eaf.jpg", 44 + "house6.3.jpg": "./utils/labjs/scripts/faceshouses/b589ac23b4918605f777f45ad32149fa7327fccdd452d4037451c8c28e19c7c0.jpg", 45 + "house7.1.jpg": "./utils/labjs/scripts/faceshouses/f528aa7c5e2618c4e8b7ae1e1eced370788e698a339b60be085b46c0044b58e3.jpg", 46 + "house8.4.jpg": "./utils/labjs/scripts/faceshouses/28f97e1e523564c8fa7942675ea1609265532de0c715e1b4058cf8ceb4220f9b.jpg", 47 + "house9.2.jpg": "./utils/labjs/scripts/faceshouses/6720b60aa89355682657837dca11fc69d684e77cca2cd26029115ac49e940efe.jpg", 48 + "house10.4.jpg": "./utils/labjs/scripts/faceshouses/c424a87e1b2220efb59423664e7293de2ed37e60d463bfe3261d8b967183740f.jpg", 49 + "house11.2.jpg": "./utils/labjs/scripts/faceshouses/19a8664bab5a3c491510b7f3485d5498c41b680c4695c317be659b4d8e092358.jpg", 50 + "house12.1.jpg": "./utils/labjs/scripts/faceshouses/38178a7ec6cc54ed9e61b5fec7790dc85d2debe2dad0b3e960686db660d9428c.jpg" 51 + }, 52 + "parameters": { 53 + "fixationCrossDuration": 500, 54 + "imageDuration": 1000 55 + }, 56 + "responses": {}, 57 + "messageHandlers": {}, 58 + "title": "The face-house task", 59 + "notes": "We can change these parameters to manipulate the duration of two screens: the fixation cross screen and the screen with an image. The duration is measured in milliseconds.\nDefault values\n- fixationCrossDuration - 500 ms\n- imageDuration - 1000 ms", 60 + "content": [ 61 + { 62 + "type": "lab.html.Screen", 63 + "files": {}, 64 + "parameters": {}, 65 + "responses": { 66 + "keypress(Space)": "continue" 67 + }, 68 + "messageHandlers": {}, 69 + "title": "Instruction", 70 + "content": "\u003Cheader class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Ch1\u003EThe face-house task\u003C\u002Fh1\u003E\n\u003C\u002Fheader\u003E\n\n\u003Cmain\u003E\n\n \u003Cp\u003E\n You will view a series of faces and houses.\n Press 1 when a face appears and 9 for a house. \n \n \u003C\u002Fp\u003E\n \n\u003C\u002Fmain\u003E\n\n\u003Cfooter\u003E\n Press \u003Ckbd\u003ESpace\u003C\u002Fkbd\u003E to continue.\n\u003C\u002Ffooter\u003E" 71 + }, 72 + { 73 + "type": "lab.flow.Loop", 74 + "files": {}, 75 + "parameters": {}, 76 + "templateParameters": [ 77 + { 78 + "condition": "Face", 79 + "image": "Annie_3.jpg", 80 + "correctResponse": "1" 81 + }, 82 + { 83 + "condition": "Face", 84 + "image": "Blake_3.jpg", 85 + "correctResponse": "1" 86 + }, 87 + { 88 + "condition": "Face", 89 + "image": "Don_3.jpg", 90 + "correctResponse": "1" 91 + }, 92 + { 93 + "condition": "Face", 94 + "image": "Estelle_3.jpg", 95 + "correctResponse": "1" 96 + }, 97 + { 98 + "condition": "Face", 99 + "image": "Frank_3.jpg", 100 + "correctResponse": "1" 101 + }, 102 + { 103 + "condition": "Face", 104 + "image": "Janie_3.jpg", 105 + "correctResponse": "1" 106 + }, 107 + { 108 + "condition": "Face", 109 + "image": "Joan_3.jpg", 110 + "correctResponse": "1" 111 + }, 112 + { 113 + "condition": "Face", 114 + "image": "Jodi_3.jpg", 115 + "correctResponse": "1" 116 + }, 117 + { 118 + "condition": "Face", 119 + "image": "Joe_3.jpg", 120 + "correctResponse": "1" 121 + }, 122 + { 123 + "condition": "Face", 124 + "image": "Tim_3.jpg", 125 + "correctResponse": "1" 126 + }, 127 + { 128 + "condition": "Face", 129 + "image": "Tom_3.jpg", 130 + "correctResponse": "1" 131 + }, 132 + { 133 + "condition": "Face", 134 + "image": "Wallace_3.jpg", 135 + "correctResponse": "1" 136 + }, 137 + { 138 + "condition": "House", 139 + "image": "house1.3.jpg", 140 + "correctResponse": "9" 141 + }, 142 + { 143 + "condition": "House", 144 + "image": "house2.2.jpg", 145 + "correctResponse": "9" 146 + }, 147 + { 148 + "condition": "House", 149 + "image": "house3.1.jpg", 150 + "correctResponse": "9" 151 + }, 152 + { 153 + "condition": "House", 154 + "image": "house4.3.jpg", 155 + "correctResponse": "9" 156 + }, 157 + { 158 + "condition": "House", 159 + "image": "house5.2.jpg", 160 + "correctResponse": "9" 161 + }, 162 + { 163 + "condition": "House", 164 + "image": "house6.3.jpg", 165 + "correctResponse": "9" 166 + }, 167 + { 168 + "condition": "House", 169 + "image": "house7.1.jpg", 170 + "correctResponse": "9" 171 + }, 172 + { 173 + "condition": "House", 174 + "image": "house8.4.jpg", 175 + "correctResponse": "9" 176 + }, 177 + { 178 + "condition": "House", 179 + "image": "house9.2.jpg", 180 + "correctResponse": "9" 181 + }, 182 + { 183 + "condition": "House", 184 + "image": "house10.4.jpg", 185 + "correctResponse": "9" 186 + }, 187 + { 188 + "condition": "House", 189 + "image": "house11.2.jpg", 190 + "correctResponse": "9" 191 + }, 192 + { 193 + "condition": "House", 194 + "image": "house12.1.jpg", 195 + "correctResponse": "9" 196 + } 197 + ], 198 + "sample": { 199 + "mode": "draw-shuffle", 200 + "n": "" 201 + }, 202 + "responses": {}, 203 + "messageHandlers": {}, 204 + "title": "Experiment loop", 205 + "shuffleGroups": [], 206 + "template": { 207 + "type": "lab.flow.Sequence", 208 + "files": {}, 209 + "parameters": {}, 210 + "responses": {}, 211 + "messageHandlers": {}, 212 + "title": "Trial", 213 + "content": [ 214 + { 215 + "type": "lab.canvas.Screen", 216 + "content": [ 217 + { 218 + "type": "rect", 219 + "version": "2.7.0", 220 + "originX": "center", 221 + "originY": "center", 222 + "left": 0, 223 + "top": 0, 224 + "width": 10, 225 + "height": "50", 226 + "fill": "black", 227 + "stroke": null, 228 + "strokeWidth": 1, 229 + "strokeDashArray": null, 230 + "strokeLineCap": "butt", 231 + "strokeDashOffset": 0, 232 + "strokeLineJoin": "round", 233 + "strokeMiterLimit": 4, 234 + "scaleX": 1, 235 + "scaleY": 1, 236 + "angle": 0, 237 + "flipX": false, 238 + "flipY": false, 239 + "opacity": 1, 240 + "shadow": null, 241 + "visible": true, 242 + "clipTo": null, 243 + "backgroundColor": "", 244 + "fillRule": "nonzero", 245 + "paintFirst": "fill", 246 + "globalCompositeOperation": "source-over", 247 + "transformMatrix": null, 248 + "skewX": 0, 249 + "skewY": 0, 250 + "rx": 0, 251 + "ry": 0, 252 + "id": "99" 253 + }, 254 + { 255 + "type": "rect", 256 + "version": "2.7.0", 257 + "originX": "center", 258 + "originY": "center", 259 + "left": 0, 260 + "top": 0, 261 + "width": 10, 262 + "height": "50", 263 + "fill": "black", 264 + "stroke": null, 265 + "strokeWidth": 1, 266 + "strokeDashArray": null, 267 + "strokeLineCap": "butt", 268 + "strokeDashOffset": 0, 269 + "strokeLineJoin": "round", 270 + "strokeMiterLimit": 4, 271 + "scaleX": 1, 272 + "scaleY": 1, 273 + "angle": 90, 274 + "flipX": false, 275 + "flipY": false, 276 + "opacity": 1, 277 + "shadow": null, 278 + "visible": true, 279 + "clipTo": null, 280 + "backgroundColor": "", 281 + "fillRule": "nonzero", 282 + "paintFirst": "fill", 283 + "globalCompositeOperation": "source-over", 284 + "transformMatrix": null, 285 + "skewX": 0, 286 + "skewY": 0, 287 + "rx": 0, 288 + "ry": 0, 289 + "id": "100" 290 + } 291 + ], 292 + "files": {}, 293 + "parameters": {}, 294 + "responses": {}, 295 + "messageHandlers": {}, 296 + "viewport": [ 297 + 800, 298 + 600 299 + ], 300 + "title": "Fixation cross", 301 + "timeout": "${parameters.fixationCrossDuration}" 302 + }, 303 + { 304 + "type": "lab.canvas.Screen", 305 + "content": [ 306 + { 307 + "type": "image", 308 + "version": "2.7.0", 309 + "originX": "center", 310 + "originY": "center", 311 + "left": 0, 312 + "top": 0, 313 + "width": 400, 314 + "height": 400, 315 + "fill": "black", 316 + "stroke": null, 317 + "strokeWidth": 0, 318 + "strokeDashArray": null, 319 + "strokeLineCap": "butt", 320 + "strokeDashOffset": 0, 321 + "strokeLineJoin": "round", 322 + "strokeMiterLimit": 4, 323 + "scaleX": 1, 324 + "scaleY": 1, 325 + "angle": 0, 326 + "flipX": false, 327 + "flipY": false, 328 + "opacity": 1, 329 + "shadow": null, 330 + "visible": true, 331 + "clipTo": null, 332 + "backgroundColor": "", 333 + "fillRule": "nonzero", 334 + "paintFirst": "fill", 335 + "globalCompositeOperation": "source-over", 336 + "transformMatrix": null, 337 + "skewX": 0, 338 + "skewY": 0, 339 + "crossOrigin": "", 340 + "cropX": 0, 341 + "cropY": 0, 342 + "id": "137", 343 + "src": "${ this.files[this.parameters.image] }", 344 + "filters": [], 345 + "naturalWidth": 400, 346 + "naturalHeight": 400 347 + } 348 + ], 349 + "files": {}, 350 + "parameters": {}, 351 + "responses": {}, 352 + "messageHandlers": { 353 + "before:prepare": function anonymous( 354 + ) { 355 + // This code registers an event listener for this screen. 356 + // We have a timeout for this screen, but we also want to record responses. 357 + // On a keydown event, we record the key and the time of response. 358 + // We also record whether the response was correct (by comparing the pressed key with the correct response which is defined inside the Experiment loop). 359 + // "this" in the code means the lab.js experiment. 360 + this.data.trial_number = 1 + parseInt(this.options.id.split('_')[this.options.id.split('_').length-2]); 361 + this.data.response_given = 'no'; 362 + 363 + this.options.events = { 364 + 'keydown': (event) => { 365 + if(['Digit1', 'Digit9'].includes(event.code)){ 366 + this.data.reaction_time = this.timer; 367 + this.data.response_given = 'yes'; 368 + this.data.response = event.key; 369 + if(this.data.response == this.parameters.correctResponse){ 370 + this.data.correct_response = true; 371 + } else { 372 + this.data.correct_response = false; 373 + } 374 + } 375 + } 376 + } 377 + } 378 + }, 379 + "viewport": [ 380 + 800, 381 + 600 382 + ], 383 + "title": "Stimulus", 384 + "timeout": "${parameters.imageDuration}" 385 + } 386 + ] 387 + } 388 + }, 389 + { 390 + "type": "lab.html.Screen", 391 + "files": {}, 392 + "parameters": {}, 393 + "responses": { 394 + "keypress(Space)": "finish" 395 + }, 396 + "messageHandlers": {}, 397 + "title": "End", 398 + "timeout": "10000", 399 + "content": "\u003Cmain\u003E\n\n \u003Cp\u003E\n Thanks for participating. Press \u003Ckbd\u003ESpace\u003C\u002Fkbd\u003E to continue.\n \u003C\u002Fp\u003E\n \n\u003C\u002Fmain\u003E" 400 + } 401 + ] 402 + } 403 + ] 404 + } 405 + 406 + // export 407 + export default studyObject;
app/utils/labjs/scripts/faceshouses/19a8664bab5a3c491510b7f3485d5498c41b680c4695c317be659b4d8e092358.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/269317cfd165abfdbc48e400a6cfc89c2cfcd98a9c738ece5222e8d513bcf83a.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/28f97e1e523564c8fa7942675ea1609265532de0c715e1b4058cf8ceb4220f9b.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/3138f2fd1cba5a07f0b0ac61f8ee4754e6e0f07bd3ea520a75bc39c2d05ecece.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/38178a7ec6cc54ed9e61b5fec7790dc85d2debe2dad0b3e960686db660d9428c.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/3e55b3ce099ffea5a4ebde02c7a0cb055fb6f9768116efc932e77e4319841bea.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/461aa813adbb5117b26b791c02864b2e88e6c2899c821f14d58b042c26628b92.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/56136f19fc574a3a99761c9a7ce1fcc5149d6edcc60e942cc8e5db2f66e0db91.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/5ba782ee30b8213b554d61adb62091b63c509a539bdd693ed27c1cbc3db40272.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/5ce843ee780ba0c902ee1b06326c7e65fe840769c8621a8d9f8b75b5eb67bcd9.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/6720b60aa89355682657837dca11fc69d684e77cca2cd26029115ac49e940efe.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/7a536fba60226293bf351cb6f9719fee15f3b693915c0a55b0f107377f10a7e1.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/856ae9bd5ec82567011ae41e10dcfa2de9cfa7ddadc5c1388df2998142ab4d7f.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/9f0121c6a70040d4abbcd41daf909797cef7438f406fc471c0def07f477f920e.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/a82a652abb85637af9fba1f4dbf7f69d906a14172a70df610e3be33c0058b9f6.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/a87186061326f3e11259a95ba1229cfc3f1a4f4b06fb50c16ad3757105a2b69c.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/b589ac23b4918605f777f45ad32149fa7327fccdd452d4037451c8c28e19c7c0.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/b746cdfd1099dfbe200a661a81ef2315935a5eafc855b8b373d9b633fadd8e6c.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/b87301f741db5d27e05e8d127ae729af9bb7e2e38484c8f29b52e442c333989d.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/c424a87e1b2220efb59423664e7293de2ed37e60d463bfe3261d8b967183740f.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/cc6bf44e75c27e0d57956ae95d4c2c64f0d41f666a1e3f9fff20927fe3844dfd.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/d92c1965ad53b7533d5f00ace843e8f1c161ae7e72ad52b4511f3ab84a8eea73.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/f528aa7c5e2618c4e8b7ae1e1eced370788e698a339b60be085b46c0044b58e3.jpg

This is a binary file and will not be displayed.

app/utils/labjs/scripts/faceshouses/f78f496ab685b1ae4661c6071358f1a6ab0e1238a0ed1bd157a32317c41a8eaf.jpg

This is a binary file and will not be displayed.

+2655
app/utils/labjs/scripts/multitasking.js
··· 1 + // Define study 2 + const studyObject = { 3 + "title": "root", 4 + "type": "lab.flow.Sequence", 5 + "parameters": {}, 6 + "plugins": [ 7 + { 8 + "type": "lab.plugins.Metadata" 9 + }, 10 + { 11 + "type": "lab.plugins.Download", 12 + "filePrefix": "study" 13 + } 14 + ], 15 + "metadata": { 16 + "title": "", 17 + "description": "", 18 + "repository": "", 19 + "contributors": "" 20 + }, 21 + "files": {}, 22 + "responses": {}, 23 + "content": [ 24 + { 25 + "type": "lab.flow.Sequence", 26 + "files": {}, 27 + "parameters": {}, 28 + "responses": {}, 29 + "messageHandlers": {}, 30 + "title": "Multi-tasking", 31 + "content": [ 32 + { 33 + "type": "lab.html.Screen", 34 + "files": {}, 35 + "parameters": {}, 36 + "responses": { 37 + "keypress(Space)": "continue" 38 + }, 39 + "messageHandlers": {}, 40 + "title": "Intro", 41 + "content": "\u003Cmain\u003E\n \u003Ch1\u003E\n Multitasking\n \u003C\u002Fh1\u003E\n \u003Cp\u003E\n In this task you will learn about multitasking difficulties using a task mixing and switching paradigm. \n \u003C\u002Fp\u003E\n \u003Cp\u003E\n You will go through several instruction and training blocks and then several blocks of real data collection will follow.\n \u003C\u002Fp\u003E\n \u003Ch3\u003E\n \u003Cem\u003E\n Press the space bar to continue with the instructions\n \u003C\u002Fem\u003E\n \u003C\u002Fh3\u003E\n\u003C\u002Fmain\u003E" 42 + }, 43 + { 44 + "type": "lab.html.Screen", 45 + "files": { 46 + "diamond_2.png": "./utils/labjs/scripts/multitasking/diamond_2.png", 47 + "diamond_3.png": "./utils/labjs/scripts/multitasking/diamond_3.png", 48 + "rectangle_2.png": "./utils/labjs/scripts/multitasking/rectangle_2.png", 49 + "rectangle_3.png": "./utils/labjs/scripts/multitasking/rectangle_3.png", 50 + "filling.png": "./utils/labjs/scripts/multitasking/filling.png", 51 + "shape.png": "./utils/labjs/scripts/multitasking/shape.png", 52 + "example_1.png": "./utils/labjs/scripts/multitasking/example_1.png", 53 + "example_2.png": "./utils/labjs/scripts/multitasking/example_2.png", 54 + "example_3.png": "./utils/labjs/scripts/multitasking/example_3.png", 55 + "example_4.png": "./utils/labjs/scripts/multitasking/example_4.png", 56 + "all_conditions.png": "./utils/labjs/scripts/multitasking/all_conditions.png" 57 + }, 58 + "parameters": {}, 59 + "responses": { 60 + "keypress(q)": "continue" 61 + }, 62 + "messageHandlers": { 63 + "before:prepare": function anonymous( 64 + ) { 65 + this.options.events['keydown'] = (e) => { 66 + if(e.code === 'ArrowLeft' || e.code === 'ArrowRight'){ 67 + 68 + let instructions = document.querySelectorAll('div.instruction') 69 + let notFound = true 70 + instructions.forEach(i => { 71 + 72 + if(i.style.display === 'block' && notFound){ 73 + let cur_id = parseInt(i.id.split('screen_')[1]) 74 + let next_id 75 + if(e.code === 'ArrowLeft'){ 76 + next_id = cur_id - 1 77 + } 78 + if(e.code === 'ArrowRight'){ 79 + next_id = cur_id + 1 80 + } 81 + if(next_id > 0 && next_id <= 10){ 82 + i.style.display = 'none' 83 + next_id = 'screen_' + next_id 84 + document.querySelector(`#${next_id}`).style.display = 'block' 85 + notFound = false 86 + } 87 + 88 + } 89 + 90 + }) 91 + 92 + } 93 + } 94 + } 95 + }, 96 + "title": "Instructions", 97 + "content": "\u003Cmain\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_1' style=\"display:block\"\u003E\n \u003Cp\u003E\n In the following, you will respond to various figures. These are the figures that you will see: diamonds and rectangles with a filling of 2 or 3 dots:\n \u003C\u002Fp\u003E\n \u003Ctable\u003E\n \u003Cthead\u003E\n \u003Ctr\u003E\n \u003Cth\u003EDiamond with filling of 3 dots\u003C\u002Fth\u003E\n \u003Cth\u003EDiamond with filling of 2 dots\u003C\u002Fth\u003E\n \u003Cth\u003ERectangle with filling of 3 dots\u003C\u002Fth\u003E\n \u003Cth\u003ERectangle with filling of 2 dots\u003C\u002Fth\u003E\n \u003C\u002Ftr\u003E\n \u003C\u002Fthead\u003E\n \u003Ctbody\u003E\n \u003Ctr\u003E\n \u003Ctd\u003E\u003Cimg src=${this.files['diamond_3.png']} style=\"width:100px\"\u003E\u003C\u002Ftd\u003E\n \u003Ctd\u003E\u003Cimg src=${this.files['diamond_2.png']} style=\"width:100px\"\u003E\u003C\u002Ftd\u003E\n \u003Ctd\u003E\u003Cimg src=${this.files['rectangle_3.png']} style=\"width:100px\"\u003E\u003C\u002Ftd\u003E\n \u003Ctd\u003E\u003Cimg src=${this.files['rectangle_2.png']} style=\"width:100px\"\u003E\u003C\u002Ftd\u003E\n \u003C\u002Ftr\u003E\n \u003C\u002Ftbody\u003E\n \u003C\u002Ftable\u003E\n\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_2' style=\"display:none\"\u003E\n\n \u003Cp\u003E\n You will be shown these figures in sequences of trials.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n Each time you will need to respond with a button press.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n How exactly will be explained in the next screens.\n \u003C\u002Fp\u003E\n\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_3' style=\"display:none\"\u003E\n \u003Cp\u003E\n In the shape task, a diamond requires a b button press. \n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the shape task, a rectangle requires a n button press. \n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In this task, ignore the filling (dots) of the shape!\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['shape.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_4' style=\"display:none\"\u003E\n \u003Cp\u003E\n In the filling task, a filling of two dots requires a b button press. \n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the filling task, a filling with three dots requires a n button press. \n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the filling task, ignore the outer shape!\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['filling.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_5' style=\"display:none\"\u003E\n \u003Cp\u003E\n Example 1. If you see a figure in the upper part of the frame, you know you need to do the shape task, that is easy, because the word shape is at the top. Here you see a diamond, which requires a button press of the keyboard key \u003Cstrong\u003E\u003Cem\u003Eb\u003C\u002Fem\u003E\u003C\u002Fstrong\u003E\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the shape task, entirely ignore the filling dots!!!\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['example_1.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_6' style=\"display:none\" style=\"width:400px\"\u003E\n \u003Cp\u003E\n Example 2. If you see a figure in the lower part of the frame, you know you need to do the filling task, that is easy, because the word filling is at the bottom. This diamond is filled with 3 dots, and thus press the keyboard key \u003Cstrong\u003E\u003Cem\u003En\u003C\u002Fem\u003E\u003C\u002Fstrong\u003E\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the filling task, entirely ignore the outer shape (here a diamond)!!!\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['example_2.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_7' style=\"display:none\"\u003E\n \u003Cimg src=${this.files['example_3.png']} style=\"width:400px\"\u003E\n \u003Cp\u003E\n Example 3. If you see a figure in the upper part of the frame, you know you need to do the shape task, that is easy, because the word shape is at the top. Here you see a rectangle, which requires the \u003Cstrong\u003E\u003Cem\u003En\u003C\u002Fem\u003E\u003C\u002Fstrong\u003E key.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the shape task, entirely ignore the filling (here 2 dots)!!!\n \u003C\u002Fp\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_8' style=\"display:none\"\u003E\n \u003Cp\u003E\n Example 4. If you see a figure in the lower part of the frame, you know you need to do the filling task, that is easy, because the word filling is at the bottom. This diamond is filled with 2 dots, and thus press \u003Cstrong\u003E\u003Cem\u003Eb\u003C\u002Fem\u003E\u003C\u002Fstrong\u003E key.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the filling task, entirely ignore the outer shape (here a diamond)!!!\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['example_4.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\n\u003Cdiv class=\"instruction\" id='screen_9' style=\"display:none\"\u003E\n \u003Cp\u003E\n Here, you can see how to respond in all conditions...\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n Just look at shape in the shape task, and at the dots in the filling task...\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['all_conditions.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_10' style=\"display:none\"\u003E\n \u003Cp\u003E\n Are you ready? Press the \"q\" button on your keyboard to quit the instructions and start doing the task.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n Or you can browse back to the previous screens until you understand what you need to do in the two tasks (use the arrow keys).\n \u003C\u002Fp\u003E\n\u003C\u002Fdiv\u003E\n\n\u003C\u002Fmain\u003E\n\n\n\u003Cfooter\u003E\n Use left\u002Fright arrow keys to go further or back.\n\u003C\u002Ffooter\u003E" 98 + }, 99 + { 100 + "type": "lab.flow.Loop", 101 + "files": {}, 102 + "parameters": {}, 103 + "templateParameters": [ 104 + { 105 + "block": "shape", 106 + "task": "training", 107 + "num_trials": "5" 108 + }, 109 + { 110 + "block": "filling", 111 + "task": "training", 112 + "num_trials": "5" 113 + }, 114 + { 115 + "block": "mixed", 116 + "task": "training", 117 + "num_trials": "10" 118 + }, 119 + { 120 + "block": "shape", 121 + "task": "main", 122 + "num_trials": "15" 123 + }, 124 + { 125 + "block": "filling", 126 + "task": "main", 127 + "num_trials": "15" 128 + }, 129 + { 130 + "block": "mixed", 131 + "task": "main", 132 + "num_trials": "30" 133 + } 134 + ], 135 + "sample": { 136 + "mode": "sequential", 137 + "n": "6" 138 + }, 139 + "responses": {}, 140 + "messageHandlers": {}, 141 + "title": "Block loop", 142 + "shuffleGroups": [], 143 + "template": { 144 + "type": "lab.flow.Sequence", 145 + "files": {}, 146 + "parameters": {}, 147 + "responses": {}, 148 + "messageHandlers": {}, 149 + "title": "Block sequence", 150 + "content": [ 151 + { 152 + "type": "lab.canvas.Screen", 153 + "content": [ 154 + { 155 + "type": "i-text", 156 + "version": "2.7.0", 157 + "originX": "center", 158 + "originY": "center", 159 + "left": 0, 160 + "top": -112, 161 + "width": 103.95, 162 + "height": 36.16, 163 + "fill": "black", 164 + "stroke": null, 165 + "strokeWidth": 1, 166 + "strokeDashArray": null, 167 + "strokeLineCap": "butt", 168 + "strokeDashOffset": 0, 169 + "strokeLineJoin": "round", 170 + "strokeMiterLimit": 4, 171 + "scaleX": 1, 172 + "scaleY": 1, 173 + "angle": 0, 174 + "flipX": false, 175 + "flipY": false, 176 + "opacity": 1, 177 + "shadow": null, 178 + "visible": true, 179 + "clipTo": null, 180 + "backgroundColor": "", 181 + "fillRule": "nonzero", 182 + "paintFirst": "fill", 183 + "globalCompositeOperation": "source-over", 184 + "transformMatrix": null, 185 + "skewX": 0, 186 + "skewY": 0, 187 + "text": "Ready? ", 188 + "fontSize": "50", 189 + "fontWeight": "bold", 190 + "fontFamily": "sans-serif", 191 + "fontStyle": "normal", 192 + "lineHeight": 1.16, 193 + "underline": false, 194 + "overline": false, 195 + "linethrough": false, 196 + "textAlign": "center", 197 + "textBackgroundColor": "", 198 + "charSpacing": 0, 199 + "id": "277", 200 + "styles": {} 201 + }, 202 + { 203 + "type": "i-text", 204 + "version": "2.7.0", 205 + "originX": "center", 206 + "originY": "center", 207 + "left": 0, 208 + "top": -25, 209 + "width": 1090.61, 210 + "height": 36.16, 211 + "fill": "black", 212 + "stroke": null, 213 + "strokeWidth": 1, 214 + "strokeDashArray": null, 215 + "strokeLineCap": "butt", 216 + "strokeDashOffset": 0, 217 + "strokeLineJoin": "round", 218 + "strokeMiterLimit": 4, 219 + "scaleX": 1, 220 + "scaleY": 1, 221 + "angle": 0, 222 + "flipX": false, 223 + "flipY": false, 224 + "opacity": 1, 225 + "shadow": null, 226 + "visible": true, 227 + "clipTo": null, 228 + "backgroundColor": "", 229 + "fillRule": "nonzero", 230 + "paintFirst": "fill", 231 + "globalCompositeOperation": "source-over", 232 + "transformMatrix": null, 233 + "skewX": 0, 234 + "skewY": 0, 235 + "text": "${parameters.task === 'training' ? 'for some training?' : 'for the real data collection?'}", 236 + "fontSize": 32, 237 + "fontWeight": "normal", 238 + "fontFamily": "sans-serif", 239 + "fontStyle": "normal", 240 + "lineHeight": 1.16, 241 + "underline": false, 242 + "overline": false, 243 + "linethrough": false, 244 + "textAlign": "center", 245 + "textBackgroundColor": "", 246 + "charSpacing": 0, 247 + "id": "278", 248 + "styles": {} 249 + }, 250 + { 251 + "type": "i-text", 252 + "version": "2.7.0", 253 + "originX": "center", 254 + "originY": "center", 255 + "left": 0, 256 + "top": 50, 257 + "width": 416.41, 258 + "height": 36.16, 259 + "fill": "black", 260 + "stroke": null, 261 + "strokeWidth": 1, 262 + "strokeDashArray": null, 263 + "strokeLineCap": "butt", 264 + "strokeDashOffset": 0, 265 + "strokeLineJoin": "round", 266 + "strokeMiterLimit": 4, 267 + "scaleX": 1, 268 + "scaleY": 1, 269 + "angle": 0, 270 + "flipX": false, 271 + "flipY": false, 272 + "opacity": 1, 273 + "shadow": null, 274 + "visible": true, 275 + "clipTo": null, 276 + "backgroundColor": "", 277 + "fillRule": "nonzero", 278 + "paintFirst": "fill", 279 + "globalCompositeOperation": "source-over", 280 + "transformMatrix": null, 281 + "skewX": 0, 282 + "skewY": 0, 283 + "text": "When ready, press the space bar.", 284 + "fontSize": 32, 285 + "fontWeight": "normal", 286 + "fontFamily": "sans-serif", 287 + "fontStyle": "normal", 288 + "lineHeight": 1.16, 289 + "underline": false, 290 + "overline": false, 291 + "linethrough": false, 292 + "textAlign": "center", 293 + "textBackgroundColor": "", 294 + "charSpacing": 0, 295 + "id": "279", 296 + "styles": {} 297 + } 298 + ], 299 + "files": {}, 300 + "parameters": {}, 301 + "responses": { 302 + "keypress(Space)": "continue" 303 + }, 304 + "messageHandlers": {}, 305 + "viewport": [ 306 + 800, 307 + 600 308 + ], 309 + "title": "Ready" 310 + }, 311 + { 312 + "type": "lab.canvas.Screen", 313 + "content": [ 314 + { 315 + "type": "i-text", 316 + "version": "2.7.0", 317 + "originX": "left", 318 + "originY": "center", 319 + "left": "${this.parameters.block === 'mixed' ? 1000 : -120}", 320 + "top": -64, 321 + "width": 372.81, 322 + "height": 78.11, 323 + "fill": "black", 324 + "stroke": null, 325 + "strokeWidth": 1, 326 + "strokeDashArray": null, 327 + "strokeLineCap": "butt", 328 + "strokeDashOffset": 0, 329 + "strokeLineJoin": "round", 330 + "strokeMiterLimit": 4, 331 + "scaleX": 1, 332 + "scaleY": 1, 333 + "angle": 0, 334 + "flipX": false, 335 + "flipY": false, 336 + "opacity": 1, 337 + "shadow": null, 338 + "visible": true, 339 + "clipTo": null, 340 + "backgroundColor": "", 341 + "fillRule": "nonzero", 342 + "paintFirst": "fill", 343 + "globalCompositeOperation": "source-over", 344 + "transformMatrix": null, 345 + "skewX": 0, 346 + "skewY": 0, 347 + "text": "A block of just \nthe ${parameters.block} task", 348 + "fontSize": 32, 349 + "fontWeight": "normal", 350 + "fontFamily": "sans-serif", 351 + "fontStyle": "normal", 352 + "lineHeight": 1.16, 353 + "underline": false, 354 + "overline": false, 355 + "linethrough": false, 356 + "textAlign": "left", 357 + "textBackgroundColor": "", 358 + "charSpacing": 0, 359 + "id": "298", 360 + "styles": { 361 + "1": { 362 + "4": { 363 + "stroke": null, 364 + "strokeWidth": 1, 365 + "fill": "black", 366 + "fontFamily": "Times New Roman", 367 + "fontSize": 32, 368 + "fontWeight": "normal", 369 + "fontStyle": "normal", 370 + "underline": false, 371 + "overline": false, 372 + "linethrough": false, 373 + "deltaY": 0, 374 + "textBackgroundColor": "" 375 + }, 376 + "5": { 377 + "stroke": null, 378 + "strokeWidth": 1, 379 + "fill": "black", 380 + "fontFamily": "Times New Roman", 381 + "fontSize": 32, 382 + "fontWeight": "normal", 383 + "fontStyle": "normal", 384 + "underline": false, 385 + "overline": false, 386 + "linethrough": false, 387 + "deltaY": 0, 388 + "textBackgroundColor": "" 389 + }, 390 + "6": { 391 + "stroke": null, 392 + "strokeWidth": 1, 393 + "fill": "black", 394 + "fontFamily": "Times New Roman", 395 + "fontSize": 32, 396 + "fontWeight": "normal", 397 + "fontStyle": "normal", 398 + "underline": false, 399 + "overline": false, 400 + "linethrough": false, 401 + "deltaY": 0, 402 + "textBackgroundColor": "" 403 + }, 404 + "7": { 405 + "stroke": null, 406 + "strokeWidth": 1, 407 + "fill": "black", 408 + "fontFamily": "Times New Roman", 409 + "fontSize": 32, 410 + "fontWeight": "normal", 411 + "fontStyle": "normal", 412 + "underline": false, 413 + "overline": false, 414 + "linethrough": false, 415 + "deltaY": 0, 416 + "textBackgroundColor": "" 417 + }, 418 + "8": { 419 + "stroke": null, 420 + "strokeWidth": 1, 421 + "fill": "black", 422 + "fontFamily": "Times New Roman", 423 + "fontSize": 32, 424 + "fontWeight": "normal", 425 + "fontStyle": "normal", 426 + "underline": false, 427 + "overline": false, 428 + "linethrough": false, 429 + "deltaY": 0, 430 + "textBackgroundColor": "" 431 + }, 432 + "9": { 433 + "stroke": null, 434 + "strokeWidth": 1, 435 + "fill": "black", 436 + "fontFamily": "Times New Roman", 437 + "fontSize": 32, 438 + "fontWeight": "normal", 439 + "fontStyle": "normal", 440 + "underline": false, 441 + "overline": false, 442 + "linethrough": false, 443 + "deltaY": 0, 444 + "textBackgroundColor": "" 445 + }, 446 + "10": { 447 + "stroke": null, 448 + "strokeWidth": 1, 449 + "fill": "black", 450 + "fontFamily": "Times New Roman", 451 + "fontSize": 32, 452 + "fontWeight": "normal", 453 + "fontStyle": "normal", 454 + "underline": false, 455 + "overline": false, 456 + "linethrough": false, 457 + "deltaY": 0, 458 + "textBackgroundColor": "" 459 + }, 460 + "11": { 461 + "stroke": null, 462 + "strokeWidth": 1, 463 + "fill": "black", 464 + "fontFamily": "Times New Roman", 465 + "fontSize": 32, 466 + "fontWeight": "normal", 467 + "fontStyle": "normal", 468 + "underline": false, 469 + "overline": false, 470 + "linethrough": false, 471 + "deltaY": 0, 472 + "textBackgroundColor": "" 473 + }, 474 + "12": { 475 + "stroke": null, 476 + "strokeWidth": 1, 477 + "fill": "black", 478 + "fontFamily": "Times New Roman", 479 + "fontSize": 32, 480 + "fontWeight": "normal", 481 + "fontStyle": "normal", 482 + "underline": false, 483 + "overline": false, 484 + "linethrough": false, 485 + "deltaY": 0, 486 + "textBackgroundColor": "" 487 + }, 488 + "13": { 489 + "stroke": null, 490 + "strokeWidth": 1, 491 + "fill": "black", 492 + "fontFamily": "Times New Roman", 493 + "fontSize": 32, 494 + "fontWeight": "normal", 495 + "fontStyle": "normal", 496 + "underline": false, 497 + "overline": false, 498 + "linethrough": false, 499 + "deltaY": 0, 500 + "textBackgroundColor": "" 501 + }, 502 + "14": { 503 + "stroke": null, 504 + "strokeWidth": 1, 505 + "fill": "black", 506 + "fontFamily": "Times New Roman", 507 + "fontSize": 32, 508 + "fontWeight": "normal", 509 + "fontStyle": "normal", 510 + "underline": false, 511 + "overline": false, 512 + "linethrough": false, 513 + "deltaY": 0, 514 + "textBackgroundColor": "" 515 + }, 516 + "15": { 517 + "stroke": null, 518 + "strokeWidth": 1, 519 + "fill": "black", 520 + "fontFamily": "Times New Roman", 521 + "fontSize": 32, 522 + "fontWeight": "normal", 523 + "fontStyle": "normal", 524 + "underline": false, 525 + "overline": false, 526 + "linethrough": false, 527 + "deltaY": 0, 528 + "textBackgroundColor": "" 529 + }, 530 + "16": { 531 + "stroke": null, 532 + "strokeWidth": 1, 533 + "fill": "black", 534 + "fontFamily": "Times New Roman", 535 + "fontSize": 32, 536 + "fontWeight": "normal", 537 + "fontStyle": "normal", 538 + "underline": false, 539 + "overline": false, 540 + "linethrough": false, 541 + "deltaY": 0, 542 + "textBackgroundColor": "" 543 + }, 544 + "17": { 545 + "stroke": null, 546 + "strokeWidth": 1, 547 + "fill": "black", 548 + "fontFamily": "Times New Roman", 549 + "fontSize": 32, 550 + "fontWeight": "normal", 551 + "fontStyle": "normal", 552 + "underline": false, 553 + "overline": false, 554 + "linethrough": false, 555 + "deltaY": 0, 556 + "textBackgroundColor": "" 557 + }, 558 + "18": { 559 + "stroke": null, 560 + "strokeWidth": 1, 561 + "fill": "black", 562 + "fontFamily": "Times New Roman", 563 + "fontSize": 32, 564 + "fontWeight": "normal", 565 + "fontStyle": "normal", 566 + "underline": false, 567 + "overline": false, 568 + "linethrough": false, 569 + "deltaY": 0, 570 + "textBackgroundColor": "" 571 + }, 572 + "19": { 573 + "stroke": null, 574 + "strokeWidth": 1, 575 + "fill": "black", 576 + "fontFamily": "Times New Roman", 577 + "fontSize": 32, 578 + "fontWeight": "normal", 579 + "fontStyle": "normal", 580 + "underline": false, 581 + "overline": false, 582 + "linethrough": false, 583 + "deltaY": 0, 584 + "textBackgroundColor": "" 585 + }, 586 + "20": { 587 + "stroke": null, 588 + "strokeWidth": 1, 589 + "fill": "black", 590 + "fontFamily": "Times New Roman", 591 + "fontSize": 32, 592 + "fontWeight": "normal", 593 + "fontStyle": "normal", 594 + "underline": false, 595 + "overline": false, 596 + "linethrough": false, 597 + "deltaY": 0, 598 + "textBackgroundColor": "" 599 + }, 600 + "21": { 601 + "stroke": null, 602 + "strokeWidth": 1, 603 + "fill": "black", 604 + "fontFamily": "Times New Roman", 605 + "fontSize": 32, 606 + "fontWeight": "normal", 607 + "fontStyle": "normal", 608 + "underline": false, 609 + "overline": false, 610 + "linethrough": false, 611 + "deltaY": 0, 612 + "textBackgroundColor": "" 613 + }, 614 + "22": { 615 + "stroke": null, 616 + "strokeWidth": 1, 617 + "fill": "black", 618 + "fontFamily": "Times New Roman", 619 + "fontSize": 32, 620 + "fontWeight": "normal", 621 + "fontStyle": "normal", 622 + "underline": false, 623 + "overline": false, 624 + "linethrough": false, 625 + "deltaY": 0, 626 + "textBackgroundColor": "" 627 + }, 628 + "23": { 629 + "stroke": null, 630 + "strokeWidth": 1, 631 + "fill": "black", 632 + "fontFamily": "Times New Roman", 633 + "fontSize": 32, 634 + "fontWeight": "normal", 635 + "fontStyle": "normal", 636 + "underline": false, 637 + "overline": false, 638 + "linethrough": false, 639 + "deltaY": 0, 640 + "textBackgroundColor": "" 641 + }, 642 + "24": { 643 + "stroke": null, 644 + "strokeWidth": 1, 645 + "fill": "black", 646 + "fontFamily": "Times New Roman", 647 + "fontSize": 32, 648 + "fontWeight": "normal", 649 + "fontStyle": "normal", 650 + "underline": false, 651 + "overline": false, 652 + "linethrough": false, 653 + "deltaY": 0, 654 + "textBackgroundColor": "" 655 + }, 656 + "25": { 657 + "stroke": null, 658 + "strokeWidth": 1, 659 + "fill": "black", 660 + "fontFamily": "Times New Roman", 661 + "fontSize": 32, 662 + "fontWeight": "normal", 663 + "fontStyle": "normal", 664 + "underline": false, 665 + "overline": false, 666 + "linethrough": false, 667 + "deltaY": 0, 668 + "textBackgroundColor": "" 669 + }, 670 + "26": { 671 + "stroke": null, 672 + "strokeWidth": 1, 673 + "fill": "black", 674 + "fontFamily": "Times New Roman", 675 + "fontSize": 32, 676 + "fontWeight": "normal", 677 + "fontStyle": "normal", 678 + "underline": false, 679 + "overline": false, 680 + "linethrough": false, 681 + "deltaY": 0, 682 + "textBackgroundColor": "" 683 + }, 684 + "27": { 685 + "stroke": null, 686 + "strokeWidth": 1, 687 + "fill": "black", 688 + "fontFamily": "Times New Roman", 689 + "fontSize": 32, 690 + "fontWeight": "normal", 691 + "fontStyle": "normal", 692 + "underline": false, 693 + "overline": false, 694 + "linethrough": false, 695 + "deltaY": 0, 696 + "textBackgroundColor": "" 697 + } 698 + } 699 + } 700 + }, 701 + { 702 + "type": "i-text", 703 + "version": "2.7.0", 704 + "originX": "left", 705 + "originY": "center", 706 + "left": -125, 707 + "top": 75, 708 + "width": 293.18, 709 + "height": 126.56, 710 + "fill": "black", 711 + "stroke": null, 712 + "strokeWidth": 1, 713 + "strokeDashArray": null, 714 + "strokeLineCap": "butt", 715 + "strokeDashOffset": 0, 716 + "strokeLineJoin": "round", 717 + "strokeMiterLimit": 4, 718 + "scaleX": 1, 719 + "scaleY": 1, 720 + "angle": 0, 721 + "flipX": false, 722 + "flipY": false, 723 + "opacity": 1, 724 + "shadow": null, 725 + "visible": true, 726 + "clipTo": null, 727 + "backgroundColor": "", 728 + "fillRule": "nonzero", 729 + "paintFirst": "fill", 730 + "globalCompositeOperation": "source-over", 731 + "transformMatrix": null, 732 + "skewX": 0, 733 + "skewY": 0, 734 + "text": "Try to be as fast as you\ncan without making errors!\nPress space bar when\nyou are ready!", 735 + "fontSize": "25", 736 + "fontWeight": "normal", 737 + "fontFamily": "sans-serif", 738 + "fontStyle": "normal", 739 + "lineHeight": 1.16, 740 + "underline": false, 741 + "overline": false, 742 + "linethrough": false, 743 + "textAlign": "left", 744 + "textBackgroundColor": "", 745 + "charSpacing": 0, 746 + "id": "300", 747 + "styles": {} 748 + }, 749 + { 750 + "type": "i-text", 751 + "version": "2.7.0", 752 + "originX": "left", 753 + "originY": "center", 754 + "left": "${this.parameters.block === 'mixed' ? -120 : 1000}", 755 + "top": -75, 756 + "width": 247.08, 757 + "height": 120.05, 758 + "fill": "black", 759 + "stroke": null, 760 + "strokeWidth": 1, 761 + "strokeDashArray": null, 762 + "strokeLineCap": "butt", 763 + "strokeDashOffset": 0, 764 + "strokeLineJoin": "round", 765 + "strokeMiterLimit": 4, 766 + "scaleX": 1, 767 + "scaleY": 1, 768 + "angle": 0, 769 + "flipX": false, 770 + "flipY": false, 771 + "opacity": 1, 772 + "shadow": null, 773 + "visible": true, 774 + "clipTo": null, 775 + "backgroundColor": "", 776 + "fillRule": "nonzero", 777 + "paintFirst": "fill", 778 + "globalCompositeOperation": "source-over", 779 + "transformMatrix": null, 780 + "skewX": 0, 781 + "skewY": 0, 782 + "text": "A block with a mix\nof the shape & \nthe filling task", 783 + "fontSize": 32, 784 + "fontWeight": "normal", 785 + "fontFamily": "sans-serif", 786 + "fontStyle": "normal", 787 + "lineHeight": 1.16, 788 + "underline": false, 789 + "overline": false, 790 + "linethrough": false, 791 + "textAlign": "left", 792 + "textBackgroundColor": "", 793 + "charSpacing": 0, 794 + "id": "397", 795 + "styles": {} 796 + } 797 + ], 798 + "files": {}, 799 + "parameters": {}, 800 + "responses": { 801 + "keypress(Space)": "continue" 802 + }, 803 + "messageHandlers": {}, 804 + "viewport": [ 805 + 800, 806 + 600 807 + ], 808 + "title": "Block description" 809 + }, 810 + { 811 + "type": "lab.canvas.Screen", 812 + "content": [ 813 + { 814 + "type": "i-text", 815 + "version": "2.7.0", 816 + "originX": "center", 817 + "originY": "center", 818 + "left": 0, 819 + "top": 0, 820 + "width": 154.59, 821 + "height": 36.16, 822 + "fill": "black", 823 + "stroke": null, 824 + "strokeWidth": 1, 825 + "strokeDashArray": null, 826 + "strokeLineCap": "butt", 827 + "strokeDashOffset": 0, 828 + "strokeLineJoin": "round", 829 + "strokeMiterLimit": 4, 830 + "scaleX": 1, 831 + "scaleY": 1, 832 + "angle": 0, 833 + "flipX": false, 834 + "flipY": false, 835 + "opacity": 1, 836 + "shadow": null, 837 + "visible": true, 838 + "clipTo": null, 839 + "backgroundColor": "", 840 + "fillRule": "nonzero", 841 + "paintFirst": "fill", 842 + "globalCompositeOperation": "source-over", 843 + "transformMatrix": null, 844 + "skewX": 0, 845 + "skewY": 0, 846 + "text": "Concentrate", 847 + "fontSize": 32, 848 + "fontWeight": "normal", 849 + "fontFamily": "sans-serif", 850 + "fontStyle": "normal", 851 + "lineHeight": 1.16, 852 + "underline": false, 853 + "overline": false, 854 + "linethrough": false, 855 + "textAlign": "center", 856 + "textBackgroundColor": "", 857 + "charSpacing": 0, 858 + "id": "276", 859 + "styles": {} 860 + } 861 + ], 862 + "files": {}, 863 + "parameters": {}, 864 + "responses": {}, 865 + "messageHandlers": {}, 866 + "viewport": [ 867 + 800, 868 + 600 869 + ], 870 + "title": "Concentrate", 871 + "timeout": "1000" 872 + }, 873 + { 874 + "type": "lab.canvas.Screen", 875 + "content": [ 876 + { 877 + "type": "circle", 878 + "version": "2.7.0", 879 + "originX": "center", 880 + "originY": "center", 881 + "left": 0, 882 + "top": 0, 883 + "width": "100", 884 + "height": 55, 885 + "fill": "transparent", 886 + "stroke": "#000000", 887 + "strokeWidth": 5, 888 + "strokeDashArray": null, 889 + "strokeLineCap": "butt", 890 + "strokeDashOffset": 0, 891 + "strokeLineJoin": "round", 892 + "strokeMiterLimit": 4, 893 + "scaleX": 1, 894 + "scaleY": 1, 895 + "angle": 0, 896 + "flipX": false, 897 + "flipY": false, 898 + "opacity": 1, 899 + "shadow": null, 900 + "visible": true, 901 + "clipTo": null, 902 + "backgroundColor": "", 903 + "fillRule": "nonzero", 904 + "paintFirst": "fill", 905 + "globalCompositeOperation": "source-over", 906 + "transformMatrix": null, 907 + "skewX": 0, 908 + "skewY": 0, 909 + "radius": 27.5, 910 + "startAngle": 0, 911 + "endAngle": 6.283185307179586, 912 + "id": "273" 913 + }, 914 + { 915 + "type": "i-text", 916 + "version": "2.7.0", 917 + "originX": "center", 918 + "originY": "center", 919 + "left": 0, 920 + "top": 0, 921 + "width": 25, 922 + "height": 56.5, 923 + "fill": "black", 924 + "stroke": null, 925 + "strokeWidth": 1, 926 + "strokeDashArray": null, 927 + "strokeLineCap": "butt", 928 + "strokeDashOffset": 0, 929 + "strokeLineJoin": "round", 930 + "strokeMiterLimit": 4, 931 + "scaleX": 1, 932 + "scaleY": 1, 933 + "angle": 0, 934 + "flipX": false, 935 + "flipY": false, 936 + "opacity": 1, 937 + "shadow": null, 938 + "visible": true, 939 + "clipTo": null, 940 + "backgroundColor": "", 941 + "fillRule": "nonzero", 942 + "paintFirst": "fill", 943 + "globalCompositeOperation": "source-over", 944 + "transformMatrix": null, 945 + "skewX": 0, 946 + "skewY": 0, 947 + "text": "3", 948 + "fontSize": "50", 949 + "fontWeight": "normal", 950 + "fontFamily": "sans-serif", 951 + "fontStyle": "normal", 952 + "lineHeight": 1.16, 953 + "underline": false, 954 + "overline": false, 955 + "linethrough": false, 956 + "textAlign": "center", 957 + "textBackgroundColor": "", 958 + "charSpacing": 0, 959 + "id": "274", 960 + "styles": {} 961 + } 962 + ], 963 + "files": {}, 964 + "parameters": {}, 965 + "responses": {}, 966 + "messageHandlers": {}, 967 + "viewport": [ 968 + 800, 969 + 600 970 + ], 971 + "title": "3", 972 + "timeout": "1000" 973 + }, 974 + { 975 + "type": "lab.canvas.Screen", 976 + "content": [ 977 + { 978 + "type": "circle", 979 + "version": "2.7.0", 980 + "originX": "center", 981 + "originY": "center", 982 + "left": 0, 983 + "top": 0, 984 + "width": "100", 985 + "height": 55, 986 + "fill": "transparent", 987 + "stroke": "#000000", 988 + "strokeWidth": 5, 989 + "strokeDashArray": null, 990 + "strokeLineCap": "butt", 991 + "strokeDashOffset": 0, 992 + "strokeLineJoin": "round", 993 + "strokeMiterLimit": 4, 994 + "scaleX": 1, 995 + "scaleY": 1, 996 + "angle": 0, 997 + "flipX": false, 998 + "flipY": false, 999 + "opacity": 1, 1000 + "shadow": null, 1001 + "visible": true, 1002 + "clipTo": null, 1003 + "backgroundColor": "", 1004 + "fillRule": "nonzero", 1005 + "paintFirst": "fill", 1006 + "globalCompositeOperation": "source-over", 1007 + "transformMatrix": null, 1008 + "skewX": 0, 1009 + "skewY": 0, 1010 + "radius": 27.5, 1011 + "startAngle": 0, 1012 + "endAngle": 6.283185307179586, 1013 + "id": "273" 1014 + }, 1015 + { 1016 + "type": "i-text", 1017 + "version": "2.7.0", 1018 + "originX": "center", 1019 + "originY": "center", 1020 + "left": 0, 1021 + "top": 0, 1022 + "width": 27.81, 1023 + "height": 56.5, 1024 + "fill": "black", 1025 + "stroke": null, 1026 + "strokeWidth": 1, 1027 + "strokeDashArray": null, 1028 + "strokeLineCap": "butt", 1029 + "strokeDashOffset": 0, 1030 + "strokeLineJoin": "round", 1031 + "strokeMiterLimit": 4, 1032 + "scaleX": 1, 1033 + "scaleY": 1, 1034 + "angle": 0, 1035 + "flipX": false, 1036 + "flipY": false, 1037 + "opacity": 1, 1038 + "shadow": null, 1039 + "visible": true, 1040 + "clipTo": null, 1041 + "backgroundColor": "", 1042 + "fillRule": "nonzero", 1043 + "paintFirst": "fill", 1044 + "globalCompositeOperation": "source-over", 1045 + "transformMatrix": null, 1046 + "skewX": 0, 1047 + "skewY": 0, 1048 + "text": "2", 1049 + "fontSize": "50", 1050 + "fontWeight": "normal", 1051 + "fontFamily": "sans-serif", 1052 + "fontStyle": "normal", 1053 + "lineHeight": 1.16, 1054 + "underline": false, 1055 + "overline": false, 1056 + "linethrough": false, 1057 + "textAlign": "center", 1058 + "textBackgroundColor": "", 1059 + "charSpacing": 0, 1060 + "id": "274", 1061 + "styles": {} 1062 + } 1063 + ], 1064 + "files": {}, 1065 + "parameters": {}, 1066 + "responses": {}, 1067 + "messageHandlers": {}, 1068 + "viewport": [ 1069 + 800, 1070 + 600 1071 + ], 1072 + "title": "2", 1073 + "timeout": "1000" 1074 + }, 1075 + { 1076 + "type": "lab.canvas.Screen", 1077 + "content": [ 1078 + { 1079 + "type": "circle", 1080 + "version": "2.7.0", 1081 + "originX": "center", 1082 + "originY": "center", 1083 + "left": 0, 1084 + "top": 0, 1085 + "width": "100", 1086 + "height": 55, 1087 + "fill": "transparent", 1088 + "stroke": "#000000", 1089 + "strokeWidth": 5, 1090 + "strokeDashArray": null, 1091 + "strokeLineCap": "butt", 1092 + "strokeDashOffset": 0, 1093 + "strokeLineJoin": "round", 1094 + "strokeMiterLimit": 4, 1095 + "scaleX": 1, 1096 + "scaleY": 1, 1097 + "angle": 0, 1098 + "flipX": false, 1099 + "flipY": false, 1100 + "opacity": 1, 1101 + "shadow": null, 1102 + "visible": true, 1103 + "clipTo": null, 1104 + "backgroundColor": "", 1105 + "fillRule": "nonzero", 1106 + "paintFirst": "fill", 1107 + "globalCompositeOperation": "source-over", 1108 + "transformMatrix": null, 1109 + "skewX": 0, 1110 + "skewY": 0, 1111 + "radius": 27.5, 1112 + "startAngle": 0, 1113 + "endAngle": 6.283185307179586, 1114 + "id": "273" 1115 + }, 1116 + { 1117 + "type": "i-text", 1118 + "version": "2.7.0", 1119 + "originX": "center", 1120 + "originY": "center", 1121 + "left": 0, 1122 + "top": 0, 1123 + "width": 27.81, 1124 + "height": 56.5, 1125 + "fill": "black", 1126 + "stroke": null, 1127 + "strokeWidth": 1, 1128 + "strokeDashArray": null, 1129 + "strokeLineCap": "butt", 1130 + "strokeDashOffset": 0, 1131 + "strokeLineJoin": "round", 1132 + "strokeMiterLimit": 4, 1133 + "scaleX": 1, 1134 + "scaleY": 1, 1135 + "angle": 0, 1136 + "flipX": false, 1137 + "flipY": false, 1138 + "opacity": 1, 1139 + "shadow": null, 1140 + "visible": true, 1141 + "clipTo": null, 1142 + "backgroundColor": "", 1143 + "fillRule": "nonzero", 1144 + "paintFirst": "fill", 1145 + "globalCompositeOperation": "source-over", 1146 + "transformMatrix": null, 1147 + "skewX": 0, 1148 + "skewY": 0, 1149 + "text": "1", 1150 + "fontSize": "50", 1151 + "fontWeight": "normal", 1152 + "fontFamily": "sans-serif", 1153 + "fontStyle": "normal", 1154 + "lineHeight": 1.16, 1155 + "underline": false, 1156 + "overline": false, 1157 + "linethrough": false, 1158 + "textAlign": "center", 1159 + "textBackgroundColor": "", 1160 + "charSpacing": 0, 1161 + "id": "274", 1162 + "styles": {} 1163 + } 1164 + ], 1165 + "files": {}, 1166 + "parameters": {}, 1167 + "responses": {}, 1168 + "messageHandlers": {}, 1169 + "viewport": [ 1170 + 800, 1171 + 600 1172 + ], 1173 + "title": "1", 1174 + "timeout": "1000" 1175 + }, 1176 + { 1177 + "type": "lab.flow.Loop", 1178 + "files": {}, 1179 + "parameters": {}, 1180 + "templateParameters": [], 1181 + "sample": { 1182 + "mode": "draw", 1183 + "n": "" 1184 + }, 1185 + "responses": {}, 1186 + "messageHandlers": { 1187 + "before:prepare": function anonymous( 1188 + ) { 1189 + function shuffle(a) { 1190 + var j, x, i 1191 + for (i = a.length - 1; i > 0; i--) { 1192 + j = Math.floor(Math.random() * (i + 1)) 1193 + x = a[i] 1194 + a[i] = a[j] 1195 + a[j] = x 1196 + } 1197 + return a 1198 + } 1199 + 1200 + let tasksParameters = [] 1201 + const blocks = this.parameters.block === 'mixed' ? ['shape', 'filling'] : [this.parameters.block, this.parameters.block] 1202 + 1203 + function trialConstructor(block, dots, form, cor_response) { 1204 + return { 1205 + 'type': block, 1206 + 'dots': dots, 1207 + 'form': form, 1208 + 'cor_response': cor_response 1209 + } 1210 + } 1211 + 1212 + const numberBlocks = Math.ceil(this.parameters.num_trials / 4) 1213 + 1214 + for (let i = 1; i <= numberBlocks; i++){ 1215 + for (let block of blocks){ 1216 + if (block === 'shape'){ 1217 + tasksParameters = tasksParameters.concat(trialConstructor(block, 2, 'diamond', 'b')) 1218 + tasksParameters = tasksParameters.concat(trialConstructor(block, 2, 'square', 'n')) 1219 + tasksParameters = tasksParameters.concat(trialConstructor(block, 3, 'diamond', 'b')) 1220 + tasksParameters = tasksParameters.concat(trialConstructor(block, 3, 'square', 'n')) 1221 + } else if(block === 'filling'){ 1222 + tasksParameters = tasksParameters.concat(trialConstructor(block, 2, 'diamond', 'b')) 1223 + tasksParameters = tasksParameters.concat(trialConstructor(block, 2, 'square', 'b')) 1224 + tasksParameters = tasksParameters.concat(trialConstructor(block, 3, 'diamond', 'n')) 1225 + tasksParameters = tasksParameters.concat(trialConstructor(block, 3, 'square', 'n')) 1226 + } 1227 + } 1228 + } 1229 + 1230 + const tasksParametersShuffled = shuffle(tasksParameters) 1231 + // assign options values to parameters of this task 1232 + this.options.templateParameters = tasksParametersShuffled.slice(0, this.parameters.num_trials) 1233 + } 1234 + }, 1235 + "title": "Trial loop", 1236 + "shuffleGroups": [], 1237 + "template": { 1238 + "type": "lab.flow.Sequence", 1239 + "files": {}, 1240 + "parameters": {}, 1241 + "responses": {}, 1242 + "messageHandlers": {}, 1243 + "title": "Trial sequence", 1244 + "content": [ 1245 + { 1246 + "type": "lab.canvas.Screen", 1247 + "content": [ 1248 + { 1249 + "type": "rect", 1250 + "version": "2.7.0", 1251 + "originX": "center", 1252 + "originY": "center", 1253 + "left": 0, 1254 + "top": 0, 1255 + "width": 400, 1256 + "height": 300, 1257 + "fill": "transparent", 1258 + "stroke": "#000000", 1259 + "strokeWidth": 1, 1260 + "strokeDashArray": null, 1261 + "strokeLineCap": "butt", 1262 + "strokeDashOffset": 0, 1263 + "strokeLineJoin": "round", 1264 + "strokeMiterLimit": 4, 1265 + "scaleX": 1, 1266 + "scaleY": 1, 1267 + "angle": 0, 1268 + "flipX": false, 1269 + "flipY": false, 1270 + "opacity": 1, 1271 + "shadow": null, 1272 + "visible": true, 1273 + "clipTo": null, 1274 + "backgroundColor": "", 1275 + "fillRule": "nonzero", 1276 + "paintFirst": "fill", 1277 + "globalCompositeOperation": "source-over", 1278 + "transformMatrix": null, 1279 + "skewX": 0, 1280 + "skewY": 0, 1281 + "rx": 0, 1282 + "ry": 0, 1283 + "id": "17" 1284 + }, 1285 + { 1286 + "type": "line", 1287 + "version": "2.7.0", 1288 + "originX": "center", 1289 + "originY": "center", 1290 + "left": 0, 1291 + "top": 0, 1292 + "width": 400, 1293 + "height": 0, 1294 + "fill": "rgb(0,0,0)", 1295 + "stroke": "black", 1296 + "strokeWidth": 1, 1297 + "strokeDashArray": null, 1298 + "strokeLineCap": "butt", 1299 + "strokeDashOffset": 0, 1300 + "strokeLineJoin": "round", 1301 + "strokeMiterLimit": 4, 1302 + "scaleX": 1, 1303 + "scaleY": 1, 1304 + "angle": 0, 1305 + "flipX": false, 1306 + "flipY": false, 1307 + "opacity": 1, 1308 + "shadow": null, 1309 + "visible": true, 1310 + "clipTo": null, 1311 + "backgroundColor": "", 1312 + "fillRule": "nonzero", 1313 + "paintFirst": "fill", 1314 + "globalCompositeOperation": "source-over", 1315 + "transformMatrix": null, 1316 + "skewX": 0, 1317 + "skewY": 0, 1318 + "id": "90", 1319 + "x1": -200, 1320 + "x2": 200, 1321 + "y1": 0, 1322 + "y2": 0 1323 + }, 1324 + { 1325 + "type": "rect", 1326 + "version": "2.7.0", 1327 + "originX": "center", 1328 + "originY": "center", 1329 + "left": "${this.parameters.form === 'square' ? 0 : 1000}", 1330 + "top": "${this.parameters.type === 'shape' ? -75 : 75}", 1331 + "width": "100", 1332 + "height": "100", 1333 + "fill": "transparent", 1334 + "stroke": "#000000", 1335 + "strokeWidth": 1, 1336 + "strokeDashArray": null, 1337 + "strokeLineCap": "butt", 1338 + "strokeDashOffset": 0, 1339 + "strokeLineJoin": "round", 1340 + "strokeMiterLimit": 4, 1341 + "scaleX": 1, 1342 + "scaleY": 1, 1343 + "angle": 0, 1344 + "flipX": false, 1345 + "flipY": false, 1346 + "opacity": 1, 1347 + "shadow": null, 1348 + "visible": true, 1349 + "clipTo": null, 1350 + "backgroundColor": "", 1351 + "fillRule": "nonzero", 1352 + "paintFirst": "fill", 1353 + "globalCompositeOperation": "source-over", 1354 + "transformMatrix": null, 1355 + "skewX": 0, 1356 + "skewY": 0, 1357 + "rx": 0, 1358 + "ry": 0, 1359 + "id": "91" 1360 + }, 1361 + { 1362 + "type": "circle", 1363 + "version": "2.7.0", 1364 + "originX": "center", 1365 + "originY": "center", 1366 + "left": "0", 1367 + "top": "${this.parameters.type === 'shape' ? -50 : 50}", 1368 + "width": 20, 1369 + "height": 20, 1370 + "fill": "black", 1371 + "stroke": null, 1372 + "strokeWidth": 1, 1373 + "strokeDashArray": null, 1374 + "strokeLineCap": "butt", 1375 + "strokeDashOffset": 0, 1376 + "strokeLineJoin": "round", 1377 + "strokeMiterLimit": 4, 1378 + "scaleX": 1, 1379 + "scaleY": 1, 1380 + "angle": 0, 1381 + "flipX": false, 1382 + "flipY": false, 1383 + "opacity": 1, 1384 + "shadow": null, 1385 + "visible": true, 1386 + "clipTo": null, 1387 + "backgroundColor": "", 1388 + "fillRule": "nonzero", 1389 + "paintFirst": "fill", 1390 + "globalCompositeOperation": "source-over", 1391 + "transformMatrix": null, 1392 + "skewX": 0, 1393 + "skewY": 0, 1394 + "radius": 10, 1395 + "startAngle": 0, 1396 + "endAngle": 6.283185307179586, 1397 + "id": "105" 1398 + }, 1399 + { 1400 + "type": "rect", 1401 + "version": "2.7.0", 1402 + "originX": "center", 1403 + "originY": "center", 1404 + "left": "${this.parameters.form === 'diamond' ? 0 : 1000}", 1405 + "top": "${this.parameters.type === 'shape' ? -75 : 75}", 1406 + "width": 80, 1407 + "height": 80, 1408 + "fill": "transparent", 1409 + "stroke": "#000000", 1410 + "strokeWidth": 1, 1411 + "strokeDashArray": null, 1412 + "strokeLineCap": "butt", 1413 + "strokeDashOffset": 0, 1414 + "strokeLineJoin": "round", 1415 + "strokeMiterLimit": 4, 1416 + "scaleX": 1, 1417 + "scaleY": 1, 1418 + "angle": 315, 1419 + "flipX": false, 1420 + "flipY": false, 1421 + "opacity": 1, 1422 + "shadow": null, 1423 + "visible": true, 1424 + "clipTo": null, 1425 + "backgroundColor": "", 1426 + "fillRule": "nonzero", 1427 + "paintFirst": "fill", 1428 + "globalCompositeOperation": "source-over", 1429 + "transformMatrix": null, 1430 + "skewX": 0, 1431 + "skewY": 0, 1432 + "rx": 0, 1433 + "ry": 0, 1434 + "id": "98" 1435 + }, 1436 + { 1437 + "type": "circle", 1438 + "version": "2.7.0", 1439 + "originX": "center", 1440 + "originY": "center", 1441 + "left": "${this.parameters.dots === 3 ? 0 : 1000}", 1442 + "top": "${this.parameters.type === 'shape' ? -75 : 75}", 1443 + "width": 20, 1444 + "height": 20, 1445 + "fill": "black", 1446 + "stroke": null, 1447 + "strokeWidth": 1, 1448 + "strokeDashArray": null, 1449 + "strokeLineCap": "butt", 1450 + "strokeDashOffset": 0, 1451 + "strokeLineJoin": "round", 1452 + "strokeMiterLimit": 4, 1453 + "scaleX": 1, 1454 + "scaleY": 1, 1455 + "angle": 0, 1456 + "flipX": false, 1457 + "flipY": false, 1458 + "opacity": 1, 1459 + "shadow": null, 1460 + "visible": true, 1461 + "clipTo": null, 1462 + "backgroundColor": "", 1463 + "fillRule": "nonzero", 1464 + "paintFirst": "fill", 1465 + "globalCompositeOperation": "source-over", 1466 + "transformMatrix": null, 1467 + "skewX": 0, 1468 + "skewY": 0, 1469 + "radius": 10, 1470 + "startAngle": 0, 1471 + "endAngle": 6.283185307179586, 1472 + "id": "103" 1473 + }, 1474 + { 1475 + "type": "circle", 1476 + "version": "2.7.0", 1477 + "originX": "center", 1478 + "originY": "center", 1479 + "left": "0", 1480 + "top": "${this.parameters.type === 'shape' ? -100 : 100}", 1481 + "width": 20, 1482 + "height": 20, 1483 + "fill": "black", 1484 + "stroke": null, 1485 + "strokeWidth": 1, 1486 + "strokeDashArray": null, 1487 + "strokeLineCap": "butt", 1488 + "strokeDashOffset": 0, 1489 + "strokeLineJoin": "round", 1490 + "strokeMiterLimit": 4, 1491 + "scaleX": 1, 1492 + "scaleY": 1, 1493 + "angle": 0, 1494 + "flipX": false, 1495 + "flipY": false, 1496 + "opacity": 1, 1497 + "shadow": null, 1498 + "visible": true, 1499 + "clipTo": null, 1500 + "backgroundColor": "", 1501 + "fillRule": "nonzero", 1502 + "paintFirst": "fill", 1503 + "globalCompositeOperation": "source-over", 1504 + "transformMatrix": null, 1505 + "skewX": 0, 1506 + "skewY": 0, 1507 + "radius": 10, 1508 + "startAngle": 0, 1509 + "endAngle": 6.283185307179586, 1510 + "id": "104" 1511 + }, 1512 + { 1513 + "type": "i-text", 1514 + "version": "2.7.0", 1515 + "originX": "center", 1516 + "originY": "center", 1517 + "left": 0, 1518 + "top": "-195", 1519 + "width": 78.2, 1520 + "height": 36.16, 1521 + "fill": "#000000", 1522 + "stroke": "#000000", 1523 + "strokeWidth": 0, 1524 + "strokeDashArray": null, 1525 + "strokeLineCap": "butt", 1526 + "strokeDashOffset": 0, 1527 + "strokeLineJoin": "round", 1528 + "strokeMiterLimit": 4, 1529 + "scaleX": 1, 1530 + "scaleY": 1, 1531 + "angle": 0, 1532 + "flipX": false, 1533 + "flipY": false, 1534 + "opacity": 1, 1535 + "shadow": null, 1536 + "visible": true, 1537 + "clipTo": null, 1538 + "backgroundColor": "", 1539 + "fillRule": "nonzero", 1540 + "paintFirst": "fill", 1541 + "globalCompositeOperation": "source-over", 1542 + "transformMatrix": null, 1543 + "skewX": 0, 1544 + "skewY": 0, 1545 + "text": "Shape", 1546 + "fontSize": 32, 1547 + "fontWeight": "normal", 1548 + "fontFamily": "sans-serif", 1549 + "fontStyle": "normal", 1550 + "lineHeight": 1.16, 1551 + "underline": false, 1552 + "overline": false, 1553 + "linethrough": false, 1554 + "textAlign": "center", 1555 + "textBackgroundColor": "", 1556 + "charSpacing": 0, 1557 + "id": "112", 1558 + "styles": {} 1559 + }, 1560 + { 1561 + "type": "i-text", 1562 + "version": "2.7.0", 1563 + "originX": "center", 1564 + "originY": "center", 1565 + "left": 0, 1566 + "top": "195", 1567 + "width": 85.36, 1568 + "height": 36.16, 1569 + "fill": "#000000", 1570 + "stroke": null, 1571 + "strokeWidth": 1, 1572 + "strokeDashArray": null, 1573 + "strokeLineCap": "butt", 1574 + "strokeDashOffset": 0, 1575 + "strokeLineJoin": "round", 1576 + "strokeMiterLimit": 4, 1577 + "scaleX": 1, 1578 + "scaleY": 1, 1579 + "angle": 0, 1580 + "flipX": false, 1581 + "flipY": false, 1582 + "opacity": 1, 1583 + "shadow": null, 1584 + "visible": true, 1585 + "clipTo": null, 1586 + "backgroundColor": "", 1587 + "fillRule": "nonzero", 1588 + "paintFirst": "fill", 1589 + "globalCompositeOperation": "source-over", 1590 + "transformMatrix": null, 1591 + "skewX": 0, 1592 + "skewY": 0, 1593 + "text": "Filling", 1594 + "fontSize": 32, 1595 + "fontWeight": "normal", 1596 + "fontFamily": "sans-serif", 1597 + "fontStyle": "normal", 1598 + "lineHeight": 1.16, 1599 + "underline": false, 1600 + "overline": false, 1601 + "linethrough": false, 1602 + "textAlign": "center", 1603 + "textBackgroundColor": "", 1604 + "charSpacing": 0, 1605 + "id": "113", 1606 + "styles": {} 1607 + } 1608 + ], 1609 + "files": {}, 1610 + "parameters": {}, 1611 + "responses": { 1612 + "keypress(b)": "b", 1613 + "keypress(n)": "n" 1614 + }, 1615 + "messageHandlers": { 1616 + "run": function anonymous( 1617 + ) { 1618 + this.data.correct = 'empty' 1619 + } 1620 + }, 1621 + "viewport": [ 1622 + 800, 1623 + 600 1624 + ], 1625 + "title": "Stimulus", 1626 + "correctResponse": "${parameters.cor_response}", 1627 + "timeout": "5000" 1628 + }, 1629 + { 1630 + "type": "lab.canvas.Screen", 1631 + "content": [ 1632 + { 1633 + "type": "i-text", 1634 + "version": "2.7.0", 1635 + "originX": "center", 1636 + "originY": "center", 1637 + "left": 0, 1638 + "top": 0, 1639 + "width": 655.95, 1640 + "height": 36.16, 1641 + "fill": "black", 1642 + "stroke": null, 1643 + "strokeWidth": 1, 1644 + "strokeDashArray": null, 1645 + "strokeLineCap": "butt", 1646 + "strokeDashOffset": 0, 1647 + "strokeLineJoin": "round", 1648 + "strokeMiterLimit": 4, 1649 + "scaleX": 1, 1650 + "scaleY": 1, 1651 + "angle": 0, 1652 + "flipX": false, 1653 + "flipY": false, 1654 + "opacity": 1, 1655 + "shadow": null, 1656 + "visible": true, 1657 + "clipTo": null, 1658 + "backgroundColor": "", 1659 + "fillRule": "nonzero", 1660 + "paintFirst": "fill", 1661 + "globalCompositeOperation": "source-over", 1662 + "transformMatrix": null, 1663 + "skewX": 0, 1664 + "skewY": 0, 1665 + "text": "${this.state.correct ? '' : 'That was the wrong key.'} ", 1666 + "fontSize": 32, 1667 + "fontWeight": "normal", 1668 + "fontFamily": "sans-serif", 1669 + "fontStyle": "normal", 1670 + "lineHeight": 1.16, 1671 + "underline": false, 1672 + "overline": false, 1673 + "linethrough": false, 1674 + "textAlign": "center", 1675 + "textBackgroundColor": "", 1676 + "charSpacing": 0, 1677 + "id": "37", 1678 + "styles": {} 1679 + }, 1680 + { 1681 + "type": "i-text", 1682 + "version": "2.7.0", 1683 + "originX": "center", 1684 + "originY": "center", 1685 + "left": 0, 1686 + "top": 0, 1687 + "width": 688.19, 1688 + "height": 36.16, 1689 + "fill": "black", 1690 + "stroke": null, 1691 + "strokeWidth": 1, 1692 + "strokeDashArray": null, 1693 + "strokeLineCap": "butt", 1694 + "strokeDashOffset": 0, 1695 + "strokeLineJoin": "round", 1696 + "strokeMiterLimit": 4, 1697 + "scaleX": 1, 1698 + "scaleY": 1, 1699 + "angle": 0, 1700 + "flipX": false, 1701 + "flipY": false, 1702 + "opacity": 1, 1703 + "shadow": null, 1704 + "visible": true, 1705 + "clipTo": null, 1706 + "backgroundColor": "", 1707 + "fillRule": "nonzero", 1708 + "paintFirst": "fill", 1709 + "globalCompositeOperation": "source-over", 1710 + "transformMatrix": null, 1711 + "skewX": 0, 1712 + "skewY": 0, 1713 + "text": "${this.state.correct === 'empty' ? 'The time is up' : ''} ", 1714 + "fontSize": 32, 1715 + "fontWeight": "normal", 1716 + "fontFamily": "sans-serif", 1717 + "fontStyle": "normal", 1718 + "lineHeight": 1.16, 1719 + "underline": false, 1720 + "overline": false, 1721 + "linethrough": false, 1722 + "textAlign": "center", 1723 + "textBackgroundColor": "", 1724 + "charSpacing": 0, 1725 + "id": "310", 1726 + "styles": {} 1727 + }, 1728 + { 1729 + "type": "rect", 1730 + "version": "2.7.0", 1731 + "originX": "center", 1732 + "originY": "center", 1733 + "left": 0, 1734 + "top": 0, 1735 + "width": 400, 1736 + "height": 300, 1737 + "fill": "transparent", 1738 + "stroke": "#000000", 1739 + "strokeWidth": 1, 1740 + "strokeDashArray": null, 1741 + "strokeLineCap": "butt", 1742 + "strokeDashOffset": 0, 1743 + "strokeLineJoin": "round", 1744 + "strokeMiterLimit": 4, 1745 + "scaleX": 1, 1746 + "scaleY": 1, 1747 + "angle": 0, 1748 + "flipX": false, 1749 + "flipY": false, 1750 + "opacity": 1, 1751 + "shadow": null, 1752 + "visible": true, 1753 + "clipTo": null, 1754 + "backgroundColor": "", 1755 + "fillRule": "nonzero", 1756 + "paintFirst": "fill", 1757 + "globalCompositeOperation": "source-over", 1758 + "transformMatrix": null, 1759 + "skewX": 0, 1760 + "skewY": 0, 1761 + "rx": 0, 1762 + "ry": 0, 1763 + "id": "36" 1764 + }, 1765 + { 1766 + "type": "line", 1767 + "version": "2.7.0", 1768 + "originX": "center", 1769 + "originY": "center", 1770 + "left": 0, 1771 + "top": "${this.state.correct === true ? 0 : 1000} ", 1772 + "width": 400, 1773 + "height": 0, 1774 + "fill": "rgb(0,0,0)", 1775 + "stroke": "black", 1776 + "strokeWidth": 1, 1777 + "strokeDashArray": null, 1778 + "strokeLineCap": "butt", 1779 + "strokeDashOffset": 0, 1780 + "strokeLineJoin": "round", 1781 + "strokeMiterLimit": 4, 1782 + "scaleX": 1, 1783 + "scaleY": 1, 1784 + "angle": 0, 1785 + "flipX": false, 1786 + "flipY": false, 1787 + "opacity": 1, 1788 + "shadow": null, 1789 + "visible": true, 1790 + "clipTo": null, 1791 + "backgroundColor": "", 1792 + "fillRule": "nonzero", 1793 + "paintFirst": "fill", 1794 + "globalCompositeOperation": "source-over", 1795 + "transformMatrix": null, 1796 + "skewX": 0, 1797 + "skewY": 0, 1798 + "id": "125", 1799 + "x1": -200, 1800 + "x2": 200, 1801 + "y1": 0, 1802 + "y2": 0 1803 + }, 1804 + { 1805 + "type": "i-text", 1806 + "version": "2.7.0", 1807 + "originX": "center", 1808 + "originY": "center", 1809 + "left": 0, 1810 + "top": "-195", 1811 + "width": 78.2, 1812 + "height": 36.16, 1813 + "fill": "#000000", 1814 + "stroke": null, 1815 + "strokeWidth": 1, 1816 + "strokeDashArray": null, 1817 + "strokeLineCap": "butt", 1818 + "strokeDashOffset": 0, 1819 + "strokeLineJoin": "round", 1820 + "strokeMiterLimit": 4, 1821 + "scaleX": 1, 1822 + "scaleY": 1, 1823 + "angle": 0, 1824 + "flipX": false, 1825 + "flipY": false, 1826 + "opacity": 1, 1827 + "shadow": null, 1828 + "visible": true, 1829 + "clipTo": null, 1830 + "backgroundColor": "", 1831 + "fillRule": "nonzero", 1832 + "paintFirst": "fill", 1833 + "globalCompositeOperation": "source-over", 1834 + "transformMatrix": null, 1835 + "skewX": 0, 1836 + "skewY": 0, 1837 + "text": "Shape", 1838 + "fontSize": 32, 1839 + "fontWeight": "normal", 1840 + "fontFamily": "sans-serif", 1841 + "fontStyle": "normal", 1842 + "lineHeight": 1.16, 1843 + "underline": false, 1844 + "overline": false, 1845 + "linethrough": false, 1846 + "textAlign": "center", 1847 + "textBackgroundColor": "", 1848 + "charSpacing": 0, 1849 + "id": "126", 1850 + "styles": {} 1851 + }, 1852 + { 1853 + "type": "i-text", 1854 + "version": "2.7.0", 1855 + "originX": "center", 1856 + "originY": "center", 1857 + "left": 0, 1858 + "top": "195", 1859 + "width": 85.36, 1860 + "height": 36.16, 1861 + "fill": "#000000", 1862 + "stroke": null, 1863 + "strokeWidth": 1, 1864 + "strokeDashArray": null, 1865 + "strokeLineCap": "butt", 1866 + "strokeDashOffset": 0, 1867 + "strokeLineJoin": "round", 1868 + "strokeMiterLimit": 4, 1869 + "scaleX": 1, 1870 + "scaleY": 1, 1871 + "angle": 0, 1872 + "flipX": false, 1873 + "flipY": false, 1874 + "opacity": 1, 1875 + "shadow": null, 1876 + "visible": true, 1877 + "clipTo": null, 1878 + "backgroundColor": "", 1879 + "fillRule": "nonzero", 1880 + "paintFirst": "fill", 1881 + "globalCompositeOperation": "source-over", 1882 + "transformMatrix": null, 1883 + "skewX": 0, 1884 + "skewY": 0, 1885 + "text": "Filling", 1886 + "fontSize": 32, 1887 + "fontWeight": "normal", 1888 + "fontFamily": "sans-serif", 1889 + "fontStyle": "normal", 1890 + "lineHeight": 1.16, 1891 + "underline": false, 1892 + "overline": false, 1893 + "linethrough": false, 1894 + "textAlign": "center", 1895 + "textBackgroundColor": "", 1896 + "charSpacing": 0, 1897 + "id": "127", 1898 + "styles": {} 1899 + } 1900 + ], 1901 + "files": {}, 1902 + "parameters": {}, 1903 + "responses": {}, 1904 + "messageHandlers": { 1905 + "before:prepare": function anonymous( 1906 + ) { 1907 + 1908 + this.data.trial_number = 1 + parseInt(this.options.id.split('_')[this.options.id.split('_').length-2]); 1909 + this.data.condition = this.parameters.type.charAt(0).toUpperCase() + this.parameters.type.slice(1); 1910 + this.data.reaction_time = this.state.duration; 1911 + 1912 + if(this.state.response === this.parameters.cor_response){ 1913 + this.data.correct_response = true; 1914 + } else { 1915 + this.data.correct_response = false; 1916 + } 1917 + 1918 + this.data.response_given = this.state.correct === 'empty' ? 'no' : 'yes'; 1919 + 1920 + 1921 + 1922 + 1923 + 1924 + } 1925 + }, 1926 + "viewport": [ 1927 + 800, 1928 + 600 1929 + ], 1930 + "title": "Feedback", 1931 + "timeout": "1000", 1932 + "tardy": true 1933 + }, 1934 + { 1935 + "type": "lab.canvas.Screen", 1936 + "content": [ 1937 + { 1938 + "type": "rect", 1939 + "version": "2.7.0", 1940 + "originX": "center", 1941 + "originY": "center", 1942 + "left": 0, 1943 + "top": 0, 1944 + "width": 400, 1945 + "height": 300, 1946 + "fill": "transparent", 1947 + "stroke": "#000000", 1948 + "strokeWidth": 1, 1949 + "strokeDashArray": null, 1950 + "strokeLineCap": "butt", 1951 + "strokeDashOffset": 0, 1952 + "strokeLineJoin": "round", 1953 + "strokeMiterLimit": 4, 1954 + "scaleX": 1, 1955 + "scaleY": 1, 1956 + "angle": 0, 1957 + "flipX": false, 1958 + "flipY": false, 1959 + "opacity": 1, 1960 + "shadow": null, 1961 + "visible": true, 1962 + "clipTo": null, 1963 + "backgroundColor": "", 1964 + "fillRule": "nonzero", 1965 + "paintFirst": "fill", 1966 + "globalCompositeOperation": "source-over", 1967 + "transformMatrix": null, 1968 + "skewX": 0, 1969 + "skewY": 0, 1970 + "rx": 0, 1971 + "ry": 0, 1972 + "id": "123" 1973 + }, 1974 + { 1975 + "type": "line", 1976 + "version": "2.7.0", 1977 + "originX": "center", 1978 + "originY": "center", 1979 + "left": 0, 1980 + "top": 0, 1981 + "width": "400", 1982 + "height": 0, 1983 + "fill": "rgb(0,0,0)", 1984 + "stroke": "black", 1985 + "strokeWidth": 1, 1986 + "strokeDashArray": null, 1987 + "strokeLineCap": "butt", 1988 + "strokeDashOffset": 0, 1989 + "strokeLineJoin": "round", 1990 + "strokeMiterLimit": 4, 1991 + "scaleX": 1, 1992 + "scaleY": 1, 1993 + "angle": 0, 1994 + "flipX": false, 1995 + "flipY": false, 1996 + "opacity": 1, 1997 + "shadow": null, 1998 + "visible": true, 1999 + "clipTo": null, 2000 + "backgroundColor": "", 2001 + "fillRule": "nonzero", 2002 + "paintFirst": "fill", 2003 + "globalCompositeOperation": "source-over", 2004 + "transformMatrix": null, 2005 + "skewX": 0, 2006 + "skewY": 0, 2007 + "id": "124", 2008 + "x1": -50, 2009 + "x2": 50, 2010 + "y1": 0, 2011 + "y2": 0 2012 + }, 2013 + { 2014 + "type": "i-text", 2015 + "version": "2.7.0", 2016 + "originX": "center", 2017 + "originY": "center", 2018 + "left": 0, 2019 + "top": -195, 2020 + "width": 78.2, 2021 + "height": 36.16, 2022 + "fill": "${this.parameters.type === 'shape' ? 'black' : 'lightgrey'}", 2023 + "stroke": null, 2024 + "strokeWidth": 1, 2025 + "strokeDashArray": null, 2026 + "strokeLineCap": "butt", 2027 + "strokeDashOffset": 0, 2028 + "strokeLineJoin": "round", 2029 + "strokeMiterLimit": 4, 2030 + "scaleX": 1, 2031 + "scaleY": 1, 2032 + "angle": 0, 2033 + "flipX": false, 2034 + "flipY": false, 2035 + "opacity": 1, 2036 + "shadow": null, 2037 + "visible": true, 2038 + "clipTo": null, 2039 + "backgroundColor": "", 2040 + "fillRule": "nonzero", 2041 + "paintFirst": "fill", 2042 + "globalCompositeOperation": "source-over", 2043 + "transformMatrix": null, 2044 + "skewX": 0, 2045 + "skewY": 0, 2046 + "text": "Shape", 2047 + "fontSize": 32, 2048 + "fontWeight": "normal", 2049 + "fontFamily": "sans-serif", 2050 + "fontStyle": "normal", 2051 + "lineHeight": 1.16, 2052 + "underline": false, 2053 + "overline": false, 2054 + "linethrough": false, 2055 + "textAlign": "center", 2056 + "textBackgroundColor": "", 2057 + "charSpacing": 0, 2058 + "id": "128", 2059 + "styles": {} 2060 + }, 2061 + { 2062 + "type": "i-text", 2063 + "version": "2.7.0", 2064 + "originX": "center", 2065 + "originY": "center", 2066 + "left": 0, 2067 + "top": "195", 2068 + "width": 85.36, 2069 + "height": 36.16, 2070 + "fill": "${this.parameters.type === 'filling' ? 'black' : 'lightgrey'}", 2071 + "stroke": null, 2072 + "strokeWidth": 1, 2073 + "strokeDashArray": null, 2074 + "strokeLineCap": "butt", 2075 + "strokeDashOffset": 0, 2076 + "strokeLineJoin": "round", 2077 + "strokeMiterLimit": 4, 2078 + "scaleX": 1, 2079 + "scaleY": 1, 2080 + "angle": 0, 2081 + "flipX": false, 2082 + "flipY": false, 2083 + "opacity": 1, 2084 + "shadow": null, 2085 + "visible": true, 2086 + "clipTo": null, 2087 + "backgroundColor": "", 2088 + "fillRule": "nonzero", 2089 + "paintFirst": "fill", 2090 + "globalCompositeOperation": "source-over", 2091 + "transformMatrix": null, 2092 + "skewX": 0, 2093 + "skewY": 0, 2094 + "text": "Filling", 2095 + "fontSize": 32, 2096 + "fontWeight": "normal", 2097 + "fontFamily": "sans-serif", 2098 + "fontStyle": "normal", 2099 + "lineHeight": 1.16, 2100 + "underline": false, 2101 + "overline": false, 2102 + "linethrough": false, 2103 + "textAlign": "center", 2104 + "textBackgroundColor": "", 2105 + "charSpacing": 0, 2106 + "id": "129", 2107 + "styles": {} 2108 + }, 2109 + { 2110 + "type": "rect", 2111 + "version": "2.7.0", 2112 + "originX": "center", 2113 + "originY": "center", 2114 + "left": "120", 2115 + "top": "${this.parameters.type === 'shape' ? -90 : 1000}", 2116 + "width": 80, 2117 + "height": 80, 2118 + "fill": "transparent", 2119 + "stroke": "#000000", 2120 + "strokeWidth": 1, 2121 + "strokeDashArray": null, 2122 + "strokeLineCap": "butt", 2123 + "strokeDashOffset": 0, 2124 + "strokeLineJoin": "round", 2125 + "strokeMiterLimit": 4, 2126 + "scaleX": 1, 2127 + "scaleY": 1, 2128 + "angle": 0, 2129 + "flipX": false, 2130 + "flipY": false, 2131 + "opacity": 1, 2132 + "shadow": null, 2133 + "visible": true, 2134 + "clipTo": null, 2135 + "backgroundColor": "", 2136 + "fillRule": "nonzero", 2137 + "paintFirst": "fill", 2138 + "globalCompositeOperation": "source-over", 2139 + "transformMatrix": null, 2140 + "skewX": 0, 2141 + "skewY": 0, 2142 + "rx": 0, 2143 + "ry": 0, 2144 + "id": "130" 2145 + }, 2146 + { 2147 + "type": "rect", 2148 + "version": "2.7.0", 2149 + "originX": "center", 2150 + "originY": "center", 2151 + "left": "-120", 2152 + "top": "${this.parameters.type === 'shape' ? -90 : 1000}", 2153 + "width": 60, 2154 + "height": 60, 2155 + "fill": "transparent", 2156 + "stroke": "#000000", 2157 + "strokeWidth": 1, 2158 + "strokeDashArray": null, 2159 + "strokeLineCap": "butt", 2160 + "strokeDashOffset": 0, 2161 + "strokeLineJoin": "round", 2162 + "strokeMiterLimit": 4, 2163 + "scaleX": 1, 2164 + "scaleY": 1, 2165 + "angle": 315, 2166 + "flipX": false, 2167 + "flipY": false, 2168 + "opacity": 1, 2169 + "shadow": null, 2170 + "visible": true, 2171 + "clipTo": null, 2172 + "backgroundColor": "", 2173 + "fillRule": "nonzero", 2174 + "paintFirst": "fill", 2175 + "globalCompositeOperation": "source-over", 2176 + "transformMatrix": null, 2177 + "skewX": 0, 2178 + "skewY": 0, 2179 + "rx": 0, 2180 + "ry": 0, 2181 + "id": "131" 2182 + }, 2183 + { 2184 + "type": "i-text", 2185 + "version": "2.7.0", 2186 + "originX": "center", 2187 + "originY": "center", 2188 + "left": "-120", 2189 + "top": "${this.parameters.type === 'shape' ? -25 : 1000}", 2190 + "width": 16, 2191 + "height": 36.16, 2192 + "fill": "black", 2193 + "stroke": null, 2194 + "strokeWidth": 1, 2195 + "strokeDashArray": null, 2196 + "strokeLineCap": "butt", 2197 + "strokeDashOffset": 0, 2198 + "strokeLineJoin": "round", 2199 + "strokeMiterLimit": 4, 2200 + "scaleX": 1, 2201 + "scaleY": 1, 2202 + "angle": 0, 2203 + "flipX": false, 2204 + "flipY": false, 2205 + "opacity": 1, 2206 + "shadow": null, 2207 + "visible": true, 2208 + "clipTo": null, 2209 + "backgroundColor": "", 2210 + "fillRule": "nonzero", 2211 + "paintFirst": "fill", 2212 + "globalCompositeOperation": "source-over", 2213 + "transformMatrix": null, 2214 + "skewX": 0, 2215 + "skewY": 0, 2216 + "text": "b", 2217 + "fontSize": 32, 2218 + "fontWeight": "normal", 2219 + "fontFamily": "Times New Roman", 2220 + "fontStyle": "normal", 2221 + "lineHeight": 1.16, 2222 + "underline": false, 2223 + "overline": false, 2224 + "linethrough": false, 2225 + "textAlign": "center", 2226 + "textBackgroundColor": "", 2227 + "charSpacing": 0, 2228 + "id": "132", 2229 + "styles": {} 2230 + }, 2231 + { 2232 + "type": "i-text", 2233 + "version": "2.7.0", 2234 + "originX": "center", 2235 + "originY": "center", 2236 + "left": "120", 2237 + "top": "${this.parameters.type === 'shape' ? -25 : 1000}", 2238 + "width": 16, 2239 + "height": 36.16, 2240 + "fill": "black", 2241 + "stroke": null, 2242 + "strokeWidth": 1, 2243 + "strokeDashArray": null, 2244 + "strokeLineCap": "butt", 2245 + "strokeDashOffset": 0, 2246 + "strokeLineJoin": "round", 2247 + "strokeMiterLimit": 4, 2248 + "scaleX": 1, 2249 + "scaleY": 1, 2250 + "angle": 0, 2251 + "flipX": false, 2252 + "flipY": false, 2253 + "opacity": 1, 2254 + "shadow": null, 2255 + "visible": true, 2256 + "clipTo": null, 2257 + "backgroundColor": "", 2258 + "fillRule": "nonzero", 2259 + "paintFirst": "fill", 2260 + "globalCompositeOperation": "source-over", 2261 + "transformMatrix": null, 2262 + "skewX": 0, 2263 + "skewY": 0, 2264 + "text": "n", 2265 + "fontSize": 32, 2266 + "fontWeight": "normal", 2267 + "fontFamily": "Times New Roman", 2268 + "fontStyle": "normal", 2269 + "lineHeight": 1.16, 2270 + "underline": false, 2271 + "overline": false, 2272 + "linethrough": false, 2273 + "textAlign": "center", 2274 + "textBackgroundColor": "", 2275 + "charSpacing": 0, 2276 + "id": "133", 2277 + "styles": {} 2278 + }, 2279 + { 2280 + "type": "i-text", 2281 + "version": "2.7.0", 2282 + "originX": "center", 2283 + "originY": "center", 2284 + "left": "-120", 2285 + "top": "${this.parameters.type === 'filling' ? 125 : 1000}", 2286 + "width": 16, 2287 + "height": 36.16, 2288 + "fill": "black", 2289 + "stroke": null, 2290 + "strokeWidth": 1, 2291 + "strokeDashArray": null, 2292 + "strokeLineCap": "butt", 2293 + "strokeDashOffset": 0, 2294 + "strokeLineJoin": "round", 2295 + "strokeMiterLimit": 4, 2296 + "scaleX": 1, 2297 + "scaleY": 1, 2298 + "angle": 0, 2299 + "flipX": false, 2300 + "flipY": false, 2301 + "opacity": 1, 2302 + "shadow": null, 2303 + "visible": true, 2304 + "clipTo": null, 2305 + "backgroundColor": "", 2306 + "fillRule": "nonzero", 2307 + "paintFirst": "fill", 2308 + "globalCompositeOperation": "source-over", 2309 + "transformMatrix": null, 2310 + "skewX": 0, 2311 + "skewY": 0, 2312 + "text": "b", 2313 + "fontSize": 32, 2314 + "fontWeight": "normal", 2315 + "fontFamily": "Times New Roman", 2316 + "fontStyle": "normal", 2317 + "lineHeight": 1.16, 2318 + "underline": false, 2319 + "overline": false, 2320 + "linethrough": false, 2321 + "textAlign": "center", 2322 + "textBackgroundColor": "", 2323 + "charSpacing": 0, 2324 + "id": "134", 2325 + "styles": {} 2326 + }, 2327 + { 2328 + "type": "i-text", 2329 + "version": "2.7.0", 2330 + "originX": "center", 2331 + "originY": "center", 2332 + "left": "120", 2333 + "top": "${this.parameters.type === 'filling' ? 125 : 1000}", 2334 + "width": 16, 2335 + "height": 36.16, 2336 + "fill": "black", 2337 + "stroke": null, 2338 + "strokeWidth": 1, 2339 + "strokeDashArray": null, 2340 + "strokeLineCap": "butt", 2341 + "strokeDashOffset": 0, 2342 + "strokeLineJoin": "round", 2343 + "strokeMiterLimit": 4, 2344 + "scaleX": 1, 2345 + "scaleY": 1, 2346 + "angle": 0, 2347 + "flipX": false, 2348 + "flipY": false, 2349 + "opacity": 1, 2350 + "shadow": null, 2351 + "visible": true, 2352 + "clipTo": null, 2353 + "backgroundColor": "", 2354 + "fillRule": "nonzero", 2355 + "paintFirst": "fill", 2356 + "globalCompositeOperation": "source-over", 2357 + "transformMatrix": null, 2358 + "skewX": 0, 2359 + "skewY": 0, 2360 + "text": "n", 2361 + "fontSize": 32, 2362 + "fontWeight": "normal", 2363 + "fontFamily": "Times New Roman", 2364 + "fontStyle": "normal", 2365 + "lineHeight": 1.16, 2366 + "underline": false, 2367 + "overline": false, 2368 + "linethrough": false, 2369 + "textAlign": "center", 2370 + "textBackgroundColor": "", 2371 + "charSpacing": 0, 2372 + "id": "135", 2373 + "styles": {} 2374 + }, 2375 + { 2376 + "type": "circle", 2377 + "version": "2.7.0", 2378 + "originX": "center", 2379 + "originY": "center", 2380 + "left": "-120", 2381 + "top": "${this.parameters.type === 'filling' ? 30 : 1000}", 2382 + "width": 20, 2383 + "height": 20, 2384 + "fill": "black", 2385 + "stroke": null, 2386 + "strokeWidth": 1, 2387 + "strokeDashArray": null, 2388 + "strokeLineCap": "butt", 2389 + "strokeDashOffset": 0, 2390 + "strokeLineJoin": "round", 2391 + "strokeMiterLimit": 4, 2392 + "scaleX": 1, 2393 + "scaleY": 1, 2394 + "angle": 0, 2395 + "flipX": false, 2396 + "flipY": false, 2397 + "opacity": 1, 2398 + "shadow": null, 2399 + "visible": true, 2400 + "clipTo": null, 2401 + "backgroundColor": "", 2402 + "fillRule": "nonzero", 2403 + "paintFirst": "fill", 2404 + "globalCompositeOperation": "source-over", 2405 + "transformMatrix": null, 2406 + "skewX": 0, 2407 + "skewY": 0, 2408 + "radius": 10, 2409 + "startAngle": 0, 2410 + "endAngle": 6.283185307179586, 2411 + "id": "136" 2412 + }, 2413 + { 2414 + "type": "circle", 2415 + "version": "2.7.0", 2416 + "originX": "center", 2417 + "originY": "center", 2418 + "left": "-120", 2419 + "top": "${this.parameters.type === 'filling' ? 90 : 1000}", 2420 + "width": 20, 2421 + "height": 20, 2422 + "fill": "black", 2423 + "stroke": null, 2424 + "strokeWidth": 1, 2425 + "strokeDashArray": null, 2426 + "strokeLineCap": "butt", 2427 + "strokeDashOffset": 0, 2428 + "strokeLineJoin": "round", 2429 + "strokeMiterLimit": 4, 2430 + "scaleX": 1, 2431 + "scaleY": 1, 2432 + "angle": 0, 2433 + "flipX": false, 2434 + "flipY": false, 2435 + "opacity": 1, 2436 + "shadow": null, 2437 + "visible": true, 2438 + "clipTo": null, 2439 + "backgroundColor": "", 2440 + "fillRule": "nonzero", 2441 + "paintFirst": "fill", 2442 + "globalCompositeOperation": "source-over", 2443 + "transformMatrix": null, 2444 + "skewX": 0, 2445 + "skewY": 0, 2446 + "radius": 10, 2447 + "startAngle": 0, 2448 + "endAngle": 6.283185307179586, 2449 + "id": "137" 2450 + }, 2451 + { 2452 + "type": "circle", 2453 + "version": "2.7.0", 2454 + "originX": "center", 2455 + "originY": "center", 2456 + "left": "120", 2457 + "top": "${this.parameters.type === 'filling' ? 90 : 1000}", 2458 + "width": 20, 2459 + "height": 20, 2460 + "fill": "black", 2461 + "stroke": null, 2462 + "strokeWidth": 1, 2463 + "strokeDashArray": null, 2464 + "strokeLineCap": "butt", 2465 + "strokeDashOffset": 0, 2466 + "strokeLineJoin": "round", 2467 + "strokeMiterLimit": 4, 2468 + "scaleX": 1, 2469 + "scaleY": 1, 2470 + "angle": 0, 2471 + "flipX": false, 2472 + "flipY": false, 2473 + "opacity": 1, 2474 + "shadow": null, 2475 + "visible": true, 2476 + "clipTo": null, 2477 + "backgroundColor": "", 2478 + "fillRule": "nonzero", 2479 + "paintFirst": "fill", 2480 + "globalCompositeOperation": "source-over", 2481 + "transformMatrix": null, 2482 + "skewX": 0, 2483 + "skewY": 0, 2484 + "radius": 10, 2485 + "startAngle": 0, 2486 + "endAngle": 6.283185307179586, 2487 + "id": "138" 2488 + }, 2489 + { 2490 + "type": "circle", 2491 + "version": "2.7.0", 2492 + "originX": "center", 2493 + "originY": "center", 2494 + "left": "120", 2495 + "top": "${this.parameters.type === 'filling' ? 60 : 1000}", 2496 + "width": 20, 2497 + "height": 20, 2498 + "fill": "black", 2499 + "stroke": null, 2500 + "strokeWidth": 1, 2501 + "strokeDashArray": null, 2502 + "strokeLineCap": "butt", 2503 + "strokeDashOffset": 0, 2504 + "strokeLineJoin": "round", 2505 + "strokeMiterLimit": 4, 2506 + "scaleX": 1, 2507 + "scaleY": 1, 2508 + "angle": 0, 2509 + "flipX": false, 2510 + "flipY": false, 2511 + "opacity": 1, 2512 + "shadow": null, 2513 + "visible": true, 2514 + "clipTo": null, 2515 + "backgroundColor": "", 2516 + "fillRule": "nonzero", 2517 + "paintFirst": "fill", 2518 + "globalCompositeOperation": "source-over", 2519 + "transformMatrix": null, 2520 + "skewX": 0, 2521 + "skewY": 0, 2522 + "radius": 10, 2523 + "startAngle": 0, 2524 + "endAngle": 6.283185307179586, 2525 + "id": "139" 2526 + }, 2527 + { 2528 + "type": "circle", 2529 + "version": "2.7.0", 2530 + "originX": "center", 2531 + "originY": "center", 2532 + "left": "120", 2533 + "top": "${this.parameters.type === 'filling' ? 30 : 1000}", 2534 + "width": 20, 2535 + "height": 20, 2536 + "fill": "black", 2537 + "stroke": null, 2538 + "strokeWidth": 1, 2539 + "strokeDashArray": null, 2540 + "strokeLineCap": "butt", 2541 + "strokeDashOffset": 0, 2542 + "strokeLineJoin": "round", 2543 + "strokeMiterLimit": 4, 2544 + "scaleX": 1, 2545 + "scaleY": 1, 2546 + "angle": 0, 2547 + "flipX": false, 2548 + "flipY": false, 2549 + "opacity": 1, 2550 + "shadow": null, 2551 + "visible": true, 2552 + "clipTo": null, 2553 + "backgroundColor": "", 2554 + "fillRule": "nonzero", 2555 + "paintFirst": "fill", 2556 + "globalCompositeOperation": "source-over", 2557 + "transformMatrix": null, 2558 + "skewX": 0, 2559 + "skewY": 0, 2560 + "radius": 10, 2561 + "startAngle": 0, 2562 + "endAngle": 6.283185307179586, 2563 + "id": "140" 2564 + } 2565 + ], 2566 + "files": {}, 2567 + "parameters": {}, 2568 + "responses": {}, 2569 + "messageHandlers": {}, 2570 + "viewport": [ 2571 + 800, 2572 + 600 2573 + ], 2574 + "title": "Pause", 2575 + "skip": "${this.state.correct === true}", 2576 + "timeout": "3000", 2577 + "tardy": true 2578 + } 2579 + ] 2580 + } 2581 + } 2582 + ] 2583 + } 2584 + }, 2585 + { 2586 + "type": "lab.canvas.Screen", 2587 + "content": [ 2588 + { 2589 + "type": "i-text", 2590 + "version": "2.7.0", 2591 + "originX": "center", 2592 + "originY": "center", 2593 + "left": 0, 2594 + "top": 0, 2595 + "width": 148.41, 2596 + "height": 36.16, 2597 + "fill": "black", 2598 + "stroke": null, 2599 + "strokeWidth": 1, 2600 + "strokeDashArray": null, 2601 + "strokeLineCap": "butt", 2602 + "strokeDashOffset": 0, 2603 + "strokeLineJoin": "round", 2604 + "strokeMiterLimit": 4, 2605 + "scaleX": 1, 2606 + "scaleY": 1, 2607 + "angle": 0, 2608 + "flipX": false, 2609 + "flipY": false, 2610 + "opacity": 1, 2611 + "shadow": null, 2612 + "visible": true, 2613 + "clipTo": null, 2614 + "backgroundColor": "", 2615 + "fillRule": "nonzero", 2616 + "paintFirst": "fill", 2617 + "globalCompositeOperation": "source-over", 2618 + "transformMatrix": null, 2619 + "skewX": 0, 2620 + "skewY": 0, 2621 + "text": "Thank you!", 2622 + "fontSize": 32, 2623 + "fontWeight": "normal", 2624 + "fontFamily": "Times New Roman", 2625 + "fontStyle": "normal", 2626 + "lineHeight": 1.16, 2627 + "underline": false, 2628 + "overline": false, 2629 + "linethrough": false, 2630 + "textAlign": "center", 2631 + "textBackgroundColor": "", 2632 + "charSpacing": 0, 2633 + "id": "302", 2634 + "styles": {} 2635 + } 2636 + ], 2637 + "files": {}, 2638 + "parameters": {}, 2639 + "responses": {}, 2640 + "messageHandlers": {}, 2641 + "viewport": [ 2642 + 800, 2643 + 600 2644 + ], 2645 + "title": "End", 2646 + "tardy": true, 2647 + "timeout": "2000" 2648 + } 2649 + ] 2650 + } 2651 + ] 2652 + } 2653 + 2654 + // export 2655 + export default studyObject;
app/utils/labjs/scripts/multitasking/all_conditions.png

This is a binary file and will not be displayed.

app/utils/labjs/scripts/multitasking/diamond_2.png

This is a binary file and will not be displayed.

app/utils/labjs/scripts/multitasking/diamond_3.png

This is a binary file and will not be displayed.

app/utils/labjs/scripts/multitasking/example_1.png

This is a binary file and will not be displayed.

app/utils/labjs/scripts/multitasking/example_2.png

This is a binary file and will not be displayed.

app/utils/labjs/scripts/multitasking/example_3.png

This is a binary file and will not be displayed.

app/utils/labjs/scripts/multitasking/example_4.png

This is a binary file and will not be displayed.

app/utils/labjs/scripts/multitasking/filling.png

This is a binary file and will not be displayed.

app/utils/labjs/scripts/multitasking/rectangle_2.png

This is a binary file and will not be displayed.

app/utils/labjs/scripts/multitasking/rectangle_3.png

This is a binary file and will not be displayed.

app/utils/labjs/scripts/multitasking/shape.png

This is a binary file and will not be displayed.

+110 -35
app/utils/labjs/scripts/stroop.js
··· 29 29 "keypress(Space)": "continue" 30 30 }, 31 31 "title": "Instruction", 32 - "content": "\u003Cheader class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Ch1\u003EStroop Task\u003C\u002Fh1\u003E\n\u003C\u002Fheader\u003E\n\u003Cmain\u003E\n \u003Cp\u003E\n Welcome to the \u003Cstrong\u003EStroop experiment\u003C\u002Fstrong\u003E!\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In this experiment, your task will be to \n \u003Cstrong\u003Eidentify the color of the word shown \n on the screen\u003C\u002Fstrong\u003E.\u003Cbr\u003E\n The word itself is immaterial &mdash; \n you can safely ignore it.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n To indicate the color of the word, \n please use the keys \u003Cstrong\u003Er\u003C\u002Fstrong\u003E, \n \u003Cstrong\u003Eg\u003C\u002Fstrong\u003E, \u003Cstrong\u003Eb\u003C\u002Fstrong\u003E and \n \u003Cstrong\u003Eo\u003C\u002Fstrong\u003E for \n \u003Cspan style=\"color: red;\"\u003Ered\u003C\u002Fspan\u003E, \n \u003Cspan style=\"color: green;\"\u003Egreen\u003C\u002Fspan\u003E, \n \u003Cspan style=\"color: blue;\"\u003Eblue\u003C\u002Fspan\u003E and \n \u003Cspan style=\"color: orange;\"\u003Eorange\u003C\u002Fspan\u003E, \n respectively.\u003Cbr\u003E\n Please answer quickly, and as \n accurately as you can.\n \u003C\u002Fp\u003E\n\u003C\u002Fmain\u003E\n\u003Cfooter class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Cp\u003EPlease press the space bar when you're ready.\u003C\u002Fp\u003E\n\u003C\u002Ffooter\u003E\n", 32 + "content": "\u003Cheader class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Ch1\u003EStroop Task\u003C\u002Fh1\u003E\n\u003C\u002Fheader\u003E\n\u003Cmain\u003E\n \u003Cp\u003E\n Welcome to the \u003Cstrong\u003EStroop experiment\u003C\u002Fstrong\u003E!\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In this experiment, your task will be to \n \u003Cstrong\u003Eidentify the color of the word shown \n on the screen\u003C\u002Fstrong\u003E.\u003Cbr\u003E\n The word itself is immaterial &mdash; \n you can safely ignore it.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n To indicate the color of the word, \n please use the keys \u003Cstrong\u003Er\u003C\u002Fstrong\u003E, \n \u003Cstrong\u003Eg\u003C\u002Fstrong\u003E, \u003Cstrong\u003Eb\u003C\u002Fstrong\u003E and \n \u003Cstrong\u003Eo\u003C\u002Fstrong\u003E for \n \u003Cspan style=\"color: red;\"\u003Ered\u003C\u002Fspan\u003E, \n \u003Cspan style=\"color: green;\"\u003Egreen\u003C\u002Fspan\u003E, \n \u003Cspan style=\"color: blue;\"\u003Eblue\u003C\u002Fspan\u003E and \n \u003Cspan style=\"color: orange;\"\u003Eorange\u003C\u002Fspan\u003E, \n respectively.\u003Cbr\u003E\n Please answer quickly, and as \n accurately as you can.\n \u003C\u002Fp\u003E\n\u003C\u002Fmain\u003E\n\u003Cfooter class=\"content-vertical-center content-horizontal-center\"\u003E\n Please press the space bar when you're ready.\n\u003C\u002Ffooter\u003E\n", 33 33 "parameters": {}, 34 34 "files": {} 35 35 }, ··· 138 138 "files": {}, 139 139 "parameters": {}, 140 140 "responses": {}, 141 - "messageHandlers": {}, 141 + "messageHandlers": { 142 + "run": function anonymous( 143 + ) { 144 + this.data.correct = 'empty' 145 + } 146 + }, 142 147 "viewport": [ 143 148 800, 144 149 600 ··· 220 225 "files": {}, 221 226 "parameters": {}, 222 227 "responses": {}, 223 - "messageHandlers": {}, 228 + "messageHandlers": { 229 + "before:prepare": function anonymous( 230 + ) { 231 + this.data.trial_number = 1 + parseInt(this.options.id.split('_')[this.options.id.split('_').length-2]); 232 + 233 + this.data.condition = this.parameters.congruent === 'yes' ? 'Match' : 'Mismatch'; 234 + 235 + this.data.reaction_time = this.state.duration; 236 + 237 + if(this.state.response === this.parameters.color){ 238 + this.data.correct_response = true; 239 + } else { 240 + this.data.correct_response = false; 241 + } 242 + 243 + this.data.response_given = this.state.correct === 'empty' ? 'no' : 'yes'; 244 + 245 + 246 + 247 + } 248 + }, 224 249 "viewport": [ 225 250 800, 226 251 600 227 252 ], 228 253 "title": "Inter-trial interval", 229 - "timeout": "500" 254 + "timeout": "500", 255 + "tardy": true 230 256 } 231 257 ] 232 258 } ··· 249 275 { 250 276 "color": "red", 251 277 "word": "red", 252 - "phase": "task" 278 + "phase": "task", 279 + "congruent": "yes" 253 280 }, 254 281 { 255 282 "color": "red", 256 283 "word": "red", 257 - "phase": "task" 284 + "phase": "task", 285 + "congruent": "yes" 258 286 }, 259 287 { 260 288 "color": "red", 261 289 "word": "red", 262 - "phase": "task" 290 + "phase": "task", 291 + "congruent": "yes" 263 292 }, 264 293 { 265 294 "color": "red", 266 295 "word": "green", 267 - "phase": "task" 296 + "phase": "task", 297 + "congruent": "no" 268 298 }, 269 299 { 270 300 "color": "red", 271 301 "word": "blue", 272 - "phase": "task" 302 + "phase": "task", 303 + "congruent": "no" 273 304 }, 274 305 { 275 306 "color": "red", 276 307 "word": "orange", 277 - "phase": "task" 308 + "phase": "task", 309 + "congruent": "no" 278 310 }, 279 311 { 280 312 "color": "green", 281 313 "word": "red", 282 - "phase": "task" 314 + "phase": "task", 315 + "congruent": "no" 283 316 }, 284 317 { 285 318 "color": "green", 286 319 "word": "green", 287 - "phase": "task" 320 + "phase": "task", 321 + "congruent": "yes" 288 322 }, 289 323 { 290 324 "color": "green", 291 325 "word": "green", 292 - "phase": "task" 326 + "phase": "task", 327 + "congruent": "yes" 293 328 }, 294 329 { 295 330 "color": "green", 296 331 "word": "green", 297 - "phase": "task" 332 + "phase": "task", 333 + "congruent": "yes" 298 334 }, 299 335 { 300 336 "color": "green", 301 337 "word": "blue", 302 - "phase": "task" 338 + "phase": "task", 339 + "congruent": "no" 303 340 }, 304 341 { 305 342 "color": "green", 306 343 "word": "orange", 307 - "phase": "task" 344 + "phase": "task", 345 + "congruent": "no" 308 346 }, 309 347 { 310 348 "color": "blue", 311 349 "word": "red", 312 - "phase": "task" 350 + "phase": "task", 351 + "congruent": "no" 313 352 }, 314 353 { 315 354 "color": "blue", 316 355 "word": "green", 317 - "phase": "task" 356 + "phase": "task", 357 + "congruent": "no" 318 358 }, 319 359 { 320 360 "color": "blue", 321 361 "word": "blue", 322 - "phase": "task" 362 + "phase": "task", 363 + "congruent": "yes" 323 364 }, 324 365 { 325 366 "color": "blue", 326 367 "word": "blue", 327 - "phase": "task" 368 + "phase": "task", 369 + "congruent": "yes" 328 370 }, 329 371 { 330 372 "color": "blue", 331 373 "word": "blue", 332 - "phase": "task" 374 + "phase": "task", 375 + "congruent": "yes" 333 376 }, 334 377 { 335 378 "color": "blue", 336 379 "word": "orange", 337 - "phase": "task" 380 + "phase": "task", 381 + "congruent": "no" 338 382 }, 339 383 { 340 384 "color": "orange", 341 385 "word": "red", 342 - "phase": "task" 386 + "phase": "task", 387 + "congruent": "no" 343 388 }, 344 389 { 345 390 "color": "orange", 346 391 "word": "green", 347 - "phase": "task" 392 + "phase": "task", 393 + "congruent": "no" 348 394 }, 349 395 { 350 396 "color": "orange", 351 397 "word": "blue", 352 - "phase": "task" 398 + "phase": "task", 399 + "congruent": "no" 353 400 }, 354 401 { 355 402 "color": "orange", 356 403 "word": "orange", 357 - "phase": "task" 404 + "phase": "task", 405 + "congruent": "yes" 358 406 }, 359 407 { 360 408 "color": "orange", 361 409 "word": "orange", 362 - "phase": "task" 410 + "phase": "task", 411 + "congruent": "yes" 363 412 }, 364 413 { 365 414 "color": "orange", 366 415 "word": "orange", 367 - "phase": "task" 416 + "phase": "task", 417 + "congruent": "yes" 368 418 } 369 419 ], 370 420 "title": "Stroop task", 371 421 "parameters": {}, 372 422 "files": {}, 373 423 "sample": { 374 - "mode": "draw-shuffle", 375 - "n": "16" 424 + "mode": "draw-shuffle" 376 425 }, 377 426 "shuffleGroups": [], 378 427 "template": { ··· 438 487 "files": {}, 439 488 "parameters": {}, 440 489 "responses": {}, 441 - "messageHandlers": {}, 490 + "messageHandlers": { 491 + "run": function anonymous( 492 + ) { 493 + this.data.correct = 'empty' 494 + } 495 + }, 442 496 "viewport": [ 443 497 800, 444 498 600 ··· 520 574 "files": {}, 521 575 "parameters": {}, 522 576 "responses": {}, 523 - "messageHandlers": {}, 577 + "messageHandlers": { 578 + "before:prepare": function anonymous( 579 + ) { 580 + this.data.trial_number = 1 + parseInt(this.options.id.split('_')[this.options.id.split('_').length-2]); 581 + 582 + this.data.condition = this.parameters.congruent === 'yes' ? 'Match' : 'Mismatch'; 583 + 584 + this.data.reaction_time = this.state.duration; 585 + 586 + if(this.state.response === this.parameters.color){ 587 + this.data.correct_response = true; 588 + } else { 589 + this.data.correct_response = false; 590 + } 591 + 592 + this.data.response_given = this.state.correct === 'empty' ? 'no' : 'yes'; 593 + 594 + 595 + 596 + } 597 + }, 524 598 "viewport": [ 525 599 800, 526 600 600 527 601 ], 528 602 "title": "Inter-trial interval", 529 - "timeout": "500" 603 + "timeout": "500", 604 + "tardy": true 530 605 } 531 606 ] 532 607 } ··· 537 612 "type": "lab.html.Screen", 538 613 "responses": {}, 539 614 "title": "Thanks", 540 - "content": "\u003Cheader class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Ch1\u003EThank you!\u003C\u002Fh1\u003E\n\u003C\u002Fheader\u003E\n\u003Cmain\u003E\n \u003Cp\u003E\n You did a great job, thanks for taking the time!\n \u003C\u002Fp\u003E\n\u003C\u002Fmain\u003E\n\n", 541 - "timeout": "2000", 615 + "content": "\u003Cheader class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Ch1\u003EThank you!\u003C\u002Fh1\u003E\n\u003C\u002Fheader\u003E\n\u003Cmain\u003E\n \u003Cp\u003E\n You did a great job, thanks for taking the time!\n \u003C\u002Fp\u003E\n\u003C\u002Fmain\u003E\n\u003Cfooter class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Cp\u003E\n If you have any questions or comments about this \n experiment,\u003Cbr\u003E please be invited to contact\n \u003Ca href=\"http:\u002F\u002Ffelixhenninger.com\"\u003E\n Felix Henninger\u003C\u002Fa\u003E.\n \u003C\u002Fp\u003E\n\u003C\u002Ffooter\u003E\n", 616 + "timeout": "10", 542 617 "parameters": {}, 543 618 "files": {} 544 619 }
+5749
app/utils/labjs/scripts/visualsearch.js
··· 1 + // Define study 2 + const studyObject = { 3 + "title": "root", 4 + "type": "lab.flow.Sequence", 5 + "parameters": {}, 6 + "plugins": [ 7 + { 8 + "type": "lab.plugins.Metadata" 9 + }, 10 + { 11 + "type": "lab.plugins.Download", 12 + "filePrefix": "visual-search" 13 + } 14 + ], 15 + "metadata": { 16 + "title": "Visual search", 17 + "description": "The visual search task is made according to specifications described here\nhttps:\u002F\u002Fwww.psytoolkit.org\u002Fexperiment-library\u002Fsearch.html", 18 + "repository": "", 19 + "contributors": "Yury Shevchenko \u003Cyury.shevchenko@uni-konstanz.de\u003E" 20 + }, 21 + "files": {}, 22 + "responses": {}, 23 + "content": [ 24 + { 25 + "type": "lab.html.Screen", 26 + "files": {}, 27 + "parameters": {}, 28 + "responses": { 29 + "keypress(Space)": "next" 30 + }, 31 + "messageHandlers": {}, 32 + "title": "Instruction", 33 + "content": "\u003Cstyle\u003E\n .letter{\n font-size: 90px;\n font-weight: bold;\n }\n\u003C\u002Fstyle\u003E\n\n\u003Cheader\u003E\n \u003Ch1\u003EVisual search task\u003C\u002Fh1\u003E\n\u003C\u002Fheader\u003E\n\n\u003Cmain\u003E\n \u003Cp\u003E\n You know how difficult it is to find your keys in a messy room! We want to know how good you are in quickly finding your keys! \u003Cb\u003EInstead\u003C\u002Fb\u003E of keys, we just want to know how quickly you can find an \u003Cb\u003Eorange T\u003C\u002Fb\u003E amongst blue Ts and upside-down orange Ts. Sounds easy! But it is not at all that easy!\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n Again, all you need to do is to find an \u003Cb\u003Eorange T\u003C\u002Fb\u003E. If you see the \u003Cb\u003Eorange T\u003C\u002Fb\u003E, press \u003Ckbd\u003Eb\u003C\u002Fkbd\u003E. Ignore the upside-down orange T, as well as blue Ts! IF THERE IS NO ORANGE T, press \u003Ckbd\u003En\u003C\u002Fkbd\u003E.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n It is very important to respond \u003Cb\u003EAS FAST AS YOU CAN\u003C\u002Fb\u003E. \n \u003C\u002Fp\u003E \n \u003Cbr\u003E\n \u003Cp\u003E\n Find \n \u003C\u002Fp\u003E\n \u003Cbr\u003E\n \u003Cdiv class=\"letter\" style=\"color:orange\"\u003E\n T\n \u003C\u002Fdiv\u003E\n \u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E\n \u003Cp\u003E\n But do not respond to any of these distractors:\n \u003C\u002Fp\u003E\n \u003Cbr\u003E\n \n \u003Cdiv style=\"display:grid; grid-template-columns: 100px 100px; justify-content: center\"\u003E\n \u003Cdiv class=\"letter\" style=\"color:lightblue\"\u003E\n T\n \u003C\u002Fdiv\u003E\n \u003Cdiv class=\"letter\" style=\"color:orange; transform: rotate(-180deg)\"\u003E\n T\n \u003C\u002Fdiv\u003E\n \u003C\u002Fdiv\u003E\n \n \u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E\n\n \u003Cp\u003E\n Press space to continue.\n \u003C\u002Fp\u003E\n\u003C\u002Fmain\u003E" 34 + }, 35 + { 36 + "type": "lab.flow.Loop", 37 + "files": {}, 38 + "parameters": {}, 39 + "templateParameters": [], 40 + "sample": { 41 + "mode": "draw-shuffle" 42 + }, 43 + "responses": {}, 44 + "messageHandlers": { 45 + "before:prepare": function anonymous( 46 + ) { 47 + let trialParameters = [] 48 + 49 + function shuffle(a) { 50 + var j, x, i 51 + for (i = a.length - 1; i > 0; i--) { 52 + j = Math.floor(Math.random() * (i + 1)) 53 + x = a[i] 54 + a[i] = a[j] 55 + a[j] = x 56 + } 57 + return a 58 + } 59 + 60 + const randomBetween = (min, max) => { 61 + return Math.floor(Math.random() * (max - min + 1)) + min 62 + } 63 + 64 + const makeStimuliArray = (arrLen, stLen, isTarget) => { 65 + let arr = Array(arrLen).fill(0) 66 + let shuffled = shuffle([...Array(arrLen).keys()]).slice(0, stLen) 67 + for (let p of shuffled){ 68 + if(randomBetween(0,1) === 0){ 69 + arr[p] = 1 70 + } else { 71 + arr[p] = 2 72 + } 73 + } 74 + if(isTarget === 'yes'){ 75 + arr[shuffled[0]] = 3 76 + } 77 + return arr 78 + } 79 + 80 + const arrLength = 25 81 + function trialConstructor(i, stimLength, isTarget) { 82 + return { 83 + 'trialId': i, 84 + 'stimuli': makeStimuliArray(arrLength, stimLength, isTarget), 85 + 'target': isTarget, 86 + 'size': stimLength, 87 + }; 88 + } 89 + 90 + const numberTrials = 6 91 + for (let i = 1; i <= numberTrials; i++){ 92 + trialParameters = trialParameters.concat(trialConstructor(i, 5, 'yes')) 93 + trialParameters = trialParameters.concat(trialConstructor(i, 5, 'no')) 94 + trialParameters = trialParameters.concat(trialConstructor(i, 10, 'yes')) 95 + trialParameters = trialParameters.concat(trialConstructor(i, 10, 'no')) 96 + trialParameters = trialParameters.concat(trialConstructor(i, 15, 'yes')) 97 + trialParameters = trialParameters.concat(trialConstructor(i, 15, 'no')) 98 + trialParameters = trialParameters.concat(trialConstructor(i, 20, 'yes')) 99 + trialParameters = trialParameters.concat(trialConstructor(i, 20, 'no')) 100 + } 101 + 102 + //assign options values to parameters of this task 103 + this.options.templateParameters = trialParameters; 104 + console.log(trialParameters); 105 + this.options.shuffle = true; // already shuffled before 106 + 107 + }, 108 + "end": function anonymous( 109 + ) { 110 + this.data.aggregated = {}; 111 + 112 + const rt_5_yes = this.options.datastore.data.filter(s => s.sender === 'Stimuli').filter(d => d.target === 'yes' && d.response ==='yes' && d.size === 5).map(m => Math.round(m.duration)); 113 + const rt_10_yes = this.options.datastore.data.filter(s => s.sender === 'Stimuli').filter(d => d.target === 'yes' && d.response ==='yes' && d.size === 10).map(m => Math.round(m.duration)); 114 + const rt_15_yes = this.options.datastore.data.filter(s => s.sender === 'Stimuli').filter(d => d.target === 'yes' && d.response ==='yes' && d.size === 15).map(m => Math.round(m.duration)); 115 + const rt_20_yes = this.options.datastore.data.filter(s => s.sender === 'Stimuli').filter(d => d.target === 'yes' && d.response ==='yes' && d.size === 20).map(m => Math.round(m.duration)); 116 + 117 + const mean_rt_5_yes = Math.round(rt_5_yes.reduce((acc, cur) => acc + cur, 0) / rt_5_yes.length); 118 + const mean_rt_10_yes = Math.round(rt_10_yes.reduce((acc, cur) => acc + cur, 0) / rt_10_yes.length); 119 + const mean_rt_15_yes = Math.round(rt_15_yes.reduce((acc, cur) => acc + cur, 0) / rt_15_yes.length); 120 + const mean_rt_20_yes = Math.round(rt_20_yes.reduce((acc, cur) => acc + cur, 0) / rt_20_yes.length); 121 + 122 + this.data.aggregated[`rt_5_yes`] = mean_rt_5_yes; 123 + this.data.aggregated[`rt_10_yes`] = mean_rt_10_yes; 124 + this.data.aggregated[`rt_15_yes`] = mean_rt_15_yes; 125 + this.data.aggregated[`rt_20_yes`] = mean_rt_20_yes; 126 + 127 + // for no target response 128 + const rt_5_no = this.options.datastore.data.filter(s => s.sender === 'Stimuli').filter(d => d.target === 'no' && d.response==='no' && d.size === 5).map(m => Math.round(m.duration)); 129 + const rt_10_no = this.options.datastore.data.filter(s => s.sender === 'Stimuli').filter(d => d.target === 'no' && d.response==='no' && d.size === 10).map(m => Math.round(m.duration)); 130 + const rt_15_no = this.options.datastore.data.filter(s => s.sender === 'Stimuli').filter(d => d.target === 'no' && d.response==='no' && d.size === 15).map(m => Math.round(m.duration)); 131 + const rt_20_no = this.options.datastore.data.filter(s => s.sender === 'Stimuli').filter(d => d.target === 'no' && d.response==='no' && d.size === 20).map(m => Math.round(m.duration)); 132 + 133 + const mean_rt_5_no = Math.round(rt_5_no.reduce((acc, cur) => acc + cur, 0) / rt_5_no.length); 134 + const mean_rt_10_no = Math.round(rt_10_no.reduce((acc, cur) => acc + cur, 0) / rt_10_no.length); 135 + const mean_rt_15_no = Math.round(rt_15_no.reduce((acc, cur) => acc + cur, 0) / rt_15_no.length); 136 + const mean_rt_20_no = Math.round(rt_20_no.reduce((acc, cur) => acc + cur, 0) / rt_20_no.length); 137 + 138 + this.data.aggregated[`rt_5_no`] = mean_rt_5_no; 139 + this.data.aggregated[`rt_10_no`] = mean_rt_10_no; 140 + this.data.aggregated[`rt_15_no`] = mean_rt_15_no; 141 + this.data.aggregated[`rt_20_no`] = mean_rt_20_no; 142 + 143 + } 144 + }, 145 + "title": "Task loop", 146 + "shuffleGroups": [], 147 + "template": { 148 + "type": "lab.flow.Sequence", 149 + "files": {}, 150 + "parameters": {}, 151 + "responses": {}, 152 + "messageHandlers": {}, 153 + "title": "Task sequence", 154 + "content": [ 155 + { 156 + "type": "lab.canvas.Screen", 157 + "content": [ 158 + { 159 + "type": "i-text", 160 + "version": "2.7.0", 161 + "originX": "center", 162 + "originY": "center", 163 + "left": 0, 164 + "top": 0, 165 + "width": 18.05, 166 + "height": 36.16, 167 + "fill": "black", 168 + "stroke": null, 169 + "strokeWidth": 1, 170 + "strokeDashArray": null, 171 + "strokeLineCap": "butt", 172 + "strokeDashOffset": 0, 173 + "strokeLineJoin": "round", 174 + "strokeMiterLimit": 4, 175 + "scaleX": 1, 176 + "scaleY": 1, 177 + "angle": 0, 178 + "flipX": false, 179 + "flipY": false, 180 + "opacity": 1, 181 + "shadow": null, 182 + "visible": true, 183 + "clipTo": null, 184 + "backgroundColor": "", 185 + "fillRule": "nonzero", 186 + "paintFirst": "fill", 187 + "globalCompositeOperation": "source-over", 188 + "transformMatrix": null, 189 + "skewX": 0, 190 + "skewY": 0, 191 + "text": "+", 192 + "fontSize": "50", 193 + "fontWeight": "bold", 194 + "fontFamily": "Times New Roman", 195 + "fontStyle": "normal", 196 + "lineHeight": 1.16, 197 + "underline": false, 198 + "overline": false, 199 + "linethrough": false, 200 + "textAlign": "center", 201 + "textBackgroundColor": "", 202 + "charSpacing": 0, 203 + "id": "15", 204 + "styles": {} 205 + } 206 + ], 207 + "files": {}, 208 + "parameters": {}, 209 + "responses": {}, 210 + "messageHandlers": { 211 + "run": function anonymous( 212 + ) { 213 + this.data.response = 'noresponse' 214 + this.data.correct = false 215 + } 216 + }, 217 + "viewport": [ 218 + 800, 219 + 600 220 + ], 221 + "title": "Fixation cross", 222 + "timeout": "500" 223 + }, 224 + { 225 + "type": "lab.html.Screen", 226 + "files": {}, 227 + "parameters": {}, 228 + "responses": { 229 + "keypress(b)": "yes", 230 + "keypress(n)": "no" 231 + }, 232 + "messageHandlers": { 233 + "run": function anonymous( 234 + ) { 235 + const taskgrid = document.querySelector('#taskgrid') 236 + const stimuli = this.parameters.stimuli 237 + 238 + for (let s of stimuli) { 239 + let d = document.createElement('div') 240 + d.classList.add('box') 241 + let el = document.createElement('span') 242 + el.classList.add('letter') 243 + 244 + if(s > 0){ 245 + if(s === 1){ 246 + el.innerHTML = 'T' 247 + el.style.color = 'lightblue' 248 + } 249 + if(s === 2){ 250 + el.innerHTML = 'T' 251 + el.style.color = 'orange' 252 + el.style.transform = 'rotate(-180deg)' 253 + } 254 + if(s === 3){ 255 + el.innerHTML = 'T' 256 + el.style.color = 'orange' 257 + } 258 + } 259 + d.appendChild(el) 260 + taskgrid.appendChild(d) 261 + } 262 + } 263 + }, 264 + "title": "Stimuli", 265 + "content": "\u003Cstyle\u003E\n #taskgrid{\n display: grid;\n grid-template-columns: repeat(5, 100px);\n grid-template-rows: repeat(5, 100px);\n grid-row-gap: 10px;\n grid-column-gap: 10px;\n }\n .box{\n display: grid;\n align-items: center;\n } \n .letter{\n font-size: 90px;\n font-weight: bold;\n }\n\u003C\u002Fstyle\u003E\n\n\u003Cheader\u003E\n \u003Cspan style=\"font-size:1.5rem\"\u003E\n Press \u003Ckbd\u003Eb\u003C\u002Fkbd\u003E if you see the orange T, press \u003Ckbd\u003En\u003C\u002Fkbd\u003E if there is no orange T.\n \u003C\u002Fspan\u003E\n\u003C\u002Fheader\u003E\n\n\u003Cmain class=\"content-vertical-center content-horizontal-center\"\u003E\n\n \u003Cdiv id=\"taskgrid\"\u003E\n\n\n \u003C\u002Fdiv\u003E\n\n\u003C\u002Fmain\u003E\n\n", 266 + "timeout": "4000", 267 + "correctResponse": "${this.parameters.target}" 268 + }, 269 + { 270 + "type": "lab.html.Screen", 271 + "files": {}, 272 + "parameters": {}, 273 + "responses": {}, 274 + "messageHandlers": { 275 + "run": function anonymous( 276 + ) { 277 + const taskgrid = document.querySelector('#taskgrid') 278 + const stimuli = this.parameters.stimuli 279 + 280 + for (let s of stimuli) { 281 + let d = document.createElement('div') 282 + d.classList.add('box') 283 + let el = document.createElement('span') 284 + el.classList.add('letter') 285 + 286 + if(s > 0){ 287 + if(s === 1){ 288 + el.innerHTML = 'T' 289 + el.style.color = 'lightblue' 290 + } 291 + if(s === 2){ 292 + el.innerHTML = 'T' 293 + el.style.color = 'orange' 294 + el.style.transform = 'rotate(-180deg)' 295 + } 296 + if(s === 3){ 297 + el.innerHTML = 'T' 298 + el.style.color = 'orange' 299 + d.id = 'target' 300 + } 301 + } 302 + d.appendChild(el) 303 + taskgrid.appendChild(d) 304 + } 305 + 306 + if(this.state.response === 'noresponse') { 307 + document.querySelector('#feedback').innerHTML = "Please respond!" 308 + return 309 + } 310 + 311 + if(this.parameters.target === 'yes'){ 312 + document.querySelector('#feedback').innerHTML = "Error! There was one!" 313 + document.querySelector('#target').style.border = 'solid' 314 + } else { 315 + document.querySelector('#feedback').innerHTML = "Error! There was none!" 316 + } 317 + 318 + 319 + }, 320 + "before:prepare": function anonymous( 321 + ) { 322 + this.data.trial_number = 1 + parseInt(this.options.id.split('_')[this.options.id.split('_').length-2]); 323 + 324 + this.data.condition = this.parameters.target === 'yes' ? 'Target' : 'No target'; 325 + 326 + this.data.reaction_time = this.state.duration; 327 + 328 + if(this.state.response === this.parameters.target){ 329 + this.data.correct_response = true; 330 + } else { 331 + this.data.correct_response = false; 332 + } 333 + 334 + this.data.response_given = this.state.response === 'noresponse' ? 'no' : 'yes'; 335 + } 336 + }, 337 + "title": "Feedback", 338 + "content": "\u003Cstyle\u003E\n #taskgrid{\n display: grid;\n grid-template-columns: repeat(5, 100px);\n grid-template-rows: repeat(5, 100px);\n grid-row-gap: 10px;\n grid-column-gap: 10px;\n }\n .box{\n display: grid;\n align-items: center;\n } \n .letter{\n font-size: 90px;\n font-weight: bold;\n }\n .feedback{\n font-size: 50px;\n font-weight: bold;\n color: #da5b1c;\n }\n\u003C\u002Fstyle\u003E\n\n\u003Cheader style=\"display: grid; align-content: center;\"\u003E\n \u003Cdiv id=\"feedback\" class=\"feedback\"\u003E\n \u003C\u002Fdiv\u003E\n\u003C\u002Fheader\u003E\n\n\u003Cmain class=\"content-vertical-center content-horizontal-center\"\u003E\n\n\n \u003Cdiv id=\"taskgrid\" \u003E\n\n \u003C\u002Fdiv\u003E\n\n\n\u003C\u002Fmain\u003E\n\n\n", 339 + "timeout": "2000", 340 + "tardy": true, 341 + "skip": "${ this.state.correct }" 342 + }, 343 + { 344 + "type": "lab.html.Screen", 345 + "files": { 346 + "grid.gif": "./utils/labjs/scripts/visualsearch/grid.gif" 347 + }, 348 + "parameters": {}, 349 + "responses": {}, 350 + "messageHandlers": {}, 351 + "title": "Grid", 352 + "content": "\u003Cheader\u003E\n\n\u003C\u002Fheader\u003E\n\n\u003Cmain class=\"content-vertical-center content-horizontal-center\"\u003E\n\n \u003Cimg src=${this.files['grid.gif']} style=\"height: 400px; width: auto;\"\u003E\n\n\u003C\u002Fmain\u003E\n\n", 353 + "timeout": "500" 354 + } 355 + ] 356 + } 357 + }, 358 + { 359 + "type": "lab.canvas.Screen", 360 + "content": [ 361 + { 362 + "type": "i-text", 363 + "version": "2.7.0", 364 + "originX": "center", 365 + "originY": "center", 366 + "left": 0, 367 + "top": -225, 368 + "width": 414.09, 369 + "height": 36.16, 370 + "fill": "black", 371 + "stroke": null, 372 + "strokeWidth": 1, 373 + "strokeDashArray": null, 374 + "strokeLineCap": "butt", 375 + "strokeDashOffset": 0, 376 + "strokeLineJoin": "round", 377 + "strokeMiterLimit": 4, 378 + "scaleX": 1, 379 + "scaleY": 1, 380 + "angle": 0, 381 + "flipX": false, 382 + "flipY": false, 383 + "opacity": 1, 384 + "shadow": null, 385 + "visible": true, 386 + "clipTo": null, 387 + "backgroundColor": "", 388 + "fillRule": "nonzero", 389 + "paintFirst": "fill", 390 + "globalCompositeOperation": "source-over", 391 + "transformMatrix": null, 392 + "skewX": 0, 393 + "skewY": 0, 394 + "text": "Search time (ms) with orange T ", 395 + "fontSize": 32, 396 + "fontWeight": "bold", 397 + "fontFamily": "Times New Roman", 398 + "fontStyle": "normal", 399 + "lineHeight": 1.16, 400 + "underline": false, 401 + "overline": false, 402 + "linethrough": false, 403 + "textAlign": "center", 404 + "textBackgroundColor": "", 405 + "charSpacing": 0, 406 + "id": "158", 407 + "styles": {} 408 + }, 409 + { 410 + "type": "i-text", 411 + "version": "2.7.0", 412 + "originX": "center", 413 + "originY": "center", 414 + "left": 25, 415 + "top": -115, 416 + "width": 743.42, 417 + "height": 154.13, 418 + "fill": "black", 419 + "stroke": null, 420 + "strokeWidth": 1, 421 + "strokeDashArray": null, 422 + "strokeLineCap": "butt", 423 + "strokeDashOffset": 0, 424 + "strokeLineJoin": "round", 425 + "strokeMiterLimit": 4, 426 + "scaleX": 1, 427 + "scaleY": 1, 428 + "angle": 0, 429 + "flipX": false, 430 + "flipY": false, 431 + "opacity": 1, 432 + "shadow": null, 433 + "visible": true, 434 + "clipTo": null, 435 + "backgroundColor": "", 436 + "fillRule": "nonzero", 437 + "paintFirst": "fill", 438 + "globalCompositeOperation": "source-over", 439 + "transformMatrix": null, 440 + "skewX": 0, 441 + "skewY": 0, 442 + "text": "With 5 items: ${this.state.aggregated.rt_5_yes || '-'} ms\nWith 10 items: ${this.state.aggregated.rt_10_yes || '-'} ms \nWith 15 items: ${this.state.aggregated.rt_15_yes || '-'} ms\nWith 20 items: ${this.state.aggregated.rt_20_yes || '-'} ms ", 443 + "fontSize": "26", 444 + "fontWeight": "normal", 445 + "fontFamily": "Times New Roman", 446 + "fontStyle": "normal", 447 + "lineHeight": 1.16, 448 + "underline": false, 449 + "overline": false, 450 + "linethrough": false, 451 + "textAlign": "center", 452 + "textBackgroundColor": "", 453 + "charSpacing": 0, 454 + "id": "159", 455 + "styles": { 456 + "0": {}, 457 + "1": { 458 + "0": { 459 + "stroke": null, 460 + "strokeWidth": 1, 461 + "fill": "black", 462 + "fontFamily": "Times New Roman", 463 + "fontSize": "26", 464 + "fontWeight": "normal", 465 + "fontStyle": "normal", 466 + "underline": false, 467 + "overline": false, 468 + "linethrough": false, 469 + "deltaY": 0, 470 + "textBackgroundColor": "" 471 + }, 472 + "1": { 473 + "stroke": null, 474 + "strokeWidth": 1, 475 + "fill": "black", 476 + "fontFamily": "Times New Roman", 477 + "fontSize": "26", 478 + "fontWeight": "normal", 479 + "fontStyle": "normal", 480 + "underline": false, 481 + "overline": false, 482 + "linethrough": false, 483 + "deltaY": 0, 484 + "textBackgroundColor": "" 485 + }, 486 + "2": { 487 + "stroke": null, 488 + "strokeWidth": 1, 489 + "fill": "black", 490 + "fontFamily": "Times New Roman", 491 + "fontSize": "26", 492 + "fontWeight": "normal", 493 + "fontStyle": "normal", 494 + "underline": false, 495 + "overline": false, 496 + "linethrough": false, 497 + "deltaY": 0, 498 + "textBackgroundColor": "" 499 + }, 500 + "3": { 501 + "stroke": null, 502 + "strokeWidth": 1, 503 + "fill": "black", 504 + "fontFamily": "Times New Roman", 505 + "fontSize": "26", 506 + "fontWeight": "normal", 507 + "fontStyle": "normal", 508 + "underline": false, 509 + "overline": false, 510 + "linethrough": false, 511 + "deltaY": 0, 512 + "textBackgroundColor": "" 513 + }, 514 + "4": { 515 + "stroke": null, 516 + "strokeWidth": 1, 517 + "fill": "black", 518 + "fontFamily": "Times New Roman", 519 + "fontSize": "26", 520 + "fontWeight": "normal", 521 + "fontStyle": "normal", 522 + "underline": false, 523 + "overline": false, 524 + "linethrough": false, 525 + "deltaY": 0, 526 + "textBackgroundColor": "" 527 + }, 528 + "5": { 529 + "stroke": null, 530 + "strokeWidth": 1, 531 + "fill": "black", 532 + "fontFamily": "Times New Roman", 533 + "fontSize": "26", 534 + "fontWeight": "normal", 535 + "fontStyle": "normal", 536 + "underline": false, 537 + "overline": false, 538 + "linethrough": false, 539 + "deltaY": 0, 540 + "textBackgroundColor": "" 541 + }, 542 + "6": { 543 + "stroke": null, 544 + "strokeWidth": 1, 545 + "fill": "black", 546 + "fontFamily": "Times New Roman", 547 + "fontSize": "26", 548 + "fontWeight": "normal", 549 + "fontStyle": "normal", 550 + "underline": false, 551 + "overline": false, 552 + "linethrough": false, 553 + "deltaY": 0, 554 + "textBackgroundColor": "" 555 + }, 556 + "7": { 557 + "stroke": null, 558 + "strokeWidth": 1, 559 + "fill": "black", 560 + "fontFamily": "Times New Roman", 561 + "fontSize": "26", 562 + "fontWeight": "normal", 563 + "fontStyle": "normal", 564 + "underline": false, 565 + "overline": false, 566 + "linethrough": false, 567 + "deltaY": 0, 568 + "textBackgroundColor": "" 569 + }, 570 + "8": { 571 + "stroke": null, 572 + "strokeWidth": 1, 573 + "fill": "black", 574 + "fontFamily": "Times New Roman", 575 + "fontSize": "26", 576 + "fontWeight": "normal", 577 + "fontStyle": "normal", 578 + "underline": false, 579 + "overline": false, 580 + "linethrough": false, 581 + "deltaY": 0, 582 + "textBackgroundColor": "" 583 + }, 584 + "9": { 585 + "stroke": null, 586 + "strokeWidth": 1, 587 + "fill": "black", 588 + "fontFamily": "Times New Roman", 589 + "fontSize": "26", 590 + "fontWeight": "normal", 591 + "fontStyle": "normal", 592 + "underline": false, 593 + "overline": false, 594 + "linethrough": false, 595 + "deltaY": 0, 596 + "textBackgroundColor": "" 597 + }, 598 + "10": { 599 + "stroke": null, 600 + "strokeWidth": 1, 601 + "fill": "black", 602 + "fontFamily": "Times New Roman", 603 + "fontSize": "26", 604 + "fontWeight": "normal", 605 + "fontStyle": "normal", 606 + "underline": false, 607 + "overline": false, 608 + "linethrough": false, 609 + "deltaY": 0, 610 + "textBackgroundColor": "" 611 + }, 612 + "11": { 613 + "stroke": null, 614 + "strokeWidth": 1, 615 + "fill": "black", 616 + "fontFamily": "Times New Roman", 617 + "fontSize": "26", 618 + "fontWeight": "normal", 619 + "fontStyle": "normal", 620 + "underline": false, 621 + "overline": false, 622 + "linethrough": false, 623 + "deltaY": 0, 624 + "textBackgroundColor": "" 625 + }, 626 + "12": { 627 + "stroke": null, 628 + "strokeWidth": 1, 629 + "fill": "black", 630 + "fontFamily": "Times New Roman", 631 + "fontSize": "26", 632 + "fontWeight": "normal", 633 + "fontStyle": "normal", 634 + "underline": false, 635 + "overline": false, 636 + "linethrough": false, 637 + "deltaY": 0, 638 + "textBackgroundColor": "" 639 + }, 640 + "13": { 641 + "stroke": null, 642 + "strokeWidth": 1, 643 + "fill": "black", 644 + "fontFamily": "Times New Roman", 645 + "fontSize": "26", 646 + "fontWeight": "normal", 647 + "fontStyle": "normal", 648 + "underline": false, 649 + "overline": false, 650 + "linethrough": false, 651 + "deltaY": 0, 652 + "textBackgroundColor": "" 653 + }, 654 + "14": { 655 + "stroke": null, 656 + "strokeWidth": 1, 657 + "fill": "black", 658 + "fontFamily": "Times New Roman", 659 + "fontSize": "26", 660 + "fontWeight": "normal", 661 + "fontStyle": "normal", 662 + "underline": false, 663 + "overline": false, 664 + "linethrough": false, 665 + "deltaY": 0, 666 + "textBackgroundColor": "" 667 + }, 668 + "15": { 669 + "stroke": null, 670 + "strokeWidth": 1, 671 + "fill": "black", 672 + "fontFamily": "Times New Roman", 673 + "fontSize": "26", 674 + "fontWeight": "normal", 675 + "fontStyle": "normal", 676 + "underline": false, 677 + "overline": false, 678 + "linethrough": false, 679 + "deltaY": 0, 680 + "textBackgroundColor": "" 681 + }, 682 + "16": { 683 + "stroke": null, 684 + "strokeWidth": 1, 685 + "fill": "black", 686 + "fontFamily": "Times New Roman", 687 + "fontSize": "26", 688 + "fontWeight": "normal", 689 + "fontStyle": "normal", 690 + "underline": false, 691 + "overline": false, 692 + "linethrough": false, 693 + "deltaY": 0, 694 + "textBackgroundColor": "" 695 + }, 696 + "17": { 697 + "stroke": null, 698 + "strokeWidth": 1, 699 + "fill": "black", 700 + "fontFamily": "Times New Roman", 701 + "fontSize": "26", 702 + "fontWeight": "normal", 703 + "fontStyle": "normal", 704 + "underline": false, 705 + "overline": false, 706 + "linethrough": false, 707 + "deltaY": 0, 708 + "textBackgroundColor": "" 709 + }, 710 + "18": { 711 + "stroke": null, 712 + "strokeWidth": 1, 713 + "fill": "black", 714 + "fontFamily": "Times New Roman", 715 + "fontSize": "26", 716 + "fontWeight": "normal", 717 + "fontStyle": "normal", 718 + "underline": false, 719 + "overline": false, 720 + "linethrough": false, 721 + "deltaY": 0, 722 + "textBackgroundColor": "" 723 + }, 724 + "19": { 725 + "stroke": null, 726 + "strokeWidth": 1, 727 + "fill": "black", 728 + "fontFamily": "Times New Roman", 729 + "fontSize": "26", 730 + "fontWeight": "normal", 731 + "fontStyle": "normal", 732 + "underline": false, 733 + "overline": false, 734 + "linethrough": false, 735 + "deltaY": 0, 736 + "textBackgroundColor": "" 737 + }, 738 + "20": { 739 + "stroke": null, 740 + "strokeWidth": 1, 741 + "fill": "black", 742 + "fontFamily": "Times New Roman", 743 + "fontSize": "26", 744 + "fontWeight": "normal", 745 + "fontStyle": "normal", 746 + "underline": false, 747 + "overline": false, 748 + "linethrough": false, 749 + "deltaY": 0, 750 + "textBackgroundColor": "" 751 + }, 752 + "21": { 753 + "stroke": null, 754 + "strokeWidth": 1, 755 + "fill": "black", 756 + "fontFamily": "Times New Roman", 757 + "fontSize": "26", 758 + "fontWeight": "normal", 759 + "fontStyle": "normal", 760 + "underline": false, 761 + "overline": false, 762 + "linethrough": false, 763 + "deltaY": 0, 764 + "textBackgroundColor": "" 765 + }, 766 + "22": { 767 + "stroke": null, 768 + "strokeWidth": 1, 769 + "fill": "black", 770 + "fontFamily": "Times New Roman", 771 + "fontSize": "26", 772 + "fontWeight": "normal", 773 + "fontStyle": "normal", 774 + "underline": false, 775 + "overline": false, 776 + "linethrough": false, 777 + "deltaY": 0, 778 + "textBackgroundColor": "" 779 + }, 780 + "23": { 781 + "stroke": null, 782 + "strokeWidth": 1, 783 + "fill": "black", 784 + "fontFamily": "Times New Roman", 785 + "fontSize": "26", 786 + "fontWeight": "normal", 787 + "fontStyle": "normal", 788 + "underline": false, 789 + "overline": false, 790 + "linethrough": false, 791 + "deltaY": 0, 792 + "textBackgroundColor": "" 793 + }, 794 + "24": { 795 + "stroke": null, 796 + "strokeWidth": 1, 797 + "fill": "black", 798 + "fontFamily": "Times New Roman", 799 + "fontSize": "26", 800 + "fontWeight": "normal", 801 + "fontStyle": "normal", 802 + "underline": false, 803 + "overline": false, 804 + "linethrough": false, 805 + "deltaY": 0, 806 + "textBackgroundColor": "" 807 + }, 808 + "25": { 809 + "stroke": null, 810 + "strokeWidth": 1, 811 + "fill": "black", 812 + "fontFamily": "Times New Roman", 813 + "fontSize": "26", 814 + "fontWeight": "normal", 815 + "fontStyle": "normal", 816 + "underline": false, 817 + "overline": false, 818 + "linethrough": false, 819 + "deltaY": 0, 820 + "textBackgroundColor": "" 821 + }, 822 + "26": { 823 + "stroke": null, 824 + "strokeWidth": 1, 825 + "fill": "black", 826 + "fontFamily": "Times New Roman", 827 + "fontSize": "26", 828 + "fontWeight": "normal", 829 + "fontStyle": "normal", 830 + "underline": false, 831 + "overline": false, 832 + "linethrough": false, 833 + "deltaY": 0, 834 + "textBackgroundColor": "" 835 + }, 836 + "27": { 837 + "stroke": null, 838 + "strokeWidth": 1, 839 + "fill": "black", 840 + "fontFamily": "Times New Roman", 841 + "fontSize": "26", 842 + "fontWeight": "normal", 843 + "fontStyle": "normal", 844 + "underline": false, 845 + "overline": false, 846 + "linethrough": false, 847 + "deltaY": 0, 848 + "textBackgroundColor": "" 849 + }, 850 + "28": { 851 + "stroke": null, 852 + "strokeWidth": 1, 853 + "fill": "black", 854 + "fontFamily": "Times New Roman", 855 + "fontSize": "26", 856 + "fontWeight": "normal", 857 + "fontStyle": "normal", 858 + "underline": false, 859 + "overline": false, 860 + "linethrough": false, 861 + "deltaY": 0, 862 + "textBackgroundColor": "" 863 + }, 864 + "29": { 865 + "stroke": null, 866 + "strokeWidth": 1, 867 + "fill": "black", 868 + "fontFamily": "Times New Roman", 869 + "fontSize": "26", 870 + "fontWeight": "normal", 871 + "fontStyle": "normal", 872 + "underline": false, 873 + "overline": false, 874 + "linethrough": false, 875 + "deltaY": 0, 876 + "textBackgroundColor": "" 877 + }, 878 + "30": { 879 + "stroke": null, 880 + "strokeWidth": 1, 881 + "fill": "black", 882 + "fontFamily": "Times New Roman", 883 + "fontSize": "26", 884 + "fontWeight": "normal", 885 + "fontStyle": "normal", 886 + "underline": false, 887 + "overline": false, 888 + "linethrough": false, 889 + "deltaY": 0, 890 + "textBackgroundColor": "" 891 + }, 892 + "31": { 893 + "stroke": null, 894 + "strokeWidth": 1, 895 + "fill": "black", 896 + "fontFamily": "Times New Roman", 897 + "fontSize": "26", 898 + "fontWeight": "normal", 899 + "fontStyle": "normal", 900 + "underline": false, 901 + "overline": false, 902 + "linethrough": false, 903 + "deltaY": 0, 904 + "textBackgroundColor": "" 905 + }, 906 + "32": { 907 + "stroke": null, 908 + "strokeWidth": 1, 909 + "fill": "black", 910 + "fontFamily": "Times New Roman", 911 + "fontSize": "26", 912 + "fontWeight": "normal", 913 + "fontStyle": "normal", 914 + "underline": false, 915 + "overline": false, 916 + "linethrough": false, 917 + "deltaY": 0, 918 + "textBackgroundColor": "" 919 + }, 920 + "33": { 921 + "stroke": null, 922 + "strokeWidth": 1, 923 + "fill": "black", 924 + "fontFamily": "Times New Roman", 925 + "fontSize": "26", 926 + "fontWeight": "normal", 927 + "fontStyle": "normal", 928 + "underline": false, 929 + "overline": false, 930 + "linethrough": false, 931 + "deltaY": 0, 932 + "textBackgroundColor": "" 933 + }, 934 + "34": { 935 + "stroke": null, 936 + "strokeWidth": 1, 937 + "fill": "black", 938 + "fontFamily": "Times New Roman", 939 + "fontSize": "26", 940 + "fontWeight": "normal", 941 + "fontStyle": "normal", 942 + "underline": false, 943 + "overline": false, 944 + "linethrough": false, 945 + "deltaY": 0, 946 + "textBackgroundColor": "" 947 + }, 948 + "35": { 949 + "stroke": null, 950 + "strokeWidth": 1, 951 + "fill": "black", 952 + "fontFamily": "Times New Roman", 953 + "fontSize": "26", 954 + "fontWeight": "normal", 955 + "fontStyle": "normal", 956 + "underline": false, 957 + "overline": false, 958 + "linethrough": false, 959 + "deltaY": 0, 960 + "textBackgroundColor": "" 961 + }, 962 + "36": { 963 + "stroke": null, 964 + "strokeWidth": 1, 965 + "fill": "black", 966 + "fontFamily": "Times New Roman", 967 + "fontSize": "26", 968 + "fontWeight": "normal", 969 + "fontStyle": "normal", 970 + "underline": false, 971 + "overline": false, 972 + "linethrough": false, 973 + "deltaY": 0, 974 + "textBackgroundColor": "" 975 + }, 976 + "37": { 977 + "stroke": null, 978 + "strokeWidth": 1, 979 + "fill": "black", 980 + "fontFamily": "Times New Roman", 981 + "fontSize": "26", 982 + "fontWeight": "normal", 983 + "fontStyle": "normal", 984 + "underline": false, 985 + "overline": false, 986 + "linethrough": false, 987 + "deltaY": 0, 988 + "textBackgroundColor": "" 989 + }, 990 + "38": { 991 + "stroke": null, 992 + "strokeWidth": 1, 993 + "fill": "black", 994 + "fontFamily": "Times New Roman", 995 + "fontSize": "26", 996 + "fontWeight": "normal", 997 + "fontStyle": "normal", 998 + "underline": false, 999 + "overline": false, 1000 + "linethrough": false, 1001 + "deltaY": 0, 1002 + "textBackgroundColor": "" 1003 + }, 1004 + "39": { 1005 + "stroke": null, 1006 + "strokeWidth": 1, 1007 + "fill": "black", 1008 + "fontFamily": "Times New Roman", 1009 + "fontSize": "26", 1010 + "fontWeight": "normal", 1011 + "fontStyle": "normal", 1012 + "underline": false, 1013 + "overline": false, 1014 + "linethrough": false, 1015 + "deltaY": 0, 1016 + "textBackgroundColor": "" 1017 + }, 1018 + "40": { 1019 + "stroke": null, 1020 + "strokeWidth": 1, 1021 + "fill": "black", 1022 + "fontFamily": "Times New Roman", 1023 + "fontSize": "26", 1024 + "fontWeight": "normal", 1025 + "fontStyle": "normal", 1026 + "underline": false, 1027 + "overline": false, 1028 + "linethrough": false, 1029 + "deltaY": 0, 1030 + "textBackgroundColor": "" 1031 + }, 1032 + "41": { 1033 + "stroke": null, 1034 + "strokeWidth": 1, 1035 + "fill": "black", 1036 + "fontFamily": "Times New Roman", 1037 + "fontSize": "26", 1038 + "fontWeight": "normal", 1039 + "fontStyle": "normal", 1040 + "underline": false, 1041 + "overline": false, 1042 + "linethrough": false, 1043 + "deltaY": 0, 1044 + "textBackgroundColor": "" 1045 + }, 1046 + "42": { 1047 + "stroke": null, 1048 + "strokeWidth": 1, 1049 + "fill": "black", 1050 + "fontFamily": "Times New Roman", 1051 + "fontSize": "26", 1052 + "fontWeight": "normal", 1053 + "fontStyle": "normal", 1054 + "underline": false, 1055 + "overline": false, 1056 + "linethrough": false, 1057 + "deltaY": 0, 1058 + "textBackgroundColor": "" 1059 + }, 1060 + "43": { 1061 + "stroke": null, 1062 + "strokeWidth": 1, 1063 + "fill": "black", 1064 + "fontFamily": "Times New Roman", 1065 + "fontSize": "26", 1066 + "fontWeight": "normal", 1067 + "fontStyle": "normal", 1068 + "underline": false, 1069 + "overline": false, 1070 + "linethrough": false, 1071 + "deltaY": 0, 1072 + "textBackgroundColor": "" 1073 + }, 1074 + "44": { 1075 + "stroke": null, 1076 + "strokeWidth": 1, 1077 + "fill": "black", 1078 + "fontFamily": "Times New Roman", 1079 + "fontSize": "26", 1080 + "fontWeight": "normal", 1081 + "fontStyle": "normal", 1082 + "underline": false, 1083 + "overline": false, 1084 + "linethrough": false, 1085 + "deltaY": 0, 1086 + "textBackgroundColor": "" 1087 + }, 1088 + "45": { 1089 + "stroke": null, 1090 + "strokeWidth": 1, 1091 + "fill": "black", 1092 + "fontFamily": "Times New Roman", 1093 + "fontSize": "26", 1094 + "fontWeight": "normal", 1095 + "fontStyle": "normal", 1096 + "underline": false, 1097 + "overline": false, 1098 + "linethrough": false, 1099 + "deltaY": 0, 1100 + "textBackgroundColor": "" 1101 + }, 1102 + "46": { 1103 + "stroke": null, 1104 + "strokeWidth": 1, 1105 + "fill": "black", 1106 + "fontFamily": "Times New Roman", 1107 + "fontSize": "26", 1108 + "fontWeight": "normal", 1109 + "fontStyle": "normal", 1110 + "underline": false, 1111 + "overline": false, 1112 + "linethrough": false, 1113 + "deltaY": 0, 1114 + "textBackgroundColor": "" 1115 + }, 1116 + "47": { 1117 + "stroke": null, 1118 + "strokeWidth": 1, 1119 + "fill": "black", 1120 + "fontFamily": "Times New Roman", 1121 + "fontSize": "26", 1122 + "fontWeight": "normal", 1123 + "fontStyle": "normal", 1124 + "underline": false, 1125 + "overline": false, 1126 + "linethrough": false, 1127 + "deltaY": 0, 1128 + "textBackgroundColor": "" 1129 + }, 1130 + "48": { 1131 + "stroke": null, 1132 + "strokeWidth": 1, 1133 + "fill": "black", 1134 + "fontFamily": "Times New Roman", 1135 + "fontSize": "26", 1136 + "fontWeight": "normal", 1137 + "fontStyle": "normal", 1138 + "underline": false, 1139 + "overline": false, 1140 + "linethrough": false, 1141 + "deltaY": 0, 1142 + "textBackgroundColor": "" 1143 + }, 1144 + "49": { 1145 + "stroke": null, 1146 + "strokeWidth": 1, 1147 + "fill": "black", 1148 + "fontFamily": "Times New Roman", 1149 + "fontSize": 32, 1150 + "fontWeight": "normal", 1151 + "fontStyle": "normal", 1152 + "underline": false, 1153 + "overline": false, 1154 + "linethrough": false, 1155 + "deltaY": 0, 1156 + "textBackgroundColor": "" 1157 + }, 1158 + "50": { 1159 + "stroke": null, 1160 + "strokeWidth": 1, 1161 + "fill": "black", 1162 + "fontFamily": "Times New Roman", 1163 + "fontSize": 32, 1164 + "fontWeight": "normal", 1165 + "fontStyle": "normal", 1166 + "underline": false, 1167 + "overline": false, 1168 + "linethrough": false, 1169 + "deltaY": 0, 1170 + "textBackgroundColor": "" 1171 + }, 1172 + "51": { 1173 + "stroke": null, 1174 + "strokeWidth": 1, 1175 + "fill": "black", 1176 + "fontFamily": "Times New Roman", 1177 + "fontSize": 32, 1178 + "fontWeight": "normal", 1179 + "fontStyle": "normal", 1180 + "underline": false, 1181 + "overline": false, 1182 + "linethrough": false, 1183 + "deltaY": 0, 1184 + "textBackgroundColor": "" 1185 + }, 1186 + "52": { 1187 + "stroke": null, 1188 + "strokeWidth": 1, 1189 + "fill": "black", 1190 + "fontFamily": "Times New Roman", 1191 + "fontSize": 32, 1192 + "fontWeight": "normal", 1193 + "fontStyle": "normal", 1194 + "underline": false, 1195 + "overline": false, 1196 + "linethrough": false, 1197 + "deltaY": 0, 1198 + "textBackgroundColor": "" 1199 + }, 1200 + "53": { 1201 + "stroke": null, 1202 + "strokeWidth": 1, 1203 + "fill": "black", 1204 + "fontFamily": "Times New Roman", 1205 + "fontSize": 32, 1206 + "fontWeight": "normal", 1207 + "fontStyle": "normal", 1208 + "underline": false, 1209 + "overline": false, 1210 + "linethrough": false, 1211 + "deltaY": 0, 1212 + "textBackgroundColor": "" 1213 + }, 1214 + "54": { 1215 + "stroke": null, 1216 + "strokeWidth": 1, 1217 + "fill": "black", 1218 + "fontFamily": "Times New Roman", 1219 + "fontSize": 32, 1220 + "fontWeight": "normal", 1221 + "fontStyle": "normal", 1222 + "underline": false, 1223 + "overline": false, 1224 + "linethrough": false, 1225 + "deltaY": 0, 1226 + "textBackgroundColor": "" 1227 + }, 1228 + "55": { 1229 + "stroke": null, 1230 + "strokeWidth": 1, 1231 + "fill": "black", 1232 + "fontFamily": "Times New Roman", 1233 + "fontSize": "26", 1234 + "fontWeight": "normal", 1235 + "fontStyle": "normal", 1236 + "underline": false, 1237 + "overline": false, 1238 + "linethrough": false, 1239 + "deltaY": 0, 1240 + "textBackgroundColor": "" 1241 + }, 1242 + "56": { 1243 + "stroke": null, 1244 + "strokeWidth": 1, 1245 + "fill": "black", 1246 + "fontFamily": "Times New Roman", 1247 + "fontSize": "26", 1248 + "fontWeight": "normal", 1249 + "fontStyle": "normal", 1250 + "underline": false, 1251 + "overline": false, 1252 + "linethrough": false, 1253 + "deltaY": 0, 1254 + "textBackgroundColor": "" 1255 + }, 1256 + "57": { 1257 + "stroke": null, 1258 + "strokeWidth": 1, 1259 + "fill": "black", 1260 + "fontFamily": "Times New Roman", 1261 + "fontSize": "26", 1262 + "fontWeight": "normal", 1263 + "fontStyle": "normal", 1264 + "underline": false, 1265 + "overline": false, 1266 + "linethrough": false, 1267 + "deltaY": 0, 1268 + "textBackgroundColor": "" 1269 + }, 1270 + "58": { 1271 + "stroke": null, 1272 + "strokeWidth": 1, 1273 + "fill": "black", 1274 + "fontFamily": "Times New Roman", 1275 + "fontSize": "26", 1276 + "fontWeight": "normal", 1277 + "fontStyle": "normal", 1278 + "underline": false, 1279 + "overline": false, 1280 + "linethrough": false, 1281 + "deltaY": 0, 1282 + "textBackgroundColor": "" 1283 + }, 1284 + "59": { 1285 + "stroke": null, 1286 + "strokeWidth": 1, 1287 + "fill": "black", 1288 + "fontFamily": "Times New Roman", 1289 + "fontSize": "26", 1290 + "fontWeight": "normal", 1291 + "fontStyle": "normal", 1292 + "underline": false, 1293 + "overline": false, 1294 + "linethrough": false, 1295 + "deltaY": 0, 1296 + "textBackgroundColor": "" 1297 + } 1298 + }, 1299 + "2": { 1300 + "0": { 1301 + "stroke": null, 1302 + "strokeWidth": 1, 1303 + "fill": "black", 1304 + "fontFamily": "Times New Roman", 1305 + "fontSize": 32, 1306 + "fontWeight": "normal", 1307 + "fontStyle": "normal", 1308 + "underline": false, 1309 + "overline": false, 1310 + "linethrough": false, 1311 + "deltaY": 0, 1312 + "textBackgroundColor": "" 1313 + }, 1314 + "1": { 1315 + "stroke": null, 1316 + "strokeWidth": 1, 1317 + "fill": "black", 1318 + "fontFamily": "Times New Roman", 1319 + "fontSize": 32, 1320 + "fontWeight": "normal", 1321 + "fontStyle": "normal", 1322 + "underline": false, 1323 + "overline": false, 1324 + "linethrough": false, 1325 + "deltaY": 0, 1326 + "textBackgroundColor": "" 1327 + }, 1328 + "2": { 1329 + "stroke": null, 1330 + "strokeWidth": 1, 1331 + "fill": "black", 1332 + "fontFamily": "Times New Roman", 1333 + "fontSize": 32, 1334 + "fontWeight": "normal", 1335 + "fontStyle": "normal", 1336 + "underline": false, 1337 + "overline": false, 1338 + "linethrough": false, 1339 + "deltaY": 0, 1340 + "textBackgroundColor": "" 1341 + }, 1342 + "3": { 1343 + "stroke": null, 1344 + "strokeWidth": 1, 1345 + "fill": "black", 1346 + "fontFamily": "Times New Roman", 1347 + "fontSize": 32, 1348 + "fontWeight": "normal", 1349 + "fontStyle": "normal", 1350 + "underline": false, 1351 + "overline": false, 1352 + "linethrough": false, 1353 + "deltaY": 0, 1354 + "textBackgroundColor": "" 1355 + }, 1356 + "4": { 1357 + "stroke": null, 1358 + "strokeWidth": 1, 1359 + "fill": "black", 1360 + "fontFamily": "Times New Roman", 1361 + "fontSize": 32, 1362 + "fontWeight": "normal", 1363 + "fontStyle": "normal", 1364 + "underline": false, 1365 + "overline": false, 1366 + "linethrough": false, 1367 + "deltaY": 0, 1368 + "textBackgroundColor": "" 1369 + }, 1370 + "5": { 1371 + "stroke": null, 1372 + "strokeWidth": 1, 1373 + "fill": "black", 1374 + "fontFamily": "Times New Roman", 1375 + "fontSize": 32, 1376 + "fontWeight": "normal", 1377 + "fontStyle": "normal", 1378 + "underline": false, 1379 + "overline": false, 1380 + "linethrough": false, 1381 + "deltaY": 0, 1382 + "textBackgroundColor": "" 1383 + }, 1384 + "6": { 1385 + "stroke": null, 1386 + "strokeWidth": 1, 1387 + "fill": "black", 1388 + "fontFamily": "Times New Roman", 1389 + "fontSize": 32, 1390 + "fontWeight": "normal", 1391 + "fontStyle": "normal", 1392 + "underline": false, 1393 + "overline": false, 1394 + "linethrough": false, 1395 + "deltaY": 0, 1396 + "textBackgroundColor": "" 1397 + }, 1398 + "7": { 1399 + "stroke": null, 1400 + "strokeWidth": 1, 1401 + "fill": "black", 1402 + "fontFamily": "Times New Roman", 1403 + "fontSize": 32, 1404 + "fontWeight": "normal", 1405 + "fontStyle": "normal", 1406 + "underline": false, 1407 + "overline": false, 1408 + "linethrough": false, 1409 + "deltaY": 0, 1410 + "textBackgroundColor": "" 1411 + }, 1412 + "8": { 1413 + "stroke": null, 1414 + "strokeWidth": 1, 1415 + "fill": "black", 1416 + "fontFamily": "Times New Roman", 1417 + "fontSize": 32, 1418 + "fontWeight": "normal", 1419 + "fontStyle": "normal", 1420 + "underline": false, 1421 + "overline": false, 1422 + "linethrough": false, 1423 + "deltaY": 0, 1424 + "textBackgroundColor": "" 1425 + }, 1426 + "9": { 1427 + "stroke": null, 1428 + "strokeWidth": 1, 1429 + "fill": "black", 1430 + "fontFamily": "Times New Roman", 1431 + "fontSize": 32, 1432 + "fontWeight": "normal", 1433 + "fontStyle": "normal", 1434 + "underline": false, 1435 + "overline": false, 1436 + "linethrough": false, 1437 + "deltaY": 0, 1438 + "textBackgroundColor": "" 1439 + }, 1440 + "10": { 1441 + "stroke": null, 1442 + "strokeWidth": 1, 1443 + "fill": "black", 1444 + "fontFamily": "Times New Roman", 1445 + "fontSize": 32, 1446 + "fontWeight": "normal", 1447 + "fontStyle": "normal", 1448 + "underline": false, 1449 + "overline": false, 1450 + "linethrough": false, 1451 + "deltaY": 0, 1452 + "textBackgroundColor": "" 1453 + }, 1454 + "11": { 1455 + "stroke": null, 1456 + "strokeWidth": 1, 1457 + "fill": "black", 1458 + "fontFamily": "Times New Roman", 1459 + "fontSize": 32, 1460 + "fontWeight": "normal", 1461 + "fontStyle": "normal", 1462 + "underline": false, 1463 + "overline": false, 1464 + "linethrough": false, 1465 + "deltaY": 0, 1466 + "textBackgroundColor": "" 1467 + }, 1468 + "12": { 1469 + "stroke": null, 1470 + "strokeWidth": 1, 1471 + "fill": "black", 1472 + "fontFamily": "Times New Roman", 1473 + "fontSize": 32, 1474 + "fontWeight": "normal", 1475 + "fontStyle": "normal", 1476 + "underline": false, 1477 + "overline": false, 1478 + "linethrough": false, 1479 + "deltaY": 0, 1480 + "textBackgroundColor": "" 1481 + }, 1482 + "13": { 1483 + "stroke": null, 1484 + "strokeWidth": 1, 1485 + "fill": "black", 1486 + "fontFamily": "Times New Roman", 1487 + "fontSize": 32, 1488 + "fontWeight": "normal", 1489 + "fontStyle": "normal", 1490 + "underline": false, 1491 + "overline": false, 1492 + "linethrough": false, 1493 + "deltaY": 0, 1494 + "textBackgroundColor": "" 1495 + }, 1496 + "14": { 1497 + "stroke": null, 1498 + "strokeWidth": 1, 1499 + "fill": "black", 1500 + "fontFamily": "Times New Roman", 1501 + "fontSize": 32, 1502 + "fontWeight": "normal", 1503 + "fontStyle": "normal", 1504 + "underline": false, 1505 + "overline": false, 1506 + "linethrough": false, 1507 + "deltaY": 0, 1508 + "textBackgroundColor": "" 1509 + }, 1510 + "15": { 1511 + "stroke": null, 1512 + "strokeWidth": 1, 1513 + "fill": "black", 1514 + "fontFamily": "Times New Roman", 1515 + "fontSize": 32, 1516 + "fontWeight": "normal", 1517 + "fontStyle": "normal", 1518 + "underline": false, 1519 + "overline": false, 1520 + "linethrough": false, 1521 + "deltaY": 0, 1522 + "textBackgroundColor": "" 1523 + }, 1524 + "16": { 1525 + "stroke": null, 1526 + "strokeWidth": 1, 1527 + "fill": "black", 1528 + "fontFamily": "Times New Roman", 1529 + "fontSize": 32, 1530 + "fontWeight": "normal", 1531 + "fontStyle": "normal", 1532 + "underline": false, 1533 + "overline": false, 1534 + "linethrough": false, 1535 + "deltaY": 0, 1536 + "textBackgroundColor": "" 1537 + }, 1538 + "17": { 1539 + "stroke": null, 1540 + "strokeWidth": 1, 1541 + "fill": "black", 1542 + "fontFamily": "Times New Roman", 1543 + "fontSize": 32, 1544 + "fontWeight": "normal", 1545 + "fontStyle": "normal", 1546 + "underline": false, 1547 + "overline": false, 1548 + "linethrough": false, 1549 + "deltaY": 0, 1550 + "textBackgroundColor": "" 1551 + }, 1552 + "18": { 1553 + "stroke": null, 1554 + "strokeWidth": 1, 1555 + "fill": "black", 1556 + "fontFamily": "Times New Roman", 1557 + "fontSize": 32, 1558 + "fontWeight": "normal", 1559 + "fontStyle": "normal", 1560 + "underline": false, 1561 + "overline": false, 1562 + "linethrough": false, 1563 + "deltaY": 0, 1564 + "textBackgroundColor": "" 1565 + }, 1566 + "19": { 1567 + "stroke": null, 1568 + "strokeWidth": 1, 1569 + "fill": "black", 1570 + "fontFamily": "Times New Roman", 1571 + "fontSize": 32, 1572 + "fontWeight": "normal", 1573 + "fontStyle": "normal", 1574 + "underline": false, 1575 + "overline": false, 1576 + "linethrough": false, 1577 + "deltaY": 0, 1578 + "textBackgroundColor": "" 1579 + }, 1580 + "20": { 1581 + "stroke": null, 1582 + "strokeWidth": 1, 1583 + "fill": "black", 1584 + "fontFamily": "Times New Roman", 1585 + "fontSize": 32, 1586 + "fontWeight": "normal", 1587 + "fontStyle": "normal", 1588 + "underline": false, 1589 + "overline": false, 1590 + "linethrough": false, 1591 + "deltaY": 0, 1592 + "textBackgroundColor": "" 1593 + }, 1594 + "21": { 1595 + "stroke": null, 1596 + "strokeWidth": 1, 1597 + "fill": "black", 1598 + "fontFamily": "Times New Roman", 1599 + "fontSize": 32, 1600 + "fontWeight": "normal", 1601 + "fontStyle": "normal", 1602 + "underline": false, 1603 + "overline": false, 1604 + "linethrough": false, 1605 + "deltaY": 0, 1606 + "textBackgroundColor": "" 1607 + }, 1608 + "22": { 1609 + "stroke": null, 1610 + "strokeWidth": 1, 1611 + "fill": "black", 1612 + "fontFamily": "Times New Roman", 1613 + "fontSize": 32, 1614 + "fontWeight": "normal", 1615 + "fontStyle": "normal", 1616 + "underline": false, 1617 + "overline": false, 1618 + "linethrough": false, 1619 + "deltaY": 0, 1620 + "textBackgroundColor": "" 1621 + }, 1622 + "23": { 1623 + "stroke": null, 1624 + "strokeWidth": 1, 1625 + "fill": "black", 1626 + "fontFamily": "Times New Roman", 1627 + "fontSize": 32, 1628 + "fontWeight": "normal", 1629 + "fontStyle": "normal", 1630 + "underline": false, 1631 + "overline": false, 1632 + "linethrough": false, 1633 + "deltaY": 0, 1634 + "textBackgroundColor": "" 1635 + }, 1636 + "24": { 1637 + "stroke": null, 1638 + "strokeWidth": 1, 1639 + "fill": "black", 1640 + "fontFamily": "Times New Roman", 1641 + "fontSize": 32, 1642 + "fontWeight": "normal", 1643 + "fontStyle": "normal", 1644 + "underline": false, 1645 + "overline": false, 1646 + "linethrough": false, 1647 + "deltaY": 0, 1648 + "textBackgroundColor": "" 1649 + }, 1650 + "25": { 1651 + "stroke": null, 1652 + "strokeWidth": 1, 1653 + "fill": "black", 1654 + "fontFamily": "Times New Roman", 1655 + "fontSize": 32, 1656 + "fontWeight": "normal", 1657 + "fontStyle": "normal", 1658 + "underline": false, 1659 + "overline": false, 1660 + "linethrough": false, 1661 + "deltaY": 0, 1662 + "textBackgroundColor": "" 1663 + }, 1664 + "26": { 1665 + "stroke": null, 1666 + "strokeWidth": 1, 1667 + "fill": "black", 1668 + "fontFamily": "Times New Roman", 1669 + "fontSize": 32, 1670 + "fontWeight": "normal", 1671 + "fontStyle": "normal", 1672 + "underline": false, 1673 + "overline": false, 1674 + "linethrough": false, 1675 + "deltaY": 0, 1676 + "textBackgroundColor": "" 1677 + }, 1678 + "27": { 1679 + "stroke": null, 1680 + "strokeWidth": 1, 1681 + "fill": "black", 1682 + "fontFamily": "Times New Roman", 1683 + "fontSize": 32, 1684 + "fontWeight": "normal", 1685 + "fontStyle": "normal", 1686 + "underline": false, 1687 + "overline": false, 1688 + "linethrough": false, 1689 + "deltaY": 0, 1690 + "textBackgroundColor": "" 1691 + }, 1692 + "28": { 1693 + "stroke": null, 1694 + "strokeWidth": 1, 1695 + "fill": "black", 1696 + "fontFamily": "Times New Roman", 1697 + "fontSize": 32, 1698 + "fontWeight": "normal", 1699 + "fontStyle": "normal", 1700 + "underline": false, 1701 + "overline": false, 1702 + "linethrough": false, 1703 + "deltaY": 0, 1704 + "textBackgroundColor": "" 1705 + }, 1706 + "29": { 1707 + "stroke": null, 1708 + "strokeWidth": 1, 1709 + "fill": "black", 1710 + "fontFamily": "Times New Roman", 1711 + "fontSize": 32, 1712 + "fontWeight": "normal", 1713 + "fontStyle": "normal", 1714 + "underline": false, 1715 + "overline": false, 1716 + "linethrough": false, 1717 + "deltaY": 0, 1718 + "textBackgroundColor": "" 1719 + }, 1720 + "30": { 1721 + "stroke": null, 1722 + "strokeWidth": 1, 1723 + "fill": "black", 1724 + "fontFamily": "Times New Roman", 1725 + "fontSize": 32, 1726 + "fontWeight": "normal", 1727 + "fontStyle": "normal", 1728 + "underline": false, 1729 + "overline": false, 1730 + "linethrough": false, 1731 + "deltaY": 0, 1732 + "textBackgroundColor": "" 1733 + }, 1734 + "31": { 1735 + "stroke": null, 1736 + "strokeWidth": 1, 1737 + "fill": "black", 1738 + "fontFamily": "Times New Roman", 1739 + "fontSize": 32, 1740 + "fontWeight": "normal", 1741 + "fontStyle": "normal", 1742 + "underline": false, 1743 + "overline": false, 1744 + "linethrough": false, 1745 + "deltaY": 0, 1746 + "textBackgroundColor": "" 1747 + }, 1748 + "32": { 1749 + "stroke": null, 1750 + "strokeWidth": 1, 1751 + "fill": "black", 1752 + "fontFamily": "Times New Roman", 1753 + "fontSize": 32, 1754 + "fontWeight": "normal", 1755 + "fontStyle": "normal", 1756 + "underline": false, 1757 + "overline": false, 1758 + "linethrough": false, 1759 + "deltaY": 0, 1760 + "textBackgroundColor": "" 1761 + }, 1762 + "33": { 1763 + "stroke": null, 1764 + "strokeWidth": 1, 1765 + "fill": "black", 1766 + "fontFamily": "Times New Roman", 1767 + "fontSize": 32, 1768 + "fontWeight": "normal", 1769 + "fontStyle": "normal", 1770 + "underline": false, 1771 + "overline": false, 1772 + "linethrough": false, 1773 + "deltaY": 0, 1774 + "textBackgroundColor": "" 1775 + }, 1776 + "34": { 1777 + "stroke": null, 1778 + "strokeWidth": 1, 1779 + "fill": "black", 1780 + "fontFamily": "Times New Roman", 1781 + "fontSize": 32, 1782 + "fontWeight": "normal", 1783 + "fontStyle": "normal", 1784 + "underline": false, 1785 + "overline": false, 1786 + "linethrough": false, 1787 + "deltaY": 0, 1788 + "textBackgroundColor": "" 1789 + }, 1790 + "35": { 1791 + "stroke": null, 1792 + "strokeWidth": 1, 1793 + "fill": "black", 1794 + "fontFamily": "Times New Roman", 1795 + "fontSize": 32, 1796 + "fontWeight": "normal", 1797 + "fontStyle": "normal", 1798 + "underline": false, 1799 + "overline": false, 1800 + "linethrough": false, 1801 + "deltaY": 0, 1802 + "textBackgroundColor": "" 1803 + }, 1804 + "36": { 1805 + "stroke": null, 1806 + "strokeWidth": 1, 1807 + "fill": "black", 1808 + "fontFamily": "Times New Roman", 1809 + "fontSize": 32, 1810 + "fontWeight": "normal", 1811 + "fontStyle": "normal", 1812 + "underline": false, 1813 + "overline": false, 1814 + "linethrough": false, 1815 + "deltaY": 0, 1816 + "textBackgroundColor": "" 1817 + }, 1818 + "37": { 1819 + "stroke": null, 1820 + "strokeWidth": 1, 1821 + "fill": "black", 1822 + "fontFamily": "Times New Roman", 1823 + "fontSize": 32, 1824 + "fontWeight": "normal", 1825 + "fontStyle": "normal", 1826 + "underline": false, 1827 + "overline": false, 1828 + "linethrough": false, 1829 + "deltaY": 0, 1830 + "textBackgroundColor": "" 1831 + }, 1832 + "38": { 1833 + "stroke": null, 1834 + "strokeWidth": 1, 1835 + "fill": "black", 1836 + "fontFamily": "Times New Roman", 1837 + "fontSize": 32, 1838 + "fontWeight": "normal", 1839 + "fontStyle": "normal", 1840 + "underline": false, 1841 + "overline": false, 1842 + "linethrough": false, 1843 + "deltaY": 0, 1844 + "textBackgroundColor": "" 1845 + }, 1846 + "39": { 1847 + "stroke": null, 1848 + "strokeWidth": 1, 1849 + "fill": "black", 1850 + "fontFamily": "Times New Roman", 1851 + "fontSize": 32, 1852 + "fontWeight": "normal", 1853 + "fontStyle": "normal", 1854 + "underline": false, 1855 + "overline": false, 1856 + "linethrough": false, 1857 + "deltaY": 0, 1858 + "textBackgroundColor": "" 1859 + }, 1860 + "40": { 1861 + "stroke": null, 1862 + "strokeWidth": 1, 1863 + "fill": "black", 1864 + "fontFamily": "Times New Roman", 1865 + "fontSize": 32, 1866 + "fontWeight": "normal", 1867 + "fontStyle": "normal", 1868 + "underline": false, 1869 + "overline": false, 1870 + "linethrough": false, 1871 + "deltaY": 0, 1872 + "textBackgroundColor": "" 1873 + }, 1874 + "41": { 1875 + "stroke": null, 1876 + "strokeWidth": 1, 1877 + "fill": "black", 1878 + "fontFamily": "Times New Roman", 1879 + "fontSize": 32, 1880 + "fontWeight": "normal", 1881 + "fontStyle": "normal", 1882 + "underline": false, 1883 + "overline": false, 1884 + "linethrough": false, 1885 + "deltaY": 0, 1886 + "textBackgroundColor": "" 1887 + }, 1888 + "42": { 1889 + "stroke": null, 1890 + "strokeWidth": 1, 1891 + "fill": "black", 1892 + "fontFamily": "Times New Roman", 1893 + "fontSize": 32, 1894 + "fontWeight": "normal", 1895 + "fontStyle": "normal", 1896 + "underline": false, 1897 + "overline": false, 1898 + "linethrough": false, 1899 + "deltaY": 0, 1900 + "textBackgroundColor": "" 1901 + }, 1902 + "43": { 1903 + "stroke": null, 1904 + "strokeWidth": 1, 1905 + "fill": "black", 1906 + "fontFamily": "Times New Roman", 1907 + "fontSize": 32, 1908 + "fontWeight": "normal", 1909 + "fontStyle": "normal", 1910 + "underline": false, 1911 + "overline": false, 1912 + "linethrough": false, 1913 + "deltaY": 0, 1914 + "textBackgroundColor": "" 1915 + }, 1916 + "44": { 1917 + "stroke": null, 1918 + "strokeWidth": 1, 1919 + "fill": "black", 1920 + "fontFamily": "Times New Roman", 1921 + "fontSize": 32, 1922 + "fontWeight": "normal", 1923 + "fontStyle": "normal", 1924 + "underline": false, 1925 + "overline": false, 1926 + "linethrough": false, 1927 + "deltaY": 0, 1928 + "textBackgroundColor": "" 1929 + }, 1930 + "45": { 1931 + "stroke": null, 1932 + "strokeWidth": 1, 1933 + "fill": "black", 1934 + "fontFamily": "Times New Roman", 1935 + "fontSize": 32, 1936 + "fontWeight": "normal", 1937 + "fontStyle": "normal", 1938 + "underline": false, 1939 + "overline": false, 1940 + "linethrough": false, 1941 + "deltaY": 0, 1942 + "textBackgroundColor": "" 1943 + }, 1944 + "46": { 1945 + "stroke": null, 1946 + "strokeWidth": 1, 1947 + "fill": "black", 1948 + "fontFamily": "Times New Roman", 1949 + "fontSize": 32, 1950 + "fontWeight": "normal", 1951 + "fontStyle": "normal", 1952 + "underline": false, 1953 + "overline": false, 1954 + "linethrough": false, 1955 + "deltaY": 0, 1956 + "textBackgroundColor": "" 1957 + }, 1958 + "47": { 1959 + "stroke": null, 1960 + "strokeWidth": 1, 1961 + "fill": "black", 1962 + "fontFamily": "Times New Roman", 1963 + "fontSize": 32, 1964 + "fontWeight": "normal", 1965 + "fontStyle": "normal", 1966 + "underline": false, 1967 + "overline": false, 1968 + "linethrough": false, 1969 + "deltaY": 0, 1970 + "textBackgroundColor": "" 1971 + }, 1972 + "48": { 1973 + "stroke": null, 1974 + "strokeWidth": 1, 1975 + "fill": "black", 1976 + "fontFamily": "Times New Roman", 1977 + "fontSize": 32, 1978 + "fontWeight": "normal", 1979 + "fontStyle": "normal", 1980 + "underline": false, 1981 + "overline": false, 1982 + "linethrough": false, 1983 + "deltaY": 0, 1984 + "textBackgroundColor": "" 1985 + }, 1986 + "49": { 1987 + "stroke": null, 1988 + "strokeWidth": 1, 1989 + "fill": "black", 1990 + "fontFamily": "Times New Roman", 1991 + "fontSize": 32, 1992 + "fontWeight": "normal", 1993 + "fontStyle": "normal", 1994 + "underline": false, 1995 + "overline": false, 1996 + "linethrough": false, 1997 + "deltaY": 0, 1998 + "textBackgroundColor": "" 1999 + }, 2000 + "50": { 2001 + "stroke": null, 2002 + "strokeWidth": 1, 2003 + "fill": "black", 2004 + "fontFamily": "Times New Roman", 2005 + "fontSize": 32, 2006 + "fontWeight": "normal", 2007 + "fontStyle": "normal", 2008 + "underline": false, 2009 + "overline": false, 2010 + "linethrough": false, 2011 + "deltaY": 0, 2012 + "textBackgroundColor": "" 2013 + }, 2014 + "51": { 2015 + "stroke": null, 2016 + "strokeWidth": 1, 2017 + "fill": "black", 2018 + "fontFamily": "Times New Roman", 2019 + "fontSize": 32, 2020 + "fontWeight": "normal", 2021 + "fontStyle": "normal", 2022 + "underline": false, 2023 + "overline": false, 2024 + "linethrough": false, 2025 + "deltaY": 0, 2026 + "textBackgroundColor": "" 2027 + }, 2028 + "52": { 2029 + "stroke": null, 2030 + "strokeWidth": 1, 2031 + "fill": "black", 2032 + "fontFamily": "Times New Roman", 2033 + "fontSize": 32, 2034 + "fontWeight": "normal", 2035 + "fontStyle": "normal", 2036 + "underline": false, 2037 + "overline": false, 2038 + "linethrough": false, 2039 + "deltaY": 0, 2040 + "textBackgroundColor": "" 2041 + }, 2042 + "53": { 2043 + "stroke": null, 2044 + "strokeWidth": 1, 2045 + "fill": "black", 2046 + "fontFamily": "Times New Roman", 2047 + "fontSize": 32, 2048 + "fontWeight": "normal", 2049 + "fontStyle": "normal", 2050 + "underline": false, 2051 + "overline": false, 2052 + "linethrough": false, 2053 + "deltaY": 0, 2054 + "textBackgroundColor": "" 2055 + }, 2056 + "54": { 2057 + "stroke": null, 2058 + "strokeWidth": 1, 2059 + "fill": "black", 2060 + "fontFamily": "Times New Roman", 2061 + "fontSize": 32, 2062 + "fontWeight": "normal", 2063 + "fontStyle": "normal", 2064 + "underline": false, 2065 + "overline": false, 2066 + "linethrough": false, 2067 + "deltaY": 0, 2068 + "textBackgroundColor": "" 2069 + }, 2070 + "55": { 2071 + "stroke": null, 2072 + "strokeWidth": 1, 2073 + "fill": "black", 2074 + "fontFamily": "Times New Roman", 2075 + "fontSize": 32, 2076 + "fontWeight": "normal", 2077 + "fontStyle": "normal", 2078 + "underline": false, 2079 + "overline": false, 2080 + "linethrough": false, 2081 + "deltaY": 0, 2082 + "textBackgroundColor": "" 2083 + }, 2084 + "56": { 2085 + "stroke": null, 2086 + "strokeWidth": 1, 2087 + "fill": "black", 2088 + "fontFamily": "Times New Roman", 2089 + "fontSize": 32, 2090 + "fontWeight": "normal", 2091 + "fontStyle": "normal", 2092 + "underline": false, 2093 + "overline": false, 2094 + "linethrough": false, 2095 + "deltaY": 0, 2096 + "textBackgroundColor": "" 2097 + }, 2098 + "57": { 2099 + "stroke": null, 2100 + "strokeWidth": 1, 2101 + "fill": "black", 2102 + "fontFamily": "Times New Roman", 2103 + "fontSize": 32, 2104 + "fontWeight": "normal", 2105 + "fontStyle": "normal", 2106 + "underline": false, 2107 + "overline": false, 2108 + "linethrough": false, 2109 + "deltaY": 0, 2110 + "textBackgroundColor": "" 2111 + }, 2112 + "58": { 2113 + "stroke": null, 2114 + "strokeWidth": 1, 2115 + "fill": "black", 2116 + "fontFamily": "Times New Roman", 2117 + "fontSize": 32, 2118 + "fontWeight": "normal", 2119 + "fontStyle": "normal", 2120 + "underline": false, 2121 + "overline": false, 2122 + "linethrough": false, 2123 + "deltaY": 0, 2124 + "textBackgroundColor": "" 2125 + } 2126 + }, 2127 + "3": { 2128 + "0": { 2129 + "stroke": null, 2130 + "strokeWidth": 1, 2131 + "fill": "black", 2132 + "fontFamily": "Times New Roman", 2133 + "fontSize": 32, 2134 + "fontWeight": "normal", 2135 + "fontStyle": "normal", 2136 + "underline": false, 2137 + "overline": false, 2138 + "linethrough": false, 2139 + "deltaY": 0, 2140 + "textBackgroundColor": "" 2141 + }, 2142 + "1": { 2143 + "stroke": null, 2144 + "strokeWidth": 1, 2145 + "fill": "black", 2146 + "fontFamily": "Times New Roman", 2147 + "fontSize": 32, 2148 + "fontWeight": "normal", 2149 + "fontStyle": "normal", 2150 + "underline": false, 2151 + "overline": false, 2152 + "linethrough": false, 2153 + "deltaY": 0, 2154 + "textBackgroundColor": "" 2155 + }, 2156 + "2": { 2157 + "stroke": null, 2158 + "strokeWidth": 1, 2159 + "fill": "black", 2160 + "fontFamily": "Times New Roman", 2161 + "fontSize": 32, 2162 + "fontWeight": "normal", 2163 + "fontStyle": "normal", 2164 + "underline": false, 2165 + "overline": false, 2166 + "linethrough": false, 2167 + "deltaY": 0, 2168 + "textBackgroundColor": "" 2169 + }, 2170 + "3": { 2171 + "stroke": null, 2172 + "strokeWidth": 1, 2173 + "fill": "black", 2174 + "fontFamily": "Times New Roman", 2175 + "fontSize": 32, 2176 + "fontWeight": "normal", 2177 + "fontStyle": "normal", 2178 + "underline": false, 2179 + "overline": false, 2180 + "linethrough": false, 2181 + "deltaY": 0, 2182 + "textBackgroundColor": "" 2183 + }, 2184 + "4": { 2185 + "stroke": null, 2186 + "strokeWidth": 1, 2187 + "fill": "black", 2188 + "fontFamily": "Times New Roman", 2189 + "fontSize": 32, 2190 + "fontWeight": "normal", 2191 + "fontStyle": "normal", 2192 + "underline": false, 2193 + "overline": false, 2194 + "linethrough": false, 2195 + "deltaY": 0, 2196 + "textBackgroundColor": "" 2197 + }, 2198 + "5": { 2199 + "stroke": null, 2200 + "strokeWidth": 1, 2201 + "fill": "black", 2202 + "fontFamily": "Times New Roman", 2203 + "fontSize": 32, 2204 + "fontWeight": "normal", 2205 + "fontStyle": "normal", 2206 + "underline": false, 2207 + "overline": false, 2208 + "linethrough": false, 2209 + "deltaY": 0, 2210 + "textBackgroundColor": "" 2211 + }, 2212 + "6": { 2213 + "stroke": null, 2214 + "strokeWidth": 1, 2215 + "fill": "black", 2216 + "fontFamily": "Times New Roman", 2217 + "fontSize": 32, 2218 + "fontWeight": "normal", 2219 + "fontStyle": "normal", 2220 + "underline": false, 2221 + "overline": false, 2222 + "linethrough": false, 2223 + "deltaY": 0, 2224 + "textBackgroundColor": "" 2225 + }, 2226 + "7": { 2227 + "stroke": null, 2228 + "strokeWidth": 1, 2229 + "fill": "black", 2230 + "fontFamily": "Times New Roman", 2231 + "fontSize": 32, 2232 + "fontWeight": "normal", 2233 + "fontStyle": "normal", 2234 + "underline": false, 2235 + "overline": false, 2236 + "linethrough": false, 2237 + "deltaY": 0, 2238 + "textBackgroundColor": "" 2239 + }, 2240 + "8": { 2241 + "stroke": null, 2242 + "strokeWidth": 1, 2243 + "fill": "black", 2244 + "fontFamily": "Times New Roman", 2245 + "fontSize": 32, 2246 + "fontWeight": "normal", 2247 + "fontStyle": "normal", 2248 + "underline": false, 2249 + "overline": false, 2250 + "linethrough": false, 2251 + "deltaY": 0, 2252 + "textBackgroundColor": "" 2253 + }, 2254 + "9": { 2255 + "stroke": null, 2256 + "strokeWidth": 1, 2257 + "fill": "black", 2258 + "fontFamily": "Times New Roman", 2259 + "fontSize": 32, 2260 + "fontWeight": "normal", 2261 + "fontStyle": "normal", 2262 + "underline": false, 2263 + "overline": false, 2264 + "linethrough": false, 2265 + "deltaY": 0, 2266 + "textBackgroundColor": "" 2267 + }, 2268 + "10": { 2269 + "stroke": null, 2270 + "strokeWidth": 1, 2271 + "fill": "black", 2272 + "fontFamily": "Times New Roman", 2273 + "fontSize": 32, 2274 + "fontWeight": "normal", 2275 + "fontStyle": "normal", 2276 + "underline": false, 2277 + "overline": false, 2278 + "linethrough": false, 2279 + "deltaY": 0, 2280 + "textBackgroundColor": "" 2281 + }, 2282 + "11": { 2283 + "stroke": null, 2284 + "strokeWidth": 1, 2285 + "fill": "black", 2286 + "fontFamily": "Times New Roman", 2287 + "fontSize": 32, 2288 + "fontWeight": "normal", 2289 + "fontStyle": "normal", 2290 + "underline": false, 2291 + "overline": false, 2292 + "linethrough": false, 2293 + "deltaY": 0, 2294 + "textBackgroundColor": "" 2295 + }, 2296 + "12": { 2297 + "stroke": null, 2298 + "strokeWidth": 1, 2299 + "fill": "black", 2300 + "fontFamily": "Times New Roman", 2301 + "fontSize": 32, 2302 + "fontWeight": "normal", 2303 + "fontStyle": "normal", 2304 + "underline": false, 2305 + "overline": false, 2306 + "linethrough": false, 2307 + "deltaY": 0, 2308 + "textBackgroundColor": "" 2309 + }, 2310 + "13": { 2311 + "stroke": null, 2312 + "strokeWidth": 1, 2313 + "fill": "black", 2314 + "fontFamily": "Times New Roman", 2315 + "fontSize": 32, 2316 + "fontWeight": "normal", 2317 + "fontStyle": "normal", 2318 + "underline": false, 2319 + "overline": false, 2320 + "linethrough": false, 2321 + "deltaY": 0, 2322 + "textBackgroundColor": "" 2323 + }, 2324 + "14": { 2325 + "stroke": null, 2326 + "strokeWidth": 1, 2327 + "fill": "black", 2328 + "fontFamily": "Times New Roman", 2329 + "fontSize": 32, 2330 + "fontWeight": "normal", 2331 + "fontStyle": "normal", 2332 + "underline": false, 2333 + "overline": false, 2334 + "linethrough": false, 2335 + "deltaY": 0, 2336 + "textBackgroundColor": "" 2337 + }, 2338 + "15": { 2339 + "stroke": null, 2340 + "strokeWidth": 1, 2341 + "fill": "black", 2342 + "fontFamily": "Times New Roman", 2343 + "fontSize": 32, 2344 + "fontWeight": "normal", 2345 + "fontStyle": "normal", 2346 + "underline": false, 2347 + "overline": false, 2348 + "linethrough": false, 2349 + "deltaY": 0, 2350 + "textBackgroundColor": "" 2351 + }, 2352 + "16": { 2353 + "stroke": null, 2354 + "strokeWidth": 1, 2355 + "fill": "black", 2356 + "fontFamily": "Times New Roman", 2357 + "fontSize": 32, 2358 + "fontWeight": "normal", 2359 + "fontStyle": "normal", 2360 + "underline": false, 2361 + "overline": false, 2362 + "linethrough": false, 2363 + "deltaY": 0, 2364 + "textBackgroundColor": "" 2365 + }, 2366 + "17": { 2367 + "stroke": null, 2368 + "strokeWidth": 1, 2369 + "fill": "black", 2370 + "fontFamily": "Times New Roman", 2371 + "fontSize": 32, 2372 + "fontWeight": "normal", 2373 + "fontStyle": "normal", 2374 + "underline": false, 2375 + "overline": false, 2376 + "linethrough": false, 2377 + "deltaY": 0, 2378 + "textBackgroundColor": "" 2379 + }, 2380 + "18": { 2381 + "stroke": null, 2382 + "strokeWidth": 1, 2383 + "fill": "black", 2384 + "fontFamily": "Times New Roman", 2385 + "fontSize": 32, 2386 + "fontWeight": "normal", 2387 + "fontStyle": "normal", 2388 + "underline": false, 2389 + "overline": false, 2390 + "linethrough": false, 2391 + "deltaY": 0, 2392 + "textBackgroundColor": "" 2393 + }, 2394 + "19": { 2395 + "stroke": null, 2396 + "strokeWidth": 1, 2397 + "fill": "black", 2398 + "fontFamily": "Times New Roman", 2399 + "fontSize": 32, 2400 + "fontWeight": "normal", 2401 + "fontStyle": "normal", 2402 + "underline": false, 2403 + "overline": false, 2404 + "linethrough": false, 2405 + "deltaY": 0, 2406 + "textBackgroundColor": "" 2407 + }, 2408 + "20": { 2409 + "stroke": null, 2410 + "strokeWidth": 1, 2411 + "fill": "black", 2412 + "fontFamily": "Times New Roman", 2413 + "fontSize": 32, 2414 + "fontWeight": "normal", 2415 + "fontStyle": "normal", 2416 + "underline": false, 2417 + "overline": false, 2418 + "linethrough": false, 2419 + "deltaY": 0, 2420 + "textBackgroundColor": "" 2421 + }, 2422 + "21": { 2423 + "stroke": null, 2424 + "strokeWidth": 1, 2425 + "fill": "black", 2426 + "fontFamily": "Times New Roman", 2427 + "fontSize": 32, 2428 + "fontWeight": "normal", 2429 + "fontStyle": "normal", 2430 + "underline": false, 2431 + "overline": false, 2432 + "linethrough": false, 2433 + "deltaY": 0, 2434 + "textBackgroundColor": "" 2435 + }, 2436 + "22": { 2437 + "stroke": null, 2438 + "strokeWidth": 1, 2439 + "fill": "black", 2440 + "fontFamily": "Times New Roman", 2441 + "fontSize": 32, 2442 + "fontWeight": "normal", 2443 + "fontStyle": "normal", 2444 + "underline": false, 2445 + "overline": false, 2446 + "linethrough": false, 2447 + "deltaY": 0, 2448 + "textBackgroundColor": "" 2449 + }, 2450 + "23": { 2451 + "stroke": null, 2452 + "strokeWidth": 1, 2453 + "fill": "black", 2454 + "fontFamily": "Times New Roman", 2455 + "fontSize": 32, 2456 + "fontWeight": "normal", 2457 + "fontStyle": "normal", 2458 + "underline": false, 2459 + "overline": false, 2460 + "linethrough": false, 2461 + "deltaY": 0, 2462 + "textBackgroundColor": "" 2463 + }, 2464 + "24": { 2465 + "stroke": null, 2466 + "strokeWidth": 1, 2467 + "fill": "black", 2468 + "fontFamily": "Times New Roman", 2469 + "fontSize": 32, 2470 + "fontWeight": "normal", 2471 + "fontStyle": "normal", 2472 + "underline": false, 2473 + "overline": false, 2474 + "linethrough": false, 2475 + "deltaY": 0, 2476 + "textBackgroundColor": "" 2477 + }, 2478 + "25": { 2479 + "stroke": null, 2480 + "strokeWidth": 1, 2481 + "fill": "black", 2482 + "fontFamily": "Times New Roman", 2483 + "fontSize": 32, 2484 + "fontWeight": "normal", 2485 + "fontStyle": "normal", 2486 + "underline": false, 2487 + "overline": false, 2488 + "linethrough": false, 2489 + "deltaY": 0, 2490 + "textBackgroundColor": "" 2491 + }, 2492 + "26": { 2493 + "stroke": null, 2494 + "strokeWidth": 1, 2495 + "fill": "black", 2496 + "fontFamily": "Times New Roman", 2497 + "fontSize": 32, 2498 + "fontWeight": "normal", 2499 + "fontStyle": "normal", 2500 + "underline": false, 2501 + "overline": false, 2502 + "linethrough": false, 2503 + "deltaY": 0, 2504 + "textBackgroundColor": "" 2505 + }, 2506 + "27": { 2507 + "stroke": null, 2508 + "strokeWidth": 1, 2509 + "fill": "black", 2510 + "fontFamily": "Times New Roman", 2511 + "fontSize": 32, 2512 + "fontWeight": "normal", 2513 + "fontStyle": "normal", 2514 + "underline": false, 2515 + "overline": false, 2516 + "linethrough": false, 2517 + "deltaY": 0, 2518 + "textBackgroundColor": "" 2519 + }, 2520 + "28": { 2521 + "stroke": null, 2522 + "strokeWidth": 1, 2523 + "fill": "black", 2524 + "fontFamily": "Times New Roman", 2525 + "fontSize": 32, 2526 + "fontWeight": "normal", 2527 + "fontStyle": "normal", 2528 + "underline": false, 2529 + "overline": false, 2530 + "linethrough": false, 2531 + "deltaY": 0, 2532 + "textBackgroundColor": "" 2533 + }, 2534 + "29": { 2535 + "stroke": null, 2536 + "strokeWidth": 1, 2537 + "fill": "black", 2538 + "fontFamily": "Times New Roman", 2539 + "fontSize": 32, 2540 + "fontWeight": "normal", 2541 + "fontStyle": "normal", 2542 + "underline": false, 2543 + "overline": false, 2544 + "linethrough": false, 2545 + "deltaY": 0, 2546 + "textBackgroundColor": "" 2547 + }, 2548 + "30": { 2549 + "stroke": null, 2550 + "strokeWidth": 1, 2551 + "fill": "black", 2552 + "fontFamily": "Times New Roman", 2553 + "fontSize": 32, 2554 + "fontWeight": "normal", 2555 + "fontStyle": "normal", 2556 + "underline": false, 2557 + "overline": false, 2558 + "linethrough": false, 2559 + "deltaY": 0, 2560 + "textBackgroundColor": "" 2561 + }, 2562 + "31": { 2563 + "stroke": null, 2564 + "strokeWidth": 1, 2565 + "fill": "black", 2566 + "fontFamily": "Times New Roman", 2567 + "fontSize": 32, 2568 + "fontWeight": "normal", 2569 + "fontStyle": "normal", 2570 + "underline": false, 2571 + "overline": false, 2572 + "linethrough": false, 2573 + "deltaY": 0, 2574 + "textBackgroundColor": "" 2575 + }, 2576 + "32": { 2577 + "stroke": null, 2578 + "strokeWidth": 1, 2579 + "fill": "black", 2580 + "fontFamily": "Times New Roman", 2581 + "fontSize": 32, 2582 + "fontWeight": "normal", 2583 + "fontStyle": "normal", 2584 + "underline": false, 2585 + "overline": false, 2586 + "linethrough": false, 2587 + "deltaY": 0, 2588 + "textBackgroundColor": "" 2589 + }, 2590 + "33": { 2591 + "stroke": null, 2592 + "strokeWidth": 1, 2593 + "fill": "black", 2594 + "fontFamily": "Times New Roman", 2595 + "fontSize": 32, 2596 + "fontWeight": "normal", 2597 + "fontStyle": "normal", 2598 + "underline": false, 2599 + "overline": false, 2600 + "linethrough": false, 2601 + "deltaY": 0, 2602 + "textBackgroundColor": "" 2603 + }, 2604 + "34": { 2605 + "stroke": null, 2606 + "strokeWidth": 1, 2607 + "fill": "black", 2608 + "fontFamily": "Times New Roman", 2609 + "fontSize": 32, 2610 + "fontWeight": "normal", 2611 + "fontStyle": "normal", 2612 + "underline": false, 2613 + "overline": false, 2614 + "linethrough": false, 2615 + "deltaY": 0, 2616 + "textBackgroundColor": "" 2617 + }, 2618 + "35": { 2619 + "stroke": null, 2620 + "strokeWidth": 1, 2621 + "fill": "black", 2622 + "fontFamily": "Times New Roman", 2623 + "fontSize": 32, 2624 + "fontWeight": "normal", 2625 + "fontStyle": "normal", 2626 + "underline": false, 2627 + "overline": false, 2628 + "linethrough": false, 2629 + "deltaY": 0, 2630 + "textBackgroundColor": "" 2631 + }, 2632 + "36": { 2633 + "stroke": null, 2634 + "strokeWidth": 1, 2635 + "fill": "black", 2636 + "fontFamily": "Times New Roman", 2637 + "fontSize": 32, 2638 + "fontWeight": "normal", 2639 + "fontStyle": "normal", 2640 + "underline": false, 2641 + "overline": false, 2642 + "linethrough": false, 2643 + "deltaY": 0, 2644 + "textBackgroundColor": "" 2645 + }, 2646 + "37": { 2647 + "stroke": null, 2648 + "strokeWidth": 1, 2649 + "fill": "black", 2650 + "fontFamily": "Times New Roman", 2651 + "fontSize": 32, 2652 + "fontWeight": "normal", 2653 + "fontStyle": "normal", 2654 + "underline": false, 2655 + "overline": false, 2656 + "linethrough": false, 2657 + "deltaY": 0, 2658 + "textBackgroundColor": "" 2659 + }, 2660 + "38": { 2661 + "stroke": null, 2662 + "strokeWidth": 1, 2663 + "fill": "black", 2664 + "fontFamily": "Times New Roman", 2665 + "fontSize": 32, 2666 + "fontWeight": "normal", 2667 + "fontStyle": "normal", 2668 + "underline": false, 2669 + "overline": false, 2670 + "linethrough": false, 2671 + "deltaY": 0, 2672 + "textBackgroundColor": "" 2673 + }, 2674 + "39": { 2675 + "stroke": null, 2676 + "strokeWidth": 1, 2677 + "fill": "black", 2678 + "fontFamily": "Times New Roman", 2679 + "fontSize": 32, 2680 + "fontWeight": "normal", 2681 + "fontStyle": "normal", 2682 + "underline": false, 2683 + "overline": false, 2684 + "linethrough": false, 2685 + "deltaY": 0, 2686 + "textBackgroundColor": "" 2687 + }, 2688 + "40": { 2689 + "stroke": null, 2690 + "strokeWidth": 1, 2691 + "fill": "black", 2692 + "fontFamily": "Times New Roman", 2693 + "fontSize": 32, 2694 + "fontWeight": "normal", 2695 + "fontStyle": "normal", 2696 + "underline": false, 2697 + "overline": false, 2698 + "linethrough": false, 2699 + "deltaY": 0, 2700 + "textBackgroundColor": "" 2701 + }, 2702 + "41": { 2703 + "stroke": null, 2704 + "strokeWidth": 1, 2705 + "fill": "black", 2706 + "fontFamily": "Times New Roman", 2707 + "fontSize": 32, 2708 + "fontWeight": "normal", 2709 + "fontStyle": "normal", 2710 + "underline": false, 2711 + "overline": false, 2712 + "linethrough": false, 2713 + "deltaY": 0, 2714 + "textBackgroundColor": "" 2715 + }, 2716 + "42": { 2717 + "stroke": null, 2718 + "strokeWidth": 1, 2719 + "fill": "black", 2720 + "fontFamily": "Times New Roman", 2721 + "fontSize": 32, 2722 + "fontWeight": "normal", 2723 + "fontStyle": "normal", 2724 + "underline": false, 2725 + "overline": false, 2726 + "linethrough": false, 2727 + "deltaY": 0, 2728 + "textBackgroundColor": "" 2729 + }, 2730 + "43": { 2731 + "stroke": null, 2732 + "strokeWidth": 1, 2733 + "fill": "black", 2734 + "fontFamily": "Times New Roman", 2735 + "fontSize": 32, 2736 + "fontWeight": "normal", 2737 + "fontStyle": "normal", 2738 + "underline": false, 2739 + "overline": false, 2740 + "linethrough": false, 2741 + "deltaY": 0, 2742 + "textBackgroundColor": "" 2743 + }, 2744 + "44": { 2745 + "stroke": null, 2746 + "strokeWidth": 1, 2747 + "fill": "black", 2748 + "fontFamily": "Times New Roman", 2749 + "fontSize": 32, 2750 + "fontWeight": "normal", 2751 + "fontStyle": "normal", 2752 + "underline": false, 2753 + "overline": false, 2754 + "linethrough": false, 2755 + "deltaY": 0, 2756 + "textBackgroundColor": "" 2757 + }, 2758 + "45": { 2759 + "stroke": null, 2760 + "strokeWidth": 1, 2761 + "fill": "black", 2762 + "fontFamily": "Times New Roman", 2763 + "fontSize": 32, 2764 + "fontWeight": "normal", 2765 + "fontStyle": "normal", 2766 + "underline": false, 2767 + "overline": false, 2768 + "linethrough": false, 2769 + "deltaY": 0, 2770 + "textBackgroundColor": "" 2771 + }, 2772 + "46": { 2773 + "stroke": null, 2774 + "strokeWidth": 1, 2775 + "fill": "black", 2776 + "fontFamily": "Times New Roman", 2777 + "fontSize": 32, 2778 + "fontWeight": "normal", 2779 + "fontStyle": "normal", 2780 + "underline": false, 2781 + "overline": false, 2782 + "linethrough": false, 2783 + "deltaY": 0, 2784 + "textBackgroundColor": "" 2785 + }, 2786 + "47": { 2787 + "stroke": null, 2788 + "strokeWidth": 1, 2789 + "fill": "black", 2790 + "fontFamily": "Times New Roman", 2791 + "fontSize": 32, 2792 + "fontWeight": "normal", 2793 + "fontStyle": "normal", 2794 + "underline": false, 2795 + "overline": false, 2796 + "linethrough": false, 2797 + "deltaY": 0, 2798 + "textBackgroundColor": "" 2799 + }, 2800 + "48": { 2801 + "stroke": null, 2802 + "strokeWidth": 1, 2803 + "fill": "black", 2804 + "fontFamily": "Times New Roman", 2805 + "fontSize": 32, 2806 + "fontWeight": "normal", 2807 + "fontStyle": "normal", 2808 + "underline": false, 2809 + "overline": false, 2810 + "linethrough": false, 2811 + "deltaY": 0, 2812 + "textBackgroundColor": "" 2813 + }, 2814 + "49": { 2815 + "stroke": null, 2816 + "strokeWidth": 1, 2817 + "fill": "black", 2818 + "fontFamily": "Times New Roman", 2819 + "fontSize": 32, 2820 + "fontWeight": "normal", 2821 + "fontStyle": "normal", 2822 + "underline": false, 2823 + "overline": false, 2824 + "linethrough": false, 2825 + "deltaY": 0, 2826 + "textBackgroundColor": "" 2827 + }, 2828 + "50": { 2829 + "stroke": null, 2830 + "strokeWidth": 1, 2831 + "fill": "black", 2832 + "fontFamily": "Times New Roman", 2833 + "fontSize": 32, 2834 + "fontWeight": "normal", 2835 + "fontStyle": "normal", 2836 + "underline": false, 2837 + "overline": false, 2838 + "linethrough": false, 2839 + "deltaY": 0, 2840 + "textBackgroundColor": "" 2841 + }, 2842 + "51": { 2843 + "stroke": null, 2844 + "strokeWidth": 1, 2845 + "fill": "black", 2846 + "fontFamily": "Times New Roman", 2847 + "fontSize": 32, 2848 + "fontWeight": "normal", 2849 + "fontStyle": "normal", 2850 + "underline": false, 2851 + "overline": false, 2852 + "linethrough": false, 2853 + "deltaY": 0, 2854 + "textBackgroundColor": "" 2855 + }, 2856 + "52": { 2857 + "stroke": null, 2858 + "strokeWidth": 1, 2859 + "fill": "black", 2860 + "fontFamily": "Times New Roman", 2861 + "fontSize": 32, 2862 + "fontWeight": "normal", 2863 + "fontStyle": "normal", 2864 + "underline": false, 2865 + "overline": false, 2866 + "linethrough": false, 2867 + "deltaY": 0, 2868 + "textBackgroundColor": "" 2869 + }, 2870 + "53": { 2871 + "stroke": null, 2872 + "strokeWidth": 1, 2873 + "fill": "black", 2874 + "fontFamily": "Times New Roman", 2875 + "fontSize": 32, 2876 + "fontWeight": "normal", 2877 + "fontStyle": "normal", 2878 + "underline": false, 2879 + "overline": false, 2880 + "linethrough": false, 2881 + "deltaY": 0, 2882 + "textBackgroundColor": "" 2883 + }, 2884 + "54": { 2885 + "stroke": null, 2886 + "strokeWidth": 1, 2887 + "fill": "black", 2888 + "fontFamily": "Times New Roman", 2889 + "fontSize": 32, 2890 + "fontWeight": "normal", 2891 + "fontStyle": "normal", 2892 + "underline": false, 2893 + "overline": false, 2894 + "linethrough": false, 2895 + "deltaY": 0, 2896 + "textBackgroundColor": "" 2897 + }, 2898 + "55": { 2899 + "stroke": null, 2900 + "strokeWidth": 1, 2901 + "fill": "black", 2902 + "fontFamily": "Times New Roman", 2903 + "fontSize": 32, 2904 + "fontWeight": "normal", 2905 + "fontStyle": "normal", 2906 + "underline": false, 2907 + "overline": false, 2908 + "linethrough": false, 2909 + "deltaY": 0, 2910 + "textBackgroundColor": "" 2911 + }, 2912 + "56": { 2913 + "stroke": null, 2914 + "strokeWidth": 1, 2915 + "fill": "black", 2916 + "fontFamily": "Times New Roman", 2917 + "fontSize": 32, 2918 + "fontWeight": "normal", 2919 + "fontStyle": "normal", 2920 + "underline": false, 2921 + "overline": false, 2922 + "linethrough": false, 2923 + "deltaY": 0, 2924 + "textBackgroundColor": "" 2925 + }, 2926 + "57": { 2927 + "stroke": null, 2928 + "strokeWidth": 1, 2929 + "fill": "black", 2930 + "fontFamily": "Times New Roman", 2931 + "fontSize": 32, 2932 + "fontWeight": "normal", 2933 + "fontStyle": "normal", 2934 + "underline": false, 2935 + "overline": false, 2936 + "linethrough": false, 2937 + "deltaY": 0, 2938 + "textBackgroundColor": "" 2939 + }, 2940 + "58": { 2941 + "stroke": null, 2942 + "strokeWidth": 1, 2943 + "fill": "black", 2944 + "fontFamily": "Times New Roman", 2945 + "fontSize": 32, 2946 + "fontWeight": "normal", 2947 + "fontStyle": "normal", 2948 + "underline": false, 2949 + "overline": false, 2950 + "linethrough": false, 2951 + "deltaY": 0, 2952 + "textBackgroundColor": "" 2953 + }, 2954 + "59": { 2955 + "stroke": null, 2956 + "strokeWidth": 1, 2957 + "fill": "black", 2958 + "fontFamily": "Times New Roman", 2959 + "fontSize": 32, 2960 + "fontWeight": "normal", 2961 + "fontStyle": "normal", 2962 + "underline": false, 2963 + "overline": false, 2964 + "linethrough": false, 2965 + "deltaY": 0, 2966 + "textBackgroundColor": "" 2967 + } 2968 + } 2969 + } 2970 + }, 2971 + { 2972 + "type": "i-text", 2973 + "version": "2.7.0", 2974 + "originX": "left", 2975 + "originY": "center", 2976 + "left": -375, 2977 + "top": -63, 2978 + "width": 2, 2979 + "height": 29.38, 2980 + "fill": "black", 2981 + "stroke": null, 2982 + "strokeWidth": 1, 2983 + "strokeDashArray": null, 2984 + "strokeLineCap": "butt", 2985 + "strokeDashOffset": 0, 2986 + "strokeLineJoin": "round", 2987 + "strokeMiterLimit": 4, 2988 + "scaleX": 1, 2989 + "scaleY": 1, 2990 + "angle": 0, 2991 + "flipX": false, 2992 + "flipY": false, 2993 + "opacity": 1, 2994 + "shadow": null, 2995 + "visible": true, 2996 + "clipTo": null, 2997 + "backgroundColor": "", 2998 + "fillRule": "nonzero", 2999 + "paintFirst": "fill", 3000 + "globalCompositeOperation": "source-over", 3001 + "transformMatrix": null, 3002 + "skewX": 0, 3003 + "skewY": 0, 3004 + "text": "", 3005 + "fontSize": "26", 3006 + "fontWeight": "normal", 3007 + "fontFamily": "Times New Roman", 3008 + "fontStyle": "normal", 3009 + "lineHeight": 1.16, 3010 + "underline": false, 3011 + "overline": false, 3012 + "linethrough": false, 3013 + "textAlign": "left", 3014 + "textBackgroundColor": "", 3015 + "charSpacing": 0, 3016 + "id": "161", 3017 + "styles": {} 3018 + }, 3019 + { 3020 + "type": "i-text", 3021 + "version": "2.7.0", 3022 + "originX": "left", 3023 + "originY": "center", 3024 + "left": -375, 3025 + "top": 0, 3026 + "width": 2, 3027 + "height": 36.16, 3028 + "fill": "black", 3029 + "stroke": null, 3030 + "strokeWidth": 1, 3031 + "strokeDashArray": null, 3032 + "strokeLineCap": "butt", 3033 + "strokeDashOffset": 0, 3034 + "strokeLineJoin": "round", 3035 + "strokeMiterLimit": 4, 3036 + "scaleX": 1, 3037 + "scaleY": 1, 3038 + "angle": 0, 3039 + "flipX": false, 3040 + "flipY": false, 3041 + "opacity": 1, 3042 + "shadow": null, 3043 + "visible": true, 3044 + "clipTo": null, 3045 + "backgroundColor": "", 3046 + "fillRule": "nonzero", 3047 + "paintFirst": "fill", 3048 + "globalCompositeOperation": "source-over", 3049 + "transformMatrix": null, 3050 + "skewX": 0, 3051 + "skewY": 0, 3052 + "text": "", 3053 + "fontSize": 32, 3054 + "fontWeight": "normal", 3055 + "fontFamily": "Times New Roman", 3056 + "fontStyle": "normal", 3057 + "lineHeight": 1.16, 3058 + "underline": false, 3059 + "overline": false, 3060 + "linethrough": false, 3061 + "textAlign": "left", 3062 + "textBackgroundColor": "", 3063 + "charSpacing": 0, 3064 + "id": "162", 3065 + "styles": {} 3066 + }, 3067 + { 3068 + "type": "i-text", 3069 + "version": "2.7.0", 3070 + "originX": "left", 3071 + "originY": "center", 3072 + "left": -375, 3073 + "top": 65, 3074 + "width": 2, 3075 + "height": 36.16, 3076 + "fill": "black", 3077 + "stroke": null, 3078 + "strokeWidth": 1, 3079 + "strokeDashArray": null, 3080 + "strokeLineCap": "butt", 3081 + "strokeDashOffset": 0, 3082 + "strokeLineJoin": "round", 3083 + "strokeMiterLimit": 4, 3084 + "scaleX": 1, 3085 + "scaleY": 1, 3086 + "angle": 0, 3087 + "flipX": false, 3088 + "flipY": false, 3089 + "opacity": 1, 3090 + "shadow": null, 3091 + "visible": true, 3092 + "clipTo": null, 3093 + "backgroundColor": "", 3094 + "fillRule": "nonzero", 3095 + "paintFirst": "fill", 3096 + "globalCompositeOperation": "source-over", 3097 + "transformMatrix": null, 3098 + "skewX": 0, 3099 + "skewY": 0, 3100 + "text": "", 3101 + "fontSize": 32, 3102 + "fontWeight": "normal", 3103 + "fontFamily": "Times New Roman", 3104 + "fontStyle": "normal", 3105 + "lineHeight": 1.16, 3106 + "underline": false, 3107 + "overline": false, 3108 + "linethrough": false, 3109 + "textAlign": "left", 3110 + "textBackgroundColor": "", 3111 + "charSpacing": 0, 3112 + "id": "163", 3113 + "styles": {} 3114 + }, 3115 + { 3116 + "type": "i-text", 3117 + "version": "2.7.0", 3118 + "originX": "center", 3119 + "originY": "center", 3120 + "left": 0, 3121 + "top": 250, 3122 + "width": 389.22, 3123 + "height": 36.16, 3124 + "fill": "black", 3125 + "stroke": null, 3126 + "strokeWidth": 1, 3127 + "strokeDashArray": null, 3128 + "strokeLineCap": "butt", 3129 + "strokeDashOffset": 0, 3130 + "strokeLineJoin": "round", 3131 + "strokeMiterLimit": 4, 3132 + "scaleX": 1, 3133 + "scaleY": 1, 3134 + "angle": 0, 3135 + "flipX": false, 3136 + "flipY": false, 3137 + "opacity": 1, 3138 + "shadow": null, 3139 + "visible": true, 3140 + "clipTo": null, 3141 + "backgroundColor": "", 3142 + "fillRule": "nonzero", 3143 + "paintFirst": "fill", 3144 + "globalCompositeOperation": "source-over", 3145 + "transformMatrix": null, 3146 + "skewX": 0, 3147 + "skewY": 0, 3148 + "text": "Press space bar to end the task", 3149 + "fontSize": 32, 3150 + "fontWeight": "bold", 3151 + "fontFamily": "Times New Roman", 3152 + "fontStyle": "normal", 3153 + "lineHeight": 1.16, 3154 + "underline": false, 3155 + "overline": false, 3156 + "linethrough": false, 3157 + "textAlign": "center", 3158 + "textBackgroundColor": "", 3159 + "charSpacing": 0, 3160 + "id": "164", 3161 + "styles": {} 3162 + }, 3163 + { 3164 + "type": "i-text", 3165 + "version": "2.7.0", 3166 + "originX": "center", 3167 + "originY": "center", 3168 + "left": 15, 3169 + "top": 125, 3170 + "width": 732.77, 3171 + "height": 154.13, 3172 + "fill": "black", 3173 + "stroke": null, 3174 + "strokeWidth": 1, 3175 + "strokeDashArray": null, 3176 + "strokeLineCap": "butt", 3177 + "strokeDashOffset": 0, 3178 + "strokeLineJoin": "round", 3179 + "strokeMiterLimit": 4, 3180 + "scaleX": 1, 3181 + "scaleY": 1, 3182 + "angle": 0, 3183 + "flipX": false, 3184 + "flipY": false, 3185 + "opacity": 1, 3186 + "shadow": null, 3187 + "visible": true, 3188 + "clipTo": null, 3189 + "backgroundColor": "", 3190 + "fillRule": "nonzero", 3191 + "paintFirst": "fill", 3192 + "globalCompositeOperation": "source-over", 3193 + "transformMatrix": null, 3194 + "skewX": 0, 3195 + "skewY": 0, 3196 + "text": "With 5 items: ${this.state.aggregated.rt_5_no || '-'} ms\nWith 10 items: ${this.state.aggregated.rt_10_no || '-'} ms \nWith 15 items: ${this.state.aggregated.rt_15_no || '-'} ms\nWith 20 items: ${this.state.aggregated.rt_20_no || '-'} ms ", 3197 + "fontSize": "26", 3198 + "fontWeight": "normal", 3199 + "fontFamily": "Times New Roman", 3200 + "fontStyle": "normal", 3201 + "lineHeight": 1.16, 3202 + "underline": false, 3203 + "overline": false, 3204 + "linethrough": false, 3205 + "textAlign": "center", 3206 + "textBackgroundColor": "", 3207 + "charSpacing": 0, 3208 + "id": "259", 3209 + "styles": { 3210 + "0": {}, 3211 + "1": { 3212 + "0": { 3213 + "stroke": null, 3214 + "strokeWidth": 1, 3215 + "fill": "black", 3216 + "fontFamily": "Times New Roman", 3217 + "fontSize": "26", 3218 + "fontWeight": "normal", 3219 + "fontStyle": "normal", 3220 + "underline": false, 3221 + "overline": false, 3222 + "linethrough": false, 3223 + "deltaY": 0, 3224 + "textBackgroundColor": "" 3225 + }, 3226 + "1": { 3227 + "stroke": null, 3228 + "strokeWidth": 1, 3229 + "fill": "black", 3230 + "fontFamily": "Times New Roman", 3231 + "fontSize": "26", 3232 + "fontWeight": "normal", 3233 + "fontStyle": "normal", 3234 + "underline": false, 3235 + "overline": false, 3236 + "linethrough": false, 3237 + "deltaY": 0, 3238 + "textBackgroundColor": "" 3239 + }, 3240 + "2": { 3241 + "stroke": null, 3242 + "strokeWidth": 1, 3243 + "fill": "black", 3244 + "fontFamily": "Times New Roman", 3245 + "fontSize": "26", 3246 + "fontWeight": "normal", 3247 + "fontStyle": "normal", 3248 + "underline": false, 3249 + "overline": false, 3250 + "linethrough": false, 3251 + "deltaY": 0, 3252 + "textBackgroundColor": "" 3253 + }, 3254 + "3": { 3255 + "stroke": null, 3256 + "strokeWidth": 1, 3257 + "fill": "black", 3258 + "fontFamily": "Times New Roman", 3259 + "fontSize": "26", 3260 + "fontWeight": "normal", 3261 + "fontStyle": "normal", 3262 + "underline": false, 3263 + "overline": false, 3264 + "linethrough": false, 3265 + "deltaY": 0, 3266 + "textBackgroundColor": "" 3267 + }, 3268 + "4": { 3269 + "stroke": null, 3270 + "strokeWidth": 1, 3271 + "fill": "black", 3272 + "fontFamily": "Times New Roman", 3273 + "fontSize": "26", 3274 + "fontWeight": "normal", 3275 + "fontStyle": "normal", 3276 + "underline": false, 3277 + "overline": false, 3278 + "linethrough": false, 3279 + "deltaY": 0, 3280 + "textBackgroundColor": "" 3281 + }, 3282 + "5": { 3283 + "stroke": null, 3284 + "strokeWidth": 1, 3285 + "fill": "black", 3286 + "fontFamily": "Times New Roman", 3287 + "fontSize": "26", 3288 + "fontWeight": "normal", 3289 + "fontStyle": "normal", 3290 + "underline": false, 3291 + "overline": false, 3292 + "linethrough": false, 3293 + "deltaY": 0, 3294 + "textBackgroundColor": "" 3295 + }, 3296 + "6": { 3297 + "stroke": null, 3298 + "strokeWidth": 1, 3299 + "fill": "black", 3300 + "fontFamily": "Times New Roman", 3301 + "fontSize": "26", 3302 + "fontWeight": "normal", 3303 + "fontStyle": "normal", 3304 + "underline": false, 3305 + "overline": false, 3306 + "linethrough": false, 3307 + "deltaY": 0, 3308 + "textBackgroundColor": "" 3309 + }, 3310 + "7": { 3311 + "stroke": null, 3312 + "strokeWidth": 1, 3313 + "fill": "black", 3314 + "fontFamily": "Times New Roman", 3315 + "fontSize": "26", 3316 + "fontWeight": "normal", 3317 + "fontStyle": "normal", 3318 + "underline": false, 3319 + "overline": false, 3320 + "linethrough": false, 3321 + "deltaY": 0, 3322 + "textBackgroundColor": "" 3323 + }, 3324 + "8": { 3325 + "stroke": null, 3326 + "strokeWidth": 1, 3327 + "fill": "black", 3328 + "fontFamily": "Times New Roman", 3329 + "fontSize": "26", 3330 + "fontWeight": "normal", 3331 + "fontStyle": "normal", 3332 + "underline": false, 3333 + "overline": false, 3334 + "linethrough": false, 3335 + "deltaY": 0, 3336 + "textBackgroundColor": "" 3337 + }, 3338 + "9": { 3339 + "stroke": null, 3340 + "strokeWidth": 1, 3341 + "fill": "black", 3342 + "fontFamily": "Times New Roman", 3343 + "fontSize": "26", 3344 + "fontWeight": "normal", 3345 + "fontStyle": "normal", 3346 + "underline": false, 3347 + "overline": false, 3348 + "linethrough": false, 3349 + "deltaY": 0, 3350 + "textBackgroundColor": "" 3351 + }, 3352 + "10": { 3353 + "stroke": null, 3354 + "strokeWidth": 1, 3355 + "fill": "black", 3356 + "fontFamily": "Times New Roman", 3357 + "fontSize": "26", 3358 + "fontWeight": "normal", 3359 + "fontStyle": "normal", 3360 + "underline": false, 3361 + "overline": false, 3362 + "linethrough": false, 3363 + "deltaY": 0, 3364 + "textBackgroundColor": "" 3365 + }, 3366 + "11": { 3367 + "stroke": null, 3368 + "strokeWidth": 1, 3369 + "fill": "black", 3370 + "fontFamily": "Times New Roman", 3371 + "fontSize": "26", 3372 + "fontWeight": "normal", 3373 + "fontStyle": "normal", 3374 + "underline": false, 3375 + "overline": false, 3376 + "linethrough": false, 3377 + "deltaY": 0, 3378 + "textBackgroundColor": "" 3379 + }, 3380 + "12": { 3381 + "stroke": null, 3382 + "strokeWidth": 1, 3383 + "fill": "black", 3384 + "fontFamily": "Times New Roman", 3385 + "fontSize": "26", 3386 + "fontWeight": "normal", 3387 + "fontStyle": "normal", 3388 + "underline": false, 3389 + "overline": false, 3390 + "linethrough": false, 3391 + "deltaY": 0, 3392 + "textBackgroundColor": "" 3393 + }, 3394 + "13": { 3395 + "stroke": null, 3396 + "strokeWidth": 1, 3397 + "fill": "black", 3398 + "fontFamily": "Times New Roman", 3399 + "fontSize": "26", 3400 + "fontWeight": "normal", 3401 + "fontStyle": "normal", 3402 + "underline": false, 3403 + "overline": false, 3404 + "linethrough": false, 3405 + "deltaY": 0, 3406 + "textBackgroundColor": "" 3407 + }, 3408 + "14": { 3409 + "stroke": null, 3410 + "strokeWidth": 1, 3411 + "fill": "black", 3412 + "fontFamily": "Times New Roman", 3413 + "fontSize": "26", 3414 + "fontWeight": "normal", 3415 + "fontStyle": "normal", 3416 + "underline": false, 3417 + "overline": false, 3418 + "linethrough": false, 3419 + "deltaY": 0, 3420 + "textBackgroundColor": "" 3421 + }, 3422 + "15": { 3423 + "stroke": null, 3424 + "strokeWidth": 1, 3425 + "fill": "black", 3426 + "fontFamily": "Times New Roman", 3427 + "fontSize": "26", 3428 + "fontWeight": "normal", 3429 + "fontStyle": "normal", 3430 + "underline": false, 3431 + "overline": false, 3432 + "linethrough": false, 3433 + "deltaY": 0, 3434 + "textBackgroundColor": "" 3435 + }, 3436 + "16": { 3437 + "stroke": null, 3438 + "strokeWidth": 1, 3439 + "fill": "black", 3440 + "fontFamily": "Times New Roman", 3441 + "fontSize": "26", 3442 + "fontWeight": "normal", 3443 + "fontStyle": "normal", 3444 + "underline": false, 3445 + "overline": false, 3446 + "linethrough": false, 3447 + "deltaY": 0, 3448 + "textBackgroundColor": "" 3449 + }, 3450 + "17": { 3451 + "stroke": null, 3452 + "strokeWidth": 1, 3453 + "fill": "black", 3454 + "fontFamily": "Times New Roman", 3455 + "fontSize": "26", 3456 + "fontWeight": "normal", 3457 + "fontStyle": "normal", 3458 + "underline": false, 3459 + "overline": false, 3460 + "linethrough": false, 3461 + "deltaY": 0, 3462 + "textBackgroundColor": "" 3463 + }, 3464 + "18": { 3465 + "stroke": null, 3466 + "strokeWidth": 1, 3467 + "fill": "black", 3468 + "fontFamily": "Times New Roman", 3469 + "fontSize": "26", 3470 + "fontWeight": "normal", 3471 + "fontStyle": "normal", 3472 + "underline": false, 3473 + "overline": false, 3474 + "linethrough": false, 3475 + "deltaY": 0, 3476 + "textBackgroundColor": "" 3477 + }, 3478 + "19": { 3479 + "stroke": null, 3480 + "strokeWidth": 1, 3481 + "fill": "black", 3482 + "fontFamily": "Times New Roman", 3483 + "fontSize": "26", 3484 + "fontWeight": "normal", 3485 + "fontStyle": "normal", 3486 + "underline": false, 3487 + "overline": false, 3488 + "linethrough": false, 3489 + "deltaY": 0, 3490 + "textBackgroundColor": "" 3491 + }, 3492 + "20": { 3493 + "stroke": null, 3494 + "strokeWidth": 1, 3495 + "fill": "black", 3496 + "fontFamily": "Times New Roman", 3497 + "fontSize": "26", 3498 + "fontWeight": "normal", 3499 + "fontStyle": "normal", 3500 + "underline": false, 3501 + "overline": false, 3502 + "linethrough": false, 3503 + "deltaY": 0, 3504 + "textBackgroundColor": "" 3505 + }, 3506 + "21": { 3507 + "stroke": null, 3508 + "strokeWidth": 1, 3509 + "fill": "black", 3510 + "fontFamily": "Times New Roman", 3511 + "fontSize": "26", 3512 + "fontWeight": "normal", 3513 + "fontStyle": "normal", 3514 + "underline": false, 3515 + "overline": false, 3516 + "linethrough": false, 3517 + "deltaY": 0, 3518 + "textBackgroundColor": "" 3519 + }, 3520 + "22": { 3521 + "stroke": null, 3522 + "strokeWidth": 1, 3523 + "fill": "black", 3524 + "fontFamily": "Times New Roman", 3525 + "fontSize": "26", 3526 + "fontWeight": "normal", 3527 + "fontStyle": "normal", 3528 + "underline": false, 3529 + "overline": false, 3530 + "linethrough": false, 3531 + "deltaY": 0, 3532 + "textBackgroundColor": "" 3533 + }, 3534 + "23": { 3535 + "stroke": null, 3536 + "strokeWidth": 1, 3537 + "fill": "black", 3538 + "fontFamily": "Times New Roman", 3539 + "fontSize": "26", 3540 + "fontWeight": "normal", 3541 + "fontStyle": "normal", 3542 + "underline": false, 3543 + "overline": false, 3544 + "linethrough": false, 3545 + "deltaY": 0, 3546 + "textBackgroundColor": "" 3547 + }, 3548 + "24": { 3549 + "stroke": null, 3550 + "strokeWidth": 1, 3551 + "fill": "black", 3552 + "fontFamily": "Times New Roman", 3553 + "fontSize": "26", 3554 + "fontWeight": "normal", 3555 + "fontStyle": "normal", 3556 + "underline": false, 3557 + "overline": false, 3558 + "linethrough": false, 3559 + "deltaY": 0, 3560 + "textBackgroundColor": "" 3561 + }, 3562 + "25": { 3563 + "stroke": null, 3564 + "strokeWidth": 1, 3565 + "fill": "black", 3566 + "fontFamily": "Times New Roman", 3567 + "fontSize": "26", 3568 + "fontWeight": "normal", 3569 + "fontStyle": "normal", 3570 + "underline": false, 3571 + "overline": false, 3572 + "linethrough": false, 3573 + "deltaY": 0, 3574 + "textBackgroundColor": "" 3575 + }, 3576 + "26": { 3577 + "stroke": null, 3578 + "strokeWidth": 1, 3579 + "fill": "black", 3580 + "fontFamily": "Times New Roman", 3581 + "fontSize": "26", 3582 + "fontWeight": "normal", 3583 + "fontStyle": "normal", 3584 + "underline": false, 3585 + "overline": false, 3586 + "linethrough": false, 3587 + "deltaY": 0, 3588 + "textBackgroundColor": "" 3589 + }, 3590 + "27": { 3591 + "stroke": null, 3592 + "strokeWidth": 1, 3593 + "fill": "black", 3594 + "fontFamily": "Times New Roman", 3595 + "fontSize": "26", 3596 + "fontWeight": "normal", 3597 + "fontStyle": "normal", 3598 + "underline": false, 3599 + "overline": false, 3600 + "linethrough": false, 3601 + "deltaY": 0, 3602 + "textBackgroundColor": "" 3603 + }, 3604 + "28": { 3605 + "stroke": null, 3606 + "strokeWidth": 1, 3607 + "fill": "black", 3608 + "fontFamily": "Times New Roman", 3609 + "fontSize": "26", 3610 + "fontWeight": "normal", 3611 + "fontStyle": "normal", 3612 + "underline": false, 3613 + "overline": false, 3614 + "linethrough": false, 3615 + "deltaY": 0, 3616 + "textBackgroundColor": "" 3617 + }, 3618 + "29": { 3619 + "stroke": null, 3620 + "strokeWidth": 1, 3621 + "fill": "black", 3622 + "fontFamily": "Times New Roman", 3623 + "fontSize": "26", 3624 + "fontWeight": "normal", 3625 + "fontStyle": "normal", 3626 + "underline": false, 3627 + "overline": false, 3628 + "linethrough": false, 3629 + "deltaY": 0, 3630 + "textBackgroundColor": "" 3631 + }, 3632 + "30": { 3633 + "stroke": null, 3634 + "strokeWidth": 1, 3635 + "fill": "black", 3636 + "fontFamily": "Times New Roman", 3637 + "fontSize": "26", 3638 + "fontWeight": "normal", 3639 + "fontStyle": "normal", 3640 + "underline": false, 3641 + "overline": false, 3642 + "linethrough": false, 3643 + "deltaY": 0, 3644 + "textBackgroundColor": "" 3645 + }, 3646 + "31": { 3647 + "stroke": null, 3648 + "strokeWidth": 1, 3649 + "fill": "black", 3650 + "fontFamily": "Times New Roman", 3651 + "fontSize": "26", 3652 + "fontWeight": "normal", 3653 + "fontStyle": "normal", 3654 + "underline": false, 3655 + "overline": false, 3656 + "linethrough": false, 3657 + "deltaY": 0, 3658 + "textBackgroundColor": "" 3659 + }, 3660 + "32": { 3661 + "stroke": null, 3662 + "strokeWidth": 1, 3663 + "fill": "black", 3664 + "fontFamily": "Times New Roman", 3665 + "fontSize": "26", 3666 + "fontWeight": "normal", 3667 + "fontStyle": "normal", 3668 + "underline": false, 3669 + "overline": false, 3670 + "linethrough": false, 3671 + "deltaY": 0, 3672 + "textBackgroundColor": "" 3673 + }, 3674 + "33": { 3675 + "stroke": null, 3676 + "strokeWidth": 1, 3677 + "fill": "black", 3678 + "fontFamily": "Times New Roman", 3679 + "fontSize": "26", 3680 + "fontWeight": "normal", 3681 + "fontStyle": "normal", 3682 + "underline": false, 3683 + "overline": false, 3684 + "linethrough": false, 3685 + "deltaY": 0, 3686 + "textBackgroundColor": "" 3687 + }, 3688 + "34": { 3689 + "stroke": null, 3690 + "strokeWidth": 1, 3691 + "fill": "black", 3692 + "fontFamily": "Times New Roman", 3693 + "fontSize": "26", 3694 + "fontWeight": "normal", 3695 + "fontStyle": "normal", 3696 + "underline": false, 3697 + "overline": false, 3698 + "linethrough": false, 3699 + "deltaY": 0, 3700 + "textBackgroundColor": "" 3701 + }, 3702 + "35": { 3703 + "stroke": null, 3704 + "strokeWidth": 1, 3705 + "fill": "black", 3706 + "fontFamily": "Times New Roman", 3707 + "fontSize": "26", 3708 + "fontWeight": "normal", 3709 + "fontStyle": "normal", 3710 + "underline": false, 3711 + "overline": false, 3712 + "linethrough": false, 3713 + "deltaY": 0, 3714 + "textBackgroundColor": "" 3715 + }, 3716 + "36": { 3717 + "stroke": null, 3718 + "strokeWidth": 1, 3719 + "fill": "black", 3720 + "fontFamily": "Times New Roman", 3721 + "fontSize": "26", 3722 + "fontWeight": "normal", 3723 + "fontStyle": "normal", 3724 + "underline": false, 3725 + "overline": false, 3726 + "linethrough": false, 3727 + "deltaY": 0, 3728 + "textBackgroundColor": "" 3729 + }, 3730 + "37": { 3731 + "stroke": null, 3732 + "strokeWidth": 1, 3733 + "fill": "black", 3734 + "fontFamily": "Times New Roman", 3735 + "fontSize": "26", 3736 + "fontWeight": "normal", 3737 + "fontStyle": "normal", 3738 + "underline": false, 3739 + "overline": false, 3740 + "linethrough": false, 3741 + "deltaY": 0, 3742 + "textBackgroundColor": "" 3743 + }, 3744 + "38": { 3745 + "stroke": null, 3746 + "strokeWidth": 1, 3747 + "fill": "black", 3748 + "fontFamily": "Times New Roman", 3749 + "fontSize": "26", 3750 + "fontWeight": "normal", 3751 + "fontStyle": "normal", 3752 + "underline": false, 3753 + "overline": false, 3754 + "linethrough": false, 3755 + "deltaY": 0, 3756 + "textBackgroundColor": "" 3757 + }, 3758 + "39": { 3759 + "stroke": null, 3760 + "strokeWidth": 1, 3761 + "fill": "black", 3762 + "fontFamily": "Times New Roman", 3763 + "fontSize": "26", 3764 + "fontWeight": "normal", 3765 + "fontStyle": "normal", 3766 + "underline": false, 3767 + "overline": false, 3768 + "linethrough": false, 3769 + "deltaY": 0, 3770 + "textBackgroundColor": "" 3771 + }, 3772 + "40": { 3773 + "stroke": null, 3774 + "strokeWidth": 1, 3775 + "fill": "black", 3776 + "fontFamily": "Times New Roman", 3777 + "fontSize": "26", 3778 + "fontWeight": "normal", 3779 + "fontStyle": "normal", 3780 + "underline": false, 3781 + "overline": false, 3782 + "linethrough": false, 3783 + "deltaY": 0, 3784 + "textBackgroundColor": "" 3785 + }, 3786 + "41": { 3787 + "stroke": null, 3788 + "strokeWidth": 1, 3789 + "fill": "black", 3790 + "fontFamily": "Times New Roman", 3791 + "fontSize": "26", 3792 + "fontWeight": "normal", 3793 + "fontStyle": "normal", 3794 + "underline": false, 3795 + "overline": false, 3796 + "linethrough": false, 3797 + "deltaY": 0, 3798 + "textBackgroundColor": "" 3799 + }, 3800 + "42": { 3801 + "stroke": null, 3802 + "strokeWidth": 1, 3803 + "fill": "black", 3804 + "fontFamily": "Times New Roman", 3805 + "fontSize": "26", 3806 + "fontWeight": "normal", 3807 + "fontStyle": "normal", 3808 + "underline": false, 3809 + "overline": false, 3810 + "linethrough": false, 3811 + "deltaY": 0, 3812 + "textBackgroundColor": "" 3813 + }, 3814 + "43": { 3815 + "stroke": null, 3816 + "strokeWidth": 1, 3817 + "fill": "black", 3818 + "fontFamily": "Times New Roman", 3819 + "fontSize": "26", 3820 + "fontWeight": "normal", 3821 + "fontStyle": "normal", 3822 + "underline": false, 3823 + "overline": false, 3824 + "linethrough": false, 3825 + "deltaY": 0, 3826 + "textBackgroundColor": "" 3827 + }, 3828 + "44": { 3829 + "stroke": null, 3830 + "strokeWidth": 1, 3831 + "fill": "black", 3832 + "fontFamily": "Times New Roman", 3833 + "fontSize": "26", 3834 + "fontWeight": "normal", 3835 + "fontStyle": "normal", 3836 + "underline": false, 3837 + "overline": false, 3838 + "linethrough": false, 3839 + "deltaY": 0, 3840 + "textBackgroundColor": "" 3841 + }, 3842 + "45": { 3843 + "stroke": null, 3844 + "strokeWidth": 1, 3845 + "fill": "black", 3846 + "fontFamily": "Times New Roman", 3847 + "fontSize": "26", 3848 + "fontWeight": "normal", 3849 + "fontStyle": "normal", 3850 + "underline": false, 3851 + "overline": false, 3852 + "linethrough": false, 3853 + "deltaY": 0, 3854 + "textBackgroundColor": "" 3855 + }, 3856 + "46": { 3857 + "stroke": null, 3858 + "strokeWidth": 1, 3859 + "fill": "black", 3860 + "fontFamily": "Times New Roman", 3861 + "fontSize": "26", 3862 + "fontWeight": "normal", 3863 + "fontStyle": "normal", 3864 + "underline": false, 3865 + "overline": false, 3866 + "linethrough": false, 3867 + "deltaY": 0, 3868 + "textBackgroundColor": "" 3869 + }, 3870 + "47": { 3871 + "stroke": null, 3872 + "strokeWidth": 1, 3873 + "fill": "black", 3874 + "fontFamily": "Times New Roman", 3875 + "fontSize": "26", 3876 + "fontWeight": "normal", 3877 + "fontStyle": "normal", 3878 + "underline": false, 3879 + "overline": false, 3880 + "linethrough": false, 3881 + "deltaY": 0, 3882 + "textBackgroundColor": "" 3883 + }, 3884 + "48": { 3885 + "stroke": null, 3886 + "strokeWidth": 1, 3887 + "fill": "black", 3888 + "fontFamily": "Times New Roman", 3889 + "fontSize": 32, 3890 + "fontWeight": "normal", 3891 + "fontStyle": "normal", 3892 + "underline": false, 3893 + "overline": false, 3894 + "linethrough": false, 3895 + "deltaY": 0, 3896 + "textBackgroundColor": "" 3897 + }, 3898 + "49": { 3899 + "stroke": null, 3900 + "strokeWidth": 1, 3901 + "fill": "black", 3902 + "fontFamily": "Times New Roman", 3903 + "fontSize": 32, 3904 + "fontWeight": "normal", 3905 + "fontStyle": "normal", 3906 + "underline": false, 3907 + "overline": false, 3908 + "linethrough": false, 3909 + "deltaY": 0, 3910 + "textBackgroundColor": "" 3911 + }, 3912 + "50": { 3913 + "stroke": null, 3914 + "strokeWidth": 1, 3915 + "fill": "black", 3916 + "fontFamily": "Times New Roman", 3917 + "fontSize": 32, 3918 + "fontWeight": "normal", 3919 + "fontStyle": "normal", 3920 + "underline": false, 3921 + "overline": false, 3922 + "linethrough": false, 3923 + "deltaY": 0, 3924 + "textBackgroundColor": "" 3925 + }, 3926 + "51": { 3927 + "stroke": null, 3928 + "strokeWidth": 1, 3929 + "fill": "black", 3930 + "fontFamily": "Times New Roman", 3931 + "fontSize": 32, 3932 + "fontWeight": "normal", 3933 + "fontStyle": "normal", 3934 + "underline": false, 3935 + "overline": false, 3936 + "linethrough": false, 3937 + "deltaY": 0, 3938 + "textBackgroundColor": "" 3939 + }, 3940 + "52": { 3941 + "stroke": null, 3942 + "strokeWidth": 1, 3943 + "fill": "black", 3944 + "fontFamily": "Times New Roman", 3945 + "fontSize": 32, 3946 + "fontWeight": "normal", 3947 + "fontStyle": "normal", 3948 + "underline": false, 3949 + "overline": false, 3950 + "linethrough": false, 3951 + "deltaY": 0, 3952 + "textBackgroundColor": "" 3953 + }, 3954 + "53": { 3955 + "stroke": null, 3956 + "strokeWidth": 1, 3957 + "fill": "black", 3958 + "fontFamily": "Times New Roman", 3959 + "fontSize": 32, 3960 + "fontWeight": "normal", 3961 + "fontStyle": "normal", 3962 + "underline": false, 3963 + "overline": false, 3964 + "linethrough": false, 3965 + "deltaY": 0, 3966 + "textBackgroundColor": "" 3967 + }, 3968 + "54": { 3969 + "stroke": null, 3970 + "strokeWidth": 1, 3971 + "fill": "black", 3972 + "fontFamily": "Times New Roman", 3973 + "fontSize": "26", 3974 + "fontWeight": "normal", 3975 + "fontStyle": "normal", 3976 + "underline": false, 3977 + "overline": false, 3978 + "linethrough": false, 3979 + "deltaY": 0, 3980 + "textBackgroundColor": "" 3981 + }, 3982 + "55": { 3983 + "stroke": null, 3984 + "strokeWidth": 1, 3985 + "fill": "black", 3986 + "fontFamily": "Times New Roman", 3987 + "fontSize": "26", 3988 + "fontWeight": "normal", 3989 + "fontStyle": "normal", 3990 + "underline": false, 3991 + "overline": false, 3992 + "linethrough": false, 3993 + "deltaY": 0, 3994 + "textBackgroundColor": "" 3995 + }, 3996 + "56": { 3997 + "stroke": null, 3998 + "strokeWidth": 1, 3999 + "fill": "black", 4000 + "fontFamily": "Times New Roman", 4001 + "fontSize": "26", 4002 + "fontWeight": "normal", 4003 + "fontStyle": "normal", 4004 + "underline": false, 4005 + "overline": false, 4006 + "linethrough": false, 4007 + "deltaY": 0, 4008 + "textBackgroundColor": "" 4009 + }, 4010 + "57": { 4011 + "stroke": null, 4012 + "strokeWidth": 1, 4013 + "fill": "black", 4014 + "fontFamily": "Times New Roman", 4015 + "fontSize": "26", 4016 + "fontWeight": "normal", 4017 + "fontStyle": "normal", 4018 + "underline": false, 4019 + "overline": false, 4020 + "linethrough": false, 4021 + "deltaY": 0, 4022 + "textBackgroundColor": "" 4023 + }, 4024 + "58": { 4025 + "stroke": null, 4026 + "strokeWidth": 1, 4027 + "fill": "black", 4028 + "fontFamily": "Times New Roman", 4029 + "fontSize": "26", 4030 + "fontWeight": "normal", 4031 + "fontStyle": "normal", 4032 + "underline": false, 4033 + "overline": false, 4034 + "linethrough": false, 4035 + "deltaY": 0, 4036 + "textBackgroundColor": "" 4037 + } 4038 + }, 4039 + "2": { 4040 + "0": { 4041 + "stroke": null, 4042 + "strokeWidth": 1, 4043 + "fill": "black", 4044 + "fontFamily": "Times New Roman", 4045 + "fontSize": 32, 4046 + "fontWeight": "normal", 4047 + "fontStyle": "normal", 4048 + "underline": false, 4049 + "overline": false, 4050 + "linethrough": false, 4051 + "deltaY": 0, 4052 + "textBackgroundColor": "" 4053 + }, 4054 + "1": { 4055 + "stroke": null, 4056 + "strokeWidth": 1, 4057 + "fill": "black", 4058 + "fontFamily": "Times New Roman", 4059 + "fontSize": 32, 4060 + "fontWeight": "normal", 4061 + "fontStyle": "normal", 4062 + "underline": false, 4063 + "overline": false, 4064 + "linethrough": false, 4065 + "deltaY": 0, 4066 + "textBackgroundColor": "" 4067 + }, 4068 + "2": { 4069 + "stroke": null, 4070 + "strokeWidth": 1, 4071 + "fill": "black", 4072 + "fontFamily": "Times New Roman", 4073 + "fontSize": 32, 4074 + "fontWeight": "normal", 4075 + "fontStyle": "normal", 4076 + "underline": false, 4077 + "overline": false, 4078 + "linethrough": false, 4079 + "deltaY": 0, 4080 + "textBackgroundColor": "" 4081 + }, 4082 + "3": { 4083 + "stroke": null, 4084 + "strokeWidth": 1, 4085 + "fill": "black", 4086 + "fontFamily": "Times New Roman", 4087 + "fontSize": 32, 4088 + "fontWeight": "normal", 4089 + "fontStyle": "normal", 4090 + "underline": false, 4091 + "overline": false, 4092 + "linethrough": false, 4093 + "deltaY": 0, 4094 + "textBackgroundColor": "" 4095 + }, 4096 + "4": { 4097 + "stroke": null, 4098 + "strokeWidth": 1, 4099 + "fill": "black", 4100 + "fontFamily": "Times New Roman", 4101 + "fontSize": 32, 4102 + "fontWeight": "normal", 4103 + "fontStyle": "normal", 4104 + "underline": false, 4105 + "overline": false, 4106 + "linethrough": false, 4107 + "deltaY": 0, 4108 + "textBackgroundColor": "" 4109 + }, 4110 + "5": { 4111 + "stroke": null, 4112 + "strokeWidth": 1, 4113 + "fill": "black", 4114 + "fontFamily": "Times New Roman", 4115 + "fontSize": 32, 4116 + "fontWeight": "normal", 4117 + "fontStyle": "normal", 4118 + "underline": false, 4119 + "overline": false, 4120 + "linethrough": false, 4121 + "deltaY": 0, 4122 + "textBackgroundColor": "" 4123 + }, 4124 + "6": { 4125 + "stroke": null, 4126 + "strokeWidth": 1, 4127 + "fill": "black", 4128 + "fontFamily": "Times New Roman", 4129 + "fontSize": 32, 4130 + "fontWeight": "normal", 4131 + "fontStyle": "normal", 4132 + "underline": false, 4133 + "overline": false, 4134 + "linethrough": false, 4135 + "deltaY": 0, 4136 + "textBackgroundColor": "" 4137 + }, 4138 + "7": { 4139 + "stroke": null, 4140 + "strokeWidth": 1, 4141 + "fill": "black", 4142 + "fontFamily": "Times New Roman", 4143 + "fontSize": 32, 4144 + "fontWeight": "normal", 4145 + "fontStyle": "normal", 4146 + "underline": false, 4147 + "overline": false, 4148 + "linethrough": false, 4149 + "deltaY": 0, 4150 + "textBackgroundColor": "" 4151 + }, 4152 + "8": { 4153 + "stroke": null, 4154 + "strokeWidth": 1, 4155 + "fill": "black", 4156 + "fontFamily": "Times New Roman", 4157 + "fontSize": 32, 4158 + "fontWeight": "normal", 4159 + "fontStyle": "normal", 4160 + "underline": false, 4161 + "overline": false, 4162 + "linethrough": false, 4163 + "deltaY": 0, 4164 + "textBackgroundColor": "" 4165 + }, 4166 + "9": { 4167 + "stroke": null, 4168 + "strokeWidth": 1, 4169 + "fill": "black", 4170 + "fontFamily": "Times New Roman", 4171 + "fontSize": 32, 4172 + "fontWeight": "normal", 4173 + "fontStyle": "normal", 4174 + "underline": false, 4175 + "overline": false, 4176 + "linethrough": false, 4177 + "deltaY": 0, 4178 + "textBackgroundColor": "" 4179 + }, 4180 + "10": { 4181 + "stroke": null, 4182 + "strokeWidth": 1, 4183 + "fill": "black", 4184 + "fontFamily": "Times New Roman", 4185 + "fontSize": 32, 4186 + "fontWeight": "normal", 4187 + "fontStyle": "normal", 4188 + "underline": false, 4189 + "overline": false, 4190 + "linethrough": false, 4191 + "deltaY": 0, 4192 + "textBackgroundColor": "" 4193 + }, 4194 + "11": { 4195 + "stroke": null, 4196 + "strokeWidth": 1, 4197 + "fill": "black", 4198 + "fontFamily": "Times New Roman", 4199 + "fontSize": 32, 4200 + "fontWeight": "normal", 4201 + "fontStyle": "normal", 4202 + "underline": false, 4203 + "overline": false, 4204 + "linethrough": false, 4205 + "deltaY": 0, 4206 + "textBackgroundColor": "" 4207 + }, 4208 + "12": { 4209 + "stroke": null, 4210 + "strokeWidth": 1, 4211 + "fill": "black", 4212 + "fontFamily": "Times New Roman", 4213 + "fontSize": 32, 4214 + "fontWeight": "normal", 4215 + "fontStyle": "normal", 4216 + "underline": false, 4217 + "overline": false, 4218 + "linethrough": false, 4219 + "deltaY": 0, 4220 + "textBackgroundColor": "" 4221 + }, 4222 + "13": { 4223 + "stroke": null, 4224 + "strokeWidth": 1, 4225 + "fill": "black", 4226 + "fontFamily": "Times New Roman", 4227 + "fontSize": 32, 4228 + "fontWeight": "normal", 4229 + "fontStyle": "normal", 4230 + "underline": false, 4231 + "overline": false, 4232 + "linethrough": false, 4233 + "deltaY": 0, 4234 + "textBackgroundColor": "" 4235 + }, 4236 + "14": { 4237 + "stroke": null, 4238 + "strokeWidth": 1, 4239 + "fill": "black", 4240 + "fontFamily": "Times New Roman", 4241 + "fontSize": 32, 4242 + "fontWeight": "normal", 4243 + "fontStyle": "normal", 4244 + "underline": false, 4245 + "overline": false, 4246 + "linethrough": false, 4247 + "deltaY": 0, 4248 + "textBackgroundColor": "" 4249 + }, 4250 + "15": { 4251 + "stroke": null, 4252 + "strokeWidth": 1, 4253 + "fill": "black", 4254 + "fontFamily": "Times New Roman", 4255 + "fontSize": 32, 4256 + "fontWeight": "normal", 4257 + "fontStyle": "normal", 4258 + "underline": false, 4259 + "overline": false, 4260 + "linethrough": false, 4261 + "deltaY": 0, 4262 + "textBackgroundColor": "" 4263 + }, 4264 + "16": { 4265 + "stroke": null, 4266 + "strokeWidth": 1, 4267 + "fill": "black", 4268 + "fontFamily": "Times New Roman", 4269 + "fontSize": 32, 4270 + "fontWeight": "normal", 4271 + "fontStyle": "normal", 4272 + "underline": false, 4273 + "overline": false, 4274 + "linethrough": false, 4275 + "deltaY": 0, 4276 + "textBackgroundColor": "" 4277 + }, 4278 + "17": { 4279 + "stroke": null, 4280 + "strokeWidth": 1, 4281 + "fill": "black", 4282 + "fontFamily": "Times New Roman", 4283 + "fontSize": 32, 4284 + "fontWeight": "normal", 4285 + "fontStyle": "normal", 4286 + "underline": false, 4287 + "overline": false, 4288 + "linethrough": false, 4289 + "deltaY": 0, 4290 + "textBackgroundColor": "" 4291 + }, 4292 + "18": { 4293 + "stroke": null, 4294 + "strokeWidth": 1, 4295 + "fill": "black", 4296 + "fontFamily": "Times New Roman", 4297 + "fontSize": 32, 4298 + "fontWeight": "normal", 4299 + "fontStyle": "normal", 4300 + "underline": false, 4301 + "overline": false, 4302 + "linethrough": false, 4303 + "deltaY": 0, 4304 + "textBackgroundColor": "" 4305 + }, 4306 + "19": { 4307 + "stroke": null, 4308 + "strokeWidth": 1, 4309 + "fill": "black", 4310 + "fontFamily": "Times New Roman", 4311 + "fontSize": 32, 4312 + "fontWeight": "normal", 4313 + "fontStyle": "normal", 4314 + "underline": false, 4315 + "overline": false, 4316 + "linethrough": false, 4317 + "deltaY": 0, 4318 + "textBackgroundColor": "" 4319 + }, 4320 + "20": { 4321 + "stroke": null, 4322 + "strokeWidth": 1, 4323 + "fill": "black", 4324 + "fontFamily": "Times New Roman", 4325 + "fontSize": 32, 4326 + "fontWeight": "normal", 4327 + "fontStyle": "normal", 4328 + "underline": false, 4329 + "overline": false, 4330 + "linethrough": false, 4331 + "deltaY": 0, 4332 + "textBackgroundColor": "" 4333 + }, 4334 + "21": { 4335 + "stroke": null, 4336 + "strokeWidth": 1, 4337 + "fill": "black", 4338 + "fontFamily": "Times New Roman", 4339 + "fontSize": 32, 4340 + "fontWeight": "normal", 4341 + "fontStyle": "normal", 4342 + "underline": false, 4343 + "overline": false, 4344 + "linethrough": false, 4345 + "deltaY": 0, 4346 + "textBackgroundColor": "" 4347 + }, 4348 + "22": { 4349 + "stroke": null, 4350 + "strokeWidth": 1, 4351 + "fill": "black", 4352 + "fontFamily": "Times New Roman", 4353 + "fontSize": 32, 4354 + "fontWeight": "normal", 4355 + "fontStyle": "normal", 4356 + "underline": false, 4357 + "overline": false, 4358 + "linethrough": false, 4359 + "deltaY": 0, 4360 + "textBackgroundColor": "" 4361 + }, 4362 + "23": { 4363 + "stroke": null, 4364 + "strokeWidth": 1, 4365 + "fill": "black", 4366 + "fontFamily": "Times New Roman", 4367 + "fontSize": 32, 4368 + "fontWeight": "normal", 4369 + "fontStyle": "normal", 4370 + "underline": false, 4371 + "overline": false, 4372 + "linethrough": false, 4373 + "deltaY": 0, 4374 + "textBackgroundColor": "" 4375 + }, 4376 + "24": { 4377 + "stroke": null, 4378 + "strokeWidth": 1, 4379 + "fill": "black", 4380 + "fontFamily": "Times New Roman", 4381 + "fontSize": 32, 4382 + "fontWeight": "normal", 4383 + "fontStyle": "normal", 4384 + "underline": false, 4385 + "overline": false, 4386 + "linethrough": false, 4387 + "deltaY": 0, 4388 + "textBackgroundColor": "" 4389 + }, 4390 + "25": { 4391 + "stroke": null, 4392 + "strokeWidth": 1, 4393 + "fill": "black", 4394 + "fontFamily": "Times New Roman", 4395 + "fontSize": 32, 4396 + "fontWeight": "normal", 4397 + "fontStyle": "normal", 4398 + "underline": false, 4399 + "overline": false, 4400 + "linethrough": false, 4401 + "deltaY": 0, 4402 + "textBackgroundColor": "" 4403 + }, 4404 + "26": { 4405 + "stroke": null, 4406 + "strokeWidth": 1, 4407 + "fill": "black", 4408 + "fontFamily": "Times New Roman", 4409 + "fontSize": 32, 4410 + "fontWeight": "normal", 4411 + "fontStyle": "normal", 4412 + "underline": false, 4413 + "overline": false, 4414 + "linethrough": false, 4415 + "deltaY": 0, 4416 + "textBackgroundColor": "" 4417 + }, 4418 + "27": { 4419 + "stroke": null, 4420 + "strokeWidth": 1, 4421 + "fill": "black", 4422 + "fontFamily": "Times New Roman", 4423 + "fontSize": 32, 4424 + "fontWeight": "normal", 4425 + "fontStyle": "normal", 4426 + "underline": false, 4427 + "overline": false, 4428 + "linethrough": false, 4429 + "deltaY": 0, 4430 + "textBackgroundColor": "" 4431 + }, 4432 + "28": { 4433 + "stroke": null, 4434 + "strokeWidth": 1, 4435 + "fill": "black", 4436 + "fontFamily": "Times New Roman", 4437 + "fontSize": 32, 4438 + "fontWeight": "normal", 4439 + "fontStyle": "normal", 4440 + "underline": false, 4441 + "overline": false, 4442 + "linethrough": false, 4443 + "deltaY": 0, 4444 + "textBackgroundColor": "" 4445 + }, 4446 + "29": { 4447 + "stroke": null, 4448 + "strokeWidth": 1, 4449 + "fill": "black", 4450 + "fontFamily": "Times New Roman", 4451 + "fontSize": 32, 4452 + "fontWeight": "normal", 4453 + "fontStyle": "normal", 4454 + "underline": false, 4455 + "overline": false, 4456 + "linethrough": false, 4457 + "deltaY": 0, 4458 + "textBackgroundColor": "" 4459 + }, 4460 + "30": { 4461 + "stroke": null, 4462 + "strokeWidth": 1, 4463 + "fill": "black", 4464 + "fontFamily": "Times New Roman", 4465 + "fontSize": 32, 4466 + "fontWeight": "normal", 4467 + "fontStyle": "normal", 4468 + "underline": false, 4469 + "overline": false, 4470 + "linethrough": false, 4471 + "deltaY": 0, 4472 + "textBackgroundColor": "" 4473 + }, 4474 + "31": { 4475 + "stroke": null, 4476 + "strokeWidth": 1, 4477 + "fill": "black", 4478 + "fontFamily": "Times New Roman", 4479 + "fontSize": 32, 4480 + "fontWeight": "normal", 4481 + "fontStyle": "normal", 4482 + "underline": false, 4483 + "overline": false, 4484 + "linethrough": false, 4485 + "deltaY": 0, 4486 + "textBackgroundColor": "" 4487 + }, 4488 + "32": { 4489 + "stroke": null, 4490 + "strokeWidth": 1, 4491 + "fill": "black", 4492 + "fontFamily": "Times New Roman", 4493 + "fontSize": 32, 4494 + "fontWeight": "normal", 4495 + "fontStyle": "normal", 4496 + "underline": false, 4497 + "overline": false, 4498 + "linethrough": false, 4499 + "deltaY": 0, 4500 + "textBackgroundColor": "" 4501 + }, 4502 + "33": { 4503 + "stroke": null, 4504 + "strokeWidth": 1, 4505 + "fill": "black", 4506 + "fontFamily": "Times New Roman", 4507 + "fontSize": 32, 4508 + "fontWeight": "normal", 4509 + "fontStyle": "normal", 4510 + "underline": false, 4511 + "overline": false, 4512 + "linethrough": false, 4513 + "deltaY": 0, 4514 + "textBackgroundColor": "" 4515 + }, 4516 + "34": { 4517 + "stroke": null, 4518 + "strokeWidth": 1, 4519 + "fill": "black", 4520 + "fontFamily": "Times New Roman", 4521 + "fontSize": 32, 4522 + "fontWeight": "normal", 4523 + "fontStyle": "normal", 4524 + "underline": false, 4525 + "overline": false, 4526 + "linethrough": false, 4527 + "deltaY": 0, 4528 + "textBackgroundColor": "" 4529 + }, 4530 + "35": { 4531 + "stroke": null, 4532 + "strokeWidth": 1, 4533 + "fill": "black", 4534 + "fontFamily": "Times New Roman", 4535 + "fontSize": 32, 4536 + "fontWeight": "normal", 4537 + "fontStyle": "normal", 4538 + "underline": false, 4539 + "overline": false, 4540 + "linethrough": false, 4541 + "deltaY": 0, 4542 + "textBackgroundColor": "" 4543 + }, 4544 + "36": { 4545 + "stroke": null, 4546 + "strokeWidth": 1, 4547 + "fill": "black", 4548 + "fontFamily": "Times New Roman", 4549 + "fontSize": 32, 4550 + "fontWeight": "normal", 4551 + "fontStyle": "normal", 4552 + "underline": false, 4553 + "overline": false, 4554 + "linethrough": false, 4555 + "deltaY": 0, 4556 + "textBackgroundColor": "" 4557 + }, 4558 + "37": { 4559 + "stroke": null, 4560 + "strokeWidth": 1, 4561 + "fill": "black", 4562 + "fontFamily": "Times New Roman", 4563 + "fontSize": 32, 4564 + "fontWeight": "normal", 4565 + "fontStyle": "normal", 4566 + "underline": false, 4567 + "overline": false, 4568 + "linethrough": false, 4569 + "deltaY": 0, 4570 + "textBackgroundColor": "" 4571 + }, 4572 + "38": { 4573 + "stroke": null, 4574 + "strokeWidth": 1, 4575 + "fill": "black", 4576 + "fontFamily": "Times New Roman", 4577 + "fontSize": 32, 4578 + "fontWeight": "normal", 4579 + "fontStyle": "normal", 4580 + "underline": false, 4581 + "overline": false, 4582 + "linethrough": false, 4583 + "deltaY": 0, 4584 + "textBackgroundColor": "" 4585 + }, 4586 + "39": { 4587 + "stroke": null, 4588 + "strokeWidth": 1, 4589 + "fill": "black", 4590 + "fontFamily": "Times New Roman", 4591 + "fontSize": 32, 4592 + "fontWeight": "normal", 4593 + "fontStyle": "normal", 4594 + "underline": false, 4595 + "overline": false, 4596 + "linethrough": false, 4597 + "deltaY": 0, 4598 + "textBackgroundColor": "" 4599 + }, 4600 + "40": { 4601 + "stroke": null, 4602 + "strokeWidth": 1, 4603 + "fill": "black", 4604 + "fontFamily": "Times New Roman", 4605 + "fontSize": 32, 4606 + "fontWeight": "normal", 4607 + "fontStyle": "normal", 4608 + "underline": false, 4609 + "overline": false, 4610 + "linethrough": false, 4611 + "deltaY": 0, 4612 + "textBackgroundColor": "" 4613 + }, 4614 + "41": { 4615 + "stroke": null, 4616 + "strokeWidth": 1, 4617 + "fill": "black", 4618 + "fontFamily": "Times New Roman", 4619 + "fontSize": 32, 4620 + "fontWeight": "normal", 4621 + "fontStyle": "normal", 4622 + "underline": false, 4623 + "overline": false, 4624 + "linethrough": false, 4625 + "deltaY": 0, 4626 + "textBackgroundColor": "" 4627 + }, 4628 + "42": { 4629 + "stroke": null, 4630 + "strokeWidth": 1, 4631 + "fill": "black", 4632 + "fontFamily": "Times New Roman", 4633 + "fontSize": 32, 4634 + "fontWeight": "normal", 4635 + "fontStyle": "normal", 4636 + "underline": false, 4637 + "overline": false, 4638 + "linethrough": false, 4639 + "deltaY": 0, 4640 + "textBackgroundColor": "" 4641 + }, 4642 + "43": { 4643 + "stroke": null, 4644 + "strokeWidth": 1, 4645 + "fill": "black", 4646 + "fontFamily": "Times New Roman", 4647 + "fontSize": 32, 4648 + "fontWeight": "normal", 4649 + "fontStyle": "normal", 4650 + "underline": false, 4651 + "overline": false, 4652 + "linethrough": false, 4653 + "deltaY": 0, 4654 + "textBackgroundColor": "" 4655 + }, 4656 + "44": { 4657 + "stroke": null, 4658 + "strokeWidth": 1, 4659 + "fill": "black", 4660 + "fontFamily": "Times New Roman", 4661 + "fontSize": 32, 4662 + "fontWeight": "normal", 4663 + "fontStyle": "normal", 4664 + "underline": false, 4665 + "overline": false, 4666 + "linethrough": false, 4667 + "deltaY": 0, 4668 + "textBackgroundColor": "" 4669 + }, 4670 + "45": { 4671 + "stroke": null, 4672 + "strokeWidth": 1, 4673 + "fill": "black", 4674 + "fontFamily": "Times New Roman", 4675 + "fontSize": 32, 4676 + "fontWeight": "normal", 4677 + "fontStyle": "normal", 4678 + "underline": false, 4679 + "overline": false, 4680 + "linethrough": false, 4681 + "deltaY": 0, 4682 + "textBackgroundColor": "" 4683 + }, 4684 + "46": { 4685 + "stroke": null, 4686 + "strokeWidth": 1, 4687 + "fill": "black", 4688 + "fontFamily": "Times New Roman", 4689 + "fontSize": 32, 4690 + "fontWeight": "normal", 4691 + "fontStyle": "normal", 4692 + "underline": false, 4693 + "overline": false, 4694 + "linethrough": false, 4695 + "deltaY": 0, 4696 + "textBackgroundColor": "" 4697 + }, 4698 + "47": { 4699 + "stroke": null, 4700 + "strokeWidth": 1, 4701 + "fill": "black", 4702 + "fontFamily": "Times New Roman", 4703 + "fontSize": 32, 4704 + "fontWeight": "normal", 4705 + "fontStyle": "normal", 4706 + "underline": false, 4707 + "overline": false, 4708 + "linethrough": false, 4709 + "deltaY": 0, 4710 + "textBackgroundColor": "" 4711 + }, 4712 + "48": { 4713 + "stroke": null, 4714 + "strokeWidth": 1, 4715 + "fill": "black", 4716 + "fontFamily": "Times New Roman", 4717 + "fontSize": 32, 4718 + "fontWeight": "normal", 4719 + "fontStyle": "normal", 4720 + "underline": false, 4721 + "overline": false, 4722 + "linethrough": false, 4723 + "deltaY": 0, 4724 + "textBackgroundColor": "" 4725 + }, 4726 + "49": { 4727 + "stroke": null, 4728 + "strokeWidth": 1, 4729 + "fill": "black", 4730 + "fontFamily": "Times New Roman", 4731 + "fontSize": 32, 4732 + "fontWeight": "normal", 4733 + "fontStyle": "normal", 4734 + "underline": false, 4735 + "overline": false, 4736 + "linethrough": false, 4737 + "deltaY": 0, 4738 + "textBackgroundColor": "" 4739 + }, 4740 + "50": { 4741 + "stroke": null, 4742 + "strokeWidth": 1, 4743 + "fill": "black", 4744 + "fontFamily": "Times New Roman", 4745 + "fontSize": 32, 4746 + "fontWeight": "normal", 4747 + "fontStyle": "normal", 4748 + "underline": false, 4749 + "overline": false, 4750 + "linethrough": false, 4751 + "deltaY": 0, 4752 + "textBackgroundColor": "" 4753 + }, 4754 + "51": { 4755 + "stroke": null, 4756 + "strokeWidth": 1, 4757 + "fill": "black", 4758 + "fontFamily": "Times New Roman", 4759 + "fontSize": 32, 4760 + "fontWeight": "normal", 4761 + "fontStyle": "normal", 4762 + "underline": false, 4763 + "overline": false, 4764 + "linethrough": false, 4765 + "deltaY": 0, 4766 + "textBackgroundColor": "" 4767 + }, 4768 + "52": { 4769 + "stroke": null, 4770 + "strokeWidth": 1, 4771 + "fill": "black", 4772 + "fontFamily": "Times New Roman", 4773 + "fontSize": 32, 4774 + "fontWeight": "normal", 4775 + "fontStyle": "normal", 4776 + "underline": false, 4777 + "overline": false, 4778 + "linethrough": false, 4779 + "deltaY": 0, 4780 + "textBackgroundColor": "" 4781 + }, 4782 + "53": { 4783 + "stroke": null, 4784 + "strokeWidth": 1, 4785 + "fill": "black", 4786 + "fontFamily": "Times New Roman", 4787 + "fontSize": 32, 4788 + "fontWeight": "normal", 4789 + "fontStyle": "normal", 4790 + "underline": false, 4791 + "overline": false, 4792 + "linethrough": false, 4793 + "deltaY": 0, 4794 + "textBackgroundColor": "" 4795 + }, 4796 + "54": { 4797 + "stroke": null, 4798 + "strokeWidth": 1, 4799 + "fill": "black", 4800 + "fontFamily": "Times New Roman", 4801 + "fontSize": 32, 4802 + "fontWeight": "normal", 4803 + "fontStyle": "normal", 4804 + "underline": false, 4805 + "overline": false, 4806 + "linethrough": false, 4807 + "deltaY": 0, 4808 + "textBackgroundColor": "" 4809 + }, 4810 + "55": { 4811 + "stroke": null, 4812 + "strokeWidth": 1, 4813 + "fill": "black", 4814 + "fontFamily": "Times New Roman", 4815 + "fontSize": 32, 4816 + "fontWeight": "normal", 4817 + "fontStyle": "normal", 4818 + "underline": false, 4819 + "overline": false, 4820 + "linethrough": false, 4821 + "deltaY": 0, 4822 + "textBackgroundColor": "" 4823 + }, 4824 + "56": { 4825 + "stroke": null, 4826 + "strokeWidth": 1, 4827 + "fill": "black", 4828 + "fontFamily": "Times New Roman", 4829 + "fontSize": 32, 4830 + "fontWeight": "normal", 4831 + "fontStyle": "normal", 4832 + "underline": false, 4833 + "overline": false, 4834 + "linethrough": false, 4835 + "deltaY": 0, 4836 + "textBackgroundColor": "" 4837 + }, 4838 + "57": { 4839 + "stroke": null, 4840 + "strokeWidth": 1, 4841 + "fill": "black", 4842 + "fontFamily": "Times New Roman", 4843 + "fontSize": 32, 4844 + "fontWeight": "normal", 4845 + "fontStyle": "normal", 4846 + "underline": false, 4847 + "overline": false, 4848 + "linethrough": false, 4849 + "deltaY": 0, 4850 + "textBackgroundColor": "" 4851 + } 4852 + }, 4853 + "3": { 4854 + "0": { 4855 + "stroke": null, 4856 + "strokeWidth": 1, 4857 + "fill": "black", 4858 + "fontFamily": "Times New Roman", 4859 + "fontSize": 32, 4860 + "fontWeight": "normal", 4861 + "fontStyle": "normal", 4862 + "underline": false, 4863 + "overline": false, 4864 + "linethrough": false, 4865 + "deltaY": 0, 4866 + "textBackgroundColor": "" 4867 + }, 4868 + "1": { 4869 + "stroke": null, 4870 + "strokeWidth": 1, 4871 + "fill": "black", 4872 + "fontFamily": "Times New Roman", 4873 + "fontSize": 32, 4874 + "fontWeight": "normal", 4875 + "fontStyle": "normal", 4876 + "underline": false, 4877 + "overline": false, 4878 + "linethrough": false, 4879 + "deltaY": 0, 4880 + "textBackgroundColor": "" 4881 + }, 4882 + "2": { 4883 + "stroke": null, 4884 + "strokeWidth": 1, 4885 + "fill": "black", 4886 + "fontFamily": "Times New Roman", 4887 + "fontSize": 32, 4888 + "fontWeight": "normal", 4889 + "fontStyle": "normal", 4890 + "underline": false, 4891 + "overline": false, 4892 + "linethrough": false, 4893 + "deltaY": 0, 4894 + "textBackgroundColor": "" 4895 + }, 4896 + "3": { 4897 + "stroke": null, 4898 + "strokeWidth": 1, 4899 + "fill": "black", 4900 + "fontFamily": "Times New Roman", 4901 + "fontSize": 32, 4902 + "fontWeight": "normal", 4903 + "fontStyle": "normal", 4904 + "underline": false, 4905 + "overline": false, 4906 + "linethrough": false, 4907 + "deltaY": 0, 4908 + "textBackgroundColor": "" 4909 + }, 4910 + "4": { 4911 + "stroke": null, 4912 + "strokeWidth": 1, 4913 + "fill": "black", 4914 + "fontFamily": "Times New Roman", 4915 + "fontSize": 32, 4916 + "fontWeight": "normal", 4917 + "fontStyle": "normal", 4918 + "underline": false, 4919 + "overline": false, 4920 + "linethrough": false, 4921 + "deltaY": 0, 4922 + "textBackgroundColor": "" 4923 + }, 4924 + "5": { 4925 + "stroke": null, 4926 + "strokeWidth": 1, 4927 + "fill": "black", 4928 + "fontFamily": "Times New Roman", 4929 + "fontSize": 32, 4930 + "fontWeight": "normal", 4931 + "fontStyle": "normal", 4932 + "underline": false, 4933 + "overline": false, 4934 + "linethrough": false, 4935 + "deltaY": 0, 4936 + "textBackgroundColor": "" 4937 + }, 4938 + "6": { 4939 + "stroke": null, 4940 + "strokeWidth": 1, 4941 + "fill": "black", 4942 + "fontFamily": "Times New Roman", 4943 + "fontSize": 32, 4944 + "fontWeight": "normal", 4945 + "fontStyle": "normal", 4946 + "underline": false, 4947 + "overline": false, 4948 + "linethrough": false, 4949 + "deltaY": 0, 4950 + "textBackgroundColor": "" 4951 + }, 4952 + "7": { 4953 + "stroke": null, 4954 + "strokeWidth": 1, 4955 + "fill": "black", 4956 + "fontFamily": "Times New Roman", 4957 + "fontSize": 32, 4958 + "fontWeight": "normal", 4959 + "fontStyle": "normal", 4960 + "underline": false, 4961 + "overline": false, 4962 + "linethrough": false, 4963 + "deltaY": 0, 4964 + "textBackgroundColor": "" 4965 + }, 4966 + "8": { 4967 + "stroke": null, 4968 + "strokeWidth": 1, 4969 + "fill": "black", 4970 + "fontFamily": "Times New Roman", 4971 + "fontSize": 32, 4972 + "fontWeight": "normal", 4973 + "fontStyle": "normal", 4974 + "underline": false, 4975 + "overline": false, 4976 + "linethrough": false, 4977 + "deltaY": 0, 4978 + "textBackgroundColor": "" 4979 + }, 4980 + "9": { 4981 + "stroke": null, 4982 + "strokeWidth": 1, 4983 + "fill": "black", 4984 + "fontFamily": "Times New Roman", 4985 + "fontSize": 32, 4986 + "fontWeight": "normal", 4987 + "fontStyle": "normal", 4988 + "underline": false, 4989 + "overline": false, 4990 + "linethrough": false, 4991 + "deltaY": 0, 4992 + "textBackgroundColor": "" 4993 + }, 4994 + "10": { 4995 + "stroke": null, 4996 + "strokeWidth": 1, 4997 + "fill": "black", 4998 + "fontFamily": "Times New Roman", 4999 + "fontSize": 32, 5000 + "fontWeight": "normal", 5001 + "fontStyle": "normal", 5002 + "underline": false, 5003 + "overline": false, 5004 + "linethrough": false, 5005 + "deltaY": 0, 5006 + "textBackgroundColor": "" 5007 + }, 5008 + "11": { 5009 + "stroke": null, 5010 + "strokeWidth": 1, 5011 + "fill": "black", 5012 + "fontFamily": "Times New Roman", 5013 + "fontSize": 32, 5014 + "fontWeight": "normal", 5015 + "fontStyle": "normal", 5016 + "underline": false, 5017 + "overline": false, 5018 + "linethrough": false, 5019 + "deltaY": 0, 5020 + "textBackgroundColor": "" 5021 + }, 5022 + "12": { 5023 + "stroke": null, 5024 + "strokeWidth": 1, 5025 + "fill": "black", 5026 + "fontFamily": "Times New Roman", 5027 + "fontSize": 32, 5028 + "fontWeight": "normal", 5029 + "fontStyle": "normal", 5030 + "underline": false, 5031 + "overline": false, 5032 + "linethrough": false, 5033 + "deltaY": 0, 5034 + "textBackgroundColor": "" 5035 + }, 5036 + "13": { 5037 + "stroke": null, 5038 + "strokeWidth": 1, 5039 + "fill": "black", 5040 + "fontFamily": "Times New Roman", 5041 + "fontSize": 32, 5042 + "fontWeight": "normal", 5043 + "fontStyle": "normal", 5044 + "underline": false, 5045 + "overline": false, 5046 + "linethrough": false, 5047 + "deltaY": 0, 5048 + "textBackgroundColor": "" 5049 + }, 5050 + "14": { 5051 + "stroke": null, 5052 + "strokeWidth": 1, 5053 + "fill": "black", 5054 + "fontFamily": "Times New Roman", 5055 + "fontSize": 32, 5056 + "fontWeight": "normal", 5057 + "fontStyle": "normal", 5058 + "underline": false, 5059 + "overline": false, 5060 + "linethrough": false, 5061 + "deltaY": 0, 5062 + "textBackgroundColor": "" 5063 + }, 5064 + "15": { 5065 + "stroke": null, 5066 + "strokeWidth": 1, 5067 + "fill": "black", 5068 + "fontFamily": "Times New Roman", 5069 + "fontSize": 32, 5070 + "fontWeight": "normal", 5071 + "fontStyle": "normal", 5072 + "underline": false, 5073 + "overline": false, 5074 + "linethrough": false, 5075 + "deltaY": 0, 5076 + "textBackgroundColor": "" 5077 + }, 5078 + "16": { 5079 + "stroke": null, 5080 + "strokeWidth": 1, 5081 + "fill": "black", 5082 + "fontFamily": "Times New Roman", 5083 + "fontSize": 32, 5084 + "fontWeight": "normal", 5085 + "fontStyle": "normal", 5086 + "underline": false, 5087 + "overline": false, 5088 + "linethrough": false, 5089 + "deltaY": 0, 5090 + "textBackgroundColor": "" 5091 + }, 5092 + "17": { 5093 + "stroke": null, 5094 + "strokeWidth": 1, 5095 + "fill": "black", 5096 + "fontFamily": "Times New Roman", 5097 + "fontSize": 32, 5098 + "fontWeight": "normal", 5099 + "fontStyle": "normal", 5100 + "underline": false, 5101 + "overline": false, 5102 + "linethrough": false, 5103 + "deltaY": 0, 5104 + "textBackgroundColor": "" 5105 + }, 5106 + "18": { 5107 + "stroke": null, 5108 + "strokeWidth": 1, 5109 + "fill": "black", 5110 + "fontFamily": "Times New Roman", 5111 + "fontSize": 32, 5112 + "fontWeight": "normal", 5113 + "fontStyle": "normal", 5114 + "underline": false, 5115 + "overline": false, 5116 + "linethrough": false, 5117 + "deltaY": 0, 5118 + "textBackgroundColor": "" 5119 + }, 5120 + "19": { 5121 + "stroke": null, 5122 + "strokeWidth": 1, 5123 + "fill": "black", 5124 + "fontFamily": "Times New Roman", 5125 + "fontSize": 32, 5126 + "fontWeight": "normal", 5127 + "fontStyle": "normal", 5128 + "underline": false, 5129 + "overline": false, 5130 + "linethrough": false, 5131 + "deltaY": 0, 5132 + "textBackgroundColor": "" 5133 + }, 5134 + "20": { 5135 + "stroke": null, 5136 + "strokeWidth": 1, 5137 + "fill": "black", 5138 + "fontFamily": "Times New Roman", 5139 + "fontSize": 32, 5140 + "fontWeight": "normal", 5141 + "fontStyle": "normal", 5142 + "underline": false, 5143 + "overline": false, 5144 + "linethrough": false, 5145 + "deltaY": 0, 5146 + "textBackgroundColor": "" 5147 + }, 5148 + "21": { 5149 + "stroke": null, 5150 + "strokeWidth": 1, 5151 + "fill": "black", 5152 + "fontFamily": "Times New Roman", 5153 + "fontSize": 32, 5154 + "fontWeight": "normal", 5155 + "fontStyle": "normal", 5156 + "underline": false, 5157 + "overline": false, 5158 + "linethrough": false, 5159 + "deltaY": 0, 5160 + "textBackgroundColor": "" 5161 + }, 5162 + "22": { 5163 + "stroke": null, 5164 + "strokeWidth": 1, 5165 + "fill": "black", 5166 + "fontFamily": "Times New Roman", 5167 + "fontSize": 32, 5168 + "fontWeight": "normal", 5169 + "fontStyle": "normal", 5170 + "underline": false, 5171 + "overline": false, 5172 + "linethrough": false, 5173 + "deltaY": 0, 5174 + "textBackgroundColor": "" 5175 + }, 5176 + "23": { 5177 + "stroke": null, 5178 + "strokeWidth": 1, 5179 + "fill": "black", 5180 + "fontFamily": "Times New Roman", 5181 + "fontSize": 32, 5182 + "fontWeight": "normal", 5183 + "fontStyle": "normal", 5184 + "underline": false, 5185 + "overline": false, 5186 + "linethrough": false, 5187 + "deltaY": 0, 5188 + "textBackgroundColor": "" 5189 + }, 5190 + "24": { 5191 + "stroke": null, 5192 + "strokeWidth": 1, 5193 + "fill": "black", 5194 + "fontFamily": "Times New Roman", 5195 + "fontSize": 32, 5196 + "fontWeight": "normal", 5197 + "fontStyle": "normal", 5198 + "underline": false, 5199 + "overline": false, 5200 + "linethrough": false, 5201 + "deltaY": 0, 5202 + "textBackgroundColor": "" 5203 + }, 5204 + "25": { 5205 + "stroke": null, 5206 + "strokeWidth": 1, 5207 + "fill": "black", 5208 + "fontFamily": "Times New Roman", 5209 + "fontSize": 32, 5210 + "fontWeight": "normal", 5211 + "fontStyle": "normal", 5212 + "underline": false, 5213 + "overline": false, 5214 + "linethrough": false, 5215 + "deltaY": 0, 5216 + "textBackgroundColor": "" 5217 + }, 5218 + "26": { 5219 + "stroke": null, 5220 + "strokeWidth": 1, 5221 + "fill": "black", 5222 + "fontFamily": "Times New Roman", 5223 + "fontSize": 32, 5224 + "fontWeight": "normal", 5225 + "fontStyle": "normal", 5226 + "underline": false, 5227 + "overline": false, 5228 + "linethrough": false, 5229 + "deltaY": 0, 5230 + "textBackgroundColor": "" 5231 + }, 5232 + "27": { 5233 + "stroke": null, 5234 + "strokeWidth": 1, 5235 + "fill": "black", 5236 + "fontFamily": "Times New Roman", 5237 + "fontSize": 32, 5238 + "fontWeight": "normal", 5239 + "fontStyle": "normal", 5240 + "underline": false, 5241 + "overline": false, 5242 + "linethrough": false, 5243 + "deltaY": 0, 5244 + "textBackgroundColor": "" 5245 + }, 5246 + "28": { 5247 + "stroke": null, 5248 + "strokeWidth": 1, 5249 + "fill": "black", 5250 + "fontFamily": "Times New Roman", 5251 + "fontSize": 32, 5252 + "fontWeight": "normal", 5253 + "fontStyle": "normal", 5254 + "underline": false, 5255 + "overline": false, 5256 + "linethrough": false, 5257 + "deltaY": 0, 5258 + "textBackgroundColor": "" 5259 + }, 5260 + "29": { 5261 + "stroke": null, 5262 + "strokeWidth": 1, 5263 + "fill": "black", 5264 + "fontFamily": "Times New Roman", 5265 + "fontSize": 32, 5266 + "fontWeight": "normal", 5267 + "fontStyle": "normal", 5268 + "underline": false, 5269 + "overline": false, 5270 + "linethrough": false, 5271 + "deltaY": 0, 5272 + "textBackgroundColor": "" 5273 + }, 5274 + "30": { 5275 + "stroke": null, 5276 + "strokeWidth": 1, 5277 + "fill": "black", 5278 + "fontFamily": "Times New Roman", 5279 + "fontSize": 32, 5280 + "fontWeight": "normal", 5281 + "fontStyle": "normal", 5282 + "underline": false, 5283 + "overline": false, 5284 + "linethrough": false, 5285 + "deltaY": 0, 5286 + "textBackgroundColor": "" 5287 + }, 5288 + "31": { 5289 + "stroke": null, 5290 + "strokeWidth": 1, 5291 + "fill": "black", 5292 + "fontFamily": "Times New Roman", 5293 + "fontSize": 32, 5294 + "fontWeight": "normal", 5295 + "fontStyle": "normal", 5296 + "underline": false, 5297 + "overline": false, 5298 + "linethrough": false, 5299 + "deltaY": 0, 5300 + "textBackgroundColor": "" 5301 + }, 5302 + "32": { 5303 + "stroke": null, 5304 + "strokeWidth": 1, 5305 + "fill": "black", 5306 + "fontFamily": "Times New Roman", 5307 + "fontSize": 32, 5308 + "fontWeight": "normal", 5309 + "fontStyle": "normal", 5310 + "underline": false, 5311 + "overline": false, 5312 + "linethrough": false, 5313 + "deltaY": 0, 5314 + "textBackgroundColor": "" 5315 + }, 5316 + "33": { 5317 + "stroke": null, 5318 + "strokeWidth": 1, 5319 + "fill": "black", 5320 + "fontFamily": "Times New Roman", 5321 + "fontSize": 32, 5322 + "fontWeight": "normal", 5323 + "fontStyle": "normal", 5324 + "underline": false, 5325 + "overline": false, 5326 + "linethrough": false, 5327 + "deltaY": 0, 5328 + "textBackgroundColor": "" 5329 + }, 5330 + "34": { 5331 + "stroke": null, 5332 + "strokeWidth": 1, 5333 + "fill": "black", 5334 + "fontFamily": "Times New Roman", 5335 + "fontSize": 32, 5336 + "fontWeight": "normal", 5337 + "fontStyle": "normal", 5338 + "underline": false, 5339 + "overline": false, 5340 + "linethrough": false, 5341 + "deltaY": 0, 5342 + "textBackgroundColor": "" 5343 + }, 5344 + "35": { 5345 + "stroke": null, 5346 + "strokeWidth": 1, 5347 + "fill": "black", 5348 + "fontFamily": "Times New Roman", 5349 + "fontSize": 32, 5350 + "fontWeight": "normal", 5351 + "fontStyle": "normal", 5352 + "underline": false, 5353 + "overline": false, 5354 + "linethrough": false, 5355 + "deltaY": 0, 5356 + "textBackgroundColor": "" 5357 + }, 5358 + "36": { 5359 + "stroke": null, 5360 + "strokeWidth": 1, 5361 + "fill": "black", 5362 + "fontFamily": "Times New Roman", 5363 + "fontSize": 32, 5364 + "fontWeight": "normal", 5365 + "fontStyle": "normal", 5366 + "underline": false, 5367 + "overline": false, 5368 + "linethrough": false, 5369 + "deltaY": 0, 5370 + "textBackgroundColor": "" 5371 + }, 5372 + "37": { 5373 + "stroke": null, 5374 + "strokeWidth": 1, 5375 + "fill": "black", 5376 + "fontFamily": "Times New Roman", 5377 + "fontSize": 32, 5378 + "fontWeight": "normal", 5379 + "fontStyle": "normal", 5380 + "underline": false, 5381 + "overline": false, 5382 + "linethrough": false, 5383 + "deltaY": 0, 5384 + "textBackgroundColor": "" 5385 + }, 5386 + "38": { 5387 + "stroke": null, 5388 + "strokeWidth": 1, 5389 + "fill": "black", 5390 + "fontFamily": "Times New Roman", 5391 + "fontSize": 32, 5392 + "fontWeight": "normal", 5393 + "fontStyle": "normal", 5394 + "underline": false, 5395 + "overline": false, 5396 + "linethrough": false, 5397 + "deltaY": 0, 5398 + "textBackgroundColor": "" 5399 + }, 5400 + "39": { 5401 + "stroke": null, 5402 + "strokeWidth": 1, 5403 + "fill": "black", 5404 + "fontFamily": "Times New Roman", 5405 + "fontSize": 32, 5406 + "fontWeight": "normal", 5407 + "fontStyle": "normal", 5408 + "underline": false, 5409 + "overline": false, 5410 + "linethrough": false, 5411 + "deltaY": 0, 5412 + "textBackgroundColor": "" 5413 + }, 5414 + "40": { 5415 + "stroke": null, 5416 + "strokeWidth": 1, 5417 + "fill": "black", 5418 + "fontFamily": "Times New Roman", 5419 + "fontSize": 32, 5420 + "fontWeight": "normal", 5421 + "fontStyle": "normal", 5422 + "underline": false, 5423 + "overline": false, 5424 + "linethrough": false, 5425 + "deltaY": 0, 5426 + "textBackgroundColor": "" 5427 + }, 5428 + "41": { 5429 + "stroke": null, 5430 + "strokeWidth": 1, 5431 + "fill": "black", 5432 + "fontFamily": "Times New Roman", 5433 + "fontSize": 32, 5434 + "fontWeight": "normal", 5435 + "fontStyle": "normal", 5436 + "underline": false, 5437 + "overline": false, 5438 + "linethrough": false, 5439 + "deltaY": 0, 5440 + "textBackgroundColor": "" 5441 + }, 5442 + "42": { 5443 + "stroke": null, 5444 + "strokeWidth": 1, 5445 + "fill": "black", 5446 + "fontFamily": "Times New Roman", 5447 + "fontSize": 32, 5448 + "fontWeight": "normal", 5449 + "fontStyle": "normal", 5450 + "underline": false, 5451 + "overline": false, 5452 + "linethrough": false, 5453 + "deltaY": 0, 5454 + "textBackgroundColor": "" 5455 + }, 5456 + "43": { 5457 + "stroke": null, 5458 + "strokeWidth": 1, 5459 + "fill": "black", 5460 + "fontFamily": "Times New Roman", 5461 + "fontSize": 32, 5462 + "fontWeight": "normal", 5463 + "fontStyle": "normal", 5464 + "underline": false, 5465 + "overline": false, 5466 + "linethrough": false, 5467 + "deltaY": 0, 5468 + "textBackgroundColor": "" 5469 + }, 5470 + "44": { 5471 + "stroke": null, 5472 + "strokeWidth": 1, 5473 + "fill": "black", 5474 + "fontFamily": "Times New Roman", 5475 + "fontSize": 32, 5476 + "fontWeight": "normal", 5477 + "fontStyle": "normal", 5478 + "underline": false, 5479 + "overline": false, 5480 + "linethrough": false, 5481 + "deltaY": 0, 5482 + "textBackgroundColor": "" 5483 + }, 5484 + "45": { 5485 + "stroke": null, 5486 + "strokeWidth": 1, 5487 + "fill": "black", 5488 + "fontFamily": "Times New Roman", 5489 + "fontSize": 32, 5490 + "fontWeight": "normal", 5491 + "fontStyle": "normal", 5492 + "underline": false, 5493 + "overline": false, 5494 + "linethrough": false, 5495 + "deltaY": 0, 5496 + "textBackgroundColor": "" 5497 + }, 5498 + "46": { 5499 + "stroke": null, 5500 + "strokeWidth": 1, 5501 + "fill": "black", 5502 + "fontFamily": "Times New Roman", 5503 + "fontSize": 32, 5504 + "fontWeight": "normal", 5505 + "fontStyle": "normal", 5506 + "underline": false, 5507 + "overline": false, 5508 + "linethrough": false, 5509 + "deltaY": 0, 5510 + "textBackgroundColor": "" 5511 + }, 5512 + "47": { 5513 + "stroke": null, 5514 + "strokeWidth": 1, 5515 + "fill": "black", 5516 + "fontFamily": "Times New Roman", 5517 + "fontSize": 32, 5518 + "fontWeight": "normal", 5519 + "fontStyle": "normal", 5520 + "underline": false, 5521 + "overline": false, 5522 + "linethrough": false, 5523 + "deltaY": 0, 5524 + "textBackgroundColor": "" 5525 + }, 5526 + "48": { 5527 + "stroke": null, 5528 + "strokeWidth": 1, 5529 + "fill": "black", 5530 + "fontFamily": "Times New Roman", 5531 + "fontSize": 32, 5532 + "fontWeight": "normal", 5533 + "fontStyle": "normal", 5534 + "underline": false, 5535 + "overline": false, 5536 + "linethrough": false, 5537 + "deltaY": 0, 5538 + "textBackgroundColor": "" 5539 + }, 5540 + "49": { 5541 + "stroke": null, 5542 + "strokeWidth": 1, 5543 + "fill": "black", 5544 + "fontFamily": "Times New Roman", 5545 + "fontSize": 32, 5546 + "fontWeight": "normal", 5547 + "fontStyle": "normal", 5548 + "underline": false, 5549 + "overline": false, 5550 + "linethrough": false, 5551 + "deltaY": 0, 5552 + "textBackgroundColor": "" 5553 + }, 5554 + "50": { 5555 + "stroke": null, 5556 + "strokeWidth": 1, 5557 + "fill": "black", 5558 + "fontFamily": "Times New Roman", 5559 + "fontSize": 32, 5560 + "fontWeight": "normal", 5561 + "fontStyle": "normal", 5562 + "underline": false, 5563 + "overline": false, 5564 + "linethrough": false, 5565 + "deltaY": 0, 5566 + "textBackgroundColor": "" 5567 + }, 5568 + "51": { 5569 + "stroke": null, 5570 + "strokeWidth": 1, 5571 + "fill": "black", 5572 + "fontFamily": "Times New Roman", 5573 + "fontSize": 32, 5574 + "fontWeight": "normal", 5575 + "fontStyle": "normal", 5576 + "underline": false, 5577 + "overline": false, 5578 + "linethrough": false, 5579 + "deltaY": 0, 5580 + "textBackgroundColor": "" 5581 + }, 5582 + "52": { 5583 + "stroke": null, 5584 + "strokeWidth": 1, 5585 + "fill": "black", 5586 + "fontFamily": "Times New Roman", 5587 + "fontSize": 32, 5588 + "fontWeight": "normal", 5589 + "fontStyle": "normal", 5590 + "underline": false, 5591 + "overline": false, 5592 + "linethrough": false, 5593 + "deltaY": 0, 5594 + "textBackgroundColor": "" 5595 + }, 5596 + "53": { 5597 + "stroke": null, 5598 + "strokeWidth": 1, 5599 + "fill": "black", 5600 + "fontFamily": "Times New Roman", 5601 + "fontSize": 32, 5602 + "fontWeight": "normal", 5603 + "fontStyle": "normal", 5604 + "underline": false, 5605 + "overline": false, 5606 + "linethrough": false, 5607 + "deltaY": 0, 5608 + "textBackgroundColor": "" 5609 + }, 5610 + "54": { 5611 + "stroke": null, 5612 + "strokeWidth": 1, 5613 + "fill": "black", 5614 + "fontFamily": "Times New Roman", 5615 + "fontSize": 32, 5616 + "fontWeight": "normal", 5617 + "fontStyle": "normal", 5618 + "underline": false, 5619 + "overline": false, 5620 + "linethrough": false, 5621 + "deltaY": 0, 5622 + "textBackgroundColor": "" 5623 + }, 5624 + "55": { 5625 + "stroke": null, 5626 + "strokeWidth": 1, 5627 + "fill": "black", 5628 + "fontFamily": "Times New Roman", 5629 + "fontSize": 32, 5630 + "fontWeight": "normal", 5631 + "fontStyle": "normal", 5632 + "underline": false, 5633 + "overline": false, 5634 + "linethrough": false, 5635 + "deltaY": 0, 5636 + "textBackgroundColor": "" 5637 + }, 5638 + "56": { 5639 + "stroke": null, 5640 + "strokeWidth": 1, 5641 + "fill": "black", 5642 + "fontFamily": "Times New Roman", 5643 + "fontSize": 32, 5644 + "fontWeight": "normal", 5645 + "fontStyle": "normal", 5646 + "underline": false, 5647 + "overline": false, 5648 + "linethrough": false, 5649 + "deltaY": 0, 5650 + "textBackgroundColor": "" 5651 + }, 5652 + "57": { 5653 + "stroke": null, 5654 + "strokeWidth": 1, 5655 + "fill": "black", 5656 + "fontFamily": "Times New Roman", 5657 + "fontSize": 32, 5658 + "fontWeight": "normal", 5659 + "fontStyle": "normal", 5660 + "underline": false, 5661 + "overline": false, 5662 + "linethrough": false, 5663 + "deltaY": 0, 5664 + "textBackgroundColor": "" 5665 + }, 5666 + "58": { 5667 + "stroke": null, 5668 + "strokeWidth": 1, 5669 + "fill": "black", 5670 + "fontFamily": "Times New Roman", 5671 + "fontSize": 32, 5672 + "fontWeight": "normal", 5673 + "fontStyle": "normal", 5674 + "underline": false, 5675 + "overline": false, 5676 + "linethrough": false, 5677 + "deltaY": 0, 5678 + "textBackgroundColor": "" 5679 + } 5680 + } 5681 + } 5682 + }, 5683 + { 5684 + "type": "i-text", 5685 + "version": "2.7.0", 5686 + "originX": "center", 5687 + "originY": "center", 5688 + "left": 0, 5689 + "top": 10, 5690 + "width": 454.98, 5691 + "height": 36.16, 5692 + "fill": "black", 5693 + "stroke": null, 5694 + "strokeWidth": 1, 5695 + "strokeDashArray": null, 5696 + "strokeLineCap": "butt", 5697 + "strokeDashOffset": 0, 5698 + "strokeLineJoin": "round", 5699 + "strokeMiterLimit": 4, 5700 + "scaleX": 1, 5701 + "scaleY": 1, 5702 + "angle": 0, 5703 + "flipX": false, 5704 + "flipY": false, 5705 + "opacity": 1, 5706 + "shadow": null, 5707 + "visible": true, 5708 + "clipTo": null, 5709 + "backgroundColor": "", 5710 + "fillRule": "nonzero", 5711 + "paintFirst": "fill", 5712 + "globalCompositeOperation": "source-over", 5713 + "transformMatrix": null, 5714 + "skewX": 0, 5715 + "skewY": 0, 5716 + "text": "Search time (ms) without orange T ", 5717 + "fontSize": 32, 5718 + "fontWeight": "bold", 5719 + "fontFamily": "Times New Roman", 5720 + "fontStyle": "normal", 5721 + "lineHeight": 1.16, 5722 + "underline": false, 5723 + "overline": false, 5724 + "linethrough": false, 5725 + "textAlign": "center", 5726 + "textBackgroundColor": "", 5727 + "charSpacing": 0, 5728 + "id": "260", 5729 + "styles": {} 5730 + } 5731 + ], 5732 + "files": {}, 5733 + "parameters": {}, 5734 + "responses": { 5735 + "keypress(Space)": "end" 5736 + }, 5737 + "messageHandlers": {}, 5738 + "viewport": [ 5739 + 800, 5740 + 600 5741 + ], 5742 + "title": "End", 5743 + "tardy": true 5744 + } 5745 + ] 5746 + } 5747 + 5748 + // export 5749 + export default studyObject;
app/utils/labjs/scripts/visualsearch/grid.gif

This is a binary file and will not be displayed.