<snapdata remixID="14356721"><project name="Updated Story Builder" app="Snap! 10.7.1, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAACGNJREFUeF7tnVlwU1UYx/83adKmaWlSWiy0oCjFlpHFUWEcF7QurSi41JEpDjNu0wcdlNGR8UFkBmZccMMFBx19gQdX3OCh4oayDSNWrHu1A9pVSuhG26RJczUnglJok56cy4nkf5+azPm+7/Z3fznLvTc3hmEYJriRQAIETNM0ZMMNCiiLjnFHCFBAuqCVAAXUip/FKSAd0EqAAmrFz+IUkA5oJUABteJncQpIB7QSoIBa8bM4BaQDWglQQK34WZwC0gGtBCigVvwsTgHpgFYCFFArfhangHRAKwEKqBU/i1NAOqCVAAXUip/FKSAd0EqAAmrFz+IUkA5oJUABteJncQpIB7QSoIBa8bM4BaQDWglQQK34WZwC0gGtBCigVvwsTgHpgFYCFFArfhangHRAKwEKqBU/i1PAIQ6YmTlIe2JP0pkRWrMIRsNXSbdfie4QBRxC0P7Cr4kyHTbeNAFD+oG0wOCSYsv2TVdiCqhYwLY7z0DBa/uPZv3ipkLMfbdZvKaAx2tOAS0QcGerHxcWZCDHacNXBwJ4vb4H677vpoAn6GYpoAUC7mj1Y/1PPXjtynH4wTdAAUcY3ymgYgFHmktxCOYQHHOubeUiJGbxGA24CDkW0Cn5OyFrvjmEe2d6EnVFefy2Xxoxt/R05Xl1J+QQPOQIJKuA2+ubcGnJJN2+KK9PASmgcqlGk5ACUsDR+KK8LQX8nwj4Ud0+XDPrLOUC6E5IAf8nAnIOePxHhavgk9h9UEAKeBJ1O74UBaSAFNACApwDcg5ogVbxp6SAFDB+WyxoSQEpoAVaxZ+SAlLA+G2xoCUFpIAWaBV/SgpIAeO3xYKWFJACWqBV/CkpIAWM3xYLWlJATQK6XmpAyBz5iKYZQP/d0RsQeCWEV0KUfv4daxuwcV4Bqj87gKsmZsLnD2HQBHz+MKZ6HHj7t15RL3gPBRwOPG9GSEDJiIAvX54vhBubbuCgP4xijwNbm/qx92AAO9sCFDAGXwqYoIAOWzRBms2AP2SKpyaETcCVZqD/n/GZPeDwkClgAgKapolQePgE57/ViNqFE2G3RZ/lwTkg54AJ6CYXGgqboneMbO/tqUfl7BK5REkcxVWwplXwaJ3g1zJTsAdctmwZVq9effQ/7+3thdvtHq07StpzCE4hAc/x1aKsrAwRAcvLy7F+/XqsWrUKy5cvR1VVFSoqKuDxeLBixQps2LABtbW1SiQbKQkFTCEBl8zIgdfrRXV1tRBw+vTp4u+cnBzYbDZUVlZi8eLFaGxsRFFREXbt2oXS0lJLJaSAKSRgMj6a453dP+OWC6dZKrmO5FyExFiEXPBmkzgxrGOLnJj+8dbo4zi4CEnRHjByxeKKIhcqTs/Egzt8gsLVk1x44Fwvyj9oGdHLzfPH47pNrce02XTdeMzf/O97R9osmpqFRWdn47E9h7Cj9V/heSJ6eMQpcSI6IuC6y/Px7N5OrLk4D1Vb/kRnIIwt10/A1R+0YOUcr7iGu7stgBl5Tqyu7RTEnr90LEq96XDaDUQeWBm51pvlsKGsKBPt/YN4aKcP+7qDqFkwQbTZ3x1EgTsNbb0h3PHpAZEzslFACojySS5xiWzyGAfeqO9BidcpHsH7XF0Xls7Mwa+dQfzYMYBxLjuWzvKg6qM/cd/MHLT1hWA3DHjTbfiiuR9zC6PyBcNhfOcLYv7kTLT0Rtt0D4ThdhjIsBnIddnx7N4uChhj3pMSPWDPQBhfH/Cf9CngvE2taL7jDHjT7aI2V8EpOgc86eb9p+DuNj/mFGRQwGEOwinbA0bux5u/uU2ne0drb68sFBKyB0yhHnB/dwgv1EXnYJFt07UFaPcPIjBoYqrHiYGwiYauIH7pCKLm9z68eFk+wmET21v92Nnaj3yXHbeXjhGv3/7tMHqDYay7LF/k2NsewCWFLkzLTRfzwp8ODWBrUx8emZOLWXlOFG9oPIb00xePFY8MpoApLOCSGWPECvXb9gByM+y4pTgLXYEwHv+6A9kOGy44LQM3nOlGTzCMK99vQc2C8WLuFnn9VG0HvvcN4Maz3CLH790hTMt1osTrwOGgiSdrOzAzL128d964dFyyMfqjNkc2CpiCq+ChPeBoxmKP0xAr5u5gjC98xJmUAlLAmKosmOwWK+VSrxOfNPWL9mv/HnLv2doeMzZWAwpIAWM5IobfuoMBPHSeFxPcdrGAiXzfw5NhR1dgUAzHS79sxyOzc1H9+eikpIApKGDkHuT7t0cvu8Wz3VaSjY0Nh3HR+AxM8Tixtq5LnLxOTzOQlWbDlsY+VBVno75zADV/RHvIeLfXy0/DzVOyuAg5AbBT9jRMZNX5eVM/mg8H4/VEebt7v/Th1bJ83DQlS+TmKvh4xKe0gMqNkkj4Zn0PFk7NFpHb6psxt2SiRJbkDuHtWEOOT8ZzP6BvibU3l8ooMe/DFtTcUCQTmtQxFHDo4al6FCvvuwsPz85LmgP38R99qHhlG8xHr0mafVK1IxTwBCRNbyHSVm5VxTjhPKFnFsLYZ/33ThLeUYkEFFACGkPUEaCA6lgykwQBCigBjSHqCFBAdSyZSYIABZSAxhB1BCigOpbMJEGAAkpAY4g6AhRQHUtmkiBAASWgMUQdAQqojiUzSRCggBLQGKKOAAVUx5KZJAhQQAloDFFHgAKqY8lMEgQooAQ0hqgjQAHVsWQmCQIUUAIaQ9QRoIDqWDKTBAEKKAGNIeoIUEB1LJlJggAFlIDGEHUEKKA6lswkQYACSkBjiDoCFFAdS2aSIEABJaAxRB0BCqiOJTNJEKCAEtAYoo4ABVTHkpkkCFBACWgMUUeAAqpjyUwSBCigBDSGqCNAAdWxZCYJAhRQAhpD1BFIRMC/AN2o2LVGXywTAAAAAElFTkSuQmCC</thumbnail><scenes select="1"><scene name="Updated Story Builder"><notes></notes><palette><category name="UI" color="154,36,255,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="prompt %&apos;title&apos; options %&apos;options&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">choose!</input><input type="%mult%s"></input></inputs><script><block s="doReport"><custom-block s="ask %s"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="title"/><l></l></list></block><block var="options"/><block s="reportNewList"><list><block s="reportApplyExtension"><l>ide_translate(text)</l><list><block var="title"/></list></block><block var="options"/></list></block></block></custom-block></block></script></block-definition><block-definition s="options" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><custom-block s="let %upvar be %s"><l>options</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="value"/></block><l>0</l></list></block><l></l><custom-block s="speech bubble %s"><block var="value"/></custom-block></block></autolambda><list><l>value</l></list></block><block s="reportListItem"><block s="reportNumbers"><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="messages"/></block><l>4</l></block><block s="reportListAttribute"><l><option>length</option></l><block var="messages"/></block></block><block var="messages"/></block></block></custom-block><block s="doAddToList"><custom-block s="divider"></custom-block><block var="options"/></block><block s="doIfElse"><block s="reportNot"><block s="reportListIsEmpty"><block var="choices"/></block></block><script><block s="doAddToList"><l>choices:</l><block var="options"/></block><block s="doAddToList"><custom-block s="divider"></custom-block><block var="options"/></block><block s="doForEach"><l>choice</l><block var="choices"/><script><block s="doAddToList"><custom-block s="menu item speech ballon %s message %s value %s"><l>right</l><block s="reportListItem"><l>1</l><block var="choice"/></block><block var="choice"/></custom-block><block var="options"/></block></script></block></script><script><block s="doAddToList"><l>continue</l><block var="options"/></block></script></block><block s="doReport"><block var="options"/></block></script></block></script><scripts><script x="342.3876953125" y="231.6333333333336"><block var="choice"/></script></scripts></block-definition><block-definition s="speech bubble %&apos;txt&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doWarp"><script><custom-block s="let %upvar be %s"><l>text</l><block s="reportJoinWords"><block s="reportLetter"><block s="reportNumbers"><l>2</l><block s="reportTextAttribute"><l><option>length</option></l><block var="txt"/></block></block><block var="txt"/></block></block></custom-block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block var="txt"/></block><l>%</l></list></block><script><block s="doReport"><custom-block s="menu item speech ballon %s message %s value %s"><l>left</l><block var="text"/><l>DIALOGUE</l></custom-block></block></script><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block var="txt"/></block><l>^</l></list></block><script><block s="doReport"><custom-block s="menu item speech ballon %s message %s value %s"><l>right</l><block var="text"/><l>DIALOGUE</l></custom-block></block></script><list></list></block></script></block><block s="doReport"><block var="txt"/></block></script></block></script></block-definition><block-definition s="choose" type="command" category="other"><header></header><code>CHOOSE</code><translations></translations><inputs></inputs><script><block s="doIfElse"><block var="useUI?"/><script><block s="doBroadcastAndWait"><l>screen draw</l><list></list></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="choices"/></block><l>0</l></list></block><script><block s="doDeclareVariables"><list><l>gotChoiceYet</l><l>mouseReleased?</l></list></block><block s="doSetVar"><l>gotChoiceYet</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>mouseReleased?</l><block s="reportNot"><block s="reportMouseDown"></block></block></block><block s="doUntil"><block var="gotChoiceYet"/><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportMouseDown"></block><block var="mouseReleased?"/></list></block><script><custom-block s="let %upvar be %s"><l>choiceIdx</l><custom-block s="cursor choice"></custom-block></custom-block><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="choiceIdx"/><l>-1</l></list></block><script><block s="doSetVar"><l>choice</l><block s="reportListItem"><block var="choiceIdx"/><block var="choices"/></block></block><custom-block s="push msg %s %mlt"><l>right</l><block s="reportListItem"><l>1</l><block var="choice"/></block></custom-block><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>2</l><block var="choice"/></block></block><block s="doSetVar"><l>gotChoiceYet</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doSetVar"><l>mouseReleased?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list><block s="reportVariadicAnd"><list><block s="reportNot"><block s="reportMouseDown"></block></block><block s="reportNot"><block var="mouseReleased?"/></block></list></block><script><block s="doSetVar"><l>mouseReleased?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></list></block></script></block></script><script><block s="doWaitUntil"><block s="reportNot"><block s="reportMouseDown"></block></block></block><block s="doWaitUntil"><block s="reportMouseDown"></block></block><block s="doWaitUntil"><block s="reportNot"><block s="reportMouseDown"></block></block></block></script></block><block s="doDeleteFromList"><l><option>all</option></l><block var="choices"/></block></script><script><block s="doSetVar"><l>choice</l><custom-block s="prompt %s options %mult%s"><block var="title"/><custom-block s="options"></custom-block></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="choice"/><l><option>list</option></l></block><block s="reportVariadicEquals"><list><block var="choice"/><l>continue</l></list></block></list></block></block><script><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="choice"/><l><option>list</option></l></block><block s="reportVariadicEquals"><list><block var="choice"/><l>continue</l></list></block></list></block><script><block s="doSetVar"><l>choice</l><custom-block s="prompt %s options %mult%s"><block var="title"/><custom-block s="options"></custom-block></custom-block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="choice"/><l>continue</l></list></block><script><custom-block s="push msg %s %mlt"><l>right</l><block s="reportListItem"><l>1</l><block var="choice"/></block></custom-block><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>2</l><block var="choice"/></block></block></script><list></list></block></script></block><block s="doDeleteFromList"><l><option>all</option></l><block var="choices"/></block></script><scripts><script x="340.00000000000017" y="590.8488505747131"><block s="doWarp"><script></script></block></script></scripts></block-definition><block-definition s="seed" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block><block s="reportRandom"><l>0</l><l>9</l></block></list></block></block></script></block-definition><block-definition s="init vars" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><l>choice</l></list></block><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><l>choices</l></list></block><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><l>messages</l></list></block><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><l>title</l></list></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>messages</l><block s="reportNewList"><list></list></block></list></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>choices</l><block s="reportNewList"><list></list></block></list></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>title</l><l>a text game</l></list></block></script></block-definition><block-definition s="build script %&apos;script&apos;" type="reporter" category="operators"><comment x="0" y="0" w="196.42857142857147" collapsed="false">Transpiles a script from StoryBASIC into Snap! blocks.&#xD;&#xD;To understand the compiler &#xD;&#xD;(and potentially add more stuff to the compiler)&#xD;&#xD;you can check out the &quot;docs&quot; block under &quot;Control&quot;</comment><header></header><code></code><translations></translations><inputs><input type="%code"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l><l>ptr</l><l>lines</l><l>cmd</l><l>args</l><l>stack</l><l>funcs</l><l>ifStack</l><l>lineIndex</l><l>checked</l><l>blockIdx</l><l>buildBlocks</l></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>lines</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><block s="reportVariadicNotEquals"><list><block s="reportLetter"><l>1</l><l></l></block><l>;</l></list></block><block s="reportVariadicNotEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><l></l></block><l>0</l></list></block></list></block></autolambda><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="trim %txt"><l></l></custom-block></autolambda><list></list></block><block s="reportTextSplit"><block var="script"/><l><option>line</option></l></block></block></block></block><block s="doSetVar"><l>ptr</l><block var="result"/></block><block s="doSetVar"><l>stack</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>funcs</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>ifStack</l><block s="reportNewList"><list></list></block></block><block s="doAddToList"><block s="reportNewList"><list><block s="reifyScript"><script><custom-block s="init vars"></custom-block></script><list></list></block></list></block><block var="result"/></block><custom-block s="let %upvar be %s"><l>cmdTable</l><block s="reportNewList"><list><block s="reportNewList"><list><l>PUSHMSG</l><block s="reifyScript"><script><custom-block s="pushmsg %l %l"><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>CHOOSE</l><block s="reifyScript"><script><custom-block s="choose %l %l"><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>SUB</l><block s="reifyScript"><script><custom-block s="sub %l %l %l %l"><l/><l/><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>JUMP</l><block s="reifyScript"><script><custom-block s="jump %l %l %l %l"><l/><l/><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>CALL</l><block s="reifyScript"><script><custom-block s="call %l %l %l %l"><l/><l/><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>PUSHCHOICE</l><block s="reifyScript"><script><custom-block s="pushchoice %l %l"><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>IFVAR</l><block s="reifyScript"><script><custom-block s="ifvar %l %l %l %l %l %br"><l/><l/><l/><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>ELSE</l><block s="reifyScript"><script><custom-block s="else %l %l %l %l %l %br"><l/><l/><l/><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>VAR</l><block s="reifyScript"><script><custom-block s="var %l %l"><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>BROADCAST</l><block s="reifyScript"><script><custom-block s="broadcast %l %l"><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>SLEEP</l><block s="reifyScript"><script><custom-block s="sleep %l %l"><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>DECL</l><block s="reifyScript"><script><custom-block s="decl %l %l"><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>PLAYSND</l><block s="reifyScript"><script><custom-block s="playsnd %l %l"><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>SETTITLE</l><block s="reifyScript"><script><custom-block s="settitle %l %l"><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>LET</l><block s="reifyScript"><script><custom-block s="let %l %l"><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>WAIT</l><block s="reifyScript"><script><custom-block s="sleep %l %l"><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>CLEARCHAT</l><block s="reifyScript"><script><custom-block s="clearchat %l %l"><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>RESETTIMER</l><block s="reifyScript"><script><custom-block s="resettimer %l %l"><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>SPC</l><block s="reifyScript"><script><custom-block s="spc %l %l"><l/><l/></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><l>DRAWMESSAGES</l><block s="reifyScript"><script><custom-block s="displaymessages %l %l"><l/><l/></custom-block></script><list></list></block></list></block></list></block></custom-block><custom-block s="let %upvar be %s"><l>commands</l><custom-block s="%s of %l"><l>keys</l><block var="cmdTable"/></custom-block></custom-block><block s="doSetVar"><l>buildBlocks</l><custom-block s="%s of %l"><l>values</l><block var="cmdTable"/></custom-block></block><block s="doAddToList"><l>END</l><block var="commands"/></block><block s="doDeclareVariables"><list><l>block</l><l>blockArgs</l></list></block><block s="doSetVar"><l>lineIndex</l><l>1</l></block><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>script</l><l>nptr</l></list></block><block s="doForEach"><l>line</l><block var="lines"/><script><block s="doSetVar"><l>args</l><custom-block s="tokenize %txt"><block var="line"/></custom-block></block><block s="doSetVar"><l>cmd</l><custom-block s="shift %l"><block var="args"/></custom-block></block><block s="doIf"><block s="reportNot"><custom-block s="is %l a %s ?"><block var="cmd"/><l>identifier</l></custom-block></block><script><custom-block s="error %mlt"><l>Command must be an identifier!</l></custom-block></script><list></list></block><block s="doSetVar"><l>cmd</l><block s="reportListItem"><l>2</l><block var="cmd"/></block></block><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block var="commands"/><block var="cmd"/></block></block><script><custom-block s="error %mlt"><block s="reportJoinWords"><list><l>Command named "</l><block var="cmd"/><l>" does not exist.</l></list></block></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="cmd"/><l>END</l></list></block><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="checked"/><block s="reportListAttribute"><l><option>length</option></l><block var="ifStack"/></block></list></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="ifStack"/></block><block s="doSetVar"><l>checked</l><block s="reportListAttribute"><l><option>length</option></l><block var="ifStack"/></block></block></script><list></list></block><block s="doIf"><block s="reportListIsEmpty"><block var="stack"/></block><script><custom-block s="error %mlt"><l>Cannot end nothing!</l></custom-block></script><list></list></block><block s="doSetVar"><l>ptr</l><block s="reportListItem"><l><option>last</option></l><block var="stack"/></block></block><block s="doDeleteFromList"><l><option>last</option></l><block var="stack"/></block></script><script><block s="doSetVar"><l>blockIdx</l><block s="reportListIndex"><block var="cmd"/><block var="commands"/></block></block><block s="doSetVar"><l>block</l><block s="reportListItem"><block var="blockIdx"/><block var="buildBlocks"/></block></block><custom-block s="let %upvar be %s"><l>blockArgs</l><block s="reportListItem"><block s="reportNumbers"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportBlockAttribute"><l><option>slots</option></l><block var="block"/></block></block></block><block s="reportNewList"><list><block var="args"/><block var="ptr"/><block var="stack"/><block var="funcs"/><block var="ifStack"/></list></block></block></custom-block><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>nptr</l><l></l></list><comment w="90" collapsed="false">&quot;nptr&quot; stands for &quot;new ptr&quot;&#xD;&#xD;the ptr is the C ring in a command block.</comment></block><custom-block s="try %cs catch %upvar %cs"><script><block s="doRun"><block var="block"/><block var="blockArgs"/></block></script><l>err</l><script><custom-block s="error %mlt"><block s="reportJoinWords"><list><l>On line </l><block var="lineIndex"/><l> (last line: "</l><block s="reportListItem"><block s="reportDifference"><block var="lineIndex"/><l>2</l></block><block var="lines"/></block><l>")</l><l>:&#xD;</l><block var="err"/></list></block></custom-block></script></custom-block><block s="doIf"><block s="reportIsA"><block s="reportApplyExtension"><l>var_get(name)</l><list><l>nptr</l></list></block><l><option>list</option></l></block><script><block s="doSetVar"><l>ptr</l><block s="reportApplyExtension"><l>var_get(name)</l><list><l>nptr</l></list></block></block></script><list></list></block><block s="doChangeVar"><l>lineIndex</l><l>1</l></block></script><comment w="170.6896551724138" collapsed="false">THIS IS A TERRIBLE SOLUTION!&#xD;&#xD;DO NOT DO THIS!&#xD;&#xD;(if Snap! had references like the ones in C++  this would not be here)</comment></block></script></block><block s="doApplyExtension"><l>var_delete(name)</l><list><l>nptr</l></list></block><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><block var="stack"/></block></block><script><custom-block s="error %mlt"><l>A sub without END is not allowed.</l></custom-block></script><list></list></block><block s="doReport"><block s="reportAttributeOf"><block s="reportJoinWords"><block var="result"/></block><block s="reportEnvironment"><l><option>caller</option></l></block></block></block></script></block></script><scripts><script x="385.4179687499998" y="829.1428571428575"><block s="reportJoinWords"><list><l>Command must be an identifier!</l><l></l></list></block></script><script x="299.42857142857144" y="1627.619047619051"><block s="doWarp"><script></script></block></script><script x="297.1307246767241" y="1695.2643678160912"><block var="result"/></script></scripts></block-definition><block-definition s="section %&apos;title&apos; %&apos;body&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>title</l><block s="reifyScript"><script><block s="doRun"><block var="body"/><list></list></block></script><list></list></block></block></script></block-definition><block-definition s="shift %&apos;lst&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>value</l><block s="reportListItem"><l>1</l><block var="lst"/></block></custom-block><block s="doDeleteFromList"><l>1</l><block var="lst"/></block><block s="doReport"><block var="value"/></block></script></block-definition><block-definition s="lower %&apos;str&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>txt_lowercase(txt)</l><list><block var="str"/></list></block></block></script></block-definition><block-definition s="is string %&apos;item&apos;" type="predicate" category="operators" helper="true"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block var="item"/></block><l>"</l></list></block><block s="reportVariadicEquals"><list><block s="reportLetter"><l><option>last</option></l><block var="item"/></block><l>"</l></list></block></list></block></block></script></block-definition><block-definition s="join %&apos;lst&apos; %&apos;delim&apos;" type="reporter" category="operators" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s"></input></inputs><script><block s="doWarp"><script><custom-block s="let %upvar be %s"><l>out</l><l></l></custom-block><block s="doForEach"><l>part</l><block var="lst"/><script><block s="doSetVar"><l>out</l><block s="reportJoinWords"><list><block var="out"/><block var="part"/><block var="delim"/></list></block></block></script></block><block s="doSetVar"><l>out</l><l></l></block><block s="doReport"><block s="reportJoinWords"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><block var="out"/><l><option>letter</option></l></block></block></block></block></block></block></script></block></script></block-definition><block-definition s="get operator for %&apos;cmp&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="cmp"/><l>==</l></list></block><script><block s="doReport"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="cmp"/><l>&lt;</l></list></block><script><block s="doReport"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="cmp"/><l>&gt;</l></list></block><script><block s="doReport"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="cmp"/><l>!=</l></list></block><script><block s="doReport"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="cmp"/><l>&lt;=</l></list></block><script><block s="doReport"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThanOrEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="cmp"/><l>&gt;=</l></list></block><script><block s="doReport"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThanOrEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="pop %&apos;lst&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>value</l><block s="reportListItem"><l><option>last</option></l><block var="lst"/></block></custom-block><block s="doDeleteFromList"><l><option>last</option></l><block var="lst"/></block><block s="doReport"><block var="value"/></block></script></block-definition><block-definition s="pushmsg %&apos;args&apos; %&apos;ptr&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>block</l><block s="reportNewList"><list></list></block></custom-block><block s="doAddToList"><block s="reifyScript"><script><block s="doAddToList"><l></l><l/></block></script><list></list></block><block var="block"/></block><custom-block s="let %upvar be %s"><l>side</l><block s="reportListItem"><l>1</l><block var="args"/></block></custom-block><block s="doIf"><block s="reportNot"><custom-block s="is %l a %s ?"><block var="side"/><l>identifier</l></custom-block></block><script><custom-block s="error %mlt"><block s="reportJoinWords"><list><l>Invalid Argument: </l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="args"/></block></block></list></block></custom-block></script><list></list></block><block s="doSetVar"><l>side</l><custom-block s="v %l"><block var="side"/></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="side"/><l>left</l></list></block><script><block s="doSetVar"><l>side</l><l>^</l></block></script><list><block s="reportVariadicEquals"><list><block var="side"/><l>right</l></list></block><script><block s="doSetVar"><l>side</l><l>%</l></block></script><block s="reportVariadicEquals"><list><block var="side"/><l>narrator</l></list></block><script><block s="doSetVar"><l>side</l><l>&amp;</l></block></script></list></block><custom-block s="let %upvar be %s"><l>text</l><block s="reportListItem"><l>2</l><block var="args"/></block></custom-block><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><custom-block s="is %l a %s ?"><block var="text"/><l>string</l></custom-block><custom-block s="is %l a %s ?"><block var="text"/><l>variable</l></custom-block></list></block></block><script><custom-block s="error %mlt"><l>Message must be a string or a variable.</l></custom-block></script><list></list></block><custom-block s="let %upvar be %s"><l>isVar</l><custom-block s="is %l a %s ?"><block var="text"/><l>variable</l></custom-block></custom-block><block s="doSetVar"><l>text</l><custom-block s="v %l"><block var="text"/></custom-block></block><block s="doIfElse"><block var="isVar"/><script><block s="doAddToList"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block><block var="side"/><custom-block s="var %txt"><custom-block s="substr of %txt from %n to %n"><block var="text"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><l>1</l></block></custom-block></custom-block></list></block><block var="block"/></block></script><script><block s="doAddToList"><block s="reportJoinWords"><list><block var="side"/><custom-block s="substr of %txt from %n to %n"><block var="text"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><l>1</l></block></custom-block></list></block><block var="block"/></block></script></block><block s="doAddToList"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block><l>messages</l></list></block><block var="block"/></block><block s="doAddToList"><block var="block"/><block var="ptr"/></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><custom-block s="v %l"><block s="reportListItem"><l><option>last</option></l><block var="args"/></block></custom-block><l>CHOOSE</l></list></block><block s="reportVariadicEquals"><list><custom-block s="v %l"><block s="reportListItem"><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="args"/></block><l>1</l></block><block var="args"/></block></custom-block><l>AND</l></list></block></list></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reifyScript"><script><custom-block s="choose"></custom-block></script><list></list></block></list></block><block var="ptr"/></block></script><list></list></block></script><scripts><script x="234.08761160714283" y="65.19047619047616"><custom-block s="lower %s"><l></l></custom-block></script><script x="271.89655172413796" y="357.4482758620696"><block s="reportTextSplit"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l>hello </l><l>world</l></list></block></autolambda><list></list></block><l><option>blocks</option></l></block></script></scripts></block-definition><block-definition s="decl %&apos;args&apos; %&apos;ptr&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>block</l><block s="reportNewList"><list></list></block></custom-block><block s="doAddToList"><block s="reifyScript"><script><block s="doApplyExtension"><l></l><list><l></l><l></l></list></block></script><list></list></block><block var="block"/></block><block s="doAddToList"><l>var_declare(scope, name)</l><block var="block"/></block><custom-block s="let %upvar be %s"><l>var type</l><block s="reportListItem"><l>1</l><block var="args"/></block></custom-block><custom-block s="let %upvar be %s"><l>typs</l><block s="reportNewList"><list><l>global</l><l>script</l><l>sprite</l></list></block></custom-block><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><custom-block s="is %l a %s ?"><block var="var type"/><l>identifier</l></custom-block><block s="reportListContainsItem"><block var="typs"/><custom-block s="lower %s"><custom-block s="v %l"><block var="var type"/></custom-block></custom-block></block></list></block></block><script><custom-block s="error %mlt"><l>Expected either "global", "script", or "sprite".</l></custom-block></script><list></list></block><block s="doAddToList"><custom-block s="lower %s"><custom-block s="v %l"><block var="var type"/></custom-block></custom-block><block var="block"/></block><custom-block s="let %upvar be %s"><l>var name</l><block s="reportListItem"><l>2</l><block var="args"/></block></custom-block><block s="doIf"><block s="reportNot"><custom-block s="is %l a %s ?"><block var="var name"/><l>string</l></custom-block></block><script><custom-block s="error %mlt"><l>Declaring a variable with a name that is not a string is not allowed.</l></custom-block></script><list></list></block><block s="doSetVar"><l>var name</l><block s="reportListItem"><l>2</l><block var="var name"/></block></block><block s="doAddToList"><custom-block s="substr of %txt from %n to %n"><block var="var name"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="var name"/></block><l>1</l></block></custom-block><block var="block"/></block><block s="doAddToList"><block var="block"/><block var="ptr"/></block></script><scripts><script x="368.85337611607156" y="105.40476190476178"><block s="reportVariadicEquals"><list><l></l><l></l></list></block></script></scripts></block-definition><block-definition s="var %&apos;args&apos; %&apos;ptr&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>block</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="expect %l to be a %s %s"><block s="reportListItem"><l>1</l><block var="args"/></block><l>identifier</l><l></l></custom-block><custom-block s="let %upvar be %s"><l>tom</l><custom-block s="v %l"><block s="reportListItem"><l>1</l><block var="args"/></block><comment w="90" collapsed="false">tom stands for type of modification.</comment></custom-block></custom-block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tom"/><l>SET</l></list></block><script><block s="doAddToList"><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><block var="block"/></block><custom-block s="let %upvar be %s"><l>name</l><block s="reportListItem"><l>2</l><block var="args"/></block></custom-block><custom-block s="expect %l to be a %s %s"><block var="name"/><l>variable</l><l></l></custom-block><block s="doSetVar"><l>name</l><custom-block s="v %l"><block var="name"/></custom-block></block><block s="doAddToList"><custom-block s="substr of %txt from %n to %n"><block var="name"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="name"/></block><l>1</l></block></custom-block><block var="block"/></block><custom-block s="expect %l to be a %s %s"><block s="reportListItem"><l>3</l><block var="args"/></block><l>identifier</l><l>TO</l></custom-block><custom-block s="let %upvar be %s"><l>value</l><block s="reportListItem"><l>4</l><block var="args"/></block></custom-block><custom-block s="expect %l to be a %s %s"><block var="value"/><l>string</l><l></l></custom-block><block s="doSetVar"><l>value</l><custom-block s="v %l"><block var="value"/></custom-block></block><block s="doAddToList"><custom-block s="substr of %txt from %n to %n"><block var="value"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="value"/></block><l>1</l></block></custom-block><block var="block"/></block></script><list><block s="reportVariadicEquals"><list><block var="tom"/><l>CHANGE</l></list></block><script><block s="doAddToList"><block s="reifyScript"><script><block s="doChangeVar"><l></l><l></l></block></script><list></list></block><block var="block"/></block><custom-block s="let %upvar be %s"><l>name</l><block s="reportListItem"><l>2</l><block var="args"/></block></custom-block><custom-block s="expect %l to be a %s %s"><block var="name"/><l>variable</l><l></l></custom-block><block s="doSetVar"><l>name</l><custom-block s="v %l"><block var="name"/></custom-block></block><block s="doAddToList"><custom-block s="substr of %txt from %n to %n"><block var="name"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="name"/></block><l>1</l></block></custom-block><block var="block"/></block><custom-block s="expect %l to be a %s %s"><block s="reportListItem"><l>3</l><block var="args"/></block><l>identifier</l><l>BY</l></custom-block><custom-block s="let %upvar be %s"><l>value</l><block s="reportListItem"><l>4</l><block var="args"/></block></custom-block><custom-block s="expect %l to be a %s %s"><block var="value"/><l>variable</l><l></l></custom-block><block s="doSetVar"><l>value</l><custom-block s="v %l"><block var="value"/></custom-block></block><block s="doAddToList"><custom-block s="substr of %txt from %n to %n"><block var="value"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="value"/></block><l>1</l></block></custom-block><block var="block"/></block></script></list></block><block s="doAddToList"><block var="block"/><block var="ptr"/></block></script></block-definition><block-definition s="sub %&apos;args&apos; %&apos;ptr&apos; %&apos;stack&apos; %&apos;funcs&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>block</l><block s="reportNewList"><list></list></block></custom-block><block s="doAddToList"><block s="reifyScript"><script><custom-block s="section %upvar %cs"><l> </l><script></script></custom-block></script><list></list></block><block var="block"/></block><block s="doIf"><block s="reportNot"><custom-block s="is %l a %s ?"><block s="reportListItem"><l>1</l><block var="args"/></block><l>string</l></custom-block></block><script><custom-block s="error %mlt"><l>Argument is not a string.</l></custom-block></script><list></list></block><block s="doReplaceInList"><l>1</l><block var="args"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="args"/></block></block></block><custom-block s="let %upvar be %s"><l>name</l><custom-block s="substr of %txt from %n to %n"><block s="reportListItem"><l>1</l><block var="args"/></block><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="args"/></block></block><l>1</l></block></custom-block></custom-block><block s="doIf"><block s="reportListContainsItem"><block var="funcs"/><block var="name"/></block><script><custom-block s="error %mlt"><block s="reportJoinWords"><list><l>Sub with name "</l><block var="name"/><l>" already exists.</l></list></block></custom-block></script><list></list></block><block s="doAddToList"><block var="name"/><block var="block"/></block><block s="doAddToList"><block var="name"/><block var="funcs"/></block><block s="doAddToList"><block var="ptr"/><block var="stack"/></block><custom-block s="let %upvar be %s"><l>blockContents</l><block s="reportNewList"><list></list></block></custom-block><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>nptr</l><block var="blockContents"/></list></block><block s="doAddToList"><block var="blockContents"/><block var="block"/></block><block s="doAddToList"><block var="block"/><block s="reportListItem"><l><option>last</option></l><block var="stack"/></block></block></script></block-definition><block-definition s="pushchoice %&apos;args&apos; %&apos;ptr&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>block</l><block s="reportNewList"><list></list></block></custom-block><block s="doAddToList"><block s="reifyScript"><script><block s="doAddToList"><l></l><l/></block></script><list></list></block><block var="block"/></block><custom-block s="let %upvar be %s"><l>chList</l><block s="reportNewList"><list></list></block></custom-block><block s="doAddToList"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><l></l><l></l></list></block></autolambda><list></list></block><block var="chList"/></block><custom-block s="let %upvar be %s"><l>choice</l><block s="reportListItem"><l>1</l><block var="args"/></block></custom-block><block s="doIf"><block s="reportNot"><custom-block s="is %l a %s ?"><block var="choice"/><l>string</l></custom-block></block><script><custom-block s="error %mlt"><l>A choice must be of type string.</l></custom-block></script><list></list></block><block s="doSetVar"><l>choice</l><custom-block s="v %l"><block var="choice"/></custom-block></block><block s="doAddToList"><custom-block s="substr of %txt from %n to %n"><block var="choice"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="choice"/></block><l>1</l></block></custom-block><block var="chList"/></block><custom-block s="let %upvar be %s"><l>chID</l><block s="reportListItem"><l>2</l><block var="args"/></block></custom-block><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><custom-block s="is %l a %s ?"><block var="chID"/><l>identifier</l></custom-block><custom-block s="is %l a %s ?"><block var="chID"/><l>variable</l></custom-block></list></block></block><script><custom-block s="error %mlt"><l>Choice ID must be a number, a variable, or the variable "%SEED%"</l></custom-block></script><list></list></block><block s="doSetVar"><l>chID</l><custom-block s="v %l"><block var="chID"/></custom-block></block><block s="doIfElse"><custom-block s="is %l a %s ?"><block s="reportListItem"><l>2</l><block var="args"/></block><l>variable</l></custom-block><script><block s="doAddToList"><custom-block s="var %txt"><custom-block s="substr of %txt from %n to %n"><block var="chID"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="chID"/></block><l>1</l></block></custom-block></custom-block><block var="chList"/></block></script><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="chID"/><l><option>number</option></l></block></block><script><custom-block s="error %mlt"><l>A choice must have a NUMERIC id!</l></custom-block></script><list></list></block><block s="doAddToList"><block s="reportDifference"><block var="chID"/><l>0</l></block><block var="chList"/></block></script></block><block s="doAddToList"><block var="chList"/><block var="block"/></block><block s="doAddToList"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block><l>choices</l></list></block><block var="block"/></block><block s="doAddToList"><block var="block"/><block var="ptr"/></block></script></block-definition><block-definition s="jump %&apos;args&apos; %&apos;ptr&apos; %&apos;stack&apos; %&apos;funcs&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>block</l><block s="reportNewList"><list></list></block></custom-block><block s="doAddToList"><block s="reifyScript"><script><block s="fork"><block s="reifyScript"><script></script><list></list></block><list></list></block></script><list></list></block><block var="block"/></block><custom-block s="let %upvar be %s"><l>labelName</l><block s="reportListItem"><l>1</l><block var="args"/></block></custom-block><block s="doIf"><block s="reportNot"><custom-block s="is %l a %s ?"><block var="labelName"/><l>string</l></custom-block></block><script><custom-block s="error %mlt"><block s="reportJoinWords"><list><l>Invalid argument "</l><block var="labelName"/><l>". Cannot be anything but a string!</l></list></block></custom-block></script><list></list></block><block s="doSetVar"><l>labelName</l><custom-block s="substr of %txt from %n to %n"><custom-block s="v %l"><block var="labelName"/></custom-block><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><custom-block s="v %l"><block var="labelName"/></custom-block></block><l>1</l></block></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block var="funcs"/><block var="labelName"/></block></block><script><custom-block s="error %mlt"><block s="reportJoinWords"><list><l>There is no sub named "</l><block var="labelName"/><l>"!</l></list></block></custom-block></script><list></list></block><block s="doAddToList"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="reifyScript"><script></script><list></list></block></autolambda><list></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="doRun"><block s="reifyScript"><script></script><list></list></block><list></list></block></script><list></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block><block var="labelName"/></list></block><l></l></list></block><l></l></list></block><block var="block"/></block><block s="doAddToList"><l></l><block var="block"/></block><block s="doAddToList"><block var="block"/><block var="ptr"/></block><block s="doAddToList"><block s="reportNewList"><list><block s="reifyScript"><script><block s="doStopThis"><l></l></block></script><list></list></block><l>[this script]</l></list></block><block var="ptr"/></block></script></block-definition><block-definition s="call %&apos;args&apos; %&apos;ptr&apos; %&apos;stack&apos; %&apos;funcs&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>block</l><block s="reportNewList"><list></list></block></custom-block><block s="doAddToList"><block s="reifyScript"><script><block s="doRun"><block s="reifyScript"><script></script><list></list></block><list></list></block></script><list></list></block><block var="block"/></block><custom-block s="let %upvar be %s"><l>labelName</l><block s="reportListItem"><l>1</l><block var="args"/></block></custom-block><block s="doIf"><block s="reportNot"><custom-block s="is %l a %s ?"><block var="labelName"/><l>string</l></custom-block></block><script><custom-block s="error %mlt"><block s="reportJoinWords"><list><l>Invalid argument "</l><block var="labelName"/><l>". Cannot be anything but a string!</l></list></block></custom-block></script><list></list></block><block s="doSetVar"><l>labelName</l><custom-block s="substr of %txt from %n to %n"><custom-block s="v %l"><block var="labelName"/></custom-block><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><custom-block s="v %l"><block var="labelName"/></custom-block></block><l>1</l></block></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block var="funcs"/><block var="labelName"/></block></block><script><custom-block s="error %mlt"><block s="reportJoinWords"><list><l>There is no sub named "</l><block var="labelName"/><l>"!</l></list></block></custom-block></script><list></list></block><block s="doAddToList"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block><block var="labelName"/></list></block><block var="block"/></block><block s="doAddToList"><l></l><block var="block"/></block><block s="doAddToList"><block var="block"/><block var="ptr"/></block></script></block-definition><block-definition s="sleep %&apos;args&apos; %&apos;ptr&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>secs</l><block s="reportListItem"><l>1</l><block var="args"/></block></custom-block><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><custom-block s="is %l a %s ?"><block var="secs"/><l>identifier</l></custom-block><block s="reportIsA"><custom-block s="v %l"><block var="secs"/></custom-block><l><option>number</option></l></block></list></block></block><script><custom-block s="error %mlt"><l>Expected a number after command "SLEEP"</l></custom-block></script><list></list></block><block s="doAddToList"><block s="reportNewList"><list><block s="reifyScript"><script><block s="doWait"><l></l></block></script><list></list></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="secs"/></block><l>0</l></block></list></block><block var="ptr"/></block></script></block-definition><block-definition s="playsnd %&apos;args&apos; %&apos;ptr&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>soundName</l><block s="reportListItem"><l>1</l><block var="args"/></block></custom-block><block s="doIf"><block s="reportNot"><custom-block s="is %l a %s ?"><block var="soundName"/><l>string</l></custom-block></block><script><custom-block s="error %mlt"><l>The provided sound name is not a string!</l></custom-block></script><list></list></block><block s="doSetVar"><l>soundName</l><custom-block s="v %l"><block var="soundName"/></custom-block></block><block s="doAddToList"><block s="reportNewList"><list><block s="reifyScript"><script><block s="playSound"><l></l></block></script><list></list></block><custom-block s="substr of %txt from %n to %n"><block var="soundName"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="soundName"/></block><l>1</l></block></custom-block></list></block><block var="ptr"/></block></script></block-definition><block-definition s="settitle %&apos;args&apos; %&apos;ptr&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>titleName</l><block s="reportListItem"><l>1</l><block var="args"/></block></custom-block><block s="doIf"><block s="reportNot"><custom-block s="is %l a %s ?"><block var="titleName"/><l>string</l></custom-block></block><script><custom-block s="error %mlt"><l>The title of a story must be a string!</l></custom-block></script><list></list></block><block s="doSetVar"><l>titleName</l><custom-block s="v %l"><block var="titleName"/></custom-block></block><block s="doAddToList"><block s="reportNewList"><list><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><l>title</l><custom-block s="val of %l"><block var="titleName"/></custom-block></list></block><block var="ptr"/></block></script><scripts><script x="215.8556371228448" y="280.9080459770113"><block s="reportDifference"><l></l><l>1</l></block></script></scripts></block-definition><block-definition s="broadcast %&apos;args&apos; %&apos;ptr&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>block</l><block s="reportNewList"><list></list></block></custom-block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="args"/></block><l>3</l></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><custom-block s="v %l"><block s="reportListItem"><l><option>last</option></l><block var="args"/></block></custom-block><l>WAIT</l></list></block><block s="reportVariadicEquals"><list><custom-block s="v %l"><block s="reportListItem"><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="args"/></block><l>1</l></block><block var="args"/></block></custom-block><l>AND</l></list></block></list></block></list></block><script><block s="doAddToList"><block s="reifyScript"><script><block s="doBroadcastAndWait"><l></l><list></list></block></script><list></list></block><block var="block"/></block></script><script><block s="doAddToList"><block s="reifyScript"><script><block s="doBroadcast"><l></l><list></list></block></script><list></list></block><block var="block"/></block></script></block><custom-block s="let %upvar be %s"><l>broadcastName</l><block s="reportListItem"><l>1</l><block var="args"/></block></custom-block><block s="doIf"><block s="reportNot"><custom-block s="is %l a %s ?"><block var="broadcastName"/><l>string</l></custom-block></block><script><custom-block s="error %mlt"><l>Sending a broadcast with a name that is not a string is not allowed!</l></custom-block></script><list></list></block><block s="doSetVar"><l>broadcastName</l><custom-block s="v %l"><block var="broadcastName"/></custom-block></block><block s="doAddToList"><custom-block s="substr of %txt from %n to %n"><block var="broadcastName"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="broadcastName"/></block><l>1</l></block></custom-block><block var="block"/></block><block s="doAddToList"><l></l><block var="block"/></block><block s="doAddToList"><block var="block"/><block var="ptr"/></block></script></block-definition><block-definition s="let %&apos;args&apos; %&apos;ptr&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>block</l><block s="reportNewList"><list></list></block></custom-block><block s="doAddToList"><block s="reifyScript"><script><custom-block s="let %upvar be %s"><l>var</l><l></l></custom-block></script><list></list></block><block var="block"/></block><custom-block s="let %upvar be %s"><l>varName</l><block s="reportListItem"><l>1</l><block var="args"/></block></custom-block><block s="doIf"><block s="reportNot"><custom-block s="is %l a %s ?"><block var="varName"/><l>string</l></custom-block></block><script><custom-block s="error %mlt"><l>Cannot create a variable with a name that is not a string!</l></custom-block></script><list></list></block><block s="doSetVar"><l>varName</l><custom-block s="v %l"><block var="varName"/></custom-block></block><block s="doAddToList"><custom-block s="substr of %txt from %n to %n"><block var="varName"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="varName"/></block><l>1</l></block></custom-block><block var="block"/></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportNot"><custom-block s="is %l a %s ?"><block s="reportListItem"><l>2</l><block var="args"/></block><l>identifier</l></custom-block></block><block s="reportVariadicNotEquals"><list><custom-block s="v %l"><block s="reportListItem"><l>2</l><block var="args"/></block></custom-block><l>BE</l></list></block></list></block><script><custom-block s="error %mlt"><l>Couldn&apos;t find "BE" in Let statement.</l></custom-block></script><list></list></block><block s="doAddToList"><custom-block s="join %l %s"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="v %l"><l/></custom-block></autolambda><list></list></block><block s="reportListItem"><block s="reportNumbers"><l>3</l><block s="reportListAttribute"><l><option>length</option></l><block var="args"/></block></block><block var="args"/></block></block><l> </l></custom-block><block var="block"/></block><block s="doAddToList"><block var="block"/><block var="ptr"/></block></script><scripts><script x="485.42926897321433" y="289.42857142857156"><block var="args"/></script></scripts></block-definition><block-definition s="ifvar %&apos;args&apos; %&apos;ptr&apos; %&apos;stack&apos; %&apos;funcs&apos; %&apos;ifStack&apos; $nl" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%l"></input><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>block</l><block s="reportNewList"><list></list></block></custom-block><block s="doAddToList"><block s="reifyScript"><script><block s="doIf"><l/><script></script><list></list></block></script><list></list></block><block var="block"/></block><custom-block s="let %upvar be %s"><l>varName</l><block s="reportListItem"><l>1</l><block var="args"/></block></custom-block><block s="doIf"><block s="reportNot"><custom-block s="is %l a %s ?"><block var="varName"/><l>variable</l></custom-block></block><script><custom-block s="error %mlt"><l>What variable?</l></custom-block></script><list></list></block><block s="doSetVar"><l>varName</l><block s="reportListItem"><l>2</l><block var="varName"/></block></block><block s="doDeclareVariables"><list><l>comparer</l><l>oper</l></list></block><block s="doSetVar"><l>comparer</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>oper</l><block s="reportListItem"><l>2</l><block var="args"/></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %l a %s ?"><block var="oper"/><l>operator</l></custom-block></block><script><custom-block s="error %mlt"><l>Comparision must be a operator!</l></custom-block></script><list></list></block><block s="doSetVar"><l>oper</l><custom-block s="v %l"><block var="oper"/></custom-block></block><block s="doAddToList"><custom-block s="get operator for %s"><block var="oper"/></custom-block><block var="comparer"/></block><block s="doAddToList"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block><custom-block s="substr of %txt from %n to %n"><block var="varName"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="varName"/></block><l>1</l></block></custom-block></list></block><block var="comparer"/></block><custom-block s="let %upvar be %s"><l>type</l><block s="reportListItem"><l>3</l><block var="args"/></block></custom-block><block s="doIf"><block s="reportNot"><custom-block s="is %l a %s ?"><block var="type"/><l>identifier</l></custom-block></block><script><custom-block s="error %mlt"><l>Type of comparison must be an identifier.</l></custom-block></script><list></list></block><block s="doSetVar"><l>type</l><custom-block s="v %l"><block var="type"/></custom-block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="type"/><l>CONST</l></list></block><script><custom-block s="let %upvar be %s"><l>section</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>2</l><l/></block></autolambda><list></list></block><block s="reportListItem"><block s="reportNumbers"><l>4</l><block s="reportListAttribute"><l><option>length</option></l><block var="args"/></block></block><block var="args"/></block></block></custom-block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="section"/></block><l>THEN</l></list></block><script><custom-block s="error %mlt"><l>No constant found.</l></custom-block></script><list></list></block><custom-block s="let %upvar be %s"><l>value</l><l></l></custom-block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="section"/></block><l>THEN</l></list></block><block s="reportListIsEmpty"><block var="section"/></block></list></block><script><block s="doSetVar"><l>value</l><block s="reportJoinWords"><list><block var="value"/><l> </l><block s="reportListItem"><l>1</l><block var="section"/></block></list></block></block><block s="doSetVar"><l>section</l><block s="reportCDR"><block var="section"/></block></block></script></block><block s="doAddToList"><custom-block s="substr of %txt from %n to %n"><block var="value"/><l>2</l><block s="reportTextAttribute"><l><option>length</option></l><block var="value"/></block></custom-block><block var="comparer"/></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="type"/><l>BOOL</l></list></block><script><custom-block s="expect %l to be a %s %s"><block s="reportListItem"><l>4</l><block var="args"/></block><l>identifier</l><l></l></custom-block><custom-block s="let %upvar be %s"><l>whichOne</l><block s="reportVariadicEquals"><list><custom-block s="v %l"><block s="reportListItem"><l>4</l><block var="args"/></block></custom-block><l>TRUE</l></list></block></custom-block><block s="doIfElse"><block var="whichOne"/><script><block s="doAddToList"><block s="reportTextSplit"><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>true</bool></l></block></autolambda><list></list></block><l><option>blocks</option></l></block><block var="comparer"/></block></script><script><block s="doAddToList"><block s="reportTextSplit"><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>false</bool></l></block></autolambda><list></list></block><l><option>blocks</option></l></block><block var="comparer"/></block></script></block></script><script><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="type"/><l>VAR</l></list></block><script><custom-block s="error %mlt"><block s="reportJoinWords"><list><l>There are only three data types accepted CONST, BOOL or VAR not </l><block var="type"/><l>"</l></list></block></custom-block></script><list></list></block><custom-block s="let %upvar be %s"><l>varName</l><block s="reportListItem"><l>4</l><block var="args"/></block></custom-block><block s="doIf"><block s="reportNot"><custom-block s="is %l a %s ?"><block var="varName"/><l>variable</l></custom-block></block><script><custom-block s="error %mlt"><l>Variable name is not of type string.</l></custom-block></script><list></list></block><block s="doSetVar"><l>varName</l><custom-block s="v %l"><block var="varName"/></custom-block></block><block s="doAddToList"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block><custom-block s="substr of %txt from %n to %n"><block var="varName"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="varName"/></block><l>1</l></block></custom-block></list></block><block var="comparer"/></block></script></block></script></block><block s="doIf"><block s="reportVariadicNotEquals"><list><custom-block s="v %l"><block s="reportListItem"><l><option>last</option></l><block var="args"/></block></custom-block><l>THEN</l></list></block><script><custom-block s="error %mlt"><l>Expected "THEN" in If statement.</l></custom-block></script><list></list></block><block s="doAddToList"><block var="comparer"/><block var="block"/></block><block s="doAddToList"><block var="block"/><block var="ifStack"/></block><block s="doAddToList"><block var="ptr"/><block var="stack"/></block><custom-block s="let %upvar be %s"><l>blockContents</l><block s="reportNewList"><list></list></block></custom-block><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>nptr</l><block var="blockContents"/></list></block><block s="doAddToList"><block var="blockContents"/><block var="block"/></block><block s="doAddToList"><block var="block"/><block s="reportListItem"><l><option>last</option></l><block var="stack"/></block></block></script></block-definition><block-definition s="else %&apos;args&apos; %&apos;ptr&apos; %&apos;stack&apos; %&apos;funcs&apos; %&apos;ifStack&apos; $nl" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%l"></input><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>block</l><block s="reportListItem"><l><option>last</option></l><block var="ifStack"/></block></custom-block><block s="doIf"><block s="reportVariadicNotEquals"><list><block s="reportListItem"><l>1</l><block var="block"/></block><block s="reifyScript"><script><block s="doIf"><l/><script></script><list></list></block></script><list></list></block></list></block><script><custom-block s="error %mlt"><l>An else statement is not allowed here!</l></custom-block></script><list></list></block><block s="doReplaceInList"><l>1</l><block var="block"/><block s="reifyScript"><script><block s="doIfElse"><l/><script></script><script></script></block></script><list></list></block></block><custom-block s="let %upvar be %s"><l>blockContents</l><block s="reportNewList"><list></list></block></custom-block><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>nptr</l><block var="blockContents"/></list></block><block s="doAddToList"><block var="blockContents"/><block var="block"/></block></script><scripts><script x="313.72770743534477" y="147.89655172413794"><block var="funcs"/></script><script x="31.034482758620687" y="358.632183908046"><block s="doIf"><block s="reportVariadicAnd"><list><custom-block s="is %l a %s ?"><block s="reportListItem"><l>1</l><block var="args"/></block><l>identifier</l></custom-block><block s="reportVariadicEquals"><list><custom-block s="v %l"><block s="reportListItem"><l>1</l><block var="args"/></block></custom-block><l>IFVAR</l></list></block></list></block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>nblock</l><block s="reifyScript"><script><custom-block s="ifvar %l %l %l %l %l %br"><block var="args"/><block var="blockContents"/><block var="stack"/><block var="funcs"/><block var="ifStack"/></custom-block></script><list></list></block></list></block></script><list></list></block></script></scripts></block-definition><block-definition s="%&apos;opt&apos; of %&apos;lst&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">keys<options>keys&#xD;values</options></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><block s="reportListIndex"><block var="opt"/><block s="reportNewList"><list><l>keys</l><l>values</l></list></block></block><block s="reportListAttribute"><l><option>columns</option></l><block var="lst"/></block></block></block></script></block-definition><block-definition s="choose %&apos;args&apos; %&apos;ptr&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doAddToList"><block s="reportNewList"><list><block s="reifyScript"><script><custom-block s="choose"></custom-block></script><list></list></block></list></block><block var="ptr"/></block></script></block-definition><block-definition s="try %&apos;body&apos; catch %&apos;err&apos; %&apos;handler&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%cs"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block var="body"/><block var="handler"/><block var="err"/></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="docs" type="reporter" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>The StoryBASIC compiler keeps track of it&apos;s state&#xD;and it&apos;s previous C rings using lists that are linked to the "build script" block.&#xD;&#xD;The lists are given as parameters to the blocks that&#xD;build the script.&#xD;&#xD;The names of these parameters are as follows:&#xD;&#xD;PTR — The pointer to the current C ring. This holds the contents of said ring as a list.&#xD;STACK — A tree of C rings. The last item in the list holds the contents of the last C ring. Whenever a END statement is found the last item gets popped off the stack and replaces the "PTR" list.&#xD;IFSTACK — Holds block statements for IFs. This is used by the ELSE statement and the END statement.&#xD;FUNCS — Keeps track of the currently parsed names of functions (i.e. SUBs)&#xD;ARGS — A list of arguments provided by the user.&#xD;&#xD;These lists are given to the block concerned in this order:&#xD;&#xD;IFVAR "args" "ptr" "stack" "funcs" "ifStack"&#xD;&#xD;The IFVAR block parses the arguments and builds a IF block using the arguments provided. A command can only access the arguments on it&apos;s line (i.e. cannot access any other commands arguments)&#xD;&#xD;A variable named "nptr" is declared before the FOREACH loop.&#xD;The purpose of this variable "nptr" is for the blocks to set this to a list to replace the "ptr" variable. &#xD;The block itself has to put the "ptr" on the stack before the compiler checks if "nptr" is a list and inevitiably replaces "ptr" with "nptr".&#xD;&#xD;If you did not understand that please edit the "build script" block.&#xD;&#xD;Strings in StoryBASIC are just for the line parser to not split it by spaces keeping the entire string in a single item of a list.&#xD;&#xD;The "is string" block found in other builder blocks checks if it is a string by seeing if it has " at the start of the item and at the end. You have to use the "substr of" block to remove those if you so desire.&#xD;</l></block></script><scripts><script x="12.857142857142858" y="971.9523809523827"><block s="doRun"><block s="reifyScript"><script></script><list></list></block><list></list></block></script><comment x="86.42857142857143" y="153" w="275" collapsed="false">The StoryBASIC compiler keeps track of it&apos;s state&#xD;and it&apos;s previous C rings using lists that are linked to the &quot;build script&quot; block.&#xD;&#xD;The lists are given as parameters to the blocks that&#xD;build the script.&#xD;&#xD;The names of these parameters are as follows:&#xD;&#xD;PTR — The pointer to the current C ring. This holds the contents of said ring as a list.&#xD;STACK — A tree of C rings. The last item in the list holds the contents of the last C ring. Whenever a END statement is found the last item gets popped off the stack and replaces the &quot;PTR&quot; list.&#xD;IFSTACK — Holds block statements for IFs. This is used by the ELSE statement and the END statement.&#xD;FUNCS — Keeps track of the currently parsed names of functions (i.e. SUBs)&#xD;ARGS — A list of arguments provided by the user.&#xD;&#xD;These lists are given to the block concerned in this order:&#xD;&#xD;IFVAR &quot;args&quot; &quot;ptr&quot; &quot;stack&quot; &quot;funcs&quot; &quot;ifStack&quot;&#xD;&#xD;The IFVAR block parses the arguments and builds a IF block using the arguments provided. A command can only access the arguments on it&apos;s line (i.e. cannot access any other commands arguments)&#xD;&#xD;A variable named &quot;nptr&quot; is declared before the FOREACH loop.&#xD;The purpose of this variable &quot;nptr&quot; is for the blocks to set this to a list to replace the &quot;ptr&quot; variable. &#xD;The block itself has to put the &quot;ptr&quot; on the stack before the compiler checks if &quot;nptr&quot; is a list and inevitiably replaces &quot;ptr&quot; with &quot;nptr&quot;.&#xD;&#xD;If you did not understand that please edit the &quot;build script&quot; block.&#xD;&#xD;Strings in StoryBASIC are just for the line parser to not split it by spaces keeping the entire string in a single item of a list.&#xD;&#xD;The &quot;is string&quot; block found in other builder blocks checks if it is a string by seeing if it has &quot; at the start of the item and at the end. You have to use the &quot;substr of&quot; block to remove those if you so desire.&#xD;</comment></scripts></block-definition><block-definition s="writec %&apos;txt&apos; size %&apos;fntSize&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s">Hello!</input><input type="%n">12</input></inputs><script><block s="doWarp"><script><custom-block s="let %upvar be %s"><l>width</l><custom-block s="width of %txt size %n"><block var="txt"/><block var="fntSize"/></custom-block></custom-block><block s="changeXPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block var="width"/><l>2</l></block></block></block><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block var="fntSize"/><l>2</l></block></block></block><block s="write"><block var="txt"/><block var="fntSize"/></block><block s="changeXPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block var="width"/><l>2</l></block></block></block><block s="changeYPosition"><block s="reportQuotient"><block var="fntSize"/><l>2</l></block></block></script></block></script></block-definition><block-definition s="tokenize %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Parses a string an turns it into a set of tokens.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l><l>state</l><l>char</l><l>lstChar</l><l>ptr</l><l>nxtChar</l></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list><block s="reportNewList"><list><l>identifier</l><l></l></list></block></list></block></block><block s="doSetVar"><l>ptr</l><block s="reportListItem"><l>1</l><block var="result"/></block></block><block s="doSetVar"><l>state</l><l>default</l></block><block s="doFor"><l>idx</l><l>1</l><block s="reportTextAttribute"><l><option>length</option></l><block var="string"/></block><script><block s="doSetVar"><l>char</l><block s="reportLetter"><block var="idx"/><block var="string"/></block></block><block s="doSetVar"><l>lstChar</l><block s="reportLetter"><block s="reportDifference"><block var="idx"/><l>1</l></block><block var="string"/></block></block><block s="doSetVar"><l>nxtChar</l><block s="reportLetter"><block s="reportVariadicSum"><list><block var="idx"/><l>1</l></list></block><block var="string"/></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="state"/><l>variable</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="char"/><l>%</l></list></block><script><block s="doReplaceInList"><l><option>last</option></l><block var="ptr"/><block s="reportJoinWords"><list><block s="reportListItem"><l><option>last</option></l><block var="ptr"/></block><block var="char"/></list></block></block><block s="doSetVar"><l>ptr</l><block s="reportNewList"><list><l>identifier</l><l></l></list></block></block><block s="doAddToList"><block var="ptr"/><block var="result"/></block><block s="doSetVar"><l>state</l><l>default</l></block></script><script><block s="doReplaceInList"><l><option>last</option></l><block var="ptr"/><block s="reportJoinWords"><list><block s="reportListItem"><l><option>last</option></l><block var="ptr"/></block><block var="char"/></list></block></block></script></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="state"/><l>string</l></list></block><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicNotEquals"><list><block var="lstChar"/><l>\</l></list></block><block s="reportVariadicEquals"><list><block var="char"/><l>"</l></list></block></list></block><script><block s="doReplaceInList"><l><option>last</option></l><block var="ptr"/><block s="reportJoinWords"><list><block s="reportListItem"><l><option>last</option></l><block var="ptr"/></block><l>"</l></list></block></block><block s="doSetVar"><l>ptr</l><block s="reportNewList"><list><l>identifier</l><l></l></list></block></block><block s="doAddToList"><block var="ptr"/><block var="result"/></block><block s="doSetVar"><l>state</l><l>default</l></block><block s="doChangeVar"><l>idx</l><l>1</l></block></script><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="char"/><l>n</l></list></block><block s="reportVariadicEquals"><list><block var="lstChar"/><l>\</l></list></block></list></block><script><block s="doReplaceInList"><l><option>last</option></l><block var="ptr"/><block s="reportJoinWords"><list><custom-block s="substr of %txt from %n to %n"><block s="reportListItem"><l><option>last</option></l><block var="ptr"/></block><l>1</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><l><option>last</option></l><block var="ptr"/></block></block><l>1</l></block></custom-block><block s="reportUnicodeAsLetter"><l>10</l></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="char"/><l>\</l></list></block><block s="reportVariadicEquals"><list><block var="nxtChar"/><l>"</l></list></block></list></block><script><block s="doReplaceInList"><l><option>last</option></l><block var="ptr"/><block s="reportJoinWords"><list><block s="reportListItem"><l><option>last</option></l><block var="ptr"/></block><l>"</l></list></block></block><block s="doChangeVar"><l>idx</l><l>1</l></block></script><script><block s="doReplaceInList"><l><option>last</option></l><block var="ptr"/><block s="reportJoinWords"><list><block s="reportListItem"><l><option>last</option></l><block var="ptr"/></block><block var="char"/></list></block></block></script></block></script></block></script></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="char"/><l> </l></list></block><script><block s="doIf"><custom-block s="is %txt an operator?"><block s="reportListItem"><l><option>last</option></l><block var="ptr"/></block></custom-block><script><block s="doReplaceInList"><l>1</l><block var="ptr"/><l>operator</l></block></script><list></list></block><block s="doSetVar"><l>ptr</l><block s="reportNewList"><list><l>identifier</l><l></l></list></block></block><block s="doAddToList"><block var="ptr"/><block var="result"/></block></script><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="char"/><l>"</l></list></block><script><block s="doIf"><custom-block s="is %txt an operator?"><block s="reportListItem"><l><option>last</option></l><block var="ptr"/></block></custom-block><script><block s="doReplaceInList"><l>1</l><block var="ptr"/><l>operator</l></block></script><list></list></block><block s="doSetVar"><l>ptr</l><block s="reportNewList"><list><l>string</l><l></l></list></block></block><block s="doAddToList"><block var="ptr"/><block var="result"/></block><block s="doSetVar"><l>state</l><l>string</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="char"/><l>%</l></list></block><script><block s="doIf"><custom-block s="is %txt an operator?"><block s="reportListItem"><l><option>last</option></l><block var="ptr"/></block></custom-block><script><block s="doReplaceInList"><l>1</l><block var="ptr"/><l>operator</l></block></script><list></list></block><block s="doSetVar"><l>ptr</l><block s="reportNewList"><list><l>variable</l><l></l></list></block></block><block s="doAddToList"><block var="ptr"/><block var="result"/></block><block s="doSetVar"><l>state</l><l>variable</l></block></script><list></list></block><block s="doReplaceInList"><l><option>last</option></l><block var="ptr"/><block s="reportJoinWords"><list><block s="reportListItem"><l><option>last</option></l><block var="ptr"/></block><block var="char"/></list></block></block></script></block></script></block></script></block></script></block><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><l>2</l><l/></block></block><l>0</l></list></block></autolambda><list></list></block><block var="result"/></block></block></script></block></script><scripts><script x="404.9999999999999" y="176.42857142857181"><custom-block s="is %l a %s ?"><l/><l>identifier</l></custom-block></script><script x="352.666790140086" y="975.2413793103451"><block s="reportUnicodeAsLetter"><l>10</l></block></script><script x="370.4002222521552" y="1050.8390804597714"><block s="reportIsA"><custom-block s="get operator for %s"><l></l></custom-block><l><option>predicate</option></l></block></script></scripts></block-definition><block-definition s="trim %&apos;string&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>start</l><l>end</l></list></block><block s="doSetVar"><l>start</l><l>1</l></block><block s="doSetVar"><l>end</l><block s="reportTextAttribute"><l><option>length</option></l><block var="string"/></block></block><block s="doUntil"><block s="reportVariadicNotEquals"><list><block s="reportLetter"><block var="start"/><block var="string"/></block><l> </l></list></block><script><block s="doChangeVar"><l>start</l><l>1</l></block></script></block><block s="doUntil"><block s="reportVariadicNotEquals"><list><block s="reportLetter"><block var="end"/><block var="string"/></block><l> </l></list></block><script><block s="doChangeVar"><l>end</l><l>-1</l></block></script></block><block s="doReport"><custom-block s="substr of %txt from %n to %n"><block var="string"/><block var="start"/><block var="end"/></custom-block></block></script></block></script></block-definition><block-definition s="substr of %&apos;str&apos; from %&apos;start&apos; to %&apos;end&apos;" type="reporter" category="operators"><comment x="0" y="0" w="297.3333333333333" collapsed="false">Reports the portion of the first input (string) starting at the position given by the second input (counting from 1, like LETTER n OF) and ending at the position given by the third input (also counting from 1).  If the third input is empty, reports the portion from the first position to the end of the string.&#xD;If a position number is negative, counts from the end backward, so -1 is the last character, -2 is the next to last, etc.</comment><header></header><code></code><translations>pt:o texto de _ entre as posições _ e _ , inclusive&#xD;ca:part del text _ des de la posició _ fins _&#xD;</translations><inputs><input type="%txt"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportLetter"><block s="reportNumbers"><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="start"/><l>0</l></list></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="start"/><l>1</l></list></block><block s="reportTextAttribute"><l><option>length</option></l><block var="str"/></block></list></block><block var="start"/></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="end"/><l>0</l></list></block><block s="reportTextAttribute"><l><option>length</option></l><block var="str"/></block><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="end"/><l>0</l></list></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="end"/><l>1</l></list></block><block s="reportTextAttribute"><l><option>length</option></l><block var="str"/></block></list></block><block var="end"/></block></block></block><block var="str"/></block></block></block></script></block-definition><block-definition s="val of %&apos;tok&apos;" type="reporter" category="operators" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="substr of %txt from %n to %n"><block var="tok"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="tok"/></block><l>1</l></block></custom-block></block></script></block-definition><block-definition s="var %&apos;thing&apos;" type="reporter" category="operators" helper="true"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="thing"/><l>SEED</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><custom-block s="seed"></custom-block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="thing"/><l>TIMER</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="getTimer"></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="thing"/><l>MOUSE_X</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportMouseX"></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="thing"/><l>MOUSE_Y</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportMouseY"></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="thing"/><l>ANSWER</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="getLastAnswer"></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="thing"/><l>CURRENT_DATE</l></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="reportDate"><l></l></block></autolambda><list></list></block><l>[date]</l></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="thing"/><l>CURRENT_YEAR</l></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="reportDate"><l></l></block></autolambda><list></list></block><l>[year]</l></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="thing"/><l>CURRENT_MONTH</l></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="reportDate"><l></l></block></autolambda><list></list></block><l>[month]</l></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="thing"/><l>MILLISECOND</l></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="reportDate"><l></l></block></autolambda><list></list></block><l>[time in milliseconds]</l></list></block></block></script><list></list></block><block s="doReport"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block><block var="thing"/></list></block></block></script><scripts><script x="188.44827586206898" y="56.3678160919547"><block s="reportTextSplit"><block s="reifyReporter"><autolambda><block s="reportDate"><l><option>time in milliseconds</option></l></block></autolambda><list></list></block><l><option>blocks</option></l></block></script><script x="240.09856546336198" y="203.2413793103448"><block s="reifyReporter"><script></script><list></list></block></script></scripts></block-definition><block-definition s="expect %&apos;lst&apos; to be a %&apos;type&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s" readonly="true">identifier<options>identifier&#xD;string&#xD;variable</options></input><input type="%s"></input></inputs><script><block s="doIf"><block s="reportNot"><custom-block s="is %l a %s ?"><block var="lst"/><block var="type"/></custom-block></block><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="value"/></block><l>0</l></list></block><script><custom-block s="error %mlt"><block s="reportJoinWords"><list><l>Expected "</l><block var="value"/><l>" in statement.</l></list></block></custom-block></script><list></list></block><custom-block s="error %mlt"><block s="reportJoinWords"><list><l>Expected a </l><block var="type"/><l>.</l></list></block></custom-block></script><list></list></block><custom-block s="let %upvar be %s"><l>stuff</l><block s="reportTextSplit"><block var="value"/><l> </l></block></custom-block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportNot"><block s="reportListContainsItem"><block var="stuff"/><custom-block s="v %l"><block var="lst"/></custom-block></block></block><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="value"/></block><l>0</l></list></block></list></block><script><custom-block s="error %mlt"><block s="reportJoinWords"><list><l>Expected "</l><block var="value"/><l>" in statement.</l></list></block></custom-block></script><list></list></block></script><scripts><script x="294.4987444196429" y="163.42857142857156"><block s="reportVariadicNotEquals"><list><l></l><block var="value"/></list></block></script></scripts></block-definition><block-definition s="is %&apos;token&apos; a %&apos;tokenType&apos; ?" type="predicate" category="operators"><comment x="0" y="0" w="90" collapsed="false">Reports if a token is the given type.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s" readonly="true">identifier<options>identifier&#xD;variable&#xD;string&#xD;operator</options></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="token"/><l><option>list</option></l></block></block><script><block s="doApplyExtension"><l>err_error(msg)</l><list><l>The given argument is not a token!</l></list></block></script><list></list></block><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="token"/></block><block var="tokenType"/></list></block></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%mlt"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="v %&apos;token&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Gets the value of a token.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="token"/><l><option>list</option></l></block></block><script><block s="doApplyExtension"><l>err_error(msg)</l><list><l>The given argument is not a token!</l></list></block></script><list></list></block><block s="doReport"><block s="reportListItem"><l>2</l><block var="token"/></block></block></script></block-definition><block-definition s="let %&apos;var&apos; be %&apos;val&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>var</l><block var="val"/></block></script></block-definition><block-definition s="is %&apos;that&apos; an operator?" type="predicate" category="operators" helper="true"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="that"/><l>==</l></list></block><block s="reportVariadicEquals"><list><block var="that"/><l>&lt;</l></list></block><block s="reportVariadicEquals"><list><block var="that"/><l>&gt;</l></list></block><block s="reportVariadicEquals"><list><block var="that"/><l>!=</l></list></block><block s="reportVariadicEquals"><list><block var="that"/><l>&lt;=</l></list></block><block s="reportVariadicEquals"><list><block var="that"/><l>&gt;=</l></list></block></list></block></block></script></block-definition><block-definition s="get gate for %&apos;thing&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="thing"/><l>||</l></list></block><script><block s="doReport"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="thing"/><l>&amp;&amp;</l></list></block><script><block s="doReport"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="clearchat %&apos;args&apos; %&apos;ptr&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doAddToList"><block s="reportTextSplit"><block s="reifyScript"><script><block s="doSetVar"><l>messages</l><block s="reportNewList"><list></list></block></block></script><list></list></block><l><option>blocks</option></l></block><block var="ptr"/></block></script></block-definition><block-definition s="resettimer %&apos;args&apos; %&apos;ptr&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doAddToList"><block s="reportNewList"><list><block s="reifyScript"><script><block s="doResetTimer"></block></script><list></list></block></list></block><block var="ptr"/></block></script></block-definition><block-definition s="spc %&apos;args&apos; %&apos;ptr&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>block</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="expect %l to be a %s %s"><block s="reportListItem"><l>1</l><block var="args"/></block><l>identifier</l><l></l></custom-block><custom-block s="let %upvar be %s"><l>instruction</l><block s="reportListItem"><l>1</l><block var="args"/></block></custom-block><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="v %l"><block var="instruction"/></custom-block><l>BEGIN</l></list></block><script><custom-block s="expect %l to be a %s %s"><block s="reportListItem"><l>2</l><block var="args"/></block><l>string</l><l></l></custom-block><block s="doAddToList"><block s="reifyScript"><script><custom-block s="let %upvar be %s"><l>var</l><l></l></custom-block></script><list></list></block><block var="block"/></block><custom-block s="let %upvar be %s"><l>name</l><custom-block s="v %l"><block s="reportListItem"><l>2</l><block var="args"/></block></custom-block></custom-block><block s="doAddToList"><block s="reportJoinWords"><list><l>prmpt_</l><block var="name"/></list></block><block var="block"/></block><block s="doAddToList"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="reportNewList"><list></list></block></autolambda><list></list></block><l></l></list></block><block var="block"/></block><block s="doAddToList"><block var="block"/><block var="ptr"/></block><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>local</l><l>spcName</l></list></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>spcName</l><block var="name"/></list></block></script><list><block s="reportVariadicEquals"><list><custom-block s="v %l"><block var="instruction"/></custom-block><l>LEFT</l></list></block><script><custom-block s="expect %l to be a %s %s"><block s="reportListItem"><l>2</l><block var="args"/></block><l>string</l><l></l></custom-block><custom-block s="let %upvar be %s"><l>message</l><custom-block s="v %l"><block s="reportListItem"><l>2</l><block var="args"/></block></custom-block></custom-block><block s="doAddToList"><block s="reifyScript"><script><block s="doAddToList"><l></l><l/></block></script><list></list></block><block var="block"/></block><block s="doAddToList"><custom-block s="speech bubble %s"><block s="reportJoinWords"><list><l>%</l><block var="message"/></list></block></custom-block><block var="block"/></block><block s="doAddToList"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block><block s="reportApplyExtension"><l>var_get(name)</l><list><l>spcName</l></list></block></list></block><block var="block"/></block><block s="doAddToList"><block var="block"/><block var="ptr"/></block></script><block s="reportVariadicEquals"><list><custom-block s="v %l"><block var="instruction"/></custom-block><l>RIGHT</l></list></block><script><custom-block s="expect %l to be a %s %s"><block s="reportListItem"><l>2</l><block var="args"/></block><l>string</l><l></l></custom-block><custom-block s="let %upvar be %s"><l>message</l><custom-block s="v %l"><block s="reportListItem"><l>2</l><block var="args"/></block></custom-block></custom-block><block s="doAddToList"><block s="reifyScript"><script><block s="doAddToList"><l></l><l/></block></script><list></list></block><block var="block"/></block><block s="doAddToList"><custom-block s="speech bubble %s"><block s="reportJoinWords"><list><l>^</l><block var="message"/></list></block></custom-block><block var="block"/></block><block s="doAddToList"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block><block s="reportApplyExtension"><l>var_get(name)</l><list><l>spcName</l></list></block></list></block><block var="block"/></block><block s="doAddToList"><block var="block"/><block var="ptr"/></block></script><block s="reportVariadicEquals"><list><custom-block s="v %l"><block var="instruction"/></custom-block><l>DISPLAY</l></list></block><script><custom-block s="expect %l to be a %s %s"><block s="reportListItem"><l>2</l><block var="args"/></block><l>string</l><l></l></custom-block><custom-block s="let %upvar be %s"><l>message</l><custom-block s="v %l"><block s="reportListItem"><l>2</l><block var="args"/></block></custom-block></custom-block><block s="doAddToList"><block s="reifyScript"><script><block s="doAsk"><l>what&apos;s your name?</l></block></script><list></list></block><block var="block"/></block><block s="doAddToList"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block><block s="reportApplyExtension"><l>var_get(name)</l><list><l>spcName</l></list></block></list></block><block var="block"/></block><block s="doAddToList"><block var="block"/><block var="ptr"/></block><block s="doApplyExtension"><l>var_delete(name)</l><list><l>spcName</l></list></block></script></list></block></script></block-definition><block-definition s="push msg %&apos;type&apos; %&apos;text&apos;" type="command" category="control"><header></header><code>PUSHMSG &lt;#1&gt; &lt;#2&gt;</code><translations></translations><inputs><input type="%s" readonly="true">left<options>left&#xD;right</options></input><input type="%mlt"></input></inputs><script><block s="doWarp"><script><block s="doAddToList"><block s="reportJoinWords"><list><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="type"/><l>left</l></list></block><l>^</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="type"/><l>right</l></list></block><l>%</l><l></l></block></block><block var="text"/></list></block><block var="messages"/></block></script></block></script></block-definition><block-definition s="cursor choice" type="reporter" category="UI"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThan"><list><block s="reportMouseX"></block><block s="reportAttributeOf"><l><option>right</option></l><block s="reportGet"><l><option>stage</option></l></block></block></list></block><block s="reportVariadicGreaterThan"><list><block s="reportMouseX"></block><block s="reportAttributeOf"><l><option>left</option></l><block s="reportGet"><l><option>stage</option></l></block></block></list></block></list></block><script><custom-block s="let %upvar be %s"><l>count</l><l>1</l></custom-block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="choicesY"/></block><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="reportMouseY"></block><block s="reportListItem"><block s="reportVariadicSum"><list><block var="i"/><l>1</l></list></block><block var="choicesY"/></block></list></block><block s="reportVariadicLessThan"><list><block s="reportMouseY"></block><block s="reportListItem"><block var="i"/><block var="choicesY"/></block></list></block></list></block><script><block s="doReport"><block var="count"/></block></script><list></list></block><block s="doChangeVar"><l>count</l><l>1</l></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><l>-1</l></block></script><list></list></block><block s="doReport"><l>-1</l></block></script></block-definition><block-definition s="draw textbox %&apos;txt&apos; %&apos;fntSize&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%n">12</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>width</l><l>height</l><l>oldPenColor</l><l>lines</l><l>startX</l><l>lineY</l><l>startLineY</l><l>startY</l><l>borderWidth</l></list></block><block s="doSetVar"><l>lines</l><block s="reportListAttribute"><l><option>flatten</option></l><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="split %txt every %n spaces"><l></l><l>9</l></custom-block></autolambda><list></list></block><block s="reportTextSplit"><block var="txt"/><block s="reportUnicodeAsLetter"><l>10</l></block></block></block></block></block><block s="doSetVar"><l>width</l><block s="reportVariadicMax"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="width of %txt %n"><l></l><block var="fntSize"/></custom-block></autolambda><list></list></block><block var="lines"/></block></block></block><block s="doSetVar"><l>height</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListAttribute"><l><option>length</option></l><block var="lines"/></block><block var="fntSize"/></list></block><l>5</l></list></block></block><block s="doSetVar"><l>oldPenColor</l><block s="getPenAttribute"><l><option>r-g-b-a</option></l></block></block><block s="doSetVar"><l>startX</l><block s="xPosition"></block></block><block s="doSetVar"><l>startY</l><block s="yPosition"></block></block><block s="doSetVar"><l>borderWidth</l><block s="reportVariadicSum"><list><block var="fntSize"/><l>5</l></list></block></block><custom-block s="rect %n %n"><block var="width"/><block var="height"/></custom-block><block s="gotoXY"><block var="startX"/><block var="startY"/></block><block s="setSize"><block var="borderWidth"/></block><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block var="borderWidth"/><l>2</l></block></block></block><block s="down"></block><block s="forward"><l>0</l></block><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportDifference"><block var="height"/><block var="borderWidth"/></block></block></block><block s="up"></block><block s="setXPosition"><block s="reportVariadicSum"><list><block var="startX"/><block var="width"/></list></block></block><block s="down"></block><block s="forward"><l>0</l></block><block s="changeYPosition"><block s="reportDifference"><block var="height"/><block var="borderWidth"/></block></block><block s="up"></block><block s="gotoXY"><block var="startX"/><block var="startY"/></block><block s="setColor"><color>255,255,255,1</color></block><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicSum"><list><block var="fntSize"/><l>0.25</l></list></block></block></block><block s="doSetVar"><l>lineY</l><block s="yPosition"></block></block><block s="doSetVar"><l>startLineY</l><block s="yPosition"></block></block><block s="doForEach"><l>line</l><block var="lines"/><script><block s="setYPosition"><block var="lineY"/></block><block s="write"><block var="line"/><block var="fntSize"/></block><block s="setXPosition"><block var="startX"/></block><block s="doChangeVar"><l>lineY</l><block s="reportMonadic"><l><option>neg</option></l><block var="fntSize"/></block></block></script></block><block s="setYPosition"><block var="startLineY"/></block><block s="changeYPosition"><block s="reportVariadicSum"><list><block var="fntSize"/><l>0.25</l></list></block></block><block s="setXPosition"><block var="startX"/></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><block var="oldPenColor"/></block><block s="setYPosition"><block var="startY"/></block><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block var="height"/></block></block></script></block></script><scripts><script x="277.36450700431055" y="320.7931034482759"><custom-block s="circle %n"><block var="height"/></custom-block></script><script x="363.5714035560347" y="252.51724137931038"><block s="reportMonadic"><l><option>neg</option></l><block var="fntSize"/></block></script><script x="339.3680967133621" y="400.5862068965503"><block s="reportQuotient"><l></l><l>1.5</l></block></script><script x="410.7715517241377" y="433.40229885057283"><block var="fntSize"/></script></scripts></block-definition><block-definition s="circle %&apos;rad&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n">15</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>oldPenSize</l><l>oldFlatLineEnds</l></list></block><block s="doSetVar"><l>oldPenSize</l><block s="getPenAttribute"><l><option>size</option></l></block></block><block s="doSetVar"><l>oldFlatLineEnds</l><block s="reportGlobalFlag"><l><option>flat line ends</option></l></block></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><l><bool>false</bool></l></block><block s="setSize"><block var="rad"/></block><block s="down"></block><block s="forward"><l>0</l></block><block s="up"></block><block s="setSize"><block var="oldPenSize"/></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><block var="oldFlatLineEnds"/></block></script></block></script></block-definition><block-definition s="split %&apos;txt&apos; every %&apos;n&apos; spaces" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%n">2</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l><l>spaceCount</l><l>temp</l><l>ptr</l><l>wordCount</l><l>rem</l></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>spaceCount</l><l>0</l></block><block s="doSetVar"><l>wordCount</l><l>0</l></block><block s="doSetVar"><l>temp</l><block s="reportTextSplit"><block var="txt"/><l> </l></block></block><block s="doSetVar"><l>ptr</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>rem</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="temp"/></block><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="temp"/></block><block var="ptr"/></block><block s="doChangeVar"><l>spaceCount</l><l>1</l></block><block s="doIf"><block s="reportVariadicGreaterThanOrEquals"><list><block var="spaceCount"/><block var="n"/></list></block><script><block s="doSetVar"><l>rem</l><block s="reportConcatenatedLists"><list><block var="rem"/><block s="reportNumbers"><block s="reportVariadicMax"><list><block s="reportDifference"><block var="i"/><block var="n"/></block><l>1</l></list></block><block var="i"/></block></list></block></block><block s="doSetVar"><l>spaceCount</l><l>0</l></block><block s="doAddToList"><custom-block s="join %l with %s"><block var="ptr"/><l> </l></custom-block><block var="result"/></block><block s="doSetVar"><l>ptr</l><block s="reportNewList"><list></list></block></block></script><list></list></block></script></block><block s="doForEach"><l>indexToRemove</l><block s="reportListAttribute"><l><option>reverse</option></l><block var="rem"/></block><script><block s="doDeleteFromList"><block var="indexToRemove"/><block var="temp"/></block></script></block><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><l></l></block><l>0</l></list></block></autolambda><list></list></block><block s="reportConcatenatedLists"><list><block var="result"/><block s="reportIfElse"><block s="reportIsA"><block var="temp"/><l><option>list</option></l></block><block s="reportNewList"><list><custom-block s="join %l with %s"><block var="temp"/><l> </l></custom-block></list></block><block var="temp"/></block></list></block></block></block></script></block></script></block-definition><block-definition s="join %&apos;txt&apos; with %&apos;spacer&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s"></input></inputs><script><block s="doWarp"><script><custom-block s="let %upvar be %s"><l>result</l><l></l></custom-block><block s="doForEach"><l>item</l><block var="txt"/><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block var="item"/><block var="spacer"/></list></block></block></script></block><block s="doReport"><custom-block s="substr of %txt from %n to %n"><block var="result"/><l>1</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="result"/></block><block s="reportTextAttribute"><l><option>length</option></l><block var="spacer"/></block></block></custom-block></block></script></block></script></block-definition><block-definition s="width of %&apos;text&apos; %&apos;fntSize&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%n">12</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>lastPos</l><l>width</l><l>lastColor</l><l>lastDirection</l></list></block><block s="doSetVar"><l>lastPos</l><block s="getPosition"></block></block><block s="doSetVar"><l>lastDirection</l><block s="direction"></block></block><block s="doSetVar"><l>lastColor</l><block s="getPenAttribute"><l><option>r-g-b-a</option></l></block></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l><l>0</l></list></block></block><block s="gotoXY"><l>0</l><l>10000</l></block><block s="write"><block var="text"/><block var="fntSize"/></block><block s="doSetVar"><l>width</l><block s="xPosition"></block></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><block var="lastColor"/></block><block s="doGotoObject"><block var="lastPos"/></block><block s="setHeading"><block var="lastDirection"/></block><block s="doReport"><block var="width"/></block></script></block></script></block-definition><block-definition s="rect %&apos;w&apos; %&apos;h&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>oldPenSize</l><l>oldFlatLineEnds</l></list></block><block s="doSetVar"><l>oldPenSize</l><block s="getPenAttribute"><l><option>size</option></l></block></block><block s="doSetVar"><l>oldFlatLineEnds</l><block s="reportGlobalFlag"><l><option>flat line ends</option></l></block></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><l><bool>true</bool></l></block><block s="setSize"><block var="h"/></block><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block var="h"/><l>2</l></block></block></block><block s="down"></block><block s="changeXPosition"><block var="w"/></block><block s="changeXPosition"><block s="reportMonadic"><l><option>neg</option></l><block var="w"/></block></block><block s="up"></block><block s="changeYPosition"><block s="reportQuotient"><block var="h"/><l>2</l></block></block><block s="setSize"><block var="oldPenSize"/></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><block var="oldFlatLineEnds"/></block></script></block></script><scripts><script x="272.9198208512932" y="173.44827586206893"><block s="reportQuotient"><l></l><l>2</l></block></script></scripts></block-definition><block-definition s="draw screen" type="command" category="UI"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doDeleteFromList"><l><option>all</option></l><block var="choicesY"/></block><block s="doDeclareVariables"><list><l>titleBarHeight</l><l>messageBoxHeight</l><l>typeBoxHeight</l><l>titleTextSize</l><l>choiceTextSize</l><l>tMap</l></list></block><block s="doSetVar"><l>choiceTextSize</l><l>18</l></block><block s="doSetVar"><l>titleBarHeight</l><l>54</l></block><block s="doSetVar"><l>tMap</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="choiceTextSize"/><block s="reportListAttribute"><l><option>length</option></l><custom-block s="split %txt every %n spaces"><block s="reportListItem"><l>1</l><block var="value"/></block><l>9</l></custom-block></block></list></block><l>5</l></list></block></autolambda><list><l>value</l></list></block><block var="choices"/></block></block><block s="doSetVar"><l>typeBoxHeight</l><block s="reportVariadicMax"><list><block s="reportVariadicSum"><list><l>20</l><block s="reportVariadicSum"><block var="tMap"/></block></list></block><l>48</l></list></block></block><block s="doSetVar"><l>messageBoxHeight</l><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportVariadicSum"><list><block var="titleBarHeight"/><block var="typeBoxHeight"/></list></block></block></block><block s="doSetVar"><l>titleTextSize</l><block s="reportQuotient"><block var="titleBarHeight"/><l>2</l></block></block><block s="gotoXY"><block s="reportAttributeOf"><l><option>left</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block var="titleBarHeight"/></block></block><block s="setColor"><color>220,220,220,1</color></block><custom-block s="rect %n %n"><block s="reportAttributeOf"><l><option>width</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block var="messageBoxHeight"/></custom-block><custom-block s="draw messages %n %n"><block var="titleBarHeight"/><block var="typeBoxHeight"/></custom-block><block s="gotoXY"><block s="reportAttributeOf"><l><option>left</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportAttributeOf"><l><option>top</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><block s="setColor"><color>0,206,253,1</color></block><custom-block s="rect %n %n"><block s="reportAttributeOf"><l><option>width</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block var="titleBarHeight"/></custom-block><block s="gotoXY"><block s="reportAttributeOf"><l><option>left</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>bottom</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block var="typeBoxHeight"/></list></block></block><block s="setColor"><color>182,182,182,1</color></block><custom-block s="rect %n %n"><block s="reportAttributeOf"><l><option>width</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block var="typeBoxHeight"/></custom-block><block s="gotoXY"><l>0</l><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportDifference"><block s="reportQuotient"><block var="titleBarHeight"/><l>2</l></block><l>2</l></block></block></block><block s="setColor"><color>0,0,0,1</color></block><custom-block s="writec %s size %n"><block var="title"/><block var="titleTextSize"/></custom-block><block s="gotoXY"><block s="reportVariadicSum"><list><l>2</l><block var="choiceTextSize"/><block s="reportAttributeOf"><l><option>left</option></l><block s="reportGet"><l><option>stage</option></l></block></block></list></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>bottom</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block var="typeBoxHeight"/></list></block></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="choices"/></block><l>0</l></list></block><script><custom-block s="draw choices %n"><block var="choiceTextSize"/></custom-block></script><script><block s="setColor"><color>0,0,0,1</color></block><block s="gotoXY"><l>0</l><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>bottom</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportQuotient"><block var="typeBoxHeight"/><l>2</l></block></list></block></block><custom-block s="writec %s size %n"><l>click to continue</l><l>24</l></custom-block></script></block></script></block></script><scripts><script x="233.2148100754313" y="725.489655172415"><block s="reportQuotient"><l></l><l>2</l></block></script><script x="197.92305360991386" y="160.85747126436766"><block s="reportListAttribute"><l><option>length</option></l><block var="choices"/></block></script><script x="355.68167429956907" y="158.16781609195405"><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicSum"><list><block var="choiceTextSize"/><l>10</l></list></block></list></block></script></scripts></block-definition><block-definition s="draw choices %&apos;choiceTextSize&apos;" type="command" category="UI"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doWarp"><script><block s="setColor"><color>41,41,41,1</color></block><block s="changeYPosition"><l>-5</l></block><block s="doForEach"><l>option</l><block var="choices"/><script><block s="doAddToList"><block s="yPosition"></block><block var="choicesY"/></block><custom-block s="let %upvar be %s"><l>choiceText</l><block s="reportListItem"><l>1</l><block var="option"/></block></custom-block><custom-block s="let %upvar be %s"><l>lines</l><block s="reportListAttribute"><l><option>flatten</option></l><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="split %txt every %n spaces"><l></l><l>9</l></custom-block></autolambda><list></list></block><block s="reportTextSplit"><block var="choiceText"/><block s="reportUnicodeAsLetter"><l>10</l></block></block></block></block></custom-block><block s="setXPosition"><block s="reportDifference"><block s="reportAttributeOf"><l><option>right</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportVariadicSum"><list><l>15</l><block s="reportQuotient"><block var="choiceTextSize"/><l>2</l></block><block s="reportVariadicMax"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="width of %txt %n"><l></l><block var="choiceTextSize"/></custom-block></autolambda><list></list></block><block var="lines"/></block></block></list></block></block></block><custom-block s="draw textbox %txt %n"><block var="choiceText"/><block var="choiceTextSize"/></custom-block><block s="doAddToList"><block s="yPosition"></block><block var="choicesY"/></block><block s="changeYPosition"><l>-5</l></block></script></block><block s="doAddToList"><block s="yPosition"></block><block var="choicesY"/></block></script></block></script><scripts><script x="184.49164870689646" y="99.37931034482763"><block s="reportDifference"><l></l><l></l></block></script></scripts></block-definition><block-definition s="width of %&apos;txt&apos; size %&apos;fntSize&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>pos</l><l>width</l><l>direction</l></list></block><block s="doSetVar"><l>pos</l><block s="getPosition"></block></block><block s="doSetVar"><l>direction</l><block s="direction"></block></block><block s="gotoXY"><l>0</l><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>top</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportVariadicProduct"><list><block var="fntSize"/><l>2</l></list></block></list></block></block><block s="setHeading"><l>90</l></block><block s="write"><block var="txt"/><block var="fntSize"/></block><block s="doSetVar"><l>width</l><block s="xPosition"></block></block><block s="doGotoObject"><block var="pos"/></block><block s="setHeading"><block var="direction"/></block><block s="doReport"><block var="width"/></block></script></block></script></block-definition><block-definition s="draw messages %&apos;titleBarHeight&apos; %&apos;choiceWindowHeight&apos;" type="command" category="UI"><header></header><code></code><translations></translations><inputs><input type="%n">12</input><input type="%n"></input></inputs><script><block s="doWarp"><script><block s="gotoXY"><block s="reportAttributeOf"><l><option>left</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>bottom</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportVariadicSum"><list><block var="choiceWindowHeight"/><l>5</l></list></block></list></block></block><custom-block s="let %upvar be %s"><l>fntSize</l><l>18</l></custom-block><custom-block s="let %upvar be %s"><l>lowerBound</l><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportVariadicSum"><list><block var="titleBarHeight"/><l>5</l></list></block></block></custom-block><custom-block s="let %upvar be %s"><l>count</l><block s="reportListAttribute"><l><option>length</option></l><block var="messages"/></block></custom-block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block s="yPosition"></block><block var="lowerBound"/></list></block><block s="reportVariadicLessThan"><list><block var="count"/><l>1</l></list></block></list></block><script><custom-block s="let %upvar be %s"><l>txt</l><block s="reportListItem"><block var="count"/><block var="messages"/></block></custom-block><custom-block s="let %upvar be %s"><l>text</l><block s="reportJoinWords"><block s="reportLetter"><block s="reportNumbers"><l>2</l><block s="reportTextAttribute"><l><option>length</option></l><block var="txt"/></block></block><block var="txt"/></block></block></custom-block><custom-block s="let %upvar be %s"><l>lines</l><block s="reportListAttribute"><l><option>flatten</option></l><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="split %txt every %n spaces"><l></l><l>9</l></custom-block></autolambda><list></list></block><block s="reportTextSplit"><block var="text"/><block s="reportUnicodeAsLetter"><l>10</l></block></block></block></block></custom-block><block s="changeYPosition"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="fntSize"/><block s="reportListAttribute"><l><option>length</option></l><block var="lines"/></block></list></block><l>5</l></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block var="txt"/></block><l>^</l></list></block><script><block s="setColor"><color>74,108,212,1</color></block><block s="setXPosition"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>left</option></l><block s="reportGet"><l><option>stage</option></l></block></block><l>15</l><block s="reportQuotient"><block var="fntSize"/><l>2</l></block></list></block></block><custom-block s="draw textbox %txt %n"><block var="text"/><block var="fntSize"/></custom-block></script><list><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block var="txt"/></block><l>%</l></list></block><script><block s="setColor"><color>41,41,41,1</color></block><block s="setXPosition"><block s="reportDifference"><block s="reportAttributeOf"><l><option>right</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportVariadicSum"><list><l>15</l><block s="reportQuotient"><block var="fntSize"/><l>2</l></block><block s="reportVariadicMax"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="width of %txt %n"><l></l><block var="fntSize"/></custom-block></autolambda><list></list></block><block var="lines"/></block></block></list></block></block></block><custom-block s="draw textbox %txt %n"><block var="text"/><block var="fntSize"/></custom-block></script><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block var="txt"/></block><l>&amp;</l></list></block><script><block s="setColor"><color>46,46,46,1</color></block><custom-block s="let %upvar be %s"><l>lPosition</l><block s="getPosition"></block></custom-block><block s="setXPosition"><l>0</l></block><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicSum"><list><block var="fntSize"/><block s="reportQuotient"><block var="fntSize"/><l>2</l></block></list></block></block></block><custom-block s="let %upvar be %s"><l>lines</l><block s="reportTextSplit"><block var="txt"/><l><option>line</option></l></block></custom-block><block s="doForEach"><l>line</l><block var="lines"/><script><block s="changeYPosition"><block var="fntSize"/></block><custom-block s="writec %s size %n"><custom-block s="substr of %txt from %n to %n"><block var="txt"/><l>2</l><block s="reportTextAttribute"><l><option>length</option></l><block var="txt"/></block></custom-block><block var="fntSize"/></custom-block></script></block><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicSum"><list><l>3</l><block s="reportQuotient"><block var="fntSize"/><l>2</l></block></list></block></block></block></script></list></block><block s="changeYPosition"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="fntSize"/><block s="reportListAttribute"><l><option>length</option></l><block var="lines"/></block></list></block><l>5</l></list></block></block><block s="changeYPosition"><l>5</l></block><block s="doChangeVar"><l>count</l><l>-1</l></block></script></block></script></block></script><scripts><script x="521.3793103448271" y="482.8850574712631"><block s="doIf"><l/><script><block s="doReport"><custom-block s="menu item speech ballon %s message %s value %s"><l>right</l><block var="text"/><l>DIALOGUE</l></custom-block></block></script><list></list></block></script><script x="917.3448275862069" y="751.9080459770083"><block s="doForEach"><l>txt</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><l></l></block><l>0</l></list></block></autolambda><list></list></block><block s="reportListItem"><block s="reportNumbers"><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="messages"/></block><block s="reportDifference"><l>15</l><block s="reportVariadicMax"><list><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="choices"/></block><l>2</l></block><l>0</l></list></block></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="messages"/></block></block><block var="messages"/></block></block><script></script></block></script></scripts></block-definition><block-definition s="menu item speech ballon %&apos;orientation&apos; message %&apos;message&apos; value %&apos;value&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">left<options>left&#xD;right</options></input><input type="%s">hey!</input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="value"/><l></l></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="orientation"/><l>right</l></list></block><block s="reportNewList"><list><l></l><block var="message"/></list></block><block s="reportNewList"><list><block var="message"/></list></block></block><block s="reportNewList"><list><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="orientation"/><l>right</l></list></block><block s="reportNewList"><list><l></l><block var="message"/></list></block><block s="reportNewList"><list><block var="message"/></list></block></block><block var="value"/></list></block></block></block></script></block-definition><block-definition s="divider" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block-definition><block-definition s="ask %&apos;question&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">what&apos;s your name?</input></inputs><script><block s="doAsk"><block var="question"/></block><block s="doReport"><block s="getLastAnswer"></block></block></script></block-definition><block-definition s="displaymessages %&apos;args&apos; %&apos;ptr&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doAddToList"><block s="reportNewList"><list><block s="reifyScript"><script><custom-block s="draw screen"></custom-block></script><list></list></block></list></block><block var="ptr"/></block></script></block-definition></blocks><primitives></primitives><stage name="Stage" width="580" height="480" costume="0" color="1,1,1,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="6506"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkQAAAHgCAYAAABEhXI/AAAAAXNSR0IArs4c6QAAFiFJREFUeF7t1kERAAAIwzDm3zRCGhyQ26M7R4AAAQIECBCICyz+v/cJECBAgAABAieIjIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQKCyAYIECBAgACBvIAgyk8AAAECBAgQICCIbIAAAQIECBDICwii/AQAECBAgAABAoLIBggQIECAAIG8gCDKTwAAAQIECBAgIIhsgAABAgQIEMgLCKL8BAAQIECAAAECgsgGCBAgQIAAgbyAIMpPAAABAgQIECAgiGyAAAECBAgQyAsIovwEABAgQIAAAQIPUmYB4TOL94gAAAAASUVORK5CYII=</pentrails><costumes><list struct="atomic" id="6507"></list></costumes><sounds><list struct="atomic" id="6508"></list></sounds><variables></variables><blocks></blocks><scripts><script x="7.142857142857143" y="1639.1666666666474"><block s="doIf"><block s="reportVariadicEquals"><list><block var="cmd"/><l>ELIFVAR</l></list></block><script><custom-block s="let %upvar be %s"><l>block</l><block s="reportListItem"><l><option>last</option></l><block var="ifStack"/></block></custom-block><block s="doIf"><block s="reportVariadicNotEquals"><list><block s="reportListItem"><l>1</l><block var="block"/></block><block s="reifyScript"><script><block s="doIf"><l/><script></script><list></list></block></script><list></list></block></list></block><script><custom-block s="error %mlt"><l>An ELIF statement is not allowed here!</l></custom-block></script><list></list></block><block s="doReplaceInList"><l>1</l><block var="block"/><block s="reifyScript"><script><block s="doIfElse"><l/><script></script><script></script></block></script><list></list></block></block><block s="doSetVar"><l>ptr</l><block s="reportNewList"><list></list></block></block><block s="doAddToList"><block var="ptr"/><block var="block"/></block></script><list></list></block></script><script x="903.6928013392865" y="3255.6190476190513"><block var="choices"/></script><script x="89.75369458128074" y="31.149425287356333"><block s="receiveGo"></block><block s="setBackgroundColor"><color>1,1,1,1</color></block></script><script x="141.42857142857136" y="262.2857142857143"><custom-block s="cursor choice"></custom-block></script><script x="273.0147783251232" y="133.57963875205274"><custom-block s="build script %code"><l>SUB "START"&#xD;    PUSHMSG LEFT "what are you doing in my swamp?"&#xD;    PUSHCHOICE "i don&apos;t know" 1&#xD;    PUSHCHOICE "who are you?" 2&#xD;    CHOOSE&#xD;    IFVAR %choice% == CONST 1 THEN&#xD;        PUSHCHOICE "WHY?" %SEED%&#xD;    ELSE&#xD;        PUSHMSG LEFT ""&#xD;    END&#xD;END</l></custom-block></script></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="0" color="0,0,0,1" pen="tip" id="6584"><costumes><list struct="atomic" id="6585"></list></costumes><sounds><list struct="atomic" id="6586"></list></sounds><blocks></blocks><variables></variables><scripts><script x="70.35467980295607" y="6562.738095238052"><block s="createClone"><l><option>myself</option></l></block></script><script x="329.9999999999994" y="954.8177339901481"><custom-block s="v %l"><l/></custom-block></script><script x="228.357963875205" y="664.9359605911346"><custom-block s="get operator for %s"><l>!=</l></custom-block></script><script x="2647.610837438424" y="7.142857142857143"><custom-block s="build script %code"><l></l></custom-block></script><comment x="766.43842364532" y="20.270935960591522" w="142.14285714285714" collapsed="false">dev note:&#xD;&#xD;i like zebra mode off. could that be cached in localStorage so I don&apos;t have to turn it off every time I open Snap?</comment><script x="547.8571428571428" y="102.28571428571432"><block s="receiveGo"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="clear"></block></script><script x="21.42857142857143" y="127.28243021346479"><block s="receiveGo"></block><block s="doWait"><l>0</l></block><custom-block s="let %upvar be %s"><l>temp</l><custom-block s="build script %code"><l>; a variable, "choice", is declared by default.&#xD;; a programmmer (such as you) may use it to alter a storyline of sorts.&#xD;&#xD;DECL script "ending"&#xD;&#xD;SUB "end game loop"&#xD;    CLEARCHAT&#xD;    PUSHMSG LEFT "story &amp; scripting:"&#xD;    PUSHMSG RIGHT "[insert name here]"&#xD;    PUSHMSG LEFT "characters:"&#xD;    PUSHMSG RIGHT "[insert characters here]"&#xD;    CHOOSE&#xD;    JUMP "end game loop"&#xD;END&#xD;&#xD;SUB "end game"&#xD;    SETTITLE "end game"&#xD;    PUSHMSG LEFT "you got the"&#xD;    PUSHMSG RIGHT %ending%&#xD;    PUSHMSG LEFT "ending."&#xD;    CHOOSE&#xD;    PUSHMSG LEFT "congrats."&#xD;    PUSHMSG RIGHT "congrats."&#xD;    CHOOSE&#xD;    WAIT 0.5&#xD;    JUMP "end game loop"&#xD;END&#xD;&#xD;SUB "START POINT"&#xD;    SETTITLE "heh"&#xD;    ; example code&#xD;    PUSHMSG LEFT "hewo"&#xD;    PUSHCHOICE "it&apos;s 2 am, shush phillip" 1&#xD;    PUSHCHOICE "what do you want at this hour" 2&#xD;    CHOOSE&#xD;    ; single line ifs are not implemented yet. :(&#xD;    IFVAR %choice% == CONST 2 THEN&#xD;        VAR SET %ending% TO "mad"&#xD;        JUMP "end game"&#xD;    ELSE&#xD;        VAR SET %ending% TO "what"&#xD;        JUMP "end game"&#xD;    END&#xD;END&#xD;&#xD;CALL "START POINT"</l></custom-block></custom-block><block s="doRun"><block s="reportIfElse"><block var="useUI?"/><block var="temp"/><block s="reportAttributeOf"><block var="temp"/><l>Stage</l></block></block><list></list></block></script></scripts></sprite><sprite name="painter" idx="2" x="-20.998046875" y="-235" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="0" color="41,41,41,1" pen="tip" id="6622"><costumes><list struct="atomic" id="6623"></list></costumes><sounds><list struct="atomic" id="6624"></list></sounds><blocks></blocks><variables></variables><scripts><script x="357.03787330665017" y="118.08538587848952"><block var="choices"/></script><script x="186.97469981527092" y="7.142857142857143"><block s="doForever"><script><block s="bubble"><custom-block s="cursor choice"></custom-block></block></script></block></script><script x="431.2160791256157" y="156.9704433497535"><block s="setColor"><color>145,26,68,1</color></block><custom-block s="draw textbox %txt %n"><l></l><l>12</l></custom-block></script><script x="319.4574584359606" y="59.108374384236335"><block s="doSetVar"><l>useUI?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script x="262.94021705665017" y="107.98193760262737"><custom-block s="draw screen"></custom-block></script><script x="307.6988377463054" y="215.06239737274208"><block s="reportVariadicSum"><list><l></l><l>5</l></list></block></script><script x="146.14711360837435" y="430.8325123152707"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l>18</l><block s="reportListAttribute"><l><option>length</option></l><custom-block s="split %txt every %n spaces"><block s="reportListItem"><l>1</l><block var="value"/></block><l>9</l></custom-block></block></list></block></autolambda><list><l>value</l></list></block><block var="choices"/></block></script><script x="169.11263084975369" y="130.08538587848918"><block s="receiveMessage"><l>screen draw</l><list></list></block><custom-block s="draw screen"></custom-block></script><script x="7.142857142857143" y="291.73596059113277"><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doSetVar"><l>choice</l><custom-block s="prompt %s options %mult%s"><block var="title"/><custom-block s="options"></custom-block></custom-block></block></script><list></list></block><list></list><comment w="90" collapsed="false">OLD CHOOSE CODE</comment></block><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="choice"/><l><option>list</option></l></block><block s="reportVariadicEquals"><list><block var="choice"/><l>continue</l></list></block></list></block></block><script><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="choice"/><l><option>list</option></l></block><block s="reportVariadicEquals"><list><block var="choice"/><l>continue</l></list></block></list></block><script><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doSetVar"><l>choice</l><custom-block s="prompt %s options %mult%s"><block var="title"/><custom-block s="options"></custom-block></custom-block></block></script><list></list></block><list></list></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="choice"/><l>continue</l></list></block><script><block s="doAddToList"><block s="reportJoinWords"><list><l>^</l><block s="reportListItem"><l>1</l><block var="choice"/></block></list></block><block var="messages"/></block><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>2</l><block var="choice"/></block></block></script><list></list></block><block s="doDeleteFromList"><l><option>all</option></l><block var="choices"/></block></script></scripts></sprite><watcher var="messages" style="normal" x="10.000000000000682" y="9.999999999999972" color="243,118,29" hidden="true"/><watcher var="choices" style="normal" x="10.000000000000682" y="37.800002000000006" color="243,118,29" hidden="true"/><watcher var="choice" style="normal" x="10.000000000000682" y="65.60000399999997" color="243,118,29" hidden="true"/><watcher var="title" style="normal" x="10.000000000000682" y="93.40000600000002" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="messages"><list struct="atomic" id="6788">^hewo</list></variable><variable name="choices"><list id="6789"><item><list struct="atomic" id="6790">&quot;it&apos;s 2 am, shush phillip&quot;,1</list></item><item><list struct="atomic" id="6791">what do you want at this hour,2</list></item></list></variable><variable name="choice"><l>continue</l></variable><variable name="title"><l>heh</l></variable><variable name="choicesY"><list struct="atomic" id="6792">-179,-202,-207,-230,-235</list></variable><variable name="useUI?"><bool>false</bool></variable></variables></scene></scenes></project><media name="Updated Story Builder" app="Snap! 10.7.1, https://snap.berkeley.edu" version="2"></media></snapdata>