<snapdata remixID="13299725"><project name="My Custom Blocks" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><notes>Suggestions are welcome (if only Snap! had comments), but do note that some blocks like join words will not be added, because blocks like those can easily be recreated using the default primitives, without taking up too much space. Some of these blocks that are present are actually primitives! These blocks also come with descriptions.</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAADxElEQVR4AeyXMW4qMRRFreyEgp6CZdCA6NgHi2AfdAgalkFBT8FS/hdIE+l/yTMTHI+vfU+kaJLxjP3uuUeJ+PrDFwQKEvgKfEGgIAEELAifo0NAQCwoSgABi+LncATEgaIEfAUsip3DOwII2JHgWoQAAhbBzqEdAQTsSHAtQgABi2Dn0I4AAnYkuBYhgIBFsBc9VOpwBJSqw28YBPTrXCoxAkrV4TcMAvp1LpUYAaXq8BsGAf06l0o8qYBSyRlGggACStTgOwQC+nYvkRwBJWrwHQIBfbuXSI6AEjX4DoGAk3TPITECCBgjw/1JCCDgJJg5JEYAAWNkuD8JAQScBDOHxAggYIwM9ychgICTYPY9ZCg5Ag4RYj0rAQTMipfNhwgg4BAh1rMSQMCseNl8iAACDhFiPSsBBMyKl82HCLQr4FBy1iUIIKBEDb5DIKBv9xLJEVCiBt8hENC3e4nkCChRg+8QCNhe91UlQsCq6mpvWARsr9OqEiFgVXW1NywCttdpVYkQsKq62hsWAdvrtKpEvypgVckZVoIAAkrU4DsEAvp2L5EcASVq8B0CAX27l0iOgBI1+A6BgJHul8tlOB6PkdX/b/P7pwQQMELudruF0+kU1uv1+3uxWITH4xF5mtufEkDAHnKXy+V7dTabhf1+/5Zxs9mE1Wr1vcYPnxNAwM/Z8eYvEEDAHoivf7/d8vP5DIfDIbz+Kp7P53C9XrslrgkEEDAC7/UhZLvdvoV7SXe/38N8Po88ze1PCSBghNzrQ8hut4uscrsjkHpFwFSCvJ9EAAGT8PFyKgEETCXI+0kEEDAJHy+nEkDAVIK8n0QAAZPw8XIqgXoFTE3O+xIEEFCiBt8hENC3e4nkCChRg+8QCOjbvURyBJSowXcIBKyv+6YmRsCm6qwvDALW11lTEyNgU3XWFwYB6+usqYkRsKk66wuDgPV11tTEPxKwqeSEkSCAgBI1+A6BgL7dSyRHQIkafIdAQN/uJZIjoEQNvkMg4KjueSgXAQTMRZZ9RxFAwFGYeCgXAQTMRZZ9RxFAwFGYeCgXAQTMRZZ9RxFAwFGYfB/KnRwBcxNm/14CCNiLh8XcBBAwN2H27yWAgL14WMxNAAFzE2b/XgII2IuHxdwEdAXMnZz9JQggoEQNvkMgoG/3EskRUKIG3yEQ0Ld7ieQIKFGD7xAIqNe91UQIaFW3XlgE1OvEaiIEtKpbLywC6nViNRECWtWtFxYB9TqxmugfAa2SE1aCAAJK1OA7BAL6di+RHAElavAdAgF9u5dI/hcAAP//s3eDDwAAAAZJREFUAwD4e6iPts16xwAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="My Custom Blocks"><notes>Suggestions are welcome (if only Snap! had comments), but do note that some blocks like join words will not be added, because blocks like those can easily be recreated using the default primitives, without taking up too much space. Some of these blocks that are present are actually primitives! These blocks also come with descriptions.</notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="mouse position relative to %&apos;object&apos;" type="reporter" category="sensing" selector="reportMousePositionRelative"><comment x="0" y="0" w="186" collapsed="false">Gets the mouse position in percentage, relative to the top, bottom, left, and right of the chosen object.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">Stage<options>§_objectsMenu</options></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportMousePosition"></block><block s="reportNewList"><list><block s="reportAttributeOf"><l><option>left</option></l><block var="object"/></block><block s="reportAttributeOf"><l><option>bottom</option></l><block var="object"/></block></list></block></block><block s="reportQuotient"><l>100</l><block s="reportNewList"><list><block s="reportAttributeOf"><l><option>width</option></l><block var="object"/></block><block s="reportAttributeOf"><l><option>height</option></l><block var="object"/></block></list></block></block></list></block></block></script></block-definition><block-definition s="variable %&apos;variable&apos;" type="reporter" category="variables" selector="getVar"><comment x="0" y="0" w="90" collapsed="false">Reports the value of the variable with the given name. If said variable does not exist, it cannot report its value, and gives an error.</comment><header></header><code></code><translations></translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="variable"/></list></block></block></script></block-definition><block-definition s="create %&apos;type&apos; variable named %&apos;name&apos;" type="command" category="variables" selector="doDeclareVarType" space="true"><comment x="0" y="0" w="156" collapsed="false">Creates a variable with a specified type and a given name. If said variable already exists, it cannot create it, so it does nothing. If the name slot is left blank, it does not create a variable. If the name slot is not a number/text, it gives an error.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">global<options>global&#xD;sprite&#xD;script</options></input><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><block var="type"/><block var="name"/></list></block></script></block-definition><block-definition s="rename %&apos;variable&apos; to %&apos;name&apos; with scope %&apos;scope&apos;" type="command" category="variables" selector="doRenameVar"><comment x="0" y="0" w="223" collapsed="false">Creates a new variable with the same value, but with a different name, deleting the original. The scope of the new variable is independent of the original one, and is set manually.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"><options>§_getVarNamesDict</options></input><input type="%s" initial="1"></input><input type="%s" readonly="true" initial="1">global<options>global&#xD;sprite&#xD;script</options></input></inputs><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><block var="scope"/><block var="name"/></list></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="name"/><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="variable"/></list></block></list></block><block s="doIf"><block s="reportApplyExtension"><l>var_showing(name)?</l><list><block var="variable"/></list></block><script><block s="doApplyExtension"><l>var_show(name)</l><list><block var="name"/></list></block></script><list></list></block><block s="doApplyExtension"><l>var_delete(name)</l><list><block var="variable"/></list></block></script></block-definition><block-definition s="delete variable %&apos;variable&apos;" type="command" category="variables" selector="doDeleteVar"><comment x="0" y="0" w="111" collapsed="false">Deletes the variable with the given name. If said variable does not exist, it cannot delete it, and does nothing.</comment><header></header><code></code><translations></translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doApplyExtension"><l>var_delete(name)</l><list><block var="variable"/></list></block></script></block-definition><block-definition s="variable %&apos;variable&apos; exists?" type="predicate" category="variables" selector="reportVariableExists"><comment x="0" y="0" w="160" collapsed="false">Reports whether or not a variable of a specified name exists. Works by checking if getting a variable of the specified name errors.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"><options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doApplyExtension"><l>var_get(name)</l><list><block var="variable"/></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="reifyScript"><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><l></l></list></block></block></script></block-definition><block-definition s="set %&apos;variable&apos; to %&apos;value&apos;" type="command" category="variables" selector="doSetVarWritable" space="true"><comment x="0" y="0" w="90" collapsed="false">Sets the value of the variable with the given name. If said variable does not exist, it cannot set the value of it, and does nothing.</comment><header></header><code></code><translations></translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="variable"/><block var="value"/></list></block></script></block-definition><block-definition s="item %&apos;items&apos; of %&apos;list&apos;" type="reporter" category="lists" selector="reportVariadicListItem" space="true"><comment x="0" y="0" w="100" collapsed="false">Returns an item of a list, repeated. Uses rectangular input slots to allow for special inputs.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s" separator="of item" initial="1" min="1">1</input><input type="%l" initial="1"></input></inputs><script><block s="doForEach"><l>item</l><block s="reportListAttribute"><l><option>reverse</option></l><block var="items"/></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="item"/></list></block><l>last</l></list></block><script><block s="doSetVar"><l>list</l><block s="reportListItem"><l><option>last</option></l><block var="list"/></block></block></script><list><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="item"/></list></block><l>random</l></list></block><script><block s="doSetVar"><l>list</l><block s="reportListItem"><l><option>random</option></l><block var="list"/></block></block></script><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="item"/></list></block><l>parent</l></list></block><script><block s="doSetVar"><l>list</l><block s="reportListItem"><l><option>parent</option></l><block var="list"/></block></block></script><l><bool>true</bool></l><script><block s="doSetVar"><l>list</l><block s="reportListItem"><block var="item"/><block var="list"/></block></block></script></list></block></script></block><block s="doReport"><block var="list"/></block></script></block-definition><block-definition s="items %&apos;start&apos; to %&apos;end&apos; of %&apos;list&apos;" type="reporter" category="lists" selector="reportListItems"><comment x="0" y="0" w="135" collapsed="false">Reports a new list that only has the items from the first number to the last number of the given list. The list is reversed if the last number is smaller than the first number.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1<options>1&#xD;last&#xD;random</options></input><input type="%n">3<options>1&#xD;last&#xD;random</options></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="start"/><l>last</l></list></block><script><block s="doSetVar"><l>start</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block></script><list><block s="reportVariadicEquals"><list><block var="start"/><l>random</l></list></block><script><block s="doSetVar"><l>start</l><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block></block></script></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="end"/><l>last</l></list></block><script><block s="doSetVar"><l>end</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block></script><list><block s="reportVariadicEquals"><list><block var="end"/><l>random</l></list></block><script><block s="doSetVar"><l>end</l><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block></block></script></list></block><block s="doReport"><block s="reportListItem"><block s="reportNumbers"><block var="start"/><block var="end"/></block><block var="list"/></block></block></script></block-definition><block-definition s="number of %&apos;items&apos; in %&apos;list&apos;" type="reporter" category="lists" selector="reportItemCount"><comment x="0" y="0" w="112.00000000000001" collapsed="false">Reports the number of items in a list that match any of the given items.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s" initial="1" min="1">thing</input><input type="%l" initial="1"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="items"/><l></l></block></autolambda><list></list></block><block var="list"/></block></block></block></script></block-definition><block-definition s="%&apos;list&apos; sunken %&apos;by/to&apos; %&apos;ranks&apos; ranks" type="reporter" category="lists" selector="reportSunkenList" space="true"><comment x="0" y="0" w="172" collapsed="false">Returns a new list, which is the input list sunken by an amount of ranks or to a rank. Cannot de-sink a list, sinking is an irreversible operation.</comment><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%s" readonly="true" initial="1">by<options>by&#xD;to</options></input><input type="%n" initial="1">1</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="by/to"/><l>to</l></list></block><script><block s="doSetVar"><l>ranks</l><block s="reportDifference"><block s="reportListAttribute"><l><option>rank</option></l><block var="list"/></block><block var="ranks"/></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>function</l></list></block><block s="doSetVar"><l>function</l><block s="reifyReporter"><script><block s="doDeclareVariables"><list><l>output</l></list></block><block s="doSetVar"><l>output</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="list"/><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="ranks"/><l>0</l></list></block><block s="reportIsA"><block var="item"/><l><option>list</option></l></block></list></block><script><block s="doForEach"><l>item</l><block s="evaluate"><block var="function"/><list><block var="item"/><block s="reportDifference"><block var="ranks"/><l>1</l></block></list></block><script><block s="doAddToList"><block var="item"/><block var="output"/></block></script></block></script><script><block s="doAddToList"><block var="item"/><block var="output"/></block></script></block></script></block><block s="doReport"><block var="output"/></block></script><list><l>list</l><l>ranks</l></list></block></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block var="list"/><block var="ranks"/></list></block></block></script></block-definition><block-definition s="warp %&apos;script&apos;" type="reporter" category="other" selector="reportWarp" space="true"><comment x="0" y="0" w="90" collapsed="false">Like the normal warp block, this reporter warps scripts to get their results quickly.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doWarp"><script><block s="doSetVar"><l>script</l><block s="evaluate"><block var="script"/><list></list></block></block></script></block><block s="doReport"><block var="script"/></block></script></block-definition><block-definition s="log %&apos;base&apos; of %&apos;number&apos;" type="reporter" category="operators" selector="reportLogarithm"><comment x="0" y="0" w="102" collapsed="false">Returns the logarithm of a number, with a configurable base.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">10</input><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportMonadic"><l><option>lg</option></l><block var="number"/></block><block s="reportMonadic"><l><option>lg</option></l><block var="base"/></block></block></block></script></block-definition><block-definition s="interpolate %&apos;start&apos; to %&apos;end&apos; by %&apos;progress&apos;" type="reporter" category="operators" selector="lerp" space="true"><comment x="0" y="0" w="193" collapsed="false">Interpolates between two values.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0</input><input type="%n" initial="1">10</input><input type="%n" initial="1">0.5</input></inputs><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="start"/><block s="reportDifference"><l>1</l><block var="progress"/></block></list></block><block s="reportVariadicProduct"><list><block var="end"/><block var="progress"/></list></block></list></block></block></script></block-definition><block-definition s="bezier %&apos;values&apos; by %&apos;progress&apos;" type="reporter" category="operators" selector="reportBezier"><comment x="0" y="0" w="172.0000000000001" collapsed="false">Basically just a bezier curve, but in 1 dimension, so only one axis.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%n" initial="2">0&#xD;10</input><input type="%n" initial="1">0.5</input></inputs><script><block s="doUntil"><block s="reportVariadicLessThanOrEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="values"/></block><l>1</l></list></block><script><block s="doFor"><l>item</l><l>1</l><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="values"/></block><l>1</l></block><script><block s="doReplaceInList"><block var="item"/><block var="values"/><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><block var="item"/><block var="values"/></block><block s="reportDifference"><l>1</l><block var="progress"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="item"/><l>1</l></list></block><block var="values"/></block><block var="progress"/></list></block></list></block></block></script></block><block s="doDeleteFromList"><l><option>last</option></l><block var="values"/></block></script></block><block s="doReport"><block s="reportListItem"><l>1</l><block var="values"/></block></block></script></block-definition><block-definition s="memoize %&apos;reporter&apos; with inputs %&apos;inputs&apos;" type="reporter" category="operators" selector="reportMemoize" space="true"><comment x="0" y="0" w="212.8724609374999" collapsed="false">If the inputs or the reporter is new, evaluates the reporter with the inputs and reports the result. If the reporter and inputs have already been evaluated, reports that result.</comment><variables><list struct="atomic" id="540">match</list></variables><header></header><code></code><translations></translations><inputs><input type="%repRing" initial="1">1</input><input type="%mult%s" initial="1"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="match"/><l><option>list</option></l></block><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="match"/></block><block s="reportNewList"><list><block var="reporter"/><block var="inputs"/></list></block></block></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportNewList"><list><block var="reporter"/><block var="inputs"/></list></block><block s="evaluate"><block var="reporter"/><block var="inputs"/></block></list></block><block var="match"/></block></script><list></list></block></script><script><block s="doSetVar"><l>match</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportNewList"><list><block var="reporter"/><block var="inputs"/></list></block><block s="evaluate"><block var="reporter"/><block var="inputs"/></block></list></block></list></block></block></script></block><block s="doReport"><block s="reportListItem"><l>2</l><block s="reportListItem"><block s="reportListIndex"><block s="reportNewList"><list><block var="reporter"/><block var="inputs"/></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="match"/></block></block><block var="match"/></block></block></block></script></block-definition><block-definition s="static random from %&apos;min&apos; to %&apos;max&apos;" type="reporter" category="operators" selector="reportStaticRandom" space="true"><comment x="0" y="0" w="200.99999999999977" collapsed="false">Like pick random, but it stores the outputs of the inputs, creating new outputs when encountering new inputs, and returning old outputs when encountering old inputs.</comment><variables><list struct="atomic" id="644">random set</list></variables><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input><input type="%n" initial="1">10</input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="random set"/><l><option>list</option></l></block><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="random set"/></block><block s="reportNewList"><list><block var="min"/><block var="max"/></list></block></block></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportNewList"><list><block var="min"/><block var="max"/></list></block><block s="reportRandom"><block var="min"/><block var="max"/></block></list></block><block var="random set"/></block></script><list></list></block></script><script><block s="doSetVar"><l>random set</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportNewList"><list><block var="min"/><block var="max"/></list></block><block s="reportRandom"><block var="min"/><block var="max"/></block></list></block></list></block></block></script></block><block s="doReport"><block s="reportListItem"><l>2</l><block s="reportListItem"><block s="reportListIndex"><block s="reportNewList"><list><block var="min"/><block var="max"/></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="random set"/></block></block><block var="random set"/></block></block></block></script></block-definition><block-definition s="every %&apos;frames&apos; frames" type="hat" category="control" selector="recieveFrames" semantics="rule"><comment x="0" y="0" w="102" collapsed="false">Runs the script below it, with a delay lasting a certain amount of frames.</comment><variables><list struct="atomic" id="746">counter</list></variables><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">2</input></inputs><script><block s="doSetVar"><l>counter</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportModulus"><block s="reportVariadicSum"><list><block var="counter"/><l>1</l></list></block><block var="frames"/></block></block></block><block s="doReport"><block s="reportVariadicEquals"><list><block var="counter"/><l>0</l></list></block></block></script></block-definition><block-definition s="toggle pen" type="command" category="pen" selector="toggle"><comment x="0" y="0" w="90" collapsed="false">Toggles the pen on or off.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="getPenDown"></block><script><block s="up"></block></script><script><block s="down"></block></script></block></script></block-definition><block-definition s="run %&apos;script&apos; with pen %&apos;state&apos;" type="command" category="pen" selector="doRunWithPen"><comment x="0" y="0" w="106" collapsed="false">Runs the script with the pen up or down.</comment><header></header><code></code><translations></translations><inputs><input type="%cmdRing" initial="1"></input><input type="%s" readonly="true" initial="1">$_down<options>up=$_up&#xD;down=$_down</options></input></inputs><script><block s="doDeclareVariables"><list><l>pen state</l></list></block><block s="doSetVar"><l>pen state</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="getPenDown"></block><l>1</l></list></block><block s="reportNewList"><list><l>up</l><l>down</l></list></block></block></block><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="pen state"/><block s="reportJoinWords"><list><block var="state"/></list></block></list></block><script><block s="doIfElse"><block s="getPenDown"></block><script><block s="up"></block></script><script><block s="down"></block></script></block></script><list></list></block><block s="doRun"><block var="script"/><list></list></block><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="pen state"/><block s="reportJoinWords"><list><block var="state"/></list></block></list></block><script><block s="doIfElse"><block s="getPenDown"></block><script><block s="up"></block></script><script><block s="down"></block></script></block></script><list></list></block></script></block-definition><block-definition s="sound %&apos;sound&apos;" type="reporter" category="sound" selector="reportSound"><comment x="0" y="0" w="80" collapsed="false">Reports the specified sound.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_soundsMenu</options></input></inputs><script><block s="doReport"><block s="reportNewSoundFromSamples"><block s="reportGetSoundAttribute"><l><option>samples</option></l><block var="sound"/></block><block s="reportGetSoundAttribute"><l><option>sample rate</option></l><block var="sound"/></block></block></block></script></block-definition><block-definition s="mouse x relative to %&apos;object&apos;" type="reporter" category="sensing" selector="reportMouseXRelative"><comment x="0" y="0" w="198" collapsed="false">Gets the mouse x in percentage, relative to the left and right of the chosen object.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">Stage<options>§_objectsMenu</options></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportMouseX"></block><block s="reportAttributeOf"><l><option>left</option></l><block var="object"/></block></block><block s="reportQuotient"><l>100</l><block s="reportAttributeOf"><l><option>width</option></l><block var="object"/></block></block></list></block></block></script></block-definition><block-definition s="change costume by %&apos;delta&apos;" type="command" category="looks" selector="doWearOffsetCostume"><comment x="0" y="0" w="146" collapsed="false">Changes the worn costume number by a specified amount.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input></inputs><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="getCostumeIdx"></block><l>0</l></list></block><script><block s="doSwitchToCostume"><block s="reportVariadicSum"><list><block s="reportModulus"><block s="reportVariadicSum"><list><block s="getCostumeIdx"></block><block var="delta"/><l>-1</l></list></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportGet"><l><option>costumes</option></l></block></block></block><l>1</l></list></block></block></script><list></list></block></script></block-definition><block-definition s="pick random real %&apos;min&apos; to %&apos;max&apos;" type="reporter" category="operators" selector="reportRandomReal"><comment x="0" y="0" w="158" collapsed="false">Reports a random real number within the minimum to maximum range. Real means that it reports values with decimal places.</comment><header></header><code></code><translations></translations><inputs><input type="%n">0</input><input type="%n">10</input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportListContainsItem"><block s="reportTextSplit"><block s="reportJoinWords"><list><block var="min"/><block var="max"/></list></block><l><option>letter</option></l></block><l>.</l></block><block s="reportRandom"><block var="min"/><block var="max"/></block><block s="reportRandom"><block s="reportJoinWords"><list><block var="min"/><l>.</l></list></block><block var="max"/></block></block></block></script></block-definition><block-definition s="a %&apos;numerator&apos; in %&apos;denominator&apos; chance?" type="predicate" category="operators" selector="reportChance"><comment x="0" y="0" w="125.00000000000013" collapsed="false">Reports true if a random number between 0 and the second number is less than the first number.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">3</input></inputs><script><block s="doReport"><block s="reportVariadicLessThan"><list><block s="reportRandom"><l>0.</l><block var="denominator"/></block><block var="numerator"/></list></block></block></script></block-definition><block-definition s="every %&apos;time&apos; secs with offset of %&apos;offset&apos; secs" type="hat" category="control" selector="recieveTime" space="true" semantics="rule"><comment x="0" y="0" w="105" collapsed="false">Runs the script below it at a given interval.</comment><variables><list struct="atomic" id="969">current time,stepped time</list></variables><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input><input type="%n" initial="1">0</input></inputs><script><block s="doSetVar"><l>stepped time</l><block s="reportVariadicProduct"><list><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>floor</option></l><block s="reportDifference"><block s="reportQuotient"><block var="current time"/><block s="reportVariadicProduct"><list><block var="time"/><l>1000</l></list></block></block><block s="reportModulus"><block var="offset"/><block var="time"/></block></block></block><block s="reportModulus"><block var="offset"/><block var="time"/></block></list></block><block var="time"/><l>1000</l></list></block></block><block s="doSetVar"><l>current time</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doReport"><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportDifference"><block var="current time"/><block var="stepped time"/></block><block s="reportVariadicProduct"><list><block var="time"/><l>1000</l></list></block></list></block></block></script></block-definition><block-definition s="move %&apos;steps&apos; steps in direction %&apos;direction&apos;" type="command" category="motion" selector="sidestep"><comment x="0" y="0" w="194" collapsed="false">Moves the sprite in the specified direction by a specified amount of steps without changing the direction of the sprite.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">10</input><input type="%n" initial="1">90<options>§_dir=&#xD;(90) right=90&#xD;(-90) left=-90&#xD;(0) up=0&#xD;(180) down=180&#xD;random=$_random</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="direction"/><l>random</l></list></block><script><block s="doSetVar"><l>direction</l><block s="reportRandom"><l>0.</l><l>360</l></block></block></script><list></list></block><block s="doGotoObject"><block s="reportVariadicSum"><list><block s="getPosition"></block><block s="reportNewList"><list><block s="reportVariadicProduct"><list><block var="steps"/><block s="reportMonadic"><l><option>sin</option></l><block var="direction"/></block></list></block><block s="reportVariadicProduct"><list><block var="steps"/><block s="reportMonadic"><l><option>cos</option></l><block var="direction"/></block></list></block></list></block></list></block></block></script></block-definition><block-definition s="turn towards direction %&apos;direction&apos; by %&apos;percent&apos; %" type="command" category="motion" selector="setHeadingPartial"><comment x="0" y="0" w="222" collapsed="false">Turns the sprite by a percentage of the amount of turn needed to face the target direction.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">90<options>§_dir=&#xD;(90) right=90&#xD;(-90) left=-90&#xD;(0) up=0&#xD;(180) down=180</options></input><input type="%n" initial="1">50</input></inputs><script><block s="turn"><block s="reportVariadicProduct"><list><block s="reportDifference"><l>180</l><block s="reportModulus"><block s="reportDifference"><l>180</l><block s="reportDifference"><block var="direction"/><block s="direction"></block></block></block><l>360</l></block></block><block s="reportQuotient"><block var="percent"/><l>100</l></block></list></block></block></script></block-definition><block-definition s="rotate $clockwise %&apos;rotation&apos; degrees around %&apos;destination&apos;" type="command" category="motion" selector="doOrbit"><comment x="0" y="0" w="177" collapsed="false">Rotates the sprite around a location clockwise by a set amount. Does not change the sprite&apos;s direction.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">15</input><input type="%s" readonly="true" initial="1">center<options>§_destinationsMenu</options></input></inputs><script><block s="doIf"><block s="reportVariadicNotEquals"><list><block s="reportModulus"><block var="rotation"/><l>360</l></block><l>0</l></list></block><script><block s="doDeclareVariables"><list><l>clone</l></list></block><block s="doSetVar"><l>clone</l><block s="newClone"><l><option>myself</option></l></block></block><block s="doSetVar"><l>destination</l><block s="reportAskFor"><block var="clone"/><block s="reifyReporter"><script><block s="up"></block><block s="doGotoObject"><block var="destination"/></block><block s="doReport"><block s="getPosition"></block></block></script><list></list></block><list></list></block></block><block s="doTellTo"><block var="clone"/><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block><block s="doChangeVar"><l>destination</l><block s="reportVariadicProduct"><list><block s="evaluate"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="reportMonadic"><l><option>sin</option></l><l></l></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="reportMonadic"><l><option>cos</option></l><l></l></block></autolambda><list></list></block></list></block><list><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>atan</option></l><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="destination"/></block><block s="xPosition"></block></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="destination"/></block><block s="yPosition"></block></block></block></block><block s="reportVariadicProduct"><list><block s="reportVariadicLessThan"><list><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="destination"/></block><block s="yPosition"></block></block><l>0</l></list></block><l>180</l><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="destination"/></block><block s="xPosition"></block></block><l>0</l></list></block><l>2</l></list></block><l>1</l></block></list></block><block var="rotation"/><l>-180</l></list></block></list></block><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportPower"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="destination"/></block><block s="xPosition"></block></block><l>2</l></block><block s="reportPower"><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="destination"/></block><block s="yPosition"></block></block><l>2</l></block></list></block></block></list></block></block><block s="doGotoObject"><block var="destination"/></block></script><list></list></block></script></block-definition><block-definition s="sound %&apos;sound&apos; at %&apos;Hz&apos; Hz" type="reporter" category="sound" selector="reportSoundAtFrequency"><comment x="0" y="0" w="136" collapsed="false">Reports a copy of the sound at the specified frequency.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_soundsMenu</options></input><input type="%n" initial="1">44100<options>22.05 kHz=22050&#xD;44.1 kHz=44100&#xD;48 kHz=48000&#xD;88.2 kHz=88200&#xD;96 kHz=96000</options></input></inputs><script><block s="doReport"><block s="reportNewSoundFromSamples"><block s="reportGetSoundAttribute"><l><option>samples</option></l><block var="sound"/></block><block var="Hz"/></block></block></script></block-definition><block-definition s="costume %&apos;costume&apos;" type="reporter" category="looks" selector="getCostume"><comment x="0" y="0" w="80" collapsed="false">Reports the specified costume.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_costumesMenu</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="costume"/><l>Turtle</l></list></block><block s="reportNot"><block s="reportListContainsItem"><block s="reportGetImageAttribute"><l><option>name</option></l><block s="reportGet"><l><option>costumes</option></l></block></block><l>Turtle</l></block></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="costume"/><l>current</l></list></block><block s="reportVariadicEquals"><list><block s="getCostumeIdx"></block><l>0</l></list></block></list></block></list></block><l>Turtle</l><block s="reportListItem"><block s="reportListIndex"><block var="costume"/><block s="reportGetImageAttribute"><l><option>name</option></l><block s="reportGet"><l><option>costumes</option></l></block></block></block><block s="reportGet"><l><option>costumes</option></l></block></block></block></block></script></block-definition><block-definition s="costume %&apos;attribute&apos; %&apos;value&apos; exists?" type="predicate" category="looks" selector="reportCostumeExists"><comment x="0" y="0" w="173" collapsed="false">Returns whether or not a costume with the given property exists.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" irreplaceable="true" initial="1">$_named<options>named=$_named&#xD;number=$_number&#xD;&#126;&#xD;of width=$_of width&#xD;of height=$_of height&#xD;&#126;&#xD;with pixels=$_with pixels&#xD;with colors=$_with colors&#xD;matching=$_matching</options></input><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="attribute"/></list></block><l>named</l></list></block><block s="reportListContainsItem"><block s="reportGetImageAttribute"><l><option>name</option></l><block s="reportGet"><l><option>costumes</option></l></block></block><block var="value"/></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="attribute"/></list></block><l>number</l></list></block><block s="reportVariadicEquals"><list><block var="value"/><block s="reportRound"><block var="value"/></block><block s="reportVariadicMax"><list><block s="reportVariadicMin"><list><block var="value"/><l>1</l></list></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportGet"><l><option>costumes</option></l></block></block></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="attribute"/></list></block><l>of width</l></list></block><block s="reportListContainsItem"><block s="reportGetImageAttribute"><l><option>width</option></l><block s="reportGet"><l><option>costumes</option></l></block></block><block var="value"/></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="attribute"/></list></block><l>of height</l></list></block><block s="reportListContainsItem"><block s="reportGetImageAttribute"><l><option>height</option></l><block s="reportGet"><l><option>costumes</option></l></block></block><block var="value"/></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="attribute"/></list></block><l>with pixels</l></list></block><block s="reportListContainsItem"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block s="reportGet"><l><option>costumes</option></l></block></block><block var="value"/></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="attribute"/></list></block><l>with colors</l></list></block><block s="reportListContainsItem"><block s="reportGetImageAttribute"><l><option>colors</option></l><block s="reportGet"><l><option>costumes</option></l></block></block><block var="value"/></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="attribute"/></list></block><l>matching</l></list></block><block s="reportListContainsItem"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block s="reportGetImageAttribute"><l><option>width</option></l><l></l></block><block s="reportGetImageAttribute"><l><option>height</option></l><l></l></block></list></block></autolambda><list></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportGetImageAttribute"><l><option>pixels</option></l><l></l></block><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="value"/></block></list></block></autolambda><list></list></block><block s="reportGet"><l><option>costumes</option></l></block></block></block><block s="reportNewList"><list><block s="reportGetImageAttribute"><l><option>width</option></l><block var="value"/></block><block s="reportGetImageAttribute"><l><option>height</option></l><block var="value"/></block></list></block></block><l>0</l></block></block></block></block></block></block></block></block></script></block-definition><block-definition s="costume name" type="reporter" category="looks" selector="getCostumeName"><comment x="0" y="0" w="90" collapsed="false">Reports the name of the current costume.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportAttributeOf"><l><option>costume name</option></l><block s="reportGet"><l><option>self</option></l></block></block></block></script></block-definition><block-definition s="wait %&apos;time&apos; secs or until %&apos;condition&apos;" type="command" category="control" selector="doWaitTimeOrCondition"><comment x="0" y="0" w="159.42343749999998" collapsed="false">Waits until a specified amount of time passes, or ends waiting early once the condition becomes true.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input><input type="%boolUE" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>start time</l></list></block><block s="doSetVar"><l>start time</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doWaitUntil"><block s="reportVariadicOr"><list><block s="evaluate"><block var="condition"/><list></list></block><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportVariadicSum"><list><block var="start time"/><block s="reportVariadicProduct"><list><block var="time"/><l>1000</l></list></block></list></block></list></block></list></block></block></script></block-definition><block-definition s="wait until %&apos;time&apos; secs elapsed" type="command" category="control" selector="doWaitUntilTimeElapsed"><comment x="0" y="0" w="151" collapsed="false">Waits until the specified amount of time has elapsed since last run. Does not wait on first run.</comment><variables><list struct="atomic" id="1615">last run time</list></variables><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input></inputs><script><block s="doWaitUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="last run time"/><l>0</l></list></block><block s="reportVariadicGreaterThan"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportVariadicSum"><list><block var="last run time"/><block s="reportVariadicProduct"><list><block var="time"/><l>1000</l></list></block></list></block></list></block></list></block></block><block s="doSetVar"><l>last run time</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block></script></block-definition><block-definition s="%&apos;xor&apos;" type="predicate" category="operators" selector="reportVariadicXor" space="true"><comment x="0" y="0" w="105" collapsed="false">The exclusive or function. Reports true if there are an odd number of true inputs.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%boolUE" separator="xor" collapse="xany" initial="2"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><l>1</l><block s="reportModulus"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="evaluate"><block var="value"/><list></list></block></autolambda><list><l>value</l></list></block><block var="xor"/></block></block><l>2</l></block></list></block></block></script></block-definition><block-definition s="mouse y relative to %&apos;object&apos;" type="reporter" category="sensing" selector="reportMouseYRelative"><comment x="0" y="0" w="198" collapsed="false">Gets the mouse y in percentage, relative to the left and right of the chosen object.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">Stage<options>§_objectsMenu</options></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportMouseY"></block><block s="reportAttributeOf"><l><option>bottom</option></l><block var="object"/></block></block><block s="reportQuotient"><l>100</l><block s="reportAttributeOf"><l><option>height</option></l><block var="object"/></block></block></list></block></block></script></block-definition><block-definition s="%&apos;method&apos; to %&apos;time&apos; secs %&apos;action&apos;" type="command" category="control" selector="doRateLimit"><comment x="0" y="0" w="161" collapsed="false">Limits the rate of a script running. Debounce only allows running if enough time has elapsed since last run attempt, while throttle does so for last actual runs.</comment><variables><list struct="atomic" id="1702">last run time</list></variables><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" irreplaceable="true" initial="1">$_debounced<options>debounced=$_debounced&#xD;throttled=$_throttled</options></input><input type="%n" initial="1">1</input><input type="%cs" irreplaceable="true" initial="1"></input></inputs><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="last run time"/><l>0</l></list></block><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="last run time"/></block><block s="reportVariadicProduct"><list><block var="time"/><l>1000</l></list></block></list></block></list></block><script><block s="doSetVar"><l>last run time</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doRun"><block var="action"/><list></list></block></script><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="method"/><l>debounced</l></list></block><script><block s="doSetVar"><l>last run time</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block></script><list></list></block></script></block></script></block-definition><block-definition s="repeat for %&apos;time&apos; secs %&apos;action&apos;" type="command" category="control" selector="doRepeatTime"><comment x="0" y="0" w="125.85683593749991" collapsed="false">Repeats the script until a specified amount of time has elapsed. Due to some inconsistencies, this may run a different amount of times, so results may vary.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input><input type="%ca" irreplaceable="true" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>start time</l></list></block><block s="doSetVar"><l>start time</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doUntil"><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportVariadicSum"><list><block var="start time"/><block s="reportVariadicProduct"><list><block var="time"/><l>1000</l></list></block></list></block></list></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="for %&apos;upvar&apos; = %&apos;start value&apos; to %&apos;end value&apos; over %&apos;time&apos; secs %&apos;action&apos;" type="command" category="control" selector="doForTime"><comment x="0" y="0" w="231.9999999999999" collapsed="false">Repeatedly runs an action for a specified amount of time, interpolating the upvar from the starting value to the ending in the specified amount of time. Due to some inconsistencies, the action may be ran a different amount of times, so the results of this block may vary.</comment><header></header><code></code><translations></translations><inputs><input type="%upvar" initial="1">i</input><input type="%n" initial="1">0</input><input type="%n" initial="1">10</input><input type="%n" initial="1">1</input><input type="%ca" irreplaceable="true" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>start time</l></list></block><block s="doSetVar"><l>start time</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doUntil"><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportVariadicSum"><list><block var="start time"/><block s="reportVariadicProduct"><list><block var="time"/><l>1000</l></list></block></list></block></list></block><script><block s="doSetVar"><l>upvar</l><block s="reportVariadicSum"><list><block var="start value"/><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="start time"/></block><block s="reportVariadicProduct"><list><block var="time"/><l>1000</l></list></block></block><block s="reportDifference"><block var="end value"/><block var="start value"/></block></list></block></list></block></block><block s="doRun"><block var="action"/><list></list></block></script></block><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="upvar"/><block var="end value"/></list></block><script><block s="doSetVar"><l>upvar</l><block var="end value"/></block><block s="doRun"><block var="action"/><list></list></block></script><list></list></block></script></block-definition><block-definition s="report %&apos;value&apos; after %&apos;time&apos; secs" type="reporter" category="control" selector="reportWait"><comment x="0" y="0" w="146" collapsed="false">Reports the given value after a specified number of seconds.</comment><header></header><code></code><translations></translations><inputs><input type="%s">world</input><input type="%n">1</input></inputs><script><block s="doWait"><block var="time"/></block><block s="doReport"><block var="value"/></block></script></block-definition><block-definition s="change %&apos;variable&apos; by %&apos;delta&apos;" type="command" category="variables" selector="doChangeVarWritable"><comment x="0" y="0" w="130" collapsed="false">Changes the value of the variable with the given name by the given amount.</comment><header></header><code></code><translations></translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input><input type="%n"></input></inputs><script><block s="doTellTo"><block s="reportEnvironment"><l><option>caller</option></l></block><block s="reifyScript"><script><block s="doChangeVar"><l></l><l></l></block></script><list></list></block><list><block var="variable"/><block var="delta"/></list></block></script></block-definition><block-definition s="go to %&apos;object&apos; at x: %&apos;x&apos; % y: %&apos;y&apos; %" type="command" category="motion" selector="gotoXYRelative" space="true"><comment x="0" y="0" w="236" collapsed="false">Sets the position in percentage, relative to the top, bottom, left, and right of the chosen object.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">Stage<options>§_objectsMenu</options></input><input type="%n" initial="1">50</input><input type="%n" initial="1">50</input></inputs><script><block s="gotoXY"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>left</option></l><block var="object"/></block><block s="reportVariadicProduct"><list><block s="reportAttributeOf"><l><option>width</option></l><block var="object"/></block><block var="x"/><l>.01</l></list></block></list></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>bottom</option></l><block var="object"/></block><block s="reportVariadicProduct"><list><block s="reportAttributeOf"><l><option>height</option></l><block var="object"/></block><block var="y"/><l>.01</l></list></block></list></block></block></script></block-definition><block-definition s="secs to do %&apos;script&apos;" type="reporter" category="control" selector="getRunTime"><comment x="0" y="0" w="127.98476562499991" collapsed="false">Reports the amount of time in seconds it takes for the script to complete. Do note that the script is actually run in the process.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doDeclareVariables"><list><l>start</l><l>end</l></list></block><block s="doSetVar"><l>start</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doRun"><block var="script"/><list></list></block><block s="doSetVar"><l>end</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doReport"><block s="reportQuotient"><block s="reportDifference"><block var="end"/><block var="start"/></block><l>1000</l></block></block></script></block-definition><block-definition s="%&apos;list&apos; capped %&apos;by/to&apos; %&apos;ranks&apos; ranks" type="reporter" category="lists" selector="reportCappedList"><comment x="0" y="0" w="172" collapsed="false">Returns a new list, which is the input list capped by an amount of ranks or to a rank. Cannot de-cap a list, capping is an irreversible operation.</comment><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%s" readonly="true" initial="1">by<options>by&#xD;to</options></input><input type="%n" initial="1">1</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="by/to"/><l>by</l></list></block><script><block s="doSetVar"><l>ranks</l><block s="reportDifference"><block s="reportListAttribute"><l><option>rank</option></l><block var="list"/></block><block var="ranks"/></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>function</l></list></block><block s="doSetVar"><l>function</l><block s="reifyReporter"><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="depth"/><block var="ranks"/></list></block><script><block s="doDeclareVariables"><list><l>output</l></list></block><block s="doSetVar"><l>output</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="list"/><script><block s="doAddToList"><block s="reportIfElse"><block s="reportIsA"><block var="item"/><l><option>list</option></l></block><block s="evaluate"><block var="function"/><list><block var="item"/><block s="reportVariadicSum"><list><block var="depth"/><l>1</l></list></block></list></block><block var="item"/></block><block var="output"/></block></script></block><block s="doReport"><block var="output"/></block></script><script><block s="doReport"><block s="reportListAttribute"><l><option>flatten</option></l><block var="list"/></block></block></script></block></script><list><l>list</l><l>depth</l></list></block></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block var="list"/><l>1</l></list></block></block></script></block-definition><block-definition s="%&apos;attribute&apos; of %&apos;list&apos;" type="reporter" category="lists" selector="reportListAttributeExtra" space="true"><comment w="100" collapsed="false">Reports an attribute of the list. Scrambled shuffles around every item of a list, including the items within lists inside. Commons keeps only the duplicate items of the list.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">$_scrambled<options>length=$_length&#xD;rank=$_rank&#xD;dimensions=$_dimensions&#xD;flatten=$_flatten&#xD;columns=$_columns&#xD;uniques=$_uniques&#xD;distribution=$_distribution&#xD;sorted=$_sorted&#xD;shuffled=$_shuffled&#xD;reverse=$_reverse&#xD;&#126;&#xD;text=$_text&#xD;lines=$_lines&#xD;csv=$_csv&#xD;json=$_json&#xD;&#126;&#xD;hidden={&#xD;size=$_size&#xD;transpose=$_transpose&#xD;Σ=$_Σ&#xD;}&#xD;custom={&#xD;scrambled=$_scrambled&#xD;commons=$_commons&#xD;}</options></input><input type="%l" initial="1"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="attribute"/></list></block><l>scrambled</l></list></block><block s="evaluate"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>output</l><l>flatten</l><l>function</l></list></block><block s="doSetVar"><l>output</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>true</bool></l></block></autolambda><list></list></block><block var="list"/></block></block><block s="doSetVar"><l>flatten</l><block s="reportListAttribute"><l><option>flatten</option></l><block var="list"/></block></block><block s="doSetVar"><l>function</l><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><block s="reportMap"><block var="function"/><l/></block><block s="evaluate"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>number</l><l>value</l></list></block><block s="doSetVar"><l>number</l><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="flatten"/></block></block></block><block s="doSetVar"><l>value</l><block s="reportListItem"><block var="number"/><block var="flatten"/></block></block><block s="doDeleteFromList"><block var="number"/><block var="flatten"/></block><block s="doReport"><block var="value"/></block></script><list></list></block><list></list></block></block></autolambda><list></list></block></block><block s="doReport"><block s="reportMap"><block var="function"/><block var="output"/></block></block></script><list></list></block><list></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="attribute"/></list></block><l>commons</l></list></block><block s="evaluate"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>output</l><l>uniques</l></list></block><block s="doSetVar"><l>output</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>uniques</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="list"/><script><block s="doIfElse"><block s="reportListContainsItem"><block var="uniques"/><block var="item"/></block><script><block s="doAddToList"><block var="item"/><block var="output"/></block></script><script><block s="doAddToList"><block var="item"/><block var="uniques"/></block></script></block></script></block><block s="doReport"><block var="output"/></block></script><list></list></block><list></list></block><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportListAttribute"><l></l><l/></block></autolambda><list></list></block><list><block var="attribute"/><block var="list"/></list></block></block></block></block></script></block-definition><block-definition s="%&apos;list&apos; sorted by %&apos;ring&apos;" type="reporter" category="lists" selector="reportListSortedBy"><comment x="0" y="0" w="118" collapsed="false">Reports the input list sorted by the operation. The input names of the ring are identical to that of the list mapping reporter, but remain the standard #1, #2, #3, etc. due to the inability to change the names within custom blocks.</comment><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%repRing" irreplaceable="true" initial="1"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><block s="reportListItem"><l>2</l><l/></block><block var="list"/></block></autolambda><list></list></block><block s="reportListAttribute"><l><option>sorted</option></l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block var="value"/><block var="index"/></list></block></autolambda><list><l>value</l><l>index</l></list></block><block s="reportMap"><block var="ring"/><block var="list"/></block></block></block></block></block></script></block-definition><block-definition s="indices of %&apos;items&apos; in %&apos;list&apos;" type="reporter" category="lists" selector="reportListIndices"><comment w="154" collapsed="false">Reports a table of indices of items in a list. Column 1 contains the indices, while column 2 contains which item it matched.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s" initial="1">thing</input><input type="%l" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>output table</l><l>index</l></list></block><block s="doSetVar"><l>output table</l><l></l></block><block s="doForEach"><l>item</l><block var="list"/><script><block s="doChangeVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportListContainsItem"><block var="items"/><block var="item"/></block><script><block s="doAddToList"><block s="reportNewList"><list><block var="index"/><block var="item"/></list></block><block var="output table"/></block></script><list></list></block></script></block><block s="doReport"><block var="output table"/></block></script></block-definition><block-definition s="glide %&apos;time&apos; secs to %&apos;object&apos; at x: %&apos;x&apos; % y: %&apos;y&apos; %" type="command" category="motion" selector="doGlideRelative"><comment x="0" y="0" w="236" collapsed="false">Glides to a position in percentage, relative to the top, bottom, left, and right of the chosen object.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input><input type="%s" readonly="true" initial="1">Stage<options>§_objectsMenu</options></input><input type="%n" initial="1">50</input><input type="%n" initial="1">50</input></inputs><script><block s="doGlide"><block var="time"/><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>left</option></l><block var="object"/></block><block s="reportVariadicProduct"><list><block s="reportAttributeOf"><l><option>width</option></l><block var="object"/></block><block var="x"/><l>.01</l></list></block></list></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>bottom</option></l><block var="object"/></block><block s="reportVariadicProduct"><list><block s="reportAttributeOf"><l><option>height</option></l><block var="object"/></block><block var="y"/><l>.01</l></list></block></list></block></block></script></block-definition><block-definition s="%&apos;relation&apos; from %&apos;location&apos; to %&apos;destination&apos;" type="reporter" category="sensing" selector="reportRelationFromTo" space="true"><comment x="0" y="0" w="249" collapsed="false">More accurate and expansive version of the _ to _ reporter, without the ray length option.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">$_distance<options>distance=$_distance&#xD;direction=$_direction</options></input><input type="%s" readonly="true" initial="1">$_myself<options>§_locationMenu</options></input><input type="%s" readonly="true" initial="1">$_mouse-pointer<options>§_destinationsMenu</options></input></inputs><script><block s="doDeclareVariables"><list><l>clone</l></list></block><block s="doSetVar"><l>clone</l><block s="newClone"><l><option>myself</option></l></block></block><block s="doSetVar"><l>location</l><block s="reportAskFor"><block var="clone"/><block s="reifyReporter"><script><block s="up"></block><block s="doGotoObject"><block var="location"/></block><block s="doReport"><block s="getPosition"></block></block></script><list></list></block><list></list></block></block><block s="doSetVar"><l>destination</l><block s="reportAskFor"><block var="clone"/><block s="reifyReporter"><script><block s="up"></block><block s="doGotoObject"><block var="destination"/></block><block s="doReport"><block s="getPosition"></block></block></script><list></list></block><list></list></block></block><block s="doTellTo"><block var="clone"/><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="relation"/><l>distance</l></list></block><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportPower"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="destination"/></block><block s="reportListItem"><l>1</l><block var="location"/></block></block><l>2</l></block><block s="reportPower"><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="destination"/></block><block s="reportListItem"><l>2</l><block var="location"/></block></block><l>2</l></block></list></block></block><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>atan</option></l><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="destination"/></block><block s="reportListItem"><l>1</l><block var="location"/></block></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="destination"/></block><block s="reportListItem"><l>2</l><block var="location"/></block></block></block></block><block s="reportVariadicProduct"><list><block s="reportVariadicLessThan"><list><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="destination"/></block><block s="reportListItem"><l>2</l><block var="location"/></block></block><l>0</l></list></block><l>180</l><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="destination"/></block><block s="reportListItem"><l>1</l><block var="location"/></block></block><l>0</l></list></block><l>2</l></list></block><l>1</l></block></list></block></list></block></block></block></script></block-definition><block-definition s="%&apos;beats&apos; beats at current tempo" type="reporter" category="sound" selector="reportLengthOfBeats" space="true"><comment x="0" y="0" w="167" collapsed="false">Reports how long a certain number of beats takes at the current tempo in seconds.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0.5</input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="beats"/><block s="reportQuotient"><block s="getTempo"></block><l>60</l></block></list></block></block></script></block-definition><block-definition s="swap variables %&apos;variable 1&apos; %&apos;variable 2&apos;" type="command" category="variables" selector="doSwapVars"><comment x="0" y="0" w="164.00000000000023" collapsed="false">Swaps the values of two variables.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"><options>§_getVarNamesDict</options></input><input type="%s" initial="1"><options>§_getVarNamesDict</options></input></inputs><script><block s="doDeclareVariables"><list><l>swapping variable</l></list></block><block s="doSetVar"><l>swapping variable</l><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="variable 1"/></list></block></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="variable 1"/><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="variable 2"/></list></block></list></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="variable 2"/><block var="swapping variable"/></list></block></script></block-definition><block-definition s="repeat %&apos;count&apos; %&apos;and/or&apos; until %&apos;condition&apos; %&apos;action&apos;" type="command" category="control" selector="doRepeatUntil" space="true"><comment x="0" y="0" w="185" collapsed="false">If and is chosen, repeats for the repeat count and then until the condition is met. Otherwise, repeats for the repeat count, stopping if the condition is met.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">10</input><input type="%s" readonly="true" initial="1">and<options>and&#xD;or</options></input><input type="%boolUE" initial="1"></input><input type="%ca" irreplaceable="true" initial="1"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="and/or"/><l>and</l></list></block><script><block s="doRepeat"><block var="count"/><script><block s="doRun"><block var="action"/><list></list></block></script></block><block s="doUntil"><block s="evaluate"><block var="condition"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script><script><block s="doIf"><block s="reportVariadicGreaterThanOrEquals"><list><block var="count"/><l>1</l></list></block><script><block s="doFor"><l>i</l><l>1</l><block var="count"/><script><block s="doIfElse"><block s="evaluate"><block var="condition"/><list></list></block><script><block s="doSetVar"><l>i</l><block var="count"/></block></script><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block></script><list></list></block></script></block></script></block-definition><block-definition s="background %&apos;pen attribute&apos;" type="reporter" category="pen" selector="getBackgroundAttribute" space="true"><comment x="0" y="0" w="82" collapsed="false">Reports the pen attributes of the background.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">$_hue<options>color=$_color&#xD;&#126;&#xD;hue=$_hue&#xD;saturation=$_saturation&#xD;brightness=$_brightness&#xD;transparency=$_transparency&#xD;&#126;&#xD;r-g-b-a=$_r-g-b-a</options></input></inputs><script><block s="doIfElse"><block s="reportListContainsItem"><block s="reportNewList"><list><l>hue</l><l>saturation</l><l>brightness</l><l>transparency</l><l>r-g-b-a</l><l>color</l></list></block><block s="reportJoinWords"><list><block var="pen attribute"/></list></block></block><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="pen attribute"/></list></block><l>hue</l></list></block><block s="reportAskFor"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l><option>hue</option></l></block></autolambda><list></list></block><list></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="pen attribute"/></list></block><l>saturation</l></list></block><block s="reportAskFor"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l><option>saturation</option></l></block></autolambda><list></list></block><list></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="pen attribute"/></list></block><l>brightness</l></list></block><block s="reportAskFor"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l><option>brightness</option></l></block></autolambda><list></list></block><list></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="pen attribute"/></list></block><l>transparency</l></list></block><block s="reportAskFor"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l><option>transparency</option></l></block></autolambda><list></list></block><list></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="pen attribute"/></list></block><l>r-g-b-a</l></list></block><block s="reportAskFor"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l><option>r-g-b-a</option></l></block></autolambda><list></list></block><list></list></block><block s="reportAskFor"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l><option>color</option></l></block></autolambda><list></list></block><list></list></block></block></block></block></block></block></block></script><script><block s="doReport"><l>0</l></block></script></block></script></block-definition><block-definition s="new color %&apos;values&apos;" type="reporter" category="pen" selector="reportNewColorRGBA" space="true"><comment x="0" y="0" w="120.00000000000006" collapsed="false">Reports a new color with specified red, green, blue, and alpha values.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%n" expand="red&#xD;green&#xD;blue&#xD;alpha" initial="1" max="4">255&#xD;0&#xD;0&#xD;255</input></inputs><script><block s="doReport"><block s="reportColor"><block var="values"/></block></block></script></block-definition><block-definition s="random color %&apos;grayscale&apos; grayscale? %&apos;transparency&apos; transparency?" type="reporter" category="pen" selector="reportRandomColor"><comment x="0" y="0" w="116" collapsed="false">Returns a random color.</comment><header></header><code></code><translations></translations><inputs><input type="%b" initial="1"></input><input type="%b" initial="1"></input></inputs><script><block s="doReport"><block s="reportColor"><block s="evaluate"><block s="reportReshape"><block s="reifyReporter"><autolambda><block s="reportRandom"><l>0</l><l>255</l></block></autolambda><list></list></block><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportNot"><block var="grayscale"/></block><l>2</l></list></block><block var="transparency"/><l>1</l></list></block></list></block><list></list></block></block></block></script></block-definition><block-definition s="recursive index of %&apos;item&apos; in %&apos;list&apos;" type="reporter" category="lists" selector="reportListIndexRecursive"><comment x="0" y="0" w="166" collapsed="false">Reports the index of the specified item in a list, searching within other lists to find the item.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">thing</input><input type="%l" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>function</l></list></block><block s="doSetVar"><l>function</l><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><block s="reportIfElse"><block s="reportListContainsItem"><l/><block var="item"/></block><block s="reportNewList"><list><block s="reportListIndex"><block var="item"/><l/></block></list></block><block s="reportCONS"><block s="reportListIndex"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><l></l><l>0</l></list></block></autolambda><list></list></block><block s="reportMap"><block var="function"/><l/></block></block><block s="reportMap"><block var="function"/><l/></block></block><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><l></l><l>0</l></list></block></autolambda><list></list></block><block s="reportMap"><block var="function"/><l/></block></block></block></block><l>0</l></block></autolambda><list></list></block></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block var="list"/></list></block></block></script></block-definition><block-definition s="instrument %&apos;instrument&apos; at note %&apos;note&apos; for %&apos;time&apos; secs at %&apos;Hz&apos; Hz" type="reporter" category="sound" selector="getNoteAtRate"><comment x="0" y="0" w="362.9999999999998" collapsed="false">Reports a sound of a specified tone, instrument, time, and sampling rate.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1<options>(1) sine=1&#xD;(2) square=2&#xD;(3) sawtooth=3&#xD;(4) triangle=4</options></input><input type="%n">60<options>§_pianoKeyboardMenu</options></input><input type="%n">0.5</input><input type="%n">44100<options>22.05 kHz=22050&#xD;44.1 kHz=44100&#xD;48 kHz=48000&#xD;88.2 kHz=88200&#xD;96 kHz=96000</options></input></inputs><script><block s="doReport"><block s="reportNewSoundFromSamples"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="instrument"/><l>2</l></list></block><block s="reportMonadic"><l><option>sign</option></l><block s="reportMonadic"><l><option>sin</option></l><block s="reportVariadicProduct"><list><block s="reportNumbers"><l>0</l><block s="reportDifference"><block s="reportVariadicProduct"><list><block var="time"/><block var="Hz"/></list></block><l>1</l></block></block><block s="reportVariadicProduct"><list><l>3.591835992094595</l><block s="reportPower"><l>2</l><block s="reportQuotient"><block s="reportDifference"><block var="note"/><l>69</l></block><l>12</l></block></block></list></block></list></block></block></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="instrument"/><l>3</l></list></block><block s="reportQuotient"><block s="reportMonadic"><l><option>asin</option></l><block s="reportMonadic"><l><option>cos</option></l><block s="reportModulus"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportNumbers"><l>0</l><block s="reportDifference"><block s="reportVariadicProduct"><list><block var="time"/><block var="Hz"/></list></block><l>1</l></block></block><block s="reportVariadicProduct"><list><l>3.591835992094595</l><block s="reportPower"><l>2</l><block s="reportQuotient"><block s="reportDifference"><block var="note"/><l>69</l></block><l>12</l></block></block><l>.5</l></list></block></list></block><l>90</l></list></block><l>180</l></block></block></block><l>-90</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="instrument"/><l>4</l></list></block><block s="reportQuotient"><block s="reportMonadic"><l><option>asin</option></l><block s="reportMonadic"><l><option>sin</option></l><block s="reportVariadicProduct"><list><block s="reportNumbers"><l>0</l><block s="reportDifference"><block s="reportVariadicProduct"><list><block var="time"/><block var="Hz"/></list></block><l>1</l></block></block><block s="reportVariadicProduct"><list><l>3.591835992094595</l><block s="reportPower"><l>2</l><block s="reportQuotient"><block s="reportDifference"><block var="note"/><l>69</l></block><l>12</l></block></block></list></block></list></block></block></block><l>90</l></block><block s="reportMonadic"><l><option>sin</option></l><block s="reportVariadicProduct"><list><block s="reportNumbers"><l>0</l><block s="reportDifference"><block s="reportVariadicProduct"><list><block var="time"/><block var="Hz"/></list></block><l>1</l></block></block><block s="reportVariadicProduct"><list><l>3.591835992094595</l><block s="reportPower"><l>2</l><block s="reportQuotient"><block s="reportDifference"><block var="note"/><l>69</l></block><l>12</l></block></block></list></block></list></block></block></block></block></block><block var="Hz"/></block></block></script></block-definition><block-definition s="toggle visibility" type="command" category="looks" selector="doToggleVisibility" space="true"><comment x="0" y="0" w="95" collapsed="false">Toggles the visibility of the sprite.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportShown"></block><script><block s="hide"></block></script><script><block s="show"></block></script></block></script></block-definition><block-definition s="change layer by %&apos;delta&apos;" type="command" category="looks" selector="changeLayer" space="true"><comment x="0" y="0" w="89" collapsed="false">Increases the layer of the sprite.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input></inputs><script><block s="goBack"><block s="reportMonadic"><l><option>neg</option></l><block var="delta"/></block></block></script></block-definition><block-definition s="combine %&apos;c&apos; using %&apos;m&apos; transparency mode %&apos;t&apos;" type="reporter" category="pen" selector="reportColorBlend"><comment x="0" y="0" w="380.00000000000057" collapsed="false">Combines colors using blending modes. WIP.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%clr" initial="2">rgba(145,26,68,1)&#xD;rgba(255,235,0,1)</input><input type="%s" readonly="true" initial="1">$_linear dodge<options>normal={&#xD;normal=$_normal&#xD;additive transparency=$_addalpha&#xD;}&#xD;darken={&#xD;darken=$_darken&#xD;multiply=$_multiply&#xD;color burn=$_color burn&#xD;linear burn=$_linear burn&#xD;}&#xD;lighten={&#xD;lighten=$_lighten&#xD;screen=$_screen&#xD;color dodge=$_color dodge&#xD;linear dodge=$_linear dodge&#xD;}&#xD;contrast={&#xD;overlay=$_overlay&#xD;soft light=$_soft light&#xD;hard light=$_hard light&#xD;vivid light=$_vivid light&#xD;linear light=$_linear light&#xD;pin light=$_pin light&#xD;}&#xD;inversion/cancelation={&#xD;difference=$_difference&#xD;exclusion=$_exclusion&#xD;subtract=$_subtract&#xD;divide=$_divide&#xD;}&#xD;component={&#xD;hue=hue&#xD;saturation (HSL)=$_saturation hsl&#xD;color (HSL)=$_color hsl&#xD;luminosity=$_luminosity&#xD;}</options></input><input type="%s" initial="1">$_combine<options>include transparency in combining=$_combine&#xD;use transparency of color 1=$_c1&#xD;100% opaque=$_100%&#xD;255 alpha=$_255</options></input></inputs><script><block s="doDeclareVariables"><list><l>color</l></list></block><block s="doSetVar"><l>color</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="m"/></list></block><l>normal</l></list></block><block s="reportCombine"><block var="c"/><block s="reifyReporter"><autolambda><block s="reportConcatenatedLists"><list><block s="reportReshape"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#1"/></block><block s="reportDifference"><l>1</l><block s="reportQuotient"><block s="reportListItem"><l>4</l><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#2"/></block></block><l>255</l></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#2"/></block><block s="reportQuotient"><block s="reportListItem"><l>4</l><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#2"/></block></block><l>255</l></block></list></block></list></block><list><l>3</l></list></block><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportListItem"><l>4</l><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#1"/></block></block><block s="reportVariadicProduct"><list><block s="reportDifference"><l>1</l><block s="reportQuotient"><block s="reportListItem"><l>4</l><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#1"/></block></block><l>255</l></block></block><block s="reportListItem"><l>4</l><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#2"/></block></block></list></block></list></block></list></block></list></block></autolambda><list><l>#1</l><l>#2</l></list></block></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="m"/></list></block><l>linear dodge</l></list></block><block s="reportCombine"><block var="c"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#1"/></block><block s="reportConcatenatedLists"><list><block s="reportReshape"><block s="reportQuotient"><block s="reportListItem"><l>4</l><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#1"/></block></block><l>255</l></block><list><l>3</l></list></block><block s="reportNewList"><list><l>1</l></list></block></list></block></list></block><block s="reportVariadicProduct"><list><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#2"/></block><block s="reportConcatenatedLists"><list><block s="reportReshape"><block s="reportQuotient"><block s="reportListItem"><l>4</l><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#2"/></block></block><l>255</l></block><list><l>3</l></list></block><block s="reportNewList"><list><l>1</l></list></block></list></block></list></block></list></block></autolambda><list><l>#1</l><l>#2</l></list></block></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="m"/></list></block><l>addalpha</l></list></block><block s="reportUnicode"><l>WIP!</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="m"/></list></block><l>subtract</l></list></block><block s="reportCombine"><block var="c"/><block s="reifyReporter"><autolambda><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#1"/></block><block s="reportConcatenatedLists"><list><block s="reportReshape"><block s="reportQuotient"><block s="reportListItem"><l>4</l><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#1"/></block></block><l>255</l></block><list><l>3</l></list></block><block s="reportNewList"><list><l>1</l></list></block></list></block></list></block><block s="reportVariadicProduct"><list><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#2"/></block><block s="reportConcatenatedLists"><list><block s="reportReshape"><block s="reportQuotient"><block s="reportListItem"><l>4</l><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#2"/></block></block><l>255</l></block><list><l>3</l></list></block><block s="reportNewList"><list><l>1</l></list></block></list></block></list></block></block></autolambda><list><l>#1</l><l>#2</l></list></block></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="m"/></list></block><l>multiply</l></list></block><block s="reportCombine"><block var="c"/><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#1"/></block><block s="reportConcatenatedLists"><list><block s="reportReshape"><block s="reportQuotient"><block s="reportListItem"><l>4</l><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#1"/></block></block><l>255</l></block><list><l>3</l></list></block><block s="reportNewList"><list><l>1</l></list></block></list></block></list></block><block s="reportVariadicProduct"><list><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#2"/></block><block s="reportConcatenatedLists"><list><block s="reportReshape"><block s="reportQuotient"><block s="reportListItem"><l>4</l><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#2"/></block></block><l>255</l></block><list><l>3</l></list></block><block s="reportNewList"><list><l>1</l></list></block></list></block></list></block></list></block></autolambda><list><l>#1</l><l>#2</l></list></block></block><block s="reportCombine"><block var="c"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#1"/></block><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#2"/></block><l>-127.5</l></block><l>1</l></list></block></list></block><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block var="#2"/></block></list></block></autolambda><list><l>#1</l><l>#2</l></list></block></block></block></block></block></block></block></block><block s="doIf"><block s="reportVariadicNotEquals"><list><block s="reportJoinWords"><list><block var="t"/></list></block><l>combine</l></list></block><script><block s="doReplaceInList"><l>4</l><block var="color"/><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block s="reportJoinWords"><list><block var="t"/></list></block></block><l>c</l></list></block><block s="reportListItem"><l>4</l><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><block s="reportListItem"><block s="reportJoinWords"><block s="reportCDR"><block s="reportTextSplit"><block s="reportJoinWords"><list><block var="t"/></list></block><l></l></block></block></block><block var="c"/></block></block></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportLetter"><l><option>last</option></l><block s="reportJoinWords"><list><block var="t"/></list></block></block><l>%</l></list></block><block s="reportVariadicProduct"><list><block s="reportJoinWords"><block s="reportLetter"><block s="reportNumbers"><l>1</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block s="reportJoinWords"><list><block var="t"/></list></block></block><l>1</l></block></block><block s="reportJoinWords"><list><block var="t"/></list></block></block></block><l>2.55</l></list></block><block s="reportJoinWords"><list><block var="t"/></list></block></block></block></block></script><list></list></block><block s="doReport"><block s="reportColor"><block var="color"/></block></block></script></block-definition><block-definition s="set layer to %&apos;layer&apos;" type="command" category="looks" selector="setLayer"><comment x="0" y="0" w="90" collapsed="false">Sets the layer of the sprite.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input></inputs><script><block s="goBack"><block s="reportMonadic"><l><option>neg</option></l><block s="reportDifference"><block var="layer"/><block s="reportListIndex"><block s="reportGet"><l><option>self</option></l></block><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block></block></block></block></block></script></block-definition><block-definition s="%&apos;show/hide&apos; variable %&apos;variable&apos;" type="command" category="variables" selector="doShowHideVar" space="true"><comment x="0" y="0" w="111.99999999999977" collapsed="false">Shows or hides the variable with the given name. If said variable does not exist, it cannot show/hide it, and does nothing.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" irreplaceable="true">show<options>show&#xD;hide</options></input><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doRun"><block s="reifyScript"><script><block s="doApplyExtension"><l></l><list><l></l></list></block></script><list></list></block><list><block s="reportJoinWords"><list><l>var_</l><block var="show/hide"/><l>(name)</l></list></block><block var="variable"/></list></block></script></block-definition><block-definition s="variable %&apos;variable&apos; shown?" type="predicate" category="variables" selector="reportVarShown"><comment x="0" y="0" w="112.00000000000001" collapsed="false">Reports whether or not the variable is shown. Returns false if the variable does not exist.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"><options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>var_showing(name)?</l><list><block var="variable"/></list></block></block></script></block-definition><block-definition s="%&apos;list&apos; recursively contains %&apos;item&apos;" type="predicate" category="lists" selector="reportListRecursivelyContainsItem"><comment x="0" y="0" w="185" collapsed="false">Reports whether or not the list contains the specified item, searching within other lists to find the item.</comment><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%s" initial="1">thing</input></inputs><script><block s="doDeclareVariables"><list><l>function</l></list></block><block s="doSetVar"><l>function</l><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><block s="reportIfElse"><block s="reportListContainsItem"><l/><block var="item"/></block><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportListContainsItem"><block s="reportMap"><block var="function"/><l/></block><block s="reportBoolean"><l><bool>true</bool></l></block></block></block><block s="reportBoolean"><l><bool>false</bool></l></block></block></autolambda><list></list></block></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block var="list"/></list></block></block></script></block-definition><block-definition s="shift %&apos;list&apos; %&apos;direction&apos; by %&apos;delta&apos;" type="command" category="lists" selector="doShiftList" space="true"><comment x="0" y="0" w="138" collapsed="false">Shifts the items in a list up or down by a specified amount. Modifies the original list.</comment><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%s" readonly="true" initial="1">$_down<options>up=$_up&#xD;down=$_down</options></input><input type="%n" initial="1">1</input></inputs><script><block s="doSetVar"><l>delta</l><block s="reportModulus"><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportVariadicProduct"><list><block var="delta"/><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportVariadicNotEquals"><list><block s="reportJoinWords"><list><block var="direction"/></list></block><l>down</l></list></block><l>2</l></list></block><l>1</l></block></list></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block></block><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="delta"/><l>0</l></list></block><script><block s="doSetVar"><l>list</l><block s="reportConcatenatedLists"><list><block s="reportListItem"><block s="reportNumbers"><block s="reportVariadicSum"><list><block var="delta"/><l>1</l></list></block><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block><block var="list"/></block><block s="reportListItem"><block s="reportNumbers"><l>1</l><block var="delta"/></block><block var="list"/></block></list></block></block></script><list></list></block></script></block-definition><block-definition s="funnel %&apos;list 1&apos; into %&apos;list 2&apos; at index %&apos;index&apos;" type="command" category="lists" selector="doFunnelListIntoList"><comment x="0" y="0" w="179" collapsed="false">Funnels a list into another, placing the list into the other at a specified index. Funneling is like appending in a list, rather than just inserting one list into another, making a list in a list. Modifies the original list.</comment><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%l" initial="1"></input><input type="%n" initial="1">1<options>1=1&#xD;last=$_last&#xD;random=$_random</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="index"/></list></block><l>last</l></list></block><script><block s="doSetVar"><l>index</l><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><block var="list 2"/></block><l>1</l></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="index"/></list></block><l>random</l></list></block><script><block s="doSetVar"><l>index</l><block s="reportRandom"><l>1</l><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><block var="list 2"/></block><l>1</l></list></block></block></block></script><list></list></block><block s="doSetVar"><l>index</l><block s="reportVariadicMin"><list><block s="reportVariadicMax"><list><block var="index"/><l>1</l></list></block><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><block var="list 2"/></block><l>1</l></list></block></list></block></block><block s="doSetVar"><l>list 2</l><block s="reportConcatenatedLists"><list><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block s="reportNewList"><list></list></block><block s="reportListItem"><block s="reportNumbers"><l>1</l><block s="reportDifference"><block var="index"/><l>1</l></block></block><block var="list 2"/></block></block><block var="list 1"/><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block var="index"/><block s="reportListAttribute"><l><option>length</option></l><block var="list 2"/></block></list></block><block s="reportNewList"><list></list></block><block s="reportListItem"><block s="reportNumbers"><block var="index"/><block s="reportListAttribute"><l><option>length</option></l><block var="list 2"/></block></block><block var="list 2"/></block></block></list></block></block></script></block-definition><block-definition s="%&apos;list&apos; in front of %&apos;input&apos;" type="reporter" category="lists" selector="reportCONSSwapped" space="true"><comment x="0" y="0" w="95" collapsed="false">Reports a new list that is the same as the given list but with a new item that is the given input at the end of the given list. This is also the reporter equivalent of the &quot;add _ to _&quot; block that doesn&apos;t modify the original list.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportConcatenatedLists"><list><block var="list"/><block s="reportNewList"><list><block var="input"/></list></block></list></block></block></script></block-definition><block-definition s="get primitive %&apos;selector&apos;" type="reporter" category="other" selector="reportBlockFromSelector" space="true"><comment x="0" y="0" w="109" collapsed="false">Gets a block from a primitive. If you&apos;re wondering where certain previous blocks went, check here, as they might&apos;ve been hidden primitives.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"><options>§_primitivesMenu</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportListContainsItem"><block s="reportBlockAttribute"><l><option>selector</option></l><block s="reportGet"><l><option>blocks</option></l></block></block><block var="selector"/></block><block s="reportListItem"><block s="reportListIndex"><block var="selector"/><block s="reportBlockAttribute"><l><option>selector</option></l><block s="reportGet"><l><option>blocks</option></l></block></block></block><block s="reportGet"><l><option>blocks</option></l></block></block><block s="reportJoinWords"><block s="reportTextSplit"><block s="reportJoinWords"><list><l>(</l><block var="selector"/><l>)</l></list></block><l><option>blocks</option></l></block></block></block></block></script></block-definition><block-definition s="change x relative to %&apos;object&apos; by %&apos;x&apos; %" type="command" category="motion" selector="changeXPositionRelative" space="true"><comment x="0" y="0" w="196" collapsed="false">Changes the x position in percentage, relative to the width of the chosen object.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">Stage<options>§_objectsMenu</options></input><input type="%n" initial="1">50</input></inputs><script><block s="changeXPosition"><block s="reportVariadicProduct"><list><block s="reportAttributeOf"><l><option>width</option></l><block var="object"/></block><block var="x"/><l>.01</l></list></block></block></script></block-definition><block-definition s="alternating" type="predicate" category="operators" selector="reportAlternating"><comment x="0" y="0" w="90" collapsed="false">Reports false if the last output was true, and vice-versa.</comment><variables><list struct="atomic" id="4096">output</list></variables><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>output</l><block s="reportNot"><block var="output"/></block></block><block s="doReport"><block var="output"/></block></script></block-definition><block-definition s="sequence %&apos;items&apos;" type="reporter" category="operators" selector="reportSequence"><comment x="0" y="0" w="144" collapsed="false">Reports the input items in sequence, going to the next item after every reports and looping back when at the end.</comment><variables><list struct="atomic" id="4106">index</list></variables><header></header><code></code><translations></translations><inputs><input type="%mult%s" initial="2">hello&#xD;world</input></inputs><script><block s="doSetVar"><l>index</l><block s="reportVariadicSum"><list><block s="reportModulus"><block var="index"/><block s="reportListAttribute"><l><option>length</option></l><block var="items"/></block></block><l>1</l></list></block></block><block s="doReport"><block s="reportListItem"><block var="index"/><block var="items"/></block></block></script></block-definition><block-definition s="void" type="reporter" category="operators" selector="void" space="true"><comment x="0" y="0" w="90" collapsed="false">Reports nothing.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="report %&apos;input&apos;" type="reporter" category="operators" selector="reportInput"><comment x="0" y="0" w="90" collapsed="false">Reports the given input.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="input"/></block></script></block-definition><block-definition s="%&apos;list&apos; without %&apos;item&apos;" type="reporter" category="lists" selector="reportListWithoutItem"><comment x="0" y="0" w="102" collapsed="false">Reports a new list that is the same as the given list but with the item with the given item number removed from it. This is also the reporter equivalent of the &quot;delete _ of _&quot; block that doesn&apos;t modify the original list.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n">1<options>1=1&#xD;last=$_last&#xD;random=$_random&#xD;&#126;&#xD;all=$_all&#xD;parent=$_parent</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="item"/></list></block><l>random</l></list></block><script><block s="doSetVar"><l>item</l><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block></block></script><list></list></block><block s="doReport"><block s="evaluate"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>true</bool></l></block></autolambda><list></list></block><block var="list"/></block></block><block s="doDeleteFromList"><block var="item"/><block var="a"/></block><block s="doReport"><block var="a"/></block></script><list></list></block><list></list></block></block></script></block-definition><block-definition s="for %&apos;upvar&apos; = %&apos;start&apos; += %&apos;increment&apos; until %&apos;condition&apos; %&apos;action&apos;" type="command" category="control" selector="doIncrementUntil"><comment x="0" y="0" w="196" collapsed="false">Essentially the standard for loop, but it repeats until a contition is met. The = number is the start, while the += number is the increment.</comment><header></header><code></code><translations></translations><inputs><input type="%upvar" initial="1">i</input><input type="%n" initial="1">0</input><input type="%n" initial="1">1</input><input type="%boolUE" initial="1"></input><input type="%ca" irreplaceable="true" initial="1"></input></inputs><script><block s="doSetVar"><l>upvar</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="condition"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>upvar</l><block var="increment"/></block></script></block></script></block-definition><block-definition s="if %&apos;condition&apos; then %&apos;output&apos;" type="reporter" category="control" selector="reportIf" space="true"><comment x="0" y="0" w="90" collapsed="false">Reports the given output if the condition if true. If the condition is false, reports nothing.</comment><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block var="condition"/><block var="output"/><l></l></block></block></script></block-definition><block-definition s="set x relative to %&apos;object&apos; to %&apos;x&apos; %" type="command" category="motion" selector="setXPositionRelative"><comment x="0" y="0" w="196" collapsed="false">Sets the x position in percentage, relative to the left and right of the chosen object.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">Stage<options>§_objectsMenu</options></input><input type="%n" initial="1">50</input></inputs><script><block s="setXPosition"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>left</option></l><block var="object"/></block><block s="reportVariadicProduct"><list><block s="reportAttributeOf"><l><option>width</option></l><block var="object"/></block><block var="x"/><l>.01</l></list></block></list></block></block></script></block-definition><block-definition s="switch %&apos;matches&apos; %&apos;cases&apos; default: %&apos;default&apos;" type="command" category="control" selector="doSwitch" space="true"><comment x="0" y="0" w="93" collapsed="false">Switch checks all case blocks for any matches, and runs matches. If no matches are found, default is ran.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s" initial="1"></input><input type="%cs" irreplaceable="true" initial="1"></input><input type="%cs" irreplaceable="true" initial="1"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="cases"/><l>0</l></list></block><script><block s="doTellTo"><block s="reportEnvironment"><l><option>caller</option></l></block><block var="default"/><list></list></block></script><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="cases"/><l><option>blocks</option></l></block></block><l><option>list</option></l></block><script><block s="doSetVar"><l>cases</l><block s="reportTextSplit"><block var="cases"/><l><option>blocks</option></l></block></block></script><script><block s="doSetVar"><l>cases</l><block s="reportNewList"><list><block s="reportTextSplit"><block var="cases"/><l><option>blocks</option></l></block></list></block></block></script></block><block s="doDeclareVariables"><list><l>allfailed</l></list></block><block s="doSetVar"><l>allfailed</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doForEach"><l>case</l><block var="cases"/><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportBlockAttribute"><l><option>selector</option></l><block s="reportListItem"><l>1</l><block var="case"/></block></block><l>doCase</l></list></block><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block s="reportJoinWords"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="case"/></block><l>a</l><l></l></list></block></block><l><option>blocks</option></l></block></block><l>a</l></list></block><block s="reportIsA"><block s="evaluate"><block s="reportJoinWords"><block s="reportListItem"><l>2</l><block var="case"/></block></block><list></list></block><l><option>list</option></l></block></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>distribution</option></l><block s="reportConcatenatedLists"><list><block s="reportListAttribute"><l><option>uniques</option></l><block var="matches"/></block><block s="reportListAttribute"><l><option>uniques</option></l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block s="reportJoinWords"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="case"/></block><l>a</l><l></l></list></block></block><l><option>blocks</option></l></block></block><l>a</l></list></block><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block var="case"/></block></block></block><block s="evaluate"><block s="reportJoinWords"><block s="reportListItem"><l>2</l><block var="case"/></block></block><list></list></block></block></block></list></block></block></block></block><l>2</l></list></block></list></block><script><block s="doSetVar"><l>allfailed</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l><option>last</option></l><block var="case"/></block><l><option>list</option></l></block><script><block s="doTellTo"><block s="reportEnvironment"><l><option>caller</option></l></block><block s="reportJoinWords"><block s="reportListItem"><l><option>last</option></l><block var="case"/></block></block><list></list></block></script><list></list></block></script><list></list></block></script><script><block s="doApplyExtension"><l>err_error(msg)</l><list><l>invalid block in cases</l></list></block></script></block></script></block><block s="doIf"><block var="allfailed"/><script><block s="doTellTo"><block s="reportEnvironment"><l><option>caller</option></l></block><block var="default"/><list></list></block></script><list></list></block></script></block></script></block-definition><block-definition s="add %&apos;input&apos; to %&apos;list&apos; as %&apos;item&apos;" type="reporter" category="lists" selector="reportAddInList"><comment x="0" y="0" w="118.72442932128934" collapsed="false">Reports a new list that is the same as the given list but with a new item in the given item number. It moves the items that had an item number that is at least the given item number. This is also the reporter equivalent of the &quot;insert _ at _ of _&quot; block that doesn&apos;t modify the original list.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thing</input><input type="%l">1<options>1=1&#xD;last=$_last&#xD;random=$_random</options></input><input type="%n">1<options>1&#xD;last=$_last&#xD;random=$_random&#xD;&#126;&#xD;parent=$_parent</options></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>true</bool></l></block></autolambda><list></list></block><block var="list"/></block></block><block s="doInsertInList"><block var="input"/><block var="item"/><block var="a"/></block><block s="doReport"><block var="a"/></block></script><list></list></block><list></list></block></block></script></block-definition><block-definition s="%&apos;list&apos; with %&apos;item&apos; as %&apos;input&apos;" type="reporter" category="lists" selector="reportListWithItemAs"><comment x="0" y="0" w="116.38085937500023" collapsed="false">Reports a new list that is the same as the given list but with the item that has the item number of the given item number replaced with the given input slot. This is also the reporter equivalent of the &quot;replace item _ of _ with _&quot; block that doesn&apos;t modify the original list.</comment><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%n">1<options>1=1&#xD;last=$_last&#xD;random=$_random&#xD;&#126;&#xD;parent=$_parent</options></input><input type="%s">thing</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>true</bool></l></block></autolambda><list></list></block><block var="list"/></block></block><block s="doReplaceInList"><block var="item"/><block var="a"/><block var="input"/></block><block s="doReport"><block var="a"/></block></script><list></list></block><list></list></block></block></script></block-definition><block-definition s="case %&apos;match&apos; %&apos;action&apos;" type="command" category="control" selector="doCase"><comment x="0" y="0" w="94" collapsed="false">Must be paired with switch, provides matches for switch to check.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s" initial="1"></input><input type="%cs" irreplaceable="true" initial="1"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><l>case must be inside switch</l></list></block></script></block-definition><block-definition s="%&apos;input&apos; as text" type="reporter" category="operators" selector="reportAsText"><comment x="0" y="0" w="90" collapsed="false">Reports the given input as text. If the given input is a number, it stays as a number. This can result in some pretty wacky outcomes.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doReport"><block s="reportJoinWords"><list><block var="input"/></list></block></block></script><list></list></block><block s="reifyScript"><script><block s="doReport"><l>nothing</l></block></script><list></list></block><l></l></list></block></script></block-definition><block-definition s="indices of %&apos;match&apos; in text %&apos;text&apos;" type="reporter" category="operators" selector="reportTextMatchIndices" space="true"><comment x="0" y="0" w="140" collapsed="false">Reports a list of the indices of matches in a provided text.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="match"/><l></l></list></block><script><block s="doReport"><block s="reportNumbers"><l>1</l><block s="reportVariadicSum"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><l>1</l></list></block></block></block></script><list><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="match"/></block><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><l><bool>true</bool></l><script><block s="doDeclareVariables"><list><l>indices</l></list></block><block s="doSetVar"><l>indices</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>letter #</l><l>1</l><block s="reportVariadicSum"><list><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><block s="reportTextAttribute"><l><option>length</option></l><block var="match"/></block></block><l>1</l></list></block><script><block s="doForEach"><l>index</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportVariadicSum"><list><l></l><block s="reportTextAttribute"><l><option>length</option></l><block var="match"/></block><l>-1</l></list></block><block var="letter #"/></list></block></autolambda><list></list></block><block var="indices"/></block><script><block s="doIf"><block s="reportVariadicNotEquals"><list><block s="reportLetter"><block s="reportVariadicSum"><list><block s="reportDifference"><block var="letter #"/><block var="index"/></block><l>1</l></list></block><block var="match"/></block><block s="reportLetter"><block var="letter #"/><block var="text"/></block></list></block><script><block s="doDeleteFromList"><block s="reportListIndex"><block var="index"/><block var="indices"/></block><block var="indices"/></block></script><list></list></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block var="match"/></block><block s="reportLetter"><block var="letter #"/><block var="text"/></block></list></block><script><block s="doAddToList"><block var="letter #"/><block var="indices"/></block></script><list></list></block></script></block><block s="doFor"><l>letter #</l><block s="reportVariadicSum"><list><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><block s="reportTextAttribute"><l><option>length</option></l><block var="match"/></block></block><l>2</l></list></block><l>1e309</l><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportVariadicSum"><list><l></l><block s="reportTextAttribute"><l><option>length</option></l><block var="match"/></block><l>-1</l></list></block><block var="letter #"/></list></block></autolambda><list></list></block><block var="indices"/></block><l></l></list></block><script><block s="doReport"><block var="indices"/></block></script><list></list></block><block s="doForEach"><l>index</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportVariadicSum"><list><l></l><block s="reportTextAttribute"><l><option>length</option></l><block var="match"/></block><l>-1</l></list></block><block var="letter #"/></list></block></autolambda><list></list></block><block var="indices"/></block><script><block s="doIf"><block s="reportVariadicNotEquals"><list><block s="reportLetter"><block s="reportVariadicSum"><list><block s="reportDifference"><block var="letter #"/><block var="index"/></block><l>1</l></list></block><block var="match"/></block><block s="reportLetter"><block var="letter #"/><block var="text"/></block></list></block><script><block s="doDeleteFromList"><block s="reportListIndex"><block var="index"/><block var="indices"/></block><block var="indices"/></block></script><list></list></block></script></block></script></block></script></list></block></script></block-definition><block-definition s="turn to %&apos;destination&apos;" type="reporter" category="sensing" selector="reportTurnAmount"><comment x="0" y="0" w="138" collapsed="false">Reports how much the sprite needs to turn in order to face a targeted destination.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">$_mouse-pointer<options>§_destinationsMenu</options></input></inputs><script><block s="doDeclareVariables"><list><l>clone</l></list></block><block s="doSetVar"><l>clone</l><block s="newClone"><l><option>myself</option></l></block></block><block s="doSetVar"><l>destination</l><block s="reportAskFor"><block var="clone"/><block s="reifyReporter"><script><block s="up"></block><block s="doGotoObject"><block var="destination"/></block><block s="doReport"><block s="getPosition"></block></block></script><list></list></block><list></list></block></block><block s="doTellTo"><block var="clone"/><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block><block s="doReport"><block s="reportDifference"><l>180</l><block s="reportModulus"><block s="reportDifference"><l>180</l><block s="reportDifference"><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>atan</option></l><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="destination"/></block><block s="xPosition"></block></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="destination"/></block><block s="yPosition"></block></block></block></block><block s="reportVariadicProduct"><list><block s="reportVariadicLessThan"><list><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="destination"/></block><block s="yPosition"></block></block><l>0</l></list></block><l>180</l><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="destination"/></block><block s="xPosition"></block></block><l>0</l></list></block><l>2</l></list></block><l>1</l></block></list></block></list></block><block s="direction"></block></block></block><l>360</l></block></block></block></script></block-definition><block-definition s="list letters from %&apos;start&apos; to %&apos;end&apos; of %&apos;text&apos;" type="reporter" category="operators" selector="reportLetterRangeList" space="true"><comment x="0" y="0" w="240" collapsed="false">Reports a list of letters from the first number to the last number of the given text. Keep in mind that this reports a list, and not a text.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1<options>1&#xD;last=$_last&#xD;random=$_random</options></input><input type="%n">3<options>1&#xD;last=$_last&#xD;random=$_random</options></input><input type="%s">world</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="start"/><l>last</l></list></block><script><block s="doSetVar"><l>start</l><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block></block></script><list><block s="reportVariadicEquals"><list><block var="start"/><l>random</l></list></block><script><block s="doSetVar"><l>start</l><block s="reportRandom"><l>1</l><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block></block></block></script></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="end"/><l>last</l></list></block><script><block s="doSetVar"><l>end</l><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block></block></script><list><block s="reportVariadicEquals"><list><block var="end"/><l>random</l></list></block><script><block s="doSetVar"><l>end</l><block s="reportRandom"><l>1</l><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block></block></block></script></list></block><block s="doReport"><block s="reportLetter"><block s="reportNumbers"><block var="start"/><block var="end"/></block><block var="text"/></block></block></script></block-definition><block-definition s="call %&apos;ring&apos; %&apos;amount&apos; times %&apos;inputs&apos;" type="reporter" category="control" selector="evaluateRepeated" space="true"><comment x="0" y="0" w="145.0000000000001" collapsed="false">Reports a list of the output of the given script multiple times. Each item is a different call of the script. This is not the same as reshaping the output, as it only repeats the same output. Inputs remain consistent across all items in the output.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%n">2</input><input type="%mult%s" expand="with inputs"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportReshape"><block s="reifyScript"><script><block s="doReport"><block s="evaluate"><block var="ring"/><block var="inputs"/></block></block></script><list></list></block><list><block var="amount"/></list></block><list></list></block></block></script></block-definition><block-definition s="delta time" type="reporter" category="sensing" selector="reportDeltaTime" space="true"><comment x="0" y="0" w="90" collapsed="false">Reports the milliseconds since the last report.</comment><variables><list struct="atomic" id="5091">run time,last run time</list></variables><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="run time"/><l>0</l></list></block><script><block s="doSetVar"><l>last run time</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doSetVar"><l>run time</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doReport"><l>0</l></block></script><script><block s="doSetVar"><l>last run time</l><block var="run time"/></block><block s="doSetVar"><l>run time</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doReport"><block s="reportDifference"><block var="run time"/><block var="last run time"/></block></block></script></block></script></block-definition><block-definition s="glide %&apos;variable&apos; %&apos;time&apos; secs to %&apos;target&apos;" type="command" category="variables" selector="doGlideVar" space="true"><comment x="0" y="0" w="140.0000000000001" collapsed="false">Changes a variable over time from its current value to a target value. Text values are considered 0. May behave strangely with other non-numeric inputs.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"><options>§_getVarNamesDict</options></input><input type="%n" initial="1">1</input><input type="%n" initial="1">0</input></inputs><script><block s="doDeclareVariables"><list><l>value</l><l>start time</l><l>progress</l></list></block><block s="doIf"><block s="reportIsA"><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="variable"/></list></block><l><option>text</option></l></block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="variable"/><l>0</l></list></block></script><list></list></block><block s="doSetVar"><l>value</l><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="variable"/></list></block></block><block s="doSetVar"><l>start time</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doUntil"><block s="reportVariadicGreaterThanOrEquals"><list><block var="progress"/><l>1</l></list></block><script><block s="doSetVar"><l>progress</l><block s="reportQuotient"><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="start time"/></block><block s="reportVariadicProduct"><list><block var="time"/><l>1000</l></list></block></block></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="variable"/><block s="reportVariadicSum"><list><block var="value"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="target"/><block var="value"/></block><block var="progress"/></list></block></list></block></list></block></script></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="variable"/><block var="target"/></list></block></script></block-definition><block-definition s="%&apos;list&apos; shifted %&apos;direction&apos; by %&apos;delta&apos;" type="reporter" category="lists" selector="reportListShifted"><comment x="0" y="0" w="135" collapsed="false">Reports the list with its items shifted up or down by a specified amount. Does not modify the original list.</comment><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%s" readonly="true" initial="1">$_down<options>down=$_down&#xD;up=$_up</options></input><input type="%n" initial="1">1</input></inputs><script><block s="doSetVar"><l>delta</l><block s="reportModulus"><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportVariadicProduct"><list><block var="delta"/><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportVariadicNotEquals"><list><block s="reportJoinWords"><list><block var="direction"/></list></block><l>down</l></list></block><l>2</l></list></block><l>1</l></block></list></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block></block><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="delta"/><l>0</l></list></block><block var="list"/><block s="reportConcatenatedLists"><list><block s="reportListItem"><block s="reportNumbers"><block s="reportVariadicSum"><list><block var="delta"/><l>1</l></list></block><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block><block var="list"/></block><block s="reportListItem"><block s="reportNumbers"><l>1</l><block var="delta"/></block><block var="list"/></block></list></block></block></block></script></block-definition><block-definition s="%&apos;list 1&apos; funneled into %&apos;list 2&apos; at index %&apos;index&apos;" type="reporter" category="lists" selector="reportListFunneledIntoList"><comment x="0" y="0" w="187.9999999999999" collapsed="false">Reports the second list with the first list funneled into it at a specified index. Funneling is like appending in a list, rather than just inserting one list into another, making a list in a list. Does not modify the original list.</comment><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%l" initial="1"></input><input type="%n" initial="1">1<options>1=1&#xD;last=$_last&#xD;random=$_random</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="index"/></list></block><l>last</l></list></block><script><block s="doSetVar"><l>index</l><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><block var="list 2"/></block><l>1</l></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="index"/></list></block><l>random</l></list></block><script><block s="doSetVar"><l>index</l><block s="reportRandom"><l>1</l><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><block var="list 2"/></block><l>1</l></list></block></block></block></script><list></list></block><block s="doSetVar"><l>index</l><block s="reportVariadicMin"><list><block s="reportVariadicMax"><list><block var="index"/><l>1</l></list></block><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><block var="list 2"/></block><l>1</l></list></block></list></block></block><block s="doReport"><block s="reportConcatenatedLists"><list><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block s="reportNewList"><list></list></block><block s="reportListItem"><block s="reportNumbers"><l>1</l><block s="reportDifference"><block var="index"/><l>1</l></block></block><block var="list 2"/></block></block><block var="list 1"/><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block var="index"/><block s="reportListAttribute"><l><option>length</option></l><block var="list 2"/></block></list></block><block s="reportNewList"><list></list></block><block s="reportListItem"><block s="reportNumbers"><block var="index"/><block s="reportListAttribute"><l><option>length</option></l><block var="list 2"/></block></block><block var="list 2"/></block></block></list></block></block></script></block-definition><block-definition s="change y relative to %&apos;object&apos; by %&apos;y&apos; %" type="command" category="motion" selector="changeYPositionRelative"><comment x="0" y="0" w="201" collapsed="false">Changes the y position in percentage, relative to the height of the chosen object.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">Stage<options>§_objectsMenu</options></input><input type="%n" initial="1">50</input></inputs><script><block s="changeYPosition"><block s="reportVariadicProduct"><list><block s="reportAttributeOf"><l><option>height</option></l><block var="object"/></block><block var="y"/><l>.01</l></list></block></block></script></block-definition><block-definition s="set y relative to %&apos;object&apos; to %&apos;y&apos; %" type="command" category="motion" selector="setXPositionRelative"><comment x="0" y="0" w="205" collapsed="false">Sets the y position in percentage, relative to the top and bottom of the chosen object.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">Stage<options>§_objectsMenu</options></input><input type="%n" initial="1">50</input></inputs><script><block s="setYPosition"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>bottom</option></l><block var="object"/></block><block s="reportVariadicProduct"><list><block s="reportAttributeOf"><l><option>height</option></l><block var="object"/></block><block var="y"/><l>.01</l></list></block></list></block></block></script></block-definition><block-definition s="change relative to %&apos;object&apos; by %&apos;position&apos; %" type="command" category="motion" selector="changePositionRelative"><comment x="0" y="0" w="212" collapsed="false">Change the position in percentage, relative to the width and height of the chosen object.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">Stage<options>§_objectsMenu</options></input><input type="%mult%n" collapse="position:" expand="x:&#xD;​% y:" initial="2" max="2">50&#xD;50</input></inputs><script><block s="doGotoObject"><block s="reportVariadicSum"><list><block s="getPosition"></block><block s="reportVariadicProduct"><list><block s="reportNewList"><list><block s="reportAttributeOf"><l><option>width</option></l><block var="object"/></block><block s="reportAttributeOf"><l><option>height</option></l><block var="object"/></block></list></block><block var="position"/><l>.01</l></list></block></list></block></block></script></block-definition><block-definition s="position relative to %&apos;object&apos;" type="reporter" category="motion" selector="getPositionRelative" space="true"><comment x="0" y="0" w="167" collapsed="false">Gets the position in percentage, relative to the top, bottom, left, and right of the chosen object.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">Stage<options>§_objectsMenu</options></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="getPosition"></block><block s="reportNewList"><list><block s="reportAttributeOf"><l><option>left</option></l><block var="object"/></block><block s="reportAttributeOf"><l><option>bottom</option></l><block var="object"/></block></list></block></block><block s="reportQuotient"><l>100</l><block s="reportNewList"><list><block s="reportAttributeOf"><l><option>width</option></l><block var="object"/></block><block s="reportAttributeOf"><l><option>height</option></l><block var="object"/></block></list></block></block></list></block></block></script></block-definition><block-definition s="x position relative to %&apos;object&apos;" type="reporter" category="motion" selector="xPositionRelative"><comment x="0" y="0" w="198" collapsed="false">Gets the x position in percentage, relative to the left and right of the chosen object.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">Stage<options>§_objectsMenu</options></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="xPosition"></block><block s="reportAttributeOf"><l><option>left</option></l><block var="object"/></block></block><block s="reportQuotient"><l>100</l><block s="reportAttributeOf"><l><option>width</option></l><block var="object"/></block></block></list></block></block></script></block-definition><block-definition s="y position relative to %&apos;object&apos;" type="reporter" category="motion" selector="yPositionRelative"><comment x="0" y="0" w="207" collapsed="false">Gets the x position in percentage, relative to the top and bottom of the chosen object.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">Stage<options>§_objectsMenu</options></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="yPosition"></block><block s="reportAttributeOf"><l><option>bottom</option></l><block var="object"/></block></block><block s="reportQuotient"><l>100</l><block s="reportAttributeOf"><l><option>height</option></l><block var="object"/></block></block></list></block></block></script></block-definition><block-definition s="glide %&apos;time&apos; secs to %&apos;destination&apos;" type="command" category="motion" selector="doGlideToObject" space="true"><comment x="0" y="0" w="195" collapsed="false">Makes the sprite go to a specified destination over a certain amount of time.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input><input type="%s" readonly="true" initial="1">random position<options>§_destinationsMenu</options></input></inputs><script><block s="doDeclareVariables"><list><l>clone</l></list></block><block s="doSetVar"><l>clone</l><block s="newClone"><l><option>myself</option></l></block></block><block s="doSetVar"><l>destination</l><block s="reportAskFor"><block var="clone"/><block s="reifyReporter"><script><block s="up"></block><block s="doGotoObject"><block var="destination"/></block><block s="doReport"><block s="getPosition"></block></block></script><list></list></block><list></list></block></block><block s="doTellTo"><block var="clone"/><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block><block s="doGlide"><block var="time"/><block s="reportListItem"><l>1</l><block var="destination"/></block><block s="reportListItem"><l>2</l><block var="destination"/></block></block></script></block-definition><block-definition s="change by %&apos;position&apos;" type="command" category="motion" selector="changePosition" space="true"><comment x="0" y="0" w="129" collapsed="false">Change the position in one singular movement.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%n" collapse="position:" expand="x:&#xD;y:" initial="2" max="2">10&#xD;10</input></inputs><script><block s="doGotoObject"><block s="reportVariadicSum"><list><block s="getPosition"></block><block var="position"/></list></block></block></script></block-definition><block-definition s="relatively change by %&apos;position&apos; direction? %&apos;direction&apos; scale? %&apos;scale&apos;" type="command" category="motion" selector="changePositionRelative"><comment x="0" y="0" w="387" collapsed="false">Changes the position relatively to scale and/or direction.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%n" collapse="position:" expand="x:&#xD;y:" initial="2" max="2">10&#xD;10</input><input type="%b" initial="1">true</input><input type="%b" initial="1">true</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="position"/></block><l>1</l></list></block><script><block s="doAddToList"><l>0</l><block var="position"/></block></script><list></list></block><block s="doGotoObject"><block s="reportVariadicSum"><list><block s="getPosition"></block><block s="reportVariadicProduct"><list><block s="reportIfElse"><block var="direction"/><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="value"/><block s="reportMonadic"><l><option>sin</option></l><block s="direction"></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><block s="reportDifference"><l>3</l><block var="index"/></block><block var="position"/></block><block s="reportMonadic"><l><option>cos</option></l><block s="direction"></block></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="index"/><l>1.5</l></block><l>2</l></list></block></list></block></list></block></autolambda><list><l>value</l><l>index</l></list></block><block var="position"/></block><block var="position"/></block><block s="reportPower"><block s="reportQuotient"><block s="getScale"></block><l>100</l></block><block var="scale"/></block></list></block></list></block></block></script></block-definition><block-definition s="go %&apos;layering&apos; %&apos;sprite&apos;" type="command" category="looks" selector="doLayer"><comment x="0" y="0" w="137" collapsed="false">Puts the sprite above or below the layer of the target.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">in front of<options>in front of&#xD;behind</options></input><input type="%s" readonly="true" initial="1"><options>§_objectsMenu</options></input></inputs><script><block s="goBack"><block s="reportVariadicSum"><list><block s="reportDifference"><block s="reportListIndex"><block s="reportGet"><l><option>self</option></l></block><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block></block><block s="reportListIndex"><block s="reportObject"><block var="sprite"/></block><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block></block></block><block s="reportDifference"><block s="reportVariadicEquals"><list><block var="layering"/><l>behind</l></list></block><block s="reportVariadicGreaterThan"><list><block s="reportListIndex"><block s="reportGet"><l><option>self</option></l></block><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block></block><block s="reportListIndex"><block s="reportObject"><block var="sprite"/></block><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block></block></list></block></block></list></block></block></script></block-definition><block-definition s="layer" type="reporter" category="looks" selector="getLayer"><comment x="0" y="0" w="90" collapsed="false">Reports the current layer of the sprite. Layer 1 is the back layer.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportListIndex"><block s="reportGet"><l><option>self</option></l></block><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block></block></block></script></block-definition><block-definition s="run %&apos;amount&apos; random repeat limit %&apos;limit&apos; %&apos;actions&apos;" type="command" category="control" selector="doRandom" space="true"><comment x="0" y="0" w="218" collapsed="false">Randomly runs any number of actions. Repeat limit is the maximum amount of times an action can be run. Set it to 0 for no limit.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input><input type="%n" initial="1">1</input><input type="%mult%cs" irreplaceable="true" initial="2" min="1"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="limit"/><l>0</l></list></block><script><block s="doRepeat"><block s="reportMonadic"><l><option>ceiling</option></l><block var="amount"/></block><script><block s="doRun"><block s="reportListItem"><l><option>random</option></l><block var="actions"/></block><list></list></block></script></block></script><list><block s="reportVariadicGreaterThan"><list><block s="reportMonadic"><l><option>ceiling</option></l><block var="amount"/></block><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>ceiling</option></l><block var="limit"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="actions"/></block></list></block></list></block><script><block s="doApplyExtension"><l>err_error(msg)</l><list><l>number of actions to run exceeds limit</l></list></block></script><l><bool>true</bool></l><script><block s="doDeclareVariables"><list><l>random</l><l>runs left</l><l>action</l></list></block><block s="doSetVar"><l>runs left</l><block s="reportReshape"><block var="limit"/><list><block s="reportListAttribute"><l><option>length</option></l><block var="actions"/></block></list></block></block><block s="doRepeat"><block s="reportMonadic"><l><option>ceiling</option></l><block var="amount"/></block><script><block s="doSetVar"><l>random</l><block s="reportRandom"><l>0.</l><block s="reportVariadicSum"><block var="runs left"/></block></block></block><block s="doSetVar"><l>action</l><l>0</l></block><block s="doUntil"><block s="reportVariadicLessThanOrEquals"><list><block var="random"/><l>0</l></list></block><script><block s="doChangeVar"><l>action</l><l>1</l></block><block s="doChangeVar"><l>random</l><block s="reportVariadicProduct"><list><block s="reportListItem"><block var="action"/><block var="runs left"/></block><l>-1</l></list></block></block></script></block><block s="doRun"><block s="reportListItem"><block var="action"/><block var="actions"/></block><list></list></block><block s="doReplaceInList"><block var="action"/><block var="runs left"/><block s="reportVariadicMax"><list><l>0</l><block s="reportDifference"><block s="reportListItem"><block var="action"/><block var="runs left"/></block><l>1</l></block></list></block></block></script></block></script></list></block></script></block-definition><block-definition s="text %&apos;text&apos; matches pattern %&apos;pattern&apos; ? %&apos;single wildcard&apos; %&apos;any length wildcard&apos;" type="predicate" category="operators" selector="reportPatternMatchText" space="true"><comment x="0" y="0" w="448" collapsed="false">Reports whether or not the text matches the pattern. Use the wildcards for less specific matches.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%mult%anyUE" initial="1"></input><input type="%upvar" initial="1">single wildcard</input><input type="%upvar" initial="1">any length wildcard</input></inputs><script><block s="doSetVar"><l>single wildcard</l><block s="reifyReporter"><autolambda><block var="single wildcard"/></autolambda><list></list></block></block><block s="doSetVar"><l>any length wildcard</l><block s="reifyReporter"><autolambda><block var="any length wildcard"/></autolambda><list></list></block></block><block s="doSetVar"><l>pattern</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><block var="value"/><l></l></list></block></autolambda><list><l>value</l></list></block><block s="evaluate"><block var="pattern"/><list></list></block></block></block><block s="doIf"><block s="reportListContainsItem"><block s="reportNewList"><list><block s="reportNewList"><list></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block var="any length wildcard"/></autolambda><list></list></block></list></block></list></block><block s="reportListAttribute"><l><option>uniques</option></l><block var="pattern"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><l>0</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><l><bool>true</bool></l><script><block s="doDeclareVariables"><list><l>matches</l></list></block><block s="doSetVar"><l>matches</l><block s="reportNewList"><list><l></l></list></block></block><block s="doForEach"><l>letter</l><block s="reportTextSplit"><block var="text"/><l><option>letter</option></l></block><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="matches"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="pattern"/></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportListAttribute"><l><option>length</option></l><block var="matches"/></block><block var="pattern"/></block><block s="reifyReporter"><autolambda><block var="any length wildcard"/></autolambda><list></list></block></list></block><script><block s="doReplaceInList"><l><option>last</option></l><block var="matches"/><block s="reifyReporter"><autolambda><block var="any length wildcard"/></autolambda><list></list></block></block><block s="doUntil"><block s="reportVariadicNotEquals"><list><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><block var="matches"/></block><l>1</l></list></block><block var="pattern"/></block><block s="reifyReporter"><autolambda><block var="any length wildcard"/></autolambda><list></list></block></list></block><script><block s="doAddToList"><block s="reifyReporter"><autolambda><block var="any length wildcard"/></autolambda><list></list></block><block var="matches"/></block></script></block><block s="doAddToList"><l></l><block var="matches"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportListAttribute"><l><option>length</option></l><block var="matches"/></block><block var="pattern"/></block><block s="reifyReporter"><autolambda><block var="single wildcard"/></autolambda><list></list></block></list></block><script><block s="doReplaceInList"><l><option>last</option></l><block var="matches"/><block s="reifyReporter"><autolambda><block var="single wildcard"/></autolambda><list></list></block></block><block s="doAddToList"><l></l><block var="matches"/></block></script><list><block s="reportVariadicEquals"><list><block var="letter"/><block s="reportLetter"><block s="reportVariadicSum"><list><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><l><option>last</option></l><block var="matches"/></block></block><l>1</l></list></block><block s="reportListItem"><block s="reportListAttribute"><l><option>length</option></l><block var="matches"/></block><block var="pattern"/></block></block></list></block><script><block s="doReplaceInList"><l><option>last</option></l><block var="matches"/><block s="reportJoinWords"><list><block s="reportListItem"><l><option>last</option></l><block var="matches"/></block><block var="letter"/></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l><option>last</option></l><block var="matches"/></block><block s="reportListItem"><block s="reportListAttribute"><l><option>length</option></l><block var="matches"/></block><block var="pattern"/></block></list></block><script><block s="doAddToList"><l></l><block var="matches"/></block></script><list></list></block></script><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="matches"/></block><l>1</l></block><block var="matches"/></block><block s="reifyReporter"><autolambda><block var="any length wildcard"/></autolambda><list></list></block></list></block><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><l><option>last</option></l><block var="matches"/></block></block><l>0</l></list></block><script><block s="doReplaceInList"><l><option>last</option></l><block var="matches"/><l></l></block></script><list></list></block></script><l><bool>true</bool></l><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></list></block></script></block><block s="doReport"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="matches"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="pattern"/></block></list></block></block></script></list></block></script></block-definition><block-definition s="amplitude range of sound %&apos;sound&apos; from %&apos;start&apos; to %&apos;end&apos; %&apos;unit&apos;" type="reporter" category="sound" selector="reportAmpRange" space="true"><comment x="0" y="0" w="346" collapsed="false">Reports the range of amplitude of a sound between two samples or times.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_soundsMenu</options></input><input type="%n" initial="1">0</input><input type="%n" initial="1">1</input><input type="%s" readonly="true" initial="1">secs<options>secs&#xD;samples</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="unit"/><l>secs</l></list></block><script><block s="doSetVar"><l>start</l><block s="reportVariadicProduct"><list><block var="start"/><block s="reportGetSoundAttribute"><l><option>sample rate</option></l><block var="sound"/></block></list></block></block><block s="doSetVar"><l>end</l><block s="reportVariadicProduct"><list><block var="end"/><block s="reportGetSoundAttribute"><l><option>sample rate</option></l><block var="sound"/></block></list></block></block></script><list></list></block><block s="doReport"><block s="reportListItem"><block s="reportNewList"><list><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportNumbers"><block var="start"/><block var="end"/></block></block></list></block><block s="reportListAttribute"><l><option>sorted</option></l><block s="reportListItem"><block s="reportNumbers"><block var="start"/><block var="end"/></block><block s="reportGetSoundAttribute"><l><option>samples</option></l><block var="sound"/></block></block></block></block></block></script></block-definition><block-definition s="create a clone of %&apos;target&apos; that runs %&apos;actions&apos;" type="command" category="control" selector="createCloneRunning" space="true"><comment x="0" y="0" w="289" collapsed="false">Creates a new clone of a target and tells it to run each action.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">$_myself<options>§_clonablesMenuWithTurtle</options></input><input type="%mult%cmdRing" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>clone</l></list></block><block s="doSetVar"><l>clone</l><block s="newClone"><block var="target"/></block></block><block s="doForEach"><l>action</l><block var="actions"/><script><block s="fork"><block s="reifyScript"><script><block s="doTellTo"><block var="clone"/><block var="action"/><list></list></block></script><list></list></block><list></list></block></script></block></script></block-definition><block-definition s="a new clone of %&apos;target&apos; that runs %&apos;actions&apos;" type="reporter" category="control" selector="newCloneRunning"><comment x="0" y="0" w="220.99999999999977" collapsed="false">Creates a new clone of a target, tells the clone to run each action, and reports the new clone.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">$_myself<options>§_clonablesMenuWithTurtle</options></input><input type="%mult%cmdRing" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>clone</l></list></block><block s="doSetVar"><l>clone</l><block s="newClone"><block var="target"/></block></block><block s="doForEach"><l>action</l><block var="actions"/><script><block s="fork"><block s="reifyScript"><script><block s="doTellTo"><block var="clone"/><block var="action"/><list></list></block></script><list></list></block><list></list></block></script></block><block s="doReport"><block var="clone"/></block></script></block-definition><block-definition s="peak displacement of sound %&apos;sound&apos; from %&apos;start&apos; to %&apos;end&apos; %&apos;unit&apos;" type="reporter" category="sound" selector="reportPeakDisplacement"><comment x="0" y="0" w="346.0000000000001" collapsed="false">Reports the peak displacement of a sound between two samples or times.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_soundsMenu</options></input><input type="%n" initial="1">0</input><input type="%n" initial="1">1</input><input type="%s" readonly="true" initial="1">secs<options>secs&#xD;samples</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="unit"/><l>secs</l></list></block><script><block s="doSetVar"><l>start</l><block s="reportVariadicProduct"><list><block var="start"/><block s="reportGetSoundAttribute"><l><option>sample rate</option></l><block var="sound"/></block></list></block></block><block s="doSetVar"><l>end</l><block s="reportVariadicProduct"><list><block var="end"/><block s="reportGetSoundAttribute"><l><option>sample rate</option></l><block var="sound"/></block></list></block></block></script><list></list></block><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>sorted</option></l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="value"/><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="list"/></block></block></block></autolambda><list><l>value</l><l>index</l><l>list</l></list></block><block s="reportListItem"><block s="reportNumbers"><block var="start"/><block var="end"/></block><block s="reportGetSoundAttribute"><l><option>samples</option></l><block var="sound"/></block></block></block></block></block></block></script></block-definition><block-definition s="%&apos;p&apos; of polygon from points %&apos;l&apos;" type="reporter" category="operators" selector="reportPolygonProperty" space="true"><comment x="0" y="0" w="153" collapsed="false">Returns a property of a polygon from a given list of points.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">$_perimeter<options>perimeter=$_perimeter&#xD;area=$_area&#xD;centroid=$_centroid</options></input><input type="%l" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="p"/><l>perimeter</l></list></block><script><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="l"/></block><script><block s="doChangeVar"><l>a</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportPower"><block s="reportDifference"><block s="reportListItem"><l>1</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block s="reportDifference"><block var="a"/><l>1</l></block><block s="reportListAttribute"><l><option>length</option></l><block var="l"/></block></block><l>1</l></list></block><block var="l"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block var="a"/><block s="reportListAttribute"><l><option>length</option></l><block var="l"/></block></block><l>1</l></list></block><block var="l"/></block></block></block><l>2</l></block><block s="reportPower"><block s="reportDifference"><block s="reportListItem"><l>2</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block s="reportDifference"><block var="a"/><l>1</l></block><block s="reportListAttribute"><l><option>length</option></l><block var="l"/></block></block><l>1</l></list></block><block var="l"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block var="a"/><block s="reportListAttribute"><l><option>length</option></l><block var="l"/></block></block><l>1</l></list></block><block var="l"/></block></block></block><l>2</l></block></list></block></block></block></script></block><block s="doReport"><block var="a"/></block></script><list><block s="reportVariadicEquals"><list><block var="p"/><l>area</l></list></block><script><block s="doDeclareVariables"><list><l>b</l></list></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="l"/></block><script><block s="doChangeVar"><l>a</l><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block s="reportDifference"><block var="a"/><l>1</l></block><block s="reportListAttribute"><l><option>length</option></l><block var="l"/></block></block><l>1</l></list></block><block var="l"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block var="a"/><block s="reportListAttribute"><l><option>length</option></l><block var="l"/></block></block><l>1</l></list></block><block var="l"/></block></block></list></block></block><block s="doChangeVar"><l>b</l><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block s="reportDifference"><block var="a"/><l>1</l></block><block s="reportListAttribute"><l><option>length</option></l><block var="l"/></block></block><l>1</l></list></block><block var="l"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block var="a"/><block s="reportListAttribute"><l><option>length</option></l><block var="l"/></block></block><l>1</l></list></block><block var="l"/></block></block></list></block></block></script></block><block s="doReport"><block s="reportQuotient"><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="a"/><block var="b"/></block></block><l>2</l></block></block></script><block s="reportVariadicEquals"><list><block var="p"/><l>centroid</l></list></block><script><block s="doDeclareVariables"><list><l>b</l></list></block><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>b</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="l"/></block><l>2</l></block><script><block s="doFor"><l>j</l><block s="reportVariadicSum"><list><block var="i"/><l>1</l></list></block><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="l"/></block><l>1</l></block><script><block s="doFor"><l>k</l><block s="reportVariadicSum"><list><block var="j"/><l>2</l></list></block><block s="reportListAttribute"><l><option>length</option></l><block var="l"/></block><script><block s="doSetVar"><l>a</l><block s="reportConcatenatedLists"><list><block var="a"/><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportVariadicSum"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><block s="reportListItem"><l></l><block var="l"/></block></block></autolambda><list></list></block><block s="reportNewList"><list><block var="i"/><block var="j"/><block var="k"/></list></block></block></block><block s="reportVariadicSum"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>2</l><block s="reportListItem"><l></l><block var="l"/></block></block></autolambda><list></list></block><block s="reportNewList"><list><block var="i"/><block var="j"/><block var="k"/></list></block></block></block></list></block></list></block></list></block></block><block s="doSetVar"><l>b</l><block s="reportConcatenatedLists"><list><block var="b"/><block s="reportNewList"><list><block s="reportQuotient"><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="l"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="j"/><block var="l"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="j"/><block var="l"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="k"/><block var="l"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="k"/><block var="l"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="i"/><block var="l"/></block></block></list></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="i"/><block var="l"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="j"/><block var="l"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="j"/><block var="l"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="k"/><block var="l"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="k"/><block var="l"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="l"/></block></block></list></block></list></block></block></block><l>2</l></block></list></block></list></block></block></script></block></script></block></script></block><block s="doReport"><block s="reportQuotient"><block s="reportVariadicSum"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block var="value"/><block s="reportListItem"><block var="index"/><block var="b"/></block></list></block></autolambda><list><l>value</l><l>index</l></list></block><block var="a"/></block></block><block s="reportVariadicSum"><block var="b"/></block></block></block></script></list></block></script></block-definition><block-definition s="has %&apos;input&apos; changed?" type="predicate" category="sensing" selector="reportHasChanged" space="true"><comment x="0" y="0" w="122" collapsed="false">Reports true if the input has changed. Otherwise, reports false.</comment><variables><list struct="atomic" id="7069">previous input</list></variables><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="input"/><block var="previous input"/></list></block><block s="reportBoolean"><l><bool>false</bool></l></block><block s="evaluate"><block s="reifyReporter"><script><block s="doSetVar"><l>previous input</l><block var="input"/></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><list></list></block></block></block></script></block-definition><block-definition s="Δ %&apos;input&apos;" type="reporter" category="sensing" selector="reportDelta"><comment x="0" y="0" w="80" collapsed="false">Reports the change in input.</comment><variables><list struct="atomic" id="7101">previous input</list></variables><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0</input></inputs><script><block s="doDeclareVariables"><list><l>delta</l></list></block><block s="doSetVar"><l>delta</l><block s="reportDifference"><block var="input"/><block var="previous input"/></block></block><block s="doSetVar"><l>previous input</l><block var="input"/></block><block s="doReport"><block var="delta"/></block></script></block-definition><block-definition s="my %&apos;attributes&apos;" type="reporter" category="sensing" selector="reportGetExtra" space="true"><comment x="0" y="0" w="90" collapsed="false">Reports the given attribute.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" irreplaceable="true" initial="1">siblings<options>variables&#xD;&#126;&#xD;siblings</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="attributes"/><l>variables</l></list></block><script><block s="doReport"><block s="reportAttributeOf"><l><option>variables</option></l><block s="reportGet"><l><option>self</option></l></block></block></block></script><list><block s="reportVariadicEquals"><list><block var="attributes"/><l>siblings</l></list></block><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicNotEquals"><list><block s="reportGet"><l><option>parent</option></l></block><l></l></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><l></l><block s="reportGet"><l><option>self</option></l></block></list></block></autolambda><list></list></block><block s="reportAskFor"><block s="reportGet"><l><option>parent</option></l></block><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>children</option></l></block></autolambda><list></list></block><list></list></block></block><block s="reportNewList"><list></list></block></block></block></script></list></block><block s="doReport"><l>invalid attribute</l></block></script></block-definition><block-definition s="has %&apos;attribute&apos; ?" type="predicate" category="sensing" selector="reportHas"><comment x="0" y="0" w="112.69882812499999" collapsed="false">Reports whether or not the sprite has a selected attribute.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" irreplaceable="true" initial="1">neighbors<options>neighbors&#xD;other sprites&#xD;clones&#xD;other clones&#xD;parts&#xD;anchor&#xD;children&#xD;parent&#xD;name&#xD;scripts&#xD;solutions&#xD;costumes&#xD;sounds&#xD;&#126;&#xD;siblings&#xD;variables</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>neighbors</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportListIsEmpty"><block s="reportGet"><l><option>neighbors</option></l></block></block></block></block></script><list><block s="reportVariadicEquals"><list><block var="attribute"/><l>other sprites</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportListIsEmpty"><block s="reportGet"><l><option>other sprites</option></l></block></block></block></block></script><block s="reportVariadicEquals"><list><block var="attribute"/><l>clones</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportListIsEmpty"><block s="reportGet"><l><option>clones</option></l></block></block></block></block></script><block s="reportVariadicEquals"><list><block var="attribute"/><l>other clones</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportListIsEmpty"><block s="reportGet"><l><option>other clones</option></l></block></block></block></block></script><block s="reportVariadicEquals"><list><block var="attribute"/><l>parts</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportListIsEmpty"><block s="reportGet"><l><option>parts</option></l></block></block></block></block></script><block s="reportVariadicEquals"><list><block var="attribute"/><l>anchor</l></list></block><script><block s="doReport"><block s="reportVariadicNotEquals"><list><block s="reportGet"><l><option>anchor</option></l></block><l></l></list></block></block></script><block s="reportVariadicEquals"><list><block var="attribute"/><l>children</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportListIsEmpty"><block s="reportGet"><l><option>children</option></l></block></block></block></block></script><block s="reportVariadicEquals"><list><block var="attribute"/><l>parent</l></list></block><script><block s="doReport"><block s="reportVariadicNotEquals"><list><block s="reportGet"><l><option>parent</option></l></block><l></l></list></block></block></script><block s="reportVariadicEquals"><list><block var="attribute"/><l>name</l></list></block><script><block s="doReport"><block s="reportVariadicNotEquals"><list><block s="reportGet"><l><option>name</option></l></block><l></l></list></block></block></script><block s="reportVariadicEquals"><list><block var="attribute"/><l>scripts</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportListIsEmpty"><block s="reportGet"><l><option>scripts</option></l></block></block></block></block></script><block s="reportVariadicEquals"><list><block var="attribute"/><l>solutions</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportListIsEmpty"><block s="reportGet"><l><option>solutions</option></l></block></block></block></block></script><block s="reportVariadicEquals"><list><block var="attribute"/><l>costumes</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportListIsEmpty"><block s="reportGet"><l><option>costumes</option></l></block></block></block></block></script><block s="reportVariadicEquals"><list><block var="attribute"/><l>sounds</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportListIsEmpty"><block s="reportGet"><l><option>sounds</option></l></block></block></block></block></script><block s="reportVariadicEquals"><list><block var="attribute"/><l>siblings</l></list></block><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicNotEquals"><list><block s="reportGet"><l><option>parent</option></l></block><l></l></list></block><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportNot"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><l></l><block s="reportGet"><l><option>self</option></l></block></list></block></autolambda><list></list></block><block s="reportAskFor"><block s="reportGet"><l><option>parent</option></l></block><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>children</option></l></block></autolambda><list></list></block><list></list></block></block></block></block></block></block></script><block s="reportVariadicEquals"><list><block var="attribute"/><l>variables</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportListIsEmpty"><block s="reportAttributeOf"><l><option>variables</option></l><block s="reportGet"><l><option>self</option></l></block></block></block></block></block></script></list></block><block s="doReport"><l>invalid attribute</l></block></script></block-definition><block-definition s="position of %&apos;destination&apos;" type="reporter" category="motion" selector="reportDestinationPosition" space="true"><comment x="0" y="0" w="175" collapsed="false">Reports the position of a destination.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">$_mouse-pointer<options>§_destinationsMenu</options></input></inputs><script><block s="doDeclareVariables"><list><l>clone</l></list></block><block s="doSetVar"><l>clone</l><block s="newClone"><l><option>myself</option></l></block></block><block s="doSetVar"><l>destination</l><block s="reportAskFor"><block var="clone"/><block s="reifyReporter"><script><block s="up"></block><block s="doGotoObject"><block var="destination"/></block><block s="doReport"><block s="getPosition"></block></block></script><list></list></block><list></list></block></block><block s="doTellTo"><block var="clone"/><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block><block s="doReport"><block var="destination"/></block></script></block-definition><block-definition s="refit %&apos;input&apos; to %&apos;list&apos;" type="reporter" category="lists" selector="reportRefitToList" space="true"><comment x="0" y="0" w="85" collapsed="false">Returns the input as a list of equal dimensions to the given list.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="input"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>input</l><block s="reportNewList"><list><block var="input"/></list></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>number</l><l>function</l></list></block><block s="doSetVar"><l>number</l><l>0</l></block><block s="doSetVar"><l>function</l><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><block s="reportMap"><block var="function"/><l/></block><block s="evaluate"><block s="reifyScript"><script><block s="doSetVar"><l>number</l><block s="reportVariadicSum"><list><block s="reportModulus"><block var="number"/><block s="reportListAttribute"><l><option>length</option></l><block var="input"/></block></block><l>1</l></list></block></block><block s="doReport"><block s="reportListItem"><block var="number"/><block var="input"/></block></block></script><list></list></block><list></list></block></block></autolambda><list></list></block></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block var="list"/></list></block></block></script></block-definition></blocks><primitives></primitives><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="7611"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAQAElEQVR4AezVC27kNhAEUCP3P3SC/NZeez6SSDWb9YJg1zsjkV2vDdQfH/4jQIAAAQIEbhdQwLeTu5AAAQIECHx8ZBew3wACBAgQIFAkoICL4F1LgAABAtkCCjh3/5ITIECAQKGAAi7EdzUBAgQI5Aoo4NzdZyeXngABAsUCCrh4Aa4nQIAAgUwBBZy5d6mzBaQnQGABAQW8wBKMQIAAAQJ5Ago4b+cSE8gWkJ7AIgIKeJFFGIMAAQIEsgQUcNa+pSVAIFtA+oUEFPBCyzAKAQIECOQIKOCcXUtKgACBbIHF0ivgxRZiHAIECBDIEFDAGXuWkgABAgQWE7i5gBdLbxwCBAgQIFAkoICL4F1LgAABAtkCCvjG/buKAAECBAj8J6CA/5PwNwECBAgQuFFAAd+InX2V9AQIECDwWUABf9bwMwECBAgQuElAAd8E7ZpsAekJECDwu4AC/l3EvwkQIECAwA0CCvgGZFcQyBaQngCBnwQU8E8qPiNAgAABApMFFPBkYMcTIJAtID2BRwIK+JGMzwkQIECAwEQBBTwR19EECBDIFpD+mYACfqbjOwIECBAgMElAAU+CdSwBAgQIZAu8Sq+AXwn5ngABAgQITBBQwBNQHUmAAAECBF4J7F3Ar9L7ngABAgQIFAko4CJ41xIgQIBAtoAC3nf/khEgQIDAwgIKeOHlGI0AAQIE9hVQwPvuNjuZ9AQIEFhcQAEvviDjESBAgMCeAgp4z71KlS0gPQECDQQUcIMlGZEAAQIE9hNQwPvtVCIC2QLSE2gioICbLMqYBAgQILCXgALea5/SECCQLSB9IwEF3GhZRiVAgACBfQQU8D67lIQAAQLZAs3SK+BmCzMuAQIECOwhoID32KMUBAgQINBMYHABN0tvXAIECBAgUCSggIvgXUuAAAEC2QIKeOD+HUWAAAECBN4VUMDvSnmOAAECBAgMFFDAAzGzj5KeAAECBI4IKOAjWp4lQIAAAQKDBBTwIEjHZAtIT4AAgaMCCviomOcJECBAgMAAAQU8ANERBLIFpCdA4IyAAj6j5h0CBAgQIHBRQAFfBPQ6AQLZAtITOCuggM/KeY8AAQIECFwQUMAX8LxKgACBbAHprwgo4Ct63iVAgAABAicFFPBJOK8RIECAQLbA1fQK+Kqg9wkQIECAwAkBBXwCzSsECBAgQOCqQO8Cvpre+wQIECBAoEhAARfBu5YAAQIEsgUUcN/9m5wAAQIEGgso4MbLMzoBAgQI9BVQwH13lz259AQIEGguoICbL9D4BAgQINBTQAH33JupswWkJ0BgAwEFvMESRSBAgACBfgIKuN/OTEwgW0B6ApsIKOBNFikGAQIECPQSUMC99mVaAgSyBaTfSEABb7RMUQgQIECgj4AC7rMrkxIgQCBbYLP0CnizhYpDgAABAj0EFHCPPZmSAAECBDYTOFjAm6UXhwABAgQIFAko4CJ41xIgQIBAtoACPrB/jxIgQIAAgVECCniUpHMIECBAgMABAQV8ACv7UekJECBAYKSAAh6p6SwCBAgQIPCmgAJ+E8pj2QLSEyBAYLSAAh4t6jwCBAgQIPCGgAJ+A8kjBLIFpCdAYIaAAp6h6kwCBAgQIPBCQAG/API1AQLZAtITmCWggGfJOpcAAQIECDwRUMBPcHxFgACBbAHpZwoo4Jm6ziZAgAABAg8EFPADGB8TIECAQLbA7PQKeLaw8wkQIECAwA8CCvgHFB8RIECAAIHZAmsX8Oz0zidAgAABAkUCCrgI3rUECBAgkC2ggNfdv8kIECBAYGMBBbzxckUjQIAAgXUFFPC6u8meTHoCBAhsLqCAN1+weAQIECCwpoACXnMvpsoWkJ4AgQABBRywZBEJECBAYD0BBbzeTkxEIFtAegIhAgo4ZNFiEiBAgMBaAgp4rX2YhgCBbAHpgwQUcNCyRSVAgACBdQQU8Dq7MAkBAgSyBcLSK+CwhYtLgAABAmsIKOA19mAKAgQIEAgT+K2Aw9KLS4AAAQIEigQUcBG8awkQIEAgW0ABf9q/HwkQIECAwF0CCvguafcQIECAAIFPAgr4E0b2j9ITIECAwJ0CCvhObXcRIECAAIF/BRTwvxD+yhaQngABAncLKOC7xd1HgAABAgT+ElDAfyH4n0C2gPQECFQIKOAKdXcSIECAQLyAAo7/FQBAIFtAegJVAgq4St69BAgQIBAtoICj1y88AQLZAtJXCijgSn13EyBAgECsgAKOXb3gBAgQyBaoTq+AqzfgfgIECBCIFFDAkWsXmgABAgSqBWoLuDq9+wkQIECAQJGAAi6Cdy0BAgQIZAso4Lr9u5kAAQIEggUUcPDyRSdAgACBOgEFXGeffbP0BAgQCBdQwOG/AOITIECAQI2AAq5xd2u2gPQECBD4UMB+CQgQIECAQIGAAi5AdyWBaAHhCRD4W0AB/83gDwIECBAgcK+AAr7X220ECGQLSE/gfwEF/D+FHwgQIECAwH0CCvg+azcRIEAgW0D6LwIK+AuHfxAgQIAAgXsEFPA9zm4hQIAAgWyBb+kV8DcSHxAgQIAAgfkCCni+sRsIECBAgMA3gagC/pbeBwQIECBAoEhAARfBu5YAAQIEsgUUcMz+BSVAgACBlQQU8ErbMAsBAgQIxAgo4JhVZweVngABAqsJKODVNmIeAgQIEIgQUMARaxYyW0B6AgRWFFDAK27FTAQIECCwvYAC3n7FAhLIFpCewKoCCnjVzZiLAAECBLYWUMBbr1c4AgSyBaRfWUABr7wdsxEgQIDAtgIKeNvVCkaAAIFsgdXTK+DVN2Q+AgQIENhSQAFvuVahCBAgQGB1gbkFvHp68xEgQIAAgSIBBVwE71oCBAgQyBZQwPP272QCBAgQIPBQQAE/pPEFAQIECBCYJ6CA59lmnyw9AQIECDwVUMBPeXxJgAABAgTmCCjgOa5OzRaQngABAi8FFPBLIg8QIECAAIHxAgp4vKkTCWQLSE+AwFsCCvgtJg8RIECAAIGxAgp4rKfTCBDIFpCewNsCCvhtKg8SIECAAIFxAgp4nKWTCBAgkC0g/SEBBXyIy8MECBAgQGCMgAIe4+gUAgQIEMgWOJxeAR8m8wIBAgQIELguoICvGzqBAAECBAgcFtiqgA+n9wIBAgQIECgSUMBF8K4lQIAAgWwBBbzN/gUhQIAAgU4CCrjTtsxKgAABAtsIKOBtVpkdRHoCBAh0E1DA3TZmXgIECBDYQkABb7FGIbIFpCdAoKOAAu64NTMTIECAQHsBBdx+hQIQyBaQnkBXAQXcdXPmJkCAAIHWAgq49foMT4BAtoD0nQUUcOftmZ0AAQIE2goo4LarMzgBAgSyBbqnV8DdN2h+AgQIEGgpoIBbrs3QBAgQINBd4FoBd09vfgIECBAgUCSggIvgXUuAAAEC2QIK+Pz+vUmAAAECBE4LKODTdF4kQIAAAQLnBRTwebvsN6UnQIAAgUsCCvgSn5cJECBAgMA5AQV8zs1b2QLSEyBA4LKAAr5M6AACBAgQIHBcQAEfN/MGgWwB6QkQGCKggIcwOoQAAQIECBwTUMDHvDxNgEC2gPQEhgko4GGUDiJAgAABAu8LKOD3rTxJgACBbAHphwoo4KGcDiNAgAABAu8JKOD3nDxFgAABAtkCw9Mr4OGkDiRAgAABAq8FFPBrI08QIECAAIHhAq0KeHh6BxIgQIAAgSIBBVwE71oCBAgQyBZQwG32b1ACBAgQ2ElAAe+0TVkIECBAoI2AAm6zquxBpSdAgMBuAgp4t43KQ4AAAQItBBRwizUZMltAegIEdhRQwDtuVSYCBAgQWF5AAS+/IgMSyBaQnsCuAgp4183KRYAAAQJLCyjgpddjOAIEsgWk31lAAe+8XdkIECBAYFkBBbzsagxGgACBbIHd0yvg3TcsHwECBAgsKaCAl1yLoQgQIEBgd4HnBbx7evkIECBAgECRgAIugnctAQIECGQLKODH+/cNAQIECBCYJqCAp9E6mAABAgQIPBZQwI9tsr+RngABAgSmCijgqbwOJ0CAAAECPwso4J9dfJotID0BAgSmCyjg6cQuIECAAAEC3wUU8HcTnxDIFpCeAIFbBBTwLcwuIUCAAAECXwUU8FcP/yJAIFtAegK3CSjg26hdRIAAAQIEfgko4F8WfiJAgEC2gPS3CijgW7ldRoAAAQIE/hFQwP84+JMAAQIEsgVuT6+Abyd3IQECBAgQ+PhQwH4LCBAgQIBAgcBSBVyQ35UECBAgQKBEQAGXsLuUAAECBNIFFPAyvwEGIUCAAIEkAQWctG1ZCRAgQGAZAQW8zCqyB5GeAAECaQIKOG3j8hIgQIDAEgIKeIk1GCJbQHoCBBIFFHDi1mUmQIAAgXIBBVy+AgMQyBaQnkCqgAJO3bzcBAgQIFAqoIBL+V1OgEC2gPTJAgo4efuyEyBAgECZgAIuo3cxAQIEsgXS0yvg9N8A+QkQIECgREABl7C7lAABAgSyBT4+FHD6b4D8BAgQIFAioIBL2F1KgAABAukCyQWcvnv5CRAgQKBQQAEX4ruaAAECBHIFFHDq7uUmQIAAgVIBBVzK73ICBAgQSBVQwKmbz84tPQECBMoFFHD5CgxAgAABAokCCjhx6zJnC0hPgMASAgp4iTUYggABAgTSBBRw2sblJZAtID2BZQQU8DKrMAgBAgQIJAko4KRty0qAQLaA9EsJKOCl1mEYAgQIEEgRUMApm5aTAAEC2QLLpVfAy63EQAQIECCQIKCAE7YsIwECBAgsJ3BrAS+X3kAECBAgQKBIQAEXwbuWAAECBLIFFPBt+3cRAQIECBD4JaCAf1n4iQABAgQI3CaggG+jzr5IegIECBD4KqCAv3r4FwECBAgQuEVAAd/C7JJsAekJECDwXUABfzfxCQECBAgQmC6ggKcTu4BAtoD0BAj8LKCAf3bxKQECBAgQmCqggKfyOpwAgWwB6Qk8FlDAj218Q4AAAQIEpgko4Gm0DiZAgEC2gPTPBRTwcx/fEiBAgACBKQIKeAqrQwkQIEAgW+B1egX82sgTBAgQIEBguIACHk7qQAIECBAg8Fpg5wJ+nd4TBAgQIECgSEABF8G7lgABAgSyBRTwrvuXiwABAgSWFlDAS6/HcAQIECCwq4AC3nWz2bmkJ0CAwPICCnj5FRmQAAECBHYUUMA7blWmbAHpCRBoIaCAW6zJkAQIECCwm4AC3m2j8hDIFpCeQBsBBdxmVQYlQIAAgZ0EFPBO25SFAIFsAelbCSjgVusyLAECBAjsIqCAd9mkHAQIEMgWaJdeAbdbmYEJECBAYAcBBbzDFmUgQIAAgXYCQwu4XXoDEyBAgACBIgEFXATvWgIECBDIFlDAw/bvIAIECBAg8L6AAn7fypMECBAgQGCYgAIeRpl9kPQECBAgcExAAR/z8jQBAgQIEBgioICHMDokW0B6AgQIHBdQwMfNvEGAAAECBC4LKODLhA4gkC0gPQECv+uE6gAAAkNJREFU5wQU8Dk3bxEgQIAAgUsCCvgSn5cJEMgWkJ7AeQEFfN7OmwQIECBA4LSAAj5N50UCBAhkC0h/TUABX/PzNgECBAgQOCWggE+xeYkAAQIEsgWup1fA1w2dQIAAAQIEDgso4MNkXiBAgAABAtcFOhfw9fROIECAAAECRQIKuAjetQQIECCQLaCAu+7f3AQIECDQWkABt16f4QkQIECgq4AC7rq57LmlJ0CAQHsBBdx+hQIQIECAQEcBBdxxa2bOFpCeAIEtBBTwFmsUggABAgS6CSjgbhszL4FsAekJbCOggLdZpSAECBAg0ElAAXfallkJEMgWkH4rAQW81TqFIUCAAIEuAgq4y6bMSYAAgWyB7dIr4O1WKhABAgQIdBBQwB22ZEYCBAgQ2E7gUAFvl14gAgQIECBQJKCAi+BdS4AAAQLZAgr47f17kAABAgQIjBNQwOMsnUSAAAECBN4WUMBvU2U/KD0BAgQIjBVQwGM9nUaAAAECBN4SUMBvMXkoW0B6AgQIjBdQwONNnUiAAAECBF4KKOCXRB4gkC0gPQECcwQU8BxXpxIgQIAAgacCCvgpjy8JEMgWkJ7APAEFPM/WyQQIECBA4KGAAn5I4wsCBAhkC0g/V0ABz/V1OgECBAgQ+FFAAf/I4kMCBAgQyBaYn14Bzzd2AwECBAgQ+CaggL+R+IAAAQIECMwXWLmA56d3AwECBAgQKBJQwEXwriVAgACBbAEFvOr+zUWAAAECWwso4K3XKxwBAgQIrCrwJwAAAP//lVwoVAAAAAZJREFUAwDU5ALRcl29HAAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="7612"></list></costumes><sounds><list struct="atomic" id="7613"></list></sounds><variables></variables><blocks></blocks><scripts><script x="121" y="66.16666666666663"><block s="doForever"><script><block s="doSayFor"><l>do</l><l>.2</l></block><block s="doSayFor"><l>de</l><l>.4</l></block></script></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" instrument="1"  draggable="true" costume="0" color="80,80,80,1" pen="tip" id="7627"><costumes><list struct="atomic" id="7628"></list></costumes><sounds><list struct="atomic" id="7629"></list></sounds><blocks></blocks><variables></variables><scripts><script x="17.999999999999915" y="10"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportBlockAttribute"><l><option>custom?</option></l><block s="reifyReporter"><script></script><list></list></block></block></autolambda><list></list></block><block s="reportGet"><l><option>blocks</option></l></block><comment w="90" collapsed="false">All custom blocks</comment></block></script><script x="10" y="392.3333333333338"><block s="reportUnicodeAsLetter"><block s="reportColorAttribute"><l><option>r-g-b-a</option></l><custom-block s="combine %mult%clr using %s transparency mode %s"><list><color>145,26,68,1</color><color>255,235,0,1</color></list><l><option>addalpha</option></l><l><option>combine</option></l></custom-block></block></block></script></scripts></sprite><sprite name="Rejected Blocks" idx="2" x="-88" y="-107.00000000000267" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="122.39999999999999,22.03199999999999,0,1" pen="tip" id="7662"><costumes><list struct="atomic" id="7663"></list></costumes><sounds><list struct="atomic" id="7664"></list></sounds><blocks><block-definition s="previous costume" type="command" category="looks"><comment x="0" y="0" w="127" collapsed="false">Switches the costume of a sprite to the previous one.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="getCostumeIdx"></block><l>0</l></list></block><script><block s="doSwitchToCostume"><block s="reportVariadicSum"><list><block s="reportModulus"><block s="reportDifference"><block s="getCostumeIdx"></block><l>2</l></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportGet"><l><option>costumes</option></l></block></block></block><l>1</l></list></block></block></script><list></list></block></script></block-definition><block-definition s="stop speaking" type="command" category="looks" space="true"><comment x="0" y="0" w="102" collapsed="false">Removes the current speech or thought bubble from a sprite.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="bubble"><l></l></block></script></block-definition><block-definition s="show %&apos;sprite&apos;" type="command" category="looks" space="true"><comment x="0" y="0" w="90" collapsed="false">Shows a sprite.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">myself<options>§_clonablesMenu</options></input></inputs><script><block s="doTellTo"><block var="sprite"/><block s="reifyScript"><script><block s="show"></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="hide %&apos;sprite&apos;" type="command" category="looks"><comment x="0" y="0" w="90" collapsed="false">Hides a sprite.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">myself<options>§_clonablesMenu</options></input></inputs><script><block s="doTellTo"><block var="sprite"/><block s="reifyScript"><script><block s="hide"></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="%&apos;sprite&apos; shown?" type="predicate" category="looks"><comment x="0" y="0" w="104" collapsed="false">Reports whether or not a sprite is shown.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">myself<options>§_clonablesMenu</options></input></inputs><script><block s="doReport"><block s="reportAskFor"><block var="sprite"/><block s="reifyReporter"><autolambda><block s="reportShown"></block></autolambda><list></list></block><list></list></block></block></script></block-definition><block-definition s="show all" type="command" category="looks" space="true"><comment x="0" y="0" w="80" collapsed="false">Shows every sprite.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doTellTo"><block s="reportConcatenatedLists"><list><block s="reportGet"><l><option>self</option></l></block><block s="reportGet"><l><option>other sprites</option></l></block></list></block><block s="reifyScript"><script><block s="show"></block><block s="doReport"><l></l></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="hide all" type="command" category="looks"><comment x="0" y="0" w="80" collapsed="false">Hides every sprite.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doTellTo"><block s="reportConcatenatedLists"><list><block s="reportGet"><l><option>self</option></l></block><block s="reportGet"><l><option>other sprites</option></l></block></list></block><block s="reifyScript"><script><block s="hide"></block><block s="doReport"><l></l></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="turbo %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="80" collapsed="false">Runs an action in turbo mode.</comment><header></header><code></code><translations></translations><inputs><input type="%cs" irreplaceable="true" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>turbo mode</l></list></block><block s="doSetVar"><l>turbo mode</l><block s="reportGlobalFlag"><l><option>turbo mode</option></l></block></block><block s="doRun"><block var="action"/><list></list></block><block s="doSetGlobalFlag"><l><option>turbo mode</option></l><block var="turbo mode"/></block></script></block-definition><block-definition s="while %&apos;condition&apos; %&apos;action&apos;" type="command" category="control" space="true"><comment x="0" y="0" w="80" collapsed="false">Repeats an action while the condition is true.</comment><header></header><code></code><translations></translations><inputs><input type="%boolUE" initial="1"></input><input type="%ca" irreplaceable="true" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>self</l></list></block><block s="doSetVar"><l>self</l><block s="reportEnvironment"><l><option>script</option></l></block></block><block s="doIf"><block s="evaluate"><block var="condition"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doApplyExtension"><l>snap_yield</l><list></list></block><block s="doRun"><block var="self"/><list><block var="condition"/><block var="action"/></list></block></script><list></list></block></script></block-definition><block-definition s="stop %&apos;target&apos;" type="command" category="control" space="true"><comment x="0" y="0" w="96" collapsed="false">Stops the running scripts of the target.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_objectsMenu</options></input></inputs><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="let %&apos;variable&apos; be %&apos;value&apos;" type="command" category="other"><comment x="0" y="0" w="100" collapsed="false">Creates a new script variable with an assigned value.</comment><header></header><code></code><translations></translations><inputs><input type="%upvar" initial="1">a</input><input type="%s" initial="1"></input></inputs><script><block s="doSetVar"><l>variable</l><block var="value"/></block></script></block-definition><block-definition s="set rotation style to %&apos;rotation style&apos;" type="command" category="motion"><comment x="0" y="0" w="202" collapsed="false">Sets the rotation style of the current sprite.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">only face left/right<options>can rotate&#xD;only face left/right&#xD;don&apos;t rotate</options></input></inputs><script><block s="doSetVar"><l><option>my rotation style</option></l><block s="reportListIndex"><block var="rotation style"/><block s="reportNewList"><list><l>can rotate</l><l>only face left/right</l></list></block></block></block></script></block-definition><block-definition s="rotation style" type="reporter" category="motion"><comment x="0" y="0" w="105" collapsed="false">Gets the rotation style of the current sprite.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportGet"><l><option>rotation style</option></l></block></block></script></block-definition><block-definition s="set drag mode to %&apos;drag mode&apos;" type="command" category="sensing"><comment x="0" y="0" w="96" collapsed="false">Sets the drag mode of the current sprite.</comment><header></header><code></code><translations></translations><inputs><input type="%b" initial="1"></input></inputs><script><block s="doSetVar"><l><option>my draggable?</option></l><block var="drag mode"/></block></script></block-definition><block-definition s="draggable?" type="predicate" category="sensing"><comment x="0" y="0" w="80" collapsed="false">Gets whether or not the current sprite is draggable.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportGet"><l><option>draggable?</option></l></block></block></script></block-definition><block-definition s="delete clones of %&apos;target&apos;" type="command" category="control" space="true"><comment x="0" y="0" w="164.57531250000056" collapsed="false">Deletes the clones of a target.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">$_myself<options>§_clonablesMenu</options></input></inputs><script><block s="doTellTo"><block s="reportAskFor"><block s="reportObject"><block var="target"/></block><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>clones</option></l></block></autolambda><list></list></block><list></list></block><block s="reifyScript"><script><block s="fork"><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block><block s="doReport"><l></l></block></script><list></list></block><list></list></block></script></block-definition></blocks><variables></variables><scripts><comment x="104.33333333333326" y="10" w="107" collapsed="false">This sprite contains the &quot;rejected&quot; blocks. These are rejected mostly because of existing workarounds.</comment></scripts></sprite><watcher scope="Stage" s="getTimer" style="normal" x="10.000000000000227" y="103.00000199999994" color="4,148,220" hidden="true"/><watcher var="test variable" style="normal" x="10.000000000000227" y="250.00001599999996" color="243,118,29" hidden="true"/><watcher scope="Sprite" s="xPosition" style="normal" x="10" y="10" color="74,108,212" hidden="true"/></sprites></stage><variables></variables></scene></scenes></project><media name="My Custom Blocks" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"></media></snapdata>