<snapdata remixID="14718542"><project name="Custom Blocks" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAAAslJREFUeF7t1DEKw0AQBEHrVfp/qFedwaFxNAxM4FK+u1Bq7jrnnJePwEjgEuBI3tmPgACFMBUQ4JTfcQFqYCogwCm/4wLUwFRAgFN+xwWogamAAKf8jgtQA1MBAU75HRegBqYCApzyOy5ADUwFBDjld1yAGpgKCHDK77gANTAVEOCU33EBamAqIMApv+MC1MBUQIBTfscFqIGpgACn/I4LUANTAQFO+R0XoAamAgKc8jsuQA1MBQQ45XdcgBqYCghwyu+4ADUwFRDglN9xAWpgKiDAKb/jAtTAVECAU37HBaiBqYAAp/yOC1ADUwEBTvkdF6AGpgICnPI7LkANTAUEOOV3XIAamAoIcMrvuAA1MBUQ4JTfcQFqYCogwJD/eZ6fk/d9hxv/c0yA4X8XYAj3NSbA0FGAIZwAO3AC7Dh6AUNHAYZwXsAOnAA7jl7A0FGAIZwXsANnS0fAC9hxtCUUEGAIZ6wjIMCOoy2hgABDOGMdAQF2HG0JBQQYwhnrCAiw42hLKCDAEM5YR0CAHUdbQgEBhnDGOgIC7DjaEgoIMIQz1hEQYMfRllBAgCGcsY6AADuOtoQCAgzhjHUEBNhxtCUUEGAIZ6wjIMCOoy2hgABDOGMdAQF2HG0JBQQYwhnrCAiw42hLKCDAEM5YR0CAHUdbQgEBhnDGOgIC7DjaEgoIMIQz1hEQYMfRllBAgCGcsY6AADuOtoQCAgzhjHUEBNhxtCUUEGAIZ6wjIMCOoy2hgABDOGMdAQF2HG0JBQQYwhnrCAiw42hLKCDAEM5YR0CAHUdbQgEBhnDGOgIC7DjaEgoIMIQz1hEQYMfRllBAgCGcsY6AADuOtoQCAgzhjHUEBNhxtCUUEGAIZ6wjIMCOoy2hgABDOGMdAQF2HG0JBQQYwhnrCAiw42hLKCDAEM5YR0CAHUdbQgEBhnDGOgIC7DjaEgq8AVhP86jHiS/nAAAAAElFTkSuQmCC</thumbnail><scenes select="1"><scene name="Custom Blocks"><notes></notes><palette><category name="RNG" color="184,117,0,1"/><category name="Bitwise" color="159,255,158,1"/><category name="JS" color="140,204,0,1"/><category name="Comments" color="200,200,200,1"/><category name="Websites" color="0,116,143,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="lerp from %&apos;s&apos; to %&apos;e&apos; with %&apos;t&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input><input type="%n" initial="1"></input><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicSum"><list><block var="s"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="e"/><block var="s"/></block><block var="t"/></list></block></list></block></block></script></block-definition><block-definition s="roll %&apos;n&apos; sided dice" type="reporter" category="RNG"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportRandom"><l>1</l><block var="n"/></block></block></script></block-definition><block-definition s="when %&apos;n&apos; sided dice rolls the first number" type="hat" category="RNG"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><custom-block s="roll %n sided dice"><block var="n"/></custom-block><l>1</l></list></block></block></script></block-definition><block-definition s="pick random from %&apos;things&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%s" initial="1"></input></inputs><script><block s="doReport"><block s="reportListItem"><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="things"/></block></block><block var="things"/></block></block></script></block-definition><block-definition s="flip coin" type="reporter" category="RNG"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><custom-block s="roll %n sided dice"><l>2</l></custom-block><l>1</l></list></block><l>heads</l><l>tails</l></block></block></script></block-definition><block-definition s="delete my clones" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doForEach"><l>clone</l><block s="reportGet"><l><option>clones</option></l></block><script><block s="doTellTo"><block var="clone"/><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block></script></block></script></block-definition><block-definition s="random" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="pick random from %mult%s"><list><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></custom-block></block></script></block-definition><block-definition s="new %&apos;scope&apos; variable %&apos;var&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true" initial="1">global<options>global&#xD;sprite&#xD;script</options></input><input type="%mult%txt" initial="1"></input></inputs><script><block s="doForEach"><l>item</l><block var="var"/><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><block var="scope"/><block var="item"/></list></block></script></block></script></block-definition><block-definition s="delete variable %&apos;v&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%mult%txt" initial="1"><options>§_getVarNamesDict</options></input></inputs><script><block s="doForEach"><l>item</l><block var="v"/><script><block s="doApplyExtension"><l>var_delete(name)</l><list><block var="item"/></list></block></script></block></script></block-definition><block-definition s="value of %&apos;v&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"><options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="v"/></list></block></block></script></block-definition><block-definition s="safely try %&apos;action&apos; then if %&apos;error&apos; %&apos;handler&apos;" type="command" category="control"><comment x="0" y="0" w="276" collapsed="false">Catch errors.&#xD;&#xD;Runs the first script.  If it succeeds, nothing else happens.&#xD;But if it has an error (something that would otherwise result&#xD;in a red halo around the block), then the second script is run,&#xD;with the text of the error message that would have been shown in the variable ERROR.</comment><header></header><code></code><translations>pt:tenta executar _ e, em caso de erro _ , executa _&#xD;ca:prova de forma segura _ i si _ _&#xD;pl:bezpiecznie spróbuj _ a jeśli _ _&#xD;</translations><inputs><input type="%cs"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block var="action"/><block var="handler"/><block var="error"/></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><comment x="0" y="0" w="268.6666666666667" collapsed="false">Throw an error.&#xD;&#xD;Makes a red halo appear around the script that runs it,&#xD;with the input text shown in a speech balloon next to&#xD;the script, just like any Snap! error.&#xD;&#xD;This is useful to put in the second script of SAFELY TRY&#xD;after some other instructions to undo the partial work of&#xD;the first script.</comment><header></header><code></code><translations>pt:lança o erro _&#xD;pl:błąd _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="safely try reporting %&apos;this&apos; then if %&apos;error&apos; report %&apos;that&apos;" type="reporter" category="control"><comment x="0" y="0" w="316.6666666666667" collapsed="false">Catch errors in a reporter.&#xD;&#xD;Evaluates its first input.  If that expression successfully reports a value, this block reports that value.  If the expression causes a Snap! error,&#xD;then the final input slot is evaluated with the text of what would have&#xD;been the error message in variable ERROR.  SAFELY TRY then reports the value of that final expression.&#xD;&#xD;Sometimes you&apos;ll want to throw an error in the final expression.  You&#xD;can put an ERROR block inside a CALL block to do that.</comment><header></header><code></code><translations>ca:prova de forma segura reportant _ i si _ reportant _&#xD;pl:bezpiecznie spróbuj zgłosić _ a jeśli _ zgłoś _&#xD;</translations><inputs><input type="%anyUE"></input><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doDeclareVariables"><list><l>value</l></list></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>value</l><block s="evaluate"><block var="this"/><list></list></block></block></script><l>err</l><script><block s="doSetVar"><l>error</l><block var="err"/></block><block s="doSetVar"><l>value</l><block s="evaluate"><block var="that"/><list></list></block></block></script></custom-block><block s="doReport"><block var="value"/></block></script></block-definition><block-definition s="error %&apos;text&apos; (reporter)" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>err_error(msg)</l><list><block var="text"/></list></block></block></script></block-definition><block-definition s="random %&apos;c&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%mult%cs" initial="1"></input></inputs><script><block s="doRun"><custom-block s="pick random from %l"><block var="c"/></custom-block><list></list></block></script></block-definition><block-definition s="pick random from %&apos;x&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input></inputs><script><block s="doReport"><block s="reportListItem"><l><option>random</option></l><block var="x"/></block></block></script></block-definition><block-definition s="is there an error in %&apos;c&apos; %&apos;error&apos;" type="predicate" category="control"><header></header><code></code><translations></translations><inputs><input type="%cs" initial="1"></input><input type="%upvar" initial="1"></input></inputs><script><custom-block s="safely try %cs then if %upvar %cs"><block var="c"/><l>err</l><script><block s="doSetVar"><l>err</l><block var="error"/></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></custom-block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="ignore %&apos;n&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input></inputs><script><block s="doApplyExtension"><l>err_ignore</l><list></list></block></script></block-definition><block-definition s="safety try %&apos;c&apos; %&apos;error&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%cs" initial="1"></input><input type="%upvar" initial="1"></input></inputs><script><custom-block s="safely try %cs then if %upvar %cs"><block var="c"/><l>err</l><script><custom-block s="ignore %txt"><block var="err"/></custom-block><block s="doSetVar"><l>error</l><block var="err"/></block></script></custom-block></script></block-definition><block-definition s="triangle %&apos;n&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="n"/><block s="reportVariadicSum"><list><block var="n"/><l>1</l></list></block></list></block><l>2</l></block></block></script></block-definition><block-definition s="binary $arrowRight decimal %&apos;n&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>b</l><l>c</l></list></block><block s="doSetVar"><l>c</l><l>0</l></block><block s="doSetVar"><l>b</l><l>0</l></block><block s="doSetVar"><l>a</l><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><block var="n"/><l><option>letter</option></l></block></block></block><block s="doForEach"><l>Digit</l><block var="a"/><script><block s="doChangeVar"><l>b</l><block s="reportVariadicProduct"><list><block var="Digit"/><block s="reportMonadic"><l><option>2^</option></l><block var="c"/></block></list></block></block><block s="doChangeVar"><l>c</l><l>1</l></block></script></block><block s="doReport"><block var="b"/></block></script></block-definition><block-definition s="new list variable %&apos;var&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%mult%txt" initial="1"></input></inputs><script><block s="doForEach"><l>item</l><block var="var"/><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><block var="item"/></list></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="item"/><block s="reportNewList"><list></list></block></list></block></script></block></script><scripts><script x="274.400390625" y="102.49999999999983"><block var="var"/></script><script x="205.8779296875" y="124.49999999999983"><block var="var"/></script></scripts></block-definition><block-definition s="%&apos;a&apos; / %&apos;b&apos; in remainder form" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="a"/><block var="b"/></block></block><l>r</l><block s="reportModulus"><block var="a"/><block var="b"/></block></list></block></block></script></block-definition><block-definition s="multiline %&apos;n&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mlt" initial="1"></input></inputs><script><block s="doReport"><block var="n"/></block></script></block-definition><block-definition s="var %&apos;x&apos; exists?" type="predicate" category="variables"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"><options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><block s="reportListContainsItem"><block s="reportAttributeOf"><l><option>variables</option></l><block s="reportGet"><l><option>self</option></l></block></block><block var="x"/></block></block></script></block-definition><block-definition s="index of %&apos;a&apos; in %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input><input type="%txt" initial="1"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;n&apos; !" type="reporter" category="operators"><comment x="0" y="0" w="190.66666666666666" collapsed="false">The factorial function, to make very large numbers, to demo bignums.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="n"/><l>0</l></list></block><l>1</l><block s="reportVariadicProduct"><list><block var="n"/><custom-block s="%n !"><block s="reportDifference"><block var="n"/><l>1</l></block></custom-block></list></block></block></block></script></block-definition><block-definition s="%&apos;a&apos; ∧ %&apos;b&apos;" type="reporter" category="Bitwise"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_and(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="reverse %&apos;n&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><block var="n"/><l><option>letter</option></l></block></block></list></block></block></script></block-definition><block-definition s="all but first letter of %&apos;n&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block s="reportCDR"><block s="reportTextSplit"><block var="n"/><l><option>letter</option></l></block></block></list></block></block></script></block-definition><block-definition s="¬ %&apos;b&apos;" type="reporter" category="Bitwise"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_not(a)</l><list><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; ∨ %&apos;b&apos;" type="reporter" category="Bitwise"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input><input type="%n" initial="1"></input></inputs><script><block s="doReport"><custom-block s="¬ %n"><custom-block s="%n ∧ %n"><custom-block s="¬ %n"><block var="a"/></custom-block><custom-block s="¬ %n"><block var="b"/></custom-block></custom-block></custom-block></block></script></block-definition><block-definition s="%&apos;a&apos; contains %&apos;b&apos; ?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input><input type="%txt" initial="1"></input></inputs><script><block s="doReport"><block s="reportNot"><block s="reportVariadicEquals"><list><custom-block s="index of %txt in %txt"><block var="b"/><block var="a"/></custom-block><l>0</l></list></block></block></block></script></block-definition><block-definition s="rickroll" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="go to site %txt"><l>https://www.youtube.com/watch?v=dQw4w9WgXcQ</l></custom-block></script></block-definition><block-definition s="my stats" type="reporter" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>x position</l><block s="xPosition"></block></list></block><block s="reportNewList"><list><l>y position</l><block s="yPosition"></block></list></block><block s="reportNewList"><list><l>direction</l><block s="direction"></block></list></block></list></block></block></script></block-definition><block-definition s="%&apos;x&apos; to json" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportNot"><block s="reportIsA"><block var="x"/><l><option>list</option></l></block></block><block s="reportListIsEmpty"><block var="x"/></block></list></block><script><custom-block s="error %txt"><l>The input must be a non-empty table</l></custom-block></script><list></list></block><block s="doSetVar"><l>a</l><l>{</l></block><block s="doForEach"><l>item</l><block var="x"/><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportNot"><block s="reportIsA"><block var="item"/><l><option>list</option></l></block></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="item"/></block><l>2</l></list></block></block></list></block><script><custom-block s="error %txt"><l>Width of table must be exactly 2!</l></custom-block></script><list></list></block><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block var="a"/><block s="reportJoinWords"><list><l>"</l><block s="reportListItem"><l>1</l><block var="item"/></block><l>"</l></list></block><l>: </l><block s="reportListItem"><l>2</l><block var="item"/></block><l>,</l></list></block></block></script></block><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><custom-block s="all but last letter of %txt"><block var="a"/></custom-block><l>}</l></list></block></block><block s="doReport"><block var="a"/></block></script><scripts><script x="245.50975036621094" y="195.4111348470051"><block var="x"/></script></scripts></block-definition><block-definition s="all but last letter of %&apos;x&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input></inputs><script><block s="doReport"><custom-block s="reverse %txt"><custom-block s="all but first letter of %txt"><custom-block s="reverse %txt"><block var="x"/></custom-block></custom-block></custom-block></block></script></block-definition><block-definition s="for each %&apos;value&apos; %&apos;index&apos; %&apos;list&apos; in %&apos;lst&apos; %&apos;c&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar" initial="1"></input><input type="%upvar" initial="1"></input><input type="%upvar" initial="1"></input><input type="%l" initial="1"></input><input type="%cs" initial="1"></input></inputs><script><block s="doSetVar"><l>index</l><l>0</l></block><block s="doForEach"><l>itm</l><block var="lst"/><script><block s="doChangeVar"><l>index</l><l>1</l></block><block s="doSetVar"><l>list</l><block var="lst"/></block><block s="doSetVar"><l>value</l><block var="itm"/></block><block s="doRun"><block var="c"/><list></list></block></script></block></script></block-definition><block-definition s="%&apos;a&apos; ⊻ %&apos;b&apos;" type="reporter" category="Bitwise"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input><input type="%n" initial="1"></input></inputs><script><block s="doReport"><custom-block s="%n ∧ %n"><custom-block s="%n ∨ %n"><block var="a"/><block var="b"/></custom-block><custom-block s="¬ %n"><custom-block s="%n ∧ %n"><block var="a"/><block var="b"/></custom-block></custom-block></custom-block></block></script></block-definition><block-definition s="%&apos;n&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block var="n"/></block></script></block-definition><block-definition s="%&apos;a&apos; &lt;&lt; %&apos;b&apos;" type="reporter" category="Bitwise"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_left_shift(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; &gt;&gt; %&apos;b&apos;" type="reporter" category="Bitwise"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_right_shift(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="random %&apos;things&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%mult%s" initial="1"></input></inputs><script><block s="doReport"><block s="reportListItem"><l><option>random</option></l><block var="things"/></block></block></script></block-definition><block-definition s="decimal $arrowRight binary %&apos;n&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doUntil"><block s="reportVariadicEquals"><list><block var="n"/><l>0</l></list></block><script><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block s="reportModulus"><block var="n"/><l>2</l></block><block var="a"/></list></block></block><block s="doSetVar"><l>n</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="n"/><l>2</l></block></block></block></script></block><block s="doReport"><custom-block s="all but last letter of %txt"><block var="a"/></custom-block></block></script></block-definition><block-definition s="costume %&apos;n&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"><options>§_costumesMenu</options></input></inputs><script><block s="doReport"><block s="reportNewCostume"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="n"/></block><block s="reportGetImageAttribute"><l><option>width</option></l><block var="n"/></block><block s="reportGetImageAttribute"><l><option>height</option></l><block var="n"/></block></block></block></script></block-definition><block-definition s="set variable %&apos;n&apos; to %&apos;a&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"><options>§_getVarNamesDict</options></input><input type="%s" initial="1"></input></inputs><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="n"/><block var="a"/></list></block></script></block-definition><block-definition s="is %&apos;n&apos; prime?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="n"/><l>0</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doReport"><block s="reportVariadicEquals"><list><l>2</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block></autolambda><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="n"/><l></l></block><l>0</l></list></block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block var="n"/></block></block></block></block></list></block></block></script></block-definition><block-definition s="factors of %&apos;n&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="n"/><l>0</l></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="n"/><l></l></block><l>0</l></list></block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block var="n"/></block></block></block></script></block-definition><block-definition s="repeat until %&apos;break&apos; %&apos;c&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar" initial="1"></input><input type="%cs" initial="1"></input></inputs><script><block s="doSetVar"><l>break</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doUntil"><block var="break"/><script><block s="doRun"><block var="c"/><list></list></block></script></block></script></block-definition><block-definition s="JS enabled?" type="predicate" category="JS"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="safely try reporting %anyUE then if %upvar report %anyUE"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return true;</l></block><list></list></block><l>error</l><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block></block></script></block-definition><block-definition s="run ( %&apos;params&apos; ) { %&apos;v&apos; } with %&apos;inputs&apos;" type="command" category="JS"><header></header><code></code><translations></translations><inputs><input type="%mult%s" initial="1"></input><input type="%code" initial="1"></input><input type="%mult%s" initial="1"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><block var="params"/><block var="v"/></block><block var="inputs"/></block></script></block-definition><block-definition s="run reporter ( %&apos;params&apos; ) { %&apos;v&apos; } with %&apos;inputs&apos;" type="reporter" category="JS"><header></header><code></code><translations></translations><inputs><input type="%mult%s" initial="1"></input><input type="%code" initial="1"></input><input type="%mult%s" initial="1"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><block var="params"/><block var="v"/></block><block var="inputs"/></block></block></script></block-definition><block-definition s="set JS variable %&apos;x&apos; to %&apos;n&apos;" type="command" category="JS"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>n</l></list><block s="reportJoinWords"><list><block var="x"/><l> = n</l></list></block></block><list><block var="n"/></list></block></script></block-definition><block-definition s="get JS variable %&apos;n&apos;" type="reporter" category="JS"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>return </l><block var="n"/><l>;</l></list></block></block><list></list></block></block></script></block-definition><block-definition s="popup %&apos;n&apos;" type="command" category="JS"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input></inputs><script><custom-block s="run ( %mult%s ) { %code } with %mult%s"><list></list><block s="reportJoinWords"><list><l>alert("</l><block var="n"/><l>")</l></list></block><list></list></custom-block></script></block-definition><block-definition s="popup %&apos;n&apos; $nl" type="predicate" category="JS"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input></inputs><script><block s="doReport"><custom-block s="run reporter ( %mult%s ) { %code } with %mult%s"><list></list><block s="reportJoinWords"><list><l>return confirm("</l><block var="n"/><l>")</l></list></block><list></list></custom-block></block></script></block-definition><block-definition s="popup %&apos;text&apos; default: %&apos;def&apos;" type="reporter" category="JS"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input><input type="%txt" initial="1"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>txt</l><l>dft</l></list><l>return prompt(txt,dft);</l></block><list><block var="text"/><block var="def"/></list></block></block></script></block-definition><block-definition s="primitives" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reifyScript"><script><block s="doApplyExtension"><l></l><list><l></l></list></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="reportApplyExtension"><l></l><list><l></l></list></block></autolambda><list></list></block><block s="reportJoinWords"><list><block s="reifyScript"><script><block s="doPrimitive"><l><bool>true</bool></l><l></l></block></script><list></list></block><l></l></list></block></list></block></block></script></block-definition><block-definition s="new line" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="multiline %mlt"><l>&#xD;</l></custom-block></block></script></block-definition><block-definition s="reset stats" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block></script></block-definition><block-definition s="set stats to %&apos;table&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input></inputs><script><block s="gotoXY"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="table"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="table"/></block></block></block><block s="setHeading"><block s="reportListItem"><l>3</l><block s="reportListItem"><l>2</l><block var="table"/></block></block></block></script></block-definition><block-definition s="new stats x: %&apos;x&apos; y: %&apos;y&apos; dir: %&apos;dir&apos;" type="reporter" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input><input type="%n" initial="1"></input><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>x position</l><block var="x"/></list></block><block s="reportNewList"><list><l>y position</l><block var="y"/></list></block><block s="reportNewList"><list><l>direction</l><block var="dir"/></list></block></list></block></block></script></block-definition><block-definition s="wait %&apos;sec&apos; secs" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doWait"><block var="sec"/></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="repeat %&apos;num&apos; %&apos;reps&apos; %&apos;action&apos;" type="reporter" category="control"><comment x="0" y="0" w="171" collapsed="false">Runs the script the specified number of times, like the built-in REPEAT block, but this one provides the # variable that can be used inside the script.  Try&#xD;REPEAT (200)&#xD;                MOVE (#) STEPS&#xD;   RIGHT 92&#xD;with the pen down.</comment><header></header><code></code><translations>pt:repete _ vezes _ _ $loop-0.7&#xD;ca:repeteix _ _ _&#xD;pl:powtórz _ _ _&#xD;</translations><inputs><input type="%n"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>reps</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>reps</l><l>1</l></block><block s="doRun"><block var="action"/><list></list></block></script></block><block s="doReport"><block var="reps"/></block></script></block-definition><block-definition s="repeat until %&apos;cond&apos; %&apos;reps&apos; %&apos;c&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b" initial="1"></input><input type="%upvar" initial="1"></input><input type="%cs" initial="1"></input></inputs><script><block s="doSetVar"><l>reps</l><l>0</l></block><block s="doUntil"><block var="cond"/><script><block s="doChangeVar"><l>reps</l><l>1</l></block><block s="doRun"><block var="c"/><list></list></block></script></block><block s="doReport"><block var="reps"/></block></script></block-definition><block-definition s="alternating" type="predicate" category="operators"><comment x="0" y="0" w="90" collapsed="false">Use JS so it doesn&apos;t appear in the variables list (i just realized i could use block variables)</comment><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="set JS variable %txt to %s"><l>alternate</l><block s="reportIfElse"><custom-block s="does JS variable %txt exist?"><l>alternate</l></custom-block><block s="reportNot"><custom-block s="get JS variable %txt"><l>alternate</l></custom-block></block><block s="reportBoolean"><l><bool>true</bool></l></block></block></custom-block><block s="doReport"><custom-block s="get JS variable %txt"><l>alternate</l></custom-block></block></script></block-definition><block-definition s="does JS variable %&apos;n&apos; exist?" type="predicate" category="JS"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportVariadicGreaterThan"><list><block var="n"/><l></l></list></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doReport"><custom-block s="safely try reporting %anyUE then if %upvar report %anyUE"><block s="reportVariadicEquals"><list><custom-block s="get JS variable %txt"><block var="n"/></custom-block><custom-block s="get JS variable %txt"><block var="n"/></custom-block></list></block><l>error</l><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block></block></script></block-definition><block-definition s="increment %&apos;amt&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><custom-block s="set JS variable %txt to %s"><l>inc</l><block s="reportIfElse"><custom-block s="does JS variable %txt exist?"><l>inc</l></custom-block><block s="reportVariadicSum"><list><custom-block s="get JS variable %txt"><l>inc</l></custom-block><block var="amt"/></list></block><l>0</l></block></custom-block><block s="doReport"><custom-block s="get JS variable %txt"><l>inc</l></custom-block></block></script></block-definition><block-definition s="ask %&apos;prompt&apos; and wait" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">whats your name?</input></inputs><script><block s="doAsk"><block var="prompt"/></block><block s="doReport"><block s="getLastAnswer"></block></block></script></block-definition><block-definition s="ask %&apos;prompt&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">whats your name?</input></inputs><script><block s="fork"><block s="reifyScript"><script><block s="doAsk"><block var="prompt"/></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="warp %&apos;c&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%repRing" initial="1"></input></inputs><script><block s="doWarp"><script><block s="doRun"><block var="c"/><list></list></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="reload site" type="command" category="Websites"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="run ( %mult%s ) { %code } with %mult%s"><list><l></l></list><l></l><list><l></l></list></custom-block></script></block-definition><block-definition s="delete letter %&apos;n&apos; of %&apos;txt&apos;" type="reporter" category="operators"><variables><list struct="atomic" id="1252">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input><input type="%txt" initial="1"></input></inputs><script><block s="doSetVar"><l>a</l><block s="reportTextSplit"><block var="txt"/><l><option>letter</option></l></block></block><block s="doDeleteFromList"><block var="n"/><block var="a"/></block><block s="doReport"><block s="reportJoinWords"><list><block var="a"/></list></block></block></script></block-definition><block-definition s="%&apos;n&apos; th prime" type="reporter" category="operators"><variables><list struct="atomic" id="1270">a,b</list></variables><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doSetVar"><l>b</l><l>0</l></block><block s="doSetVar"><l>a</l><l>0</l></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="n"/><l>1</l></list></block><script><block s="doReport"><l>0</l></block></script><list></list></block><block s="doUntil"><block s="reportVariadicEquals"><list><block var="a"/><block var="n"/></list></block><script><block s="doChangeVar"><l>b</l><l>1</l></block><block s="doIf"><custom-block s="is %n prime?"><block var="b"/></custom-block><script><block s="doChangeVar"><l>a</l><l>1</l></block></script><list></list></block></script></block><block s="doReport"><block var="b"/></block></script></block-definition><block-definition s="first %&apos;n&apos; primes" type="reporter" category="operators"><variables><list struct="atomic" id="1317">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doReport"><custom-block s="warp %repRing"><block s="reifyReporter"><script><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block var="n"/><script><block s="doAddToList"><custom-block s="%n th prime"><block var="i"/><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block><block var="a"/></block></script></block><block s="doReport"><block var="a"/></block></script><list></list></block></custom-block></block></script></block-definition><block-definition s="is %&apos;v&apos; a factor of %&apos;a&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="a"/><block var="v"/></block><l>0</l></list></block></block></script></block-definition><block-definition s="run %&apos;action&apos; w/continuation" type="command" category="control"><header></header><code></code><translations>de:führe _ mit Continuation aus&#xD;</translations><inputs><input type="%cmdRing" initial="1"></input></inputs><script><block s="doRun"><block var="action"/><list><block s="reportEnvironment"><l><option>continuation</option></l></block></list></block></script></block-definition><block-definition s="call %&apos;action&apos; w/continuation" type="reporter" category="control"><header></header><code></code><translations>de:rufe _ mit Continuation auf&#xD;</translations><inputs><input type="%cmdRing" initial="1"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reifyReporter"><script><custom-block s="run %cmdRing w/continuation"><block var="action"/></custom-block></script><list></list></block><list></list></block></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;pt:captura _ _&#xD;pl:przechwyć _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><custom-block s="run %cmdRing w/continuation"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></custom-block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations>de:wirf _&#xD;ca:llança _&#xD;es:lanzar _&#xD;fr:lance _&#xD;pt:lança _&#xD;pl:wyrzuć _&#xD;</translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;pt:captura _ _&#xD;pl:przechwyć _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><custom-block s="run %cmdRing w/continuation"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></custom-block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations>de:wirf _ _&#xD;ca:llança _ _&#xD;es:lanzar _ _&#xD;fr:lance _ _&#xD;pt:lança _ _&#xD;pl:wyrzuć _ _&#xD;</translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><comment x="0" y="0" w="263.3333333333333" collapsed="false">This is a breakpoint block, to be used in debugging.&#xD;The Boolean input specifies the condition under which&#xD;the program should pause.  (Use True for an unconditional breakpoint.)  The intent is that the script should have&#xD;SHOW VARIABLE blocks for the process&apos;s local variables.&#xD;After the pause, this block automatically hides all temporary variables.</comment><header></header><code></code><translations>de:falls _ dann _ und pause $pause-1-255-220-0&#xD;ca:si _ fes _ i atura-ho tot $pause-1-255-220-0&#xD;es:si _ haz _ y páralo todo $pause-1-255-220-0&#xD;fr:si _ faire _ et mettre tout en pause $pause-1-255-220-0&#xD;pt:se _ , então _ e faz pausa em tudo $pause-1-255-220-0&#xD;pl:jeżeli _ wykonaj _ i pauzuj wszystko $pause-1-255-220-0&#xD;</translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script><list></list></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><comment x="0" y="0" w="206.66666666666666" collapsed="false">This block does nothing.&#xD;Use it when you are calling a reporter&#xD;for its side effect and don&apos;t care about&#xD;its return value.</comment><header></header><code></code><translations>de:ignoriere _&#xD;ca:ignora _&#xD;es:ignorar _&#xD;fr:ignore _&#xD;pt:ignora _&#xD;pl:ignoruj _&#xD;</translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="cascade %&apos;num&apos; times %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="138" collapsed="false">Call f(f(f(...(f(x))))) n times where the three input slots are n, f, and x from left to right.  The # variable can be used inside f to represent how many times f has been called.</comment><header></header><code></code><translations>pt:o resultado de _ invocações em cascata de _ com argumento inicial _ _&#xD;ca:en cascada _ vegades _ _ _&#xD;pl:kaskada _ razy _ _ _&#xD;</translations><inputs><input type="%n"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="cascade until %&apos;pred&apos; %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="210.47493489583334" collapsed="false">Call f(f(f(...(f(x))))) until condition is true, where the three input slots are condition, f, and x from left to right.  The # variable can be used inside f or condition to indicate how many times f has been called.</comment><header></header><code></code><translations>pt:o resultado da invocação em cascata até que _ de _ com argumento inicial _ _&#xD;ca:en cascada fins _ _ _ _&#xD;pl:kaskada aż _ _ _ _&#xD;</translations><inputs><input type="%predRing"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list><block var="result"/></list></block><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="compose %&apos;f&apos; %&apos;g&apos;" type="reporter" category="control"><comment x="0" y="0" w="151.33333333333334" collapsed="false">Returns the function x↦f(g(x)) where f and g are the two inputs.</comment><header></header><code></code><translations>pt:a composição de _ com _&#xD;ca:composa _ _&#xD;pl:skomponuj _ _&#xD;</translations><inputs><input type="%repRing"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="f"/><list><block s="evaluate"><block var="g"/><list><l></l></list></block></list></block></autolambda><list></list></block></block></script></block-definition><block-definition s="repeat %&apos;action&apos; until %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="202.66666666666666" collapsed="false">Like the built-in REPEAT UNTIL block, except that the ending condition is not tested until the script has been run the first time.  So the script is run at least once.</comment><header></header><code></code><translations>pt:repete _ até que _ $loop-0.7&#xD;ca:repeteix _ fins _&#xD;pl:powtarzaj _ aż _&#xD;</translations><inputs><input type="%cs"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;action&apos; while %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="287.3333333333333" collapsed="false">Run the script repeatedly, as long as the given condition is true.  Runs the script at least once before testing the condition.</comment><header></header><code></code><translations>pt:repete _ enquanto _ $loop-0.7&#xD;ca:repeteix _ mentre _&#xD;pl:powtarzaj _ gdy _&#xD;</translations><inputs><input type="%cs"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat while %&apos;pred&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="264" collapsed="false">Runs the script repeatedly, as long as the condition is true. Tests the condition before the first time the script is run.  Like the built in REPEAT UNTIL except that in this block the condition must be true, not false.</comment><header></header><code></code><translations>pt:enquanto _ , repete _ $loop-0.7&#xD;pl:powtarzaj gdy _ _&#xD;</translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; step %&apos;step&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="247.33333333333334" collapsed="false">The primitive FOR block uses an implicit step of ±1 depending on which of the starting and ending values is larger.  This version allows you to provide an explicit step value.  If the sign of the step input is incompatible with the ordering of the starting and ending values, the script will not be run at all.</comment><header></header><code></code><translations>pt:para _ de _ com passo _ a _ _ $loop-0.7&#xD;ca:per _ = _ incrementant _ fins _ _&#xD;pl:dla _ = _ co _ do _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>test</l></list></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="step"/><l>0</l></list></block><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block var="i"/><block var="end"/></list></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="end"/></list></block></autolambda><list></list></block></block></script></block><block s="doUntil"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="let %&apos;a&apos; be %&apos;val&apos; in %&apos;loop&apos; %&apos;body&apos;" type="command" category="control"><comment x="0" y="0" w="238.66666666666666" collapsed="false">Provides LOOP as a function of one input that runs&#xD;the body of the LET with A set to the function input,&#xD;so the body can run itself recursively.&#xD;See COPY block in Variables for an example of use.</comment><header></header><code></code><translations>pt:tendo _ o valor inicial _ , executa _ definido como _&#xD;ca:fes que _ sigui _ al _ _&#xD;pl:ustaw _ na _ w _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%s"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>a</l><block var="val"/></block><block s="doSetVar"><l>loop</l><block s="reifyScript"><script><block s="doSetVar"><l>a</l><block var="new value"/></block><block s="doRun"><block var="body"/><list><block var="a"/></list></block></script><list><l>new value</l></list></block></block><block s="doRun"><block var="loop"/><list><block var="a"/></list></block></script></block-definition><block-definition s="message" type="reporter" category="control" primitive="getLastMessage"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>getLastMessage</l></block></script></block-definition><block-definition s="visible %&apos;foo&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%b" initial="1"></input></inputs><script><block s="doIfElse"><block var="foo"/><script><block s="show"></block></script><script><block s="hide"></block></script></block></script></block-definition><block-definition s="toggle visible" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="visible %b"><block s="reportNot"><block s="reportShown"></block></block></custom-block></script></block-definition><block-definition s="%&apos;n&apos; ’s costume" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_clonablesMenu</options></input></inputs><script><block s="doReport"><block s="reportAskFor"><block var="n"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costumes</option></l></block></autolambda><list></list></block><list></list></block></block></script></block-definition><block-definition s="new costume %&apos;R&apos; %&apos;G&apos; %&apos;B&apos; %&apos;A&apos; $nl width: %&apos;W&apos; height: %&apos;H&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0</input><input type="%n" initial="1">0</input><input type="%n" initial="1">0</input><input type="%n" initial="1">100</input><input type="%n" initial="1">20</input><input type="%n" initial="1">20</input></inputs><script><block s="doReport"><block s="reportNewCostume"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block var="R"/><block var="G"/><block var="B"/><block s="reportVariadicProduct"><list><block var="A"/><l>2.55</l></list></block></list></block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block s="reportVariadicProduct"><list><block var="H"/><block var="W"/></list></block></block></block><block var="W"/><block var="H"/></block></block></script></block-definition><block-definition s="custom blocks" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><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></block></block></script></block-definition><block-definition s="turbo %&apos;c&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%cs" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportGlobalFlag"><l><option>turbo mode</option></l></block></block><block s="doSetGlobalFlag"><l><option>turbo mode</option></l><l><bool>true</bool></l></block><block s="doRun"><block var="c"/><list></list></block><block s="doSetGlobalFlag"><l><option>turbo mode</option></l><block var="a"/></block></script></block-definition><block-definition s="turbowarp %&apos;c&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%cs" initial="1"></input></inputs><script><block s="doWarp"><script><custom-block s="turbo %cs"><block var="c"/></custom-block></script></block></script></block-definition><block-definition s="add %&apos;n&apos; to clipboard" type="command" category="JS"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input></inputs><script><custom-block s="run ( %mult%s ) { %code } with %mult%s"><list></list><block s="reportJoinWords"><list><l>navagator.clipboard.writeText(</l><block var="n"/><l>)</l></list></block><list></list></custom-block></script></block-definition><block-definition s="save project" type="command" category="JS"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="run ( %mult%s ) { %code } with %mult%s"><list><l>ide</l></list><l>ide.save()</l><list><custom-block s="ide"></custom-block></list></custom-block></script></block-definition><block-definition s="ide" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="run reporter ( %mult%s ) { %code } with %mult%s"><list></list><l>return this.parentThatIsA(IDE_Morph);</l><list></list></custom-block></block></script></block-definition><block-definition s="go forward %&apos;n&apos; layers" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input></inputs><script><block s="goBack"><block s="reportDifference"><l>0</l><block var="n"/></block></block></script></block-definition><block-definition s="stop saying" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="bubble"><l></l></block></script></block-definition><block-definition s="speak %&apos;txt&apos; with %&apos;lang&apos; accent $nl and pitch %&apos;pitch&apos; rate %&apos;rate&apos;" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">Hello, World!</input><input type="%s" initial="1">en-US<options>العربية=ar&#xD;Български=bg&#xD;বাংলা=bn&#xD;Català=ca&#xD;Català - Valencià=ca-VA&#xD;Česky=cs&#xD;Deutsch=de&#xD;Dansk=dk&#xD;Ελληνικά=el&#xD;English-American=en-US&#xD;English-British=en-GB&#xD;Esperanto=eo&#xD;Español=es&#xD;Eesti=et&#xD;Euskara=eu&#xD;suomi=fi&#xD;Français=fr&#xD;Galego=gl&#xD;Hrvatski=hr&#xD;Magyar=hu&#xD;Interlingua=ia&#xD;Bahasa Indonesia=id&#xD;Italiano=it&#xD;日本語=ja&#xD;にほんご=ja-HIRA&#xD;ಕನ್ನಡ=kn&#xD;한국어=ko&#xD;Malayalam=ml&#xD;Nederlands=nl&#xD;Norsk=no&#xD;Polski=pl&#xD;Português=pt&#xD;Português do Brasil=pt-BR&#xD;Român=ro&#xD;Русский=ru&#xD;Slovenščina=si&#xD;svenska=sv&#xD;Tamil=ta&#xD;Telagu=te&#xD;Türkçe=tr&#xD;Українська=ua&#xD;简体中文=zh-CN&#xD;繁體中文=zh-TW</options></input><input type="%n" initial="1">1</input><input type="%n" initial="1">1</input></inputs><script><block s="doApplyExtension"><l>tts_speak(txt, lang, pitch, rate)</l><list><block var="txt"/><block var="lang"/><block var="pitch"/><block var="rate"/></list></block></script></block-definition><block-definition s="speak %&apos;txt&apos; with %&apos;lang&apos; accent $nl and pitch %&apos;pitch&apos; rate %&apos;rate&apos; and wait" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">Hello, World!</input><input type="%s" initial="1">en-US<options>العربية=ar&#xD;Български=bg&#xD;বাংলা=bn&#xD;Català=ca&#xD;Català - Valencià=ca-VA&#xD;Česky=cs&#xD;Deutsch=de&#xD;Dansk=dk&#xD;Ελληνικά=el&#xD;English-American=en-US&#xD;English-British=en-GB&#xD;Esperanto=eo&#xD;Español=es&#xD;Eesti=et&#xD;Euskara=eu&#xD;suomi=fi&#xD;Français=fr&#xD;Galego=gl&#xD;Hrvatski=hr&#xD;Magyar=hu&#xD;Interlingua=ia&#xD;Bahasa Indonesia=id&#xD;Italiano=it&#xD;日本語=ja&#xD;にほんご=ja-HIRA&#xD;ಕನ್ನಡ=kn&#xD;한국어=ko&#xD;Malayalam=ml&#xD;Nederlands=nl&#xD;Norsk=no&#xD;Polski=pl&#xD;Português=pt&#xD;Português do Brasil=pt-BR&#xD;Român=ro&#xD;Русский=ru&#xD;Slovenščina=si&#xD;svenska=sv&#xD;Tamil=ta&#xD;Telagu=te&#xD;Türkçe=tr&#xD;Українська=ua&#xD;简体中文=zh-CN&#xD;繁體中文=zh-TW</options></input><input type="%n" initial="1">1</input><input type="%n" initial="1">1</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportApplyExtension"><l>tts_speak(txt, lang, pitch, rate)</l><list><block var="txt"/><block var="lang"/><block var="pitch"/><block var="rate"/></list></block></block><block s="doWaitUntil"><block s="evaluate"><block var="a"/><list></list></block></block></script></block-definition><block-definition s="%&apos;#1&apos;" type="predicate" category="operators" primitive="reportVariadicNotEquals"><header></header><code></code><translations></translations><inputs><input type="%mult%s" separator="≠" collapse="all ≠" initial="2"></input></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>reportVariadicNotEquals</l></block></script></block-definition><block-definition s="Obsolete!" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">The 2nd iteration of undefined, it returns undefined which itself causes an error.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="errorObsolete"></block></script></block-definition><block-definition s="Amorphous!" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">The 3rd iteration of undefined, which means it returns obsolete (the 2nd iteration), see obsolete to learn more.</comment><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="Obsolete!"></custom-block></script></block-definition><block-definition s="Meta-Undefined %&apos;n&apos;" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">When ran it does the &quot;undefined&quot; iteration below it. When it hits 1 then it returns undefined.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">10</input></inputs><script><block s="doIf"><block s="reportVariadicLessThanOrEquals"><list><block var="n"/><l>1</l></list></block><script><block s="errorObsolete"></block></script><list></list></block><custom-block s="Meta-Undefined %n"><block s="reportDifference"><block var="n"/><l>1</l></block></custom-block></script></block-definition><block-definition s="always $infinity-1-255-255-255-100" type="hat" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="$circleSolid-1-255-0-0 record" type="reporter" category="sound"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportApplyExtension"><l>mda_record</l><list></list></block></block><block s="doWaitUntil"><block s="evaluate"><block var="a"/><list></list></block></block><block s="doReport"><block s="evaluate"><block var="a"/><list></list></block></block></script></block-definition><block-definition s="$camera snap" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportApplyExtension"><l>mda_snap</l><list></list></block></block><block s="doWaitUntil"><block s="evaluate"><block var="a"/><list></list></block></block><block s="doReport"><block s="evaluate"><block var="a"/><list></list></block></block></script></block-definition><block-definition s="sign %&apos;n&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="n"/><l>0</l></list></block><script><block s="doReport"><l>0</l></block></script><list></list></block><block s="doReport"><block s="reportQuotient"><block var="n"/><block s="reportMonadic"><l><option>abs</option></l><block var="n"/></block></block></block></script></block-definition><block-definition s="unpause all $pointRight-1-255-220-0" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Unpause each paused process.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>world.children[0].stage.threads.processes.forEach(&#xD;function (proc) {&#xD;proc.isPaused = false;&#xD;})</l></block><list></list></block></script></block-definition><block-definition s="run in parallel %&apos;c&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%mult%cs"></input></inputs><script><block s="doForEach"><l>thread</l><block var="c"/><script><block s="doRun"><block var="thread"/><list></list></block></script></block></script></block-definition><block-definition s="run in parallel %&apos;c&apos; and wait" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%mult%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>threads</l></list></block><block s="doSetVar"><l>threads</l><block s="reportMap"><block s="reifyReporter"><script><block s="doDeclareVariables"><list><l>running</l></list></block><block s="doSetVar"><l>running</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="fork"><block s="reifyScript"><script><block s="doRun"><block var="thread"/><list></list></block><block s="doSetVar"><l>running</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><list></list></block><block s="doReport"><block s="reifyScript"><script><block s="doReport"><block var="running"/></block></script><list></list></block></block></script><list><l>thread</l></list></block><block var="c"/></block></block><block s="doWaitUntil"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></autolambda><list></list></block><block var="threads"/></block></block></block></script></block-definition><block-definition s="previous costume" type="command" category="looks"><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="reportDifference"><block s="reportModulus"><block s="getCostumeIdx"></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportGet"><l><option>costumes</option></l></block></block></block><l>2</l></block><l>1</l></list></block></block></script><list></list></block></script></block-definition><block-definition s="create costume %&apos;costume&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%repRing" separator="and" initial="1"></input></inputs><script><block s="doAddToList"><block s="evaluate"><block var="costume"/><list></list></block><block s="reportGet"><l><option>costumes</option></l></block></block></script></block-definition><block-definition s="if %&apos;food&apos; then %&apos;a&apos; else %&apos;b&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b" initial="1"></input><input type="%cs" initial="1"></input><input type="%cs" initial="1"></input></inputs><script><block s="doIfElse"><block var="food"/><script><block s="doRun"><block var="a"/><list></list></block></script><script><block s="doRun"><block var="b"/><list></list></block></script></block><block s="doReport"><block s="reportNot"><block s="reportNot"><block var="food"/></block></block></block></script></block-definition><block-definition s="hacked blocks" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>true</bool></l></block></autolambda><list></list></block><l></l></list></block></list></block></block></script></block-definition><block-definition s="$speechBubble %&apos;txt&apos; %&apos;stuff&apos;" type="command" category="Comments"><header></header><code></code><translations></translations><inputs><input type="%mlt" initial="1"></input><input type="%mult%repRing" expand="refrences"></input></inputs></block-definition><block-definition s="$speechBubble %&apos;txt&apos; %&apos;c&apos;" type="command" category="Comments"><header></header><code></code><translations></translations><inputs><input type="%mlt" initial="1"></input><input type="%cs" initial="1"></input></inputs><script><block s="doRun"><block var="c"/><list></list></block></script></block-definition><block-definition s="all but last of %&apos;n&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block var="n"/></block></block></block></block></script></block-definition><block-definition s="%&apos;n&apos; behind %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCONS"><block var="n"/><block s="reportListAttribute"><l><option>reverse</option></l><block var="list"/></block></block></block></block></script></block-definition><block-definition s="tell my clones to %&apos;c&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%cmdRing" initial="1"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>item</l><block s="reportGet"><l><option>clones</option></l></block><script><block s="doTellTo"><block var="item"/><block var="c"/><list></list></block></script></block></script></block></script></block-definition><block-definition s="layer #" type="reporter" category="looks"><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="evaluate"><block s="reportAttributeOf"><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><l>Stage</l></block><list></list></block></block></block></script></block-definition><block-definition s="flip costume %&apos;cost&apos; %&apos;axis&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_costumesMenu</options></input><input type="%s" readonly="true" initial="1"><options>horizonally&#xD;vertically</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="%txt contains %txt ?"><block var="axis"/><l>h</l></custom-block><block s="reportNewCostumeStretched"><block var="cost"/><l>-100</l><l>100</l></block><block s="reportIfElse"><custom-block s="%txt contains %txt ?"><block var="axis"/><l>v</l></custom-block><block s="reportNewCostumeStretched"><block var="cost"/><l>100</l><l>-100</l></block><block s="reportNewCostumeStretched"><block var="cost"/><l>100</l><l>100</l></block></block></block></block></script></block-definition><block-definition s="delete all clones" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doForEach"><l>item</l><block s="reportGet"><l><option>clones</option></l></block><script><block s="doTellTo"><block var="item"/><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block></script></block></script></block></script></block-definition><block-definition s="repeat for %&apos;sec&apos; secs %&apos;c&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input><input type="%cs" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>stop</l></list></block><block s="doSetVar"><l>stop</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="fork"><block s="reifyScript"><script><block s="doWait"><block var="sec"/></block><block s="doSetVar"><l>stop</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><list></list></block><block s="doUntil"><block var="stop"/><script><block s="doRun"><block var="c"/><list></list></block></script></block></script></block-definition><block-definition s="go to site %&apos;link&apos;" type="command" category="Websites"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input></inputs><script><custom-block s="run ( %mult%s ) { %code } with %mult%s"><list><l>url</l></list><l>window.open(url)</l><list><block var="link"/></list></custom-block></script></block-definition><block-definition s="https:// %&apos;url&apos;" type="reporter" category="Websites"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1">snap.berkeley.edu</input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>https://</l><block var="url"/></list></block></block></script></block-definition><block-definition s="cursed predicate %&apos;c&apos;" type="predicate" category="other"><header></header><code></code><translations></translations><inputs><input type="%boolUE" initial="1"></input></inputs><script><block s="doReport"><block var="c"/></block></script></block-definition><block-definition s="cursed reporter %&apos;c&apos;" type="predicate" category="other"><header></header><code></code><translations></translations><inputs><input type="%anyUE" initial="1"></input></inputs><script><block s="doReport"><block var="c"/></block></script></block-definition><block-definition s="call %&apos;c&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%n" readonly="true" initial="1"></input></inputs><script><block s="doReport"><block s="evaluate"><block var="c"/><list></list></block></block></script></block-definition><block-definition s="run %&apos;c&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%n" readonly="true" initial="1"></input></inputs><script><block s="doRun"><block var="c"/><list></list></block></script></block-definition><block-definition s="launch %&apos;c&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%n" readonly="true" initial="1"></input></inputs><script><block s="fork"><block var="c"/><list></list></block></script></block-definition><block-definition s="%&apos;a&apos; %&apos;gate&apos; %&apos;b&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%b" initial="1"></input><input type="%s" readonly="true" initial="1">AND<options>AND&#xD;OR&#xD;NOR&#xD;NAND&#xD;XOR&#xD;XNOR</options></input><input type="%b" initial="1"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="gate"/><l>AND</l></list></block><block s="reportVariadicAnd"><list><block var="a"/><block var="b"/></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="gate"/><l>OR</l></list></block><block s="reportVariadicOr"><list><block var="a"/><block var="b"/></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="gate"/><l>NOR</l></list></block><block s="reportNot"><block s="reportVariadicOr"><list><block var="a"/><block var="b"/></list></block></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="gate"/><l>NAND</l></list></block><block s="reportNot"><block s="reportVariadicAnd"><list><block var="a"/><block var="b"/></list></block></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="gate"/><l>XOR</l></list></block><block s="reportVariadicEquals"><list><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block></autolambda><list></list></block><block s="reportNewList"><list><block var="a"/><block var="b"/></list></block></block></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="gate"/><l>XNOR</l></list></block><custom-block s="%mult%s"><list><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block></autolambda><list></list></block><block s="reportNewList"><list><block var="a"/><block var="b"/></list></block></block></block></list></custom-block><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></block></block></block></block></block></script></block-definition><block-definition s="%&apos;h&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%cs" initial="1"></input></inputs><script><block s="doReport"><block var="h"/></block></script></block-definition><block-definition s="is %&apos;n&apos; semiprime?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><custom-block s="factors of %n"><block var="n"/></custom-block></block><l>4</l></list></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block></autolambda><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="is %n prime?"><l></l></custom-block></autolambda><list></list></block><custom-block s="factors of %n"><block var="n"/></custom-block></block></block></block><l>2</l></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><custom-block s="factors of %n"><block var="n"/></custom-block></block><l>3</l></list></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block></autolambda><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="is %n prime?"><l></l></custom-block></autolambda><list></list></block><custom-block s="factors of %n"><block var="n"/></custom-block></block></block></block><l>1</l></list></block></list></block></list></block></block></script></block-definition><block-definition s="menu labeled %&apos;label&apos; options %&apos;opt&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="label"/><block var="opt"/></list></block></block></script></block-definition><block-definition s="set %&apos;thing&apos; to %&apos;n&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">message<options>message&#xD;answer</options></input><input type="%s" initial="1"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="thing"/><l>message</l></list></block><script><custom-block s="run ( %mult%s ) { %code } with %mult%s"><list><l>newMessage</l></list><l>var ide = world.children[0];&#xD;ide.stage.lastMessage = newMessage;&#xD;return ide.stage.lastMessage</l><list><block var="n"/></list></custom-block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="thing"/><l>answer</l></list></block><script><custom-block s="run ( %mult%s ) { %code } with %mult%s"><list><l>newAnswer</l></list><l>var ide = world.children[0];&#xD;ide.stage.lastAnswer = newAnswer;&#xD;return ide.stage.lastAnswer</l><list><block var="n"/></list></custom-block></script><script></script></block></script></block></script></block-definition><block-definition s="infinite list" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="let %upvar be %s"><l>a</l><block s="reportNewList"><list></list></block></custom-block><block s="doAddToList"><block var="a"/><block var="a"/></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="%&apos;n&apos; th root of %&apos;a&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportPower"><block var="a"/><block s="reportQuotient"><l>1</l><block var="n"/></block></block></block></script></block-definition><block-definition s="let %&apos;a&apos; be %&apos;n&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%upvar" irreplaceable="true" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doSetVar"><l>a</l><block var="n"/></block></script></block-definition><block-definition s="%&apos;n&apos; %&apos;continuation&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%repRing" initial="1"></input><input type="%upvar" initial="1"></input></inputs><script><block s="doSetVar"><l>continuation</l><block s="reportEnvironment"><l><option>continuation</option></l></block></block><block s="doReport"><block s="evaluate"><block var="n"/><list></list></block></block></script></block-definition><block-definition s="cursed addition" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportCDR"><block s="reportNewList"><list><block s="reportVariadicSum"><list><l></l><custom-block s="%repRing %upvar"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l>3</l><l>5</l></list></block></autolambda><list></list></block><l>continuation</l></custom-block></list></block><block var="continuation"/></list></block></block></block></script></block-definition><block-definition s="set web title to %&apos;n&apos;" type="command" category="Websites"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input></inputs><script><custom-block s="run ( %mult%s ) { %code } with %mult%s"><list><l>a</l></list><l>document.title = a</l><list><block var="n"/></list></custom-block></script></block-definition><block-definition s="block %&apos;n&apos; %&apos;continuation&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%cmdRing" initial="1"></input><input type="%upvar" initial="1"></input></inputs><script><block s="doSetVar"><l>continuation</l><block s="reportEnvironment"><l><option>continuation</option></l></block></block><block s="doRun"><block var="n"/><list></list></block></script></block-definition><block-definition s="recursive menu named %&apos;n&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input></inputs><script><custom-block s="let %upvar be %s"><l>var</l><block s="reportNewList"><list><block var="n"/></list></block></custom-block><block s="doAddToList"><block var="var"/><block var="var"/></block><block s="doReport"><block var="var"/></block></script></block-definition><block-definition s="loop %&apos;c&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%cs" initial="1"></input></inputs><script><block s="fork"><block s="reifyScript"><script><block s="doForever"><script><block s="doRun"><block var="c"/><list></list></block></script></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="letters in %&apos;a&apos; after %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input><input type="%txt" initial="1"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block var="index"/><custom-block s="index of %txt in %txt"><block var="b"/><block var="a"/></custom-block></list></block></autolambda><list><l>value</l><l>index</l><l>list</l></list></block><block s="reportTextSplit"><block var="a"/><l><option>letter</option></l></block></block></block></block></script></block-definition><block-definition s="letters in %&apos;a&apos; before %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input><input type="%txt" initial="1"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block var="index"/><custom-block s="index of %txt in %txt"><block var="b"/><block var="a"/></custom-block></list></block></autolambda><list><l>value</l><l>index</l><l>list</l></list></block><block s="reportTextSplit"><block var="a"/><l><option>letter</option></l></block></block></block></block></script></block-definition><block-definition s="this process" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="run reporter ( %mult%s ) { %code } with %mult%s"><list><l>proc</l></list><l>return proc;</l><list></list></custom-block></block></script></block-definition></blocks><primitives><block-definition s="list %&apos;inputs&apos;" type="reporter" category="lists" selector="reportNewList" primitive="reportNewList"><header></header><code></code><translations></translations><inputs><input type="%mult%s" readonly="true" irreplaceable="true" initial="1"></input></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>reportNewList</l></block><block s="doReport"><block var="inputs"/></block></script></block-definition></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="2884"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="2885"></list></costumes><sounds><list struct="atomic" id="2886"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="3" y="11.096189432334143" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="4" color="80,80,80,1" pen="tip" id="2891"><costumes><list id="2892"><item><ref mediaID="Custom Blocks_Sprite_cst_costume"></ref></item><item><ref mediaID="Custom Blocks_Sprite_cst_costume(2)"></ref></item><item><ref mediaID="Custom Blocks_Sprite_cst_costume(3)"></ref></item><item><ref mediaID="Custom Blocks_Sprite_cst_costume(4)"></ref></item></list></costumes><sounds><list struct="atomic" id="2893"></list></sounds><blocks></blocks><variables></variables><scripts><script x="59.77134246826171" y="41.644500732421875"><custom-block s="lerp from %n to %n with %n"><l></l><l></l><l></l></custom-block></script><script x="61.904673767089776" y="118.22224426269622"><custom-block s="roll %n sided dice"><l></l></custom-block></script><script x="59.415789794921864" y="10"><custom-block s="pick random from %mult%s"><list><l></l><l></l></list></custom-block></script><script x="64.39352722167962" y="147.28892517089844"><custom-block s="flip coin"></custom-block></script><script x="64.21921844482415" y="177.1222178141279"><custom-block s="delete my clones"></custom-block></script><script x="60.308123779296864" y="209.78887430826853"><custom-block s="random"></custom-block></script><script x="61.01922149658202" y="240.1111297607422"><custom-block s="new %txt variable %mult%txt"><l></l><list><l></l></list></custom-block></script><script x="62.66365356445306" y="337.11109924316406"><custom-block s="value of %txt"><l></l></custom-block></script><script x="63.19357032775872" y="395.1110585530596"><custom-block s="random %mult%cs"><list><script></script></list></custom-block></script><script x="59.26024169921874" y="462.9444834391279"><custom-block s="is there an error in %cs %upvar"><script></script><l>error</l></custom-block></script><script x="62.97129364013665" y="70.60003662109375"><custom-block s="when %n sided dice rolls the first number"><l></l></custom-block></script><script x="53.015908432006825" y="520.64451599121"><custom-block s="ignore %txt"><l></l></custom-block></script><script x="59.771462631225575" y="564.7556304931641"><custom-block s="safety try %cs %upvar"><script></script><l>error</l></custom-block></script><script x="70.57665557861321" y="633.4222564697266"><custom-block s="triangle %n"><l></l></custom-block></script><script x="66.39818878173821" y="676.8222503662109"><custom-block s="binary $arrowRight decimal %n"><l>1010</l></custom-block></script><script x="60.01594657897948" y="730.7777557373047"><custom-block s="new list variable %mult%txt"><list><l></l></list></custom-block></script><script x="57.749245834350575" y="775.0666961669922"><custom-block s="%n / %n in remainder form"><l></l><l></l></custom-block></script><script x="62.72705574035638" y="818.3333587646484"><custom-block s="multiline %mlt"><l></l></custom-block></script><script x="58.01592369079589" y="860.0444946289062"><custom-block s="var %txt exists?"><l></l></custom-block></script><script x="62.48260993957513" y="915.4667256673183"><custom-block s="index of %txt in %txt"><l></l><l></l></custom-block></script><script x="65.9320251464843" y="367.16671244303416"><custom-block s="error %txt (reporter)"><l></l></custom-block></script><script x="60.75061225891113" y="956.9333394368496"><custom-block s="%n ∧ %n"><l>72</l><l>83</l></custom-block></script><script x="68.01590652465813" y="1000.6778259277344"><custom-block s="reverse %txt"><l></l></custom-block></script><script x="68.72702903747552" y="1048.8444925944023"><custom-block s="all but first letter of %txt"><l></l></custom-block></script><script x="59.34311408996581" y="1138.2000579833993"><custom-block s="%n ∨ %n"><l>74</l><l>20</l></custom-block></script><script x="55.993699264526356" y="1084.0777740478525"><custom-block s="¬ %n"><l>827</l></custom-block></script><script x="57.638161849975575" y="1179.4889984130868"><custom-block s="%txt contains %txt ?"><l></l><l></l></custom-block></script><script x="66.74922294616692" y="1272.6890004475922"><custom-block s="rickroll"></custom-block></script><script x="57.26045913696288" y="1386.4335123697924"><custom-block s="all but last letter of %txt"><l></l></custom-block></script><script x="66.41013259887688" y="1355.7668863932295"><custom-block s="%l to json"><l/></custom-block></script><script x="65.01010818481438" y="1320.0779825846357"><custom-block s="my stats"></custom-block></script><script x="56.860337448120106" y="1434.5113118489594"><custom-block s="for each %upvar %upvar %upvar in %l %cs"><l>#</l><l>item</l><l>list</l><l/><script></script></custom-block></script><script x="52.68881797790527" y="1512.8667755126958"><custom-block s="%n ⊻ %n"><l>20</l><l>45</l></custom-block></script><script x="58.95548439025879" y="1557.7889760335297"><custom-block s="%n &lt;&lt; %n"><l>1</l><l>1</l></custom-block></script><script x="63.22216606140137" y="1641.6112874348973"><custom-block s="decimal $arrowRight binary %n"><l></l></custom-block></script><script x="48.733259201049805" y="1684.6557210286473"><custom-block s="costume %s"><l></l></custom-block></script><script x="48.59993934631348" y="1723.8668365478525"><custom-block s="set variable %txt to %s"><l></l><l></l></custom-block></script><script x="48.11105537414551" y="1786.2890625000018"><custom-block s="is %n prime?"><l></l></custom-block></script><script x="50.11105537414551" y="1839.1557464599628"><custom-block s="factors of %n"><l></l></custom-block></script><script x="45.222158432006836" y="1891.122416178387"><custom-block s="repeat until %upvar %cs"><l>break</l><script></script></custom-block></script><script x="46.15548515319824" y="1999.8890838623065"><custom-block s="run ( %mult%s ) { %code } with %mult%s"><list><l></l></list><l></l><list><l></l></list></custom-block></script><script x="45.79994773864746" y="2050.9335174560565"><custom-block s="run reporter ( %mult%s ) { %code } with %mult%s"><list><l></l></list><l></l><list><l></l></list></custom-block></script><script x="49.71107292175293" y="2094.9890848795594"><custom-block s="JS enabled?"></custom-block></script><script x="48.644399642944336" y="2130.777974446616"><custom-block s="set JS variable %txt to %s"><l>a</l><l>6</l></custom-block></script><script x="45.44437217712402" y="2175.5557454427108"><custom-block s="get JS variable %txt"><l>a</l></custom-block></script><script x="42.59994316101074" y="2215.4001820882195"><custom-block s="popup %txt"><l></l></custom-block></script><script x="39.355485916137695" y="2248.5557149251326"><custom-block s="popup %txt %br"><l></l></custom-block></script><script x="39.577714920043945" y="2276.1779378255233"><custom-block s="popup %txt default: %txt"><l></l><l></l></custom-block></script><script x="39.95550727844238" y="2303.355692545576"><custom-block s="primitives"></custom-block></script><script x="45.06060218811035" y="2333.300160725914"><custom-block s="new line"></custom-block></script><script x="43.399972915649414" y="2367.922424316409"><custom-block s="reset stats"></custom-block></script><script x="37.71106147766113" y="2415.222340901695"><custom-block s="set stats to %l"><l/></custom-block></script><script x="34.02220344543457" y="2535.166829427083"><custom-block s="alternating"></custom-block></script><script x="33.46664237976074" y="2498.177897135418"><custom-block s="does JS variable %txt exist?"><l>a</l></custom-block></script><script x="34.755537033081055" y="2566.7335001627607"><custom-block s="increment %n"><l>2</l></custom-block></script><script x="54.68874549865723" y="1593.0112660725927"><custom-block s="%n &gt;&gt; %n"><l>1</l><l>1</l></custom-block></script><script x="29.066633224487305" y="2611.5335489908857"><custom-block s="ask %s and wait"><l>whats your name?</l></custom-block></script><script x="21.82219696044922" y="2653.777994791667"><custom-block s="ask %s"><l>whats your name?</l></custom-block></script><script x="22.399980545043945" y="2696.822489420573"><custom-block s="warp %repRing"><block s="reifyReporter"><script></script><list></list></block></custom-block></script><script x="22.066665649414062" y="2741.116861979167"><custom-block s="reload site"></custom-block></script><script x="27.72112464904785" y="2837.311299641927"><custom-block s="%n th prime"><l>2</l><variables><variable name="a"><l>2</l></variable><variable name="b"><l>3</l></variable></variables></custom-block></script><script x="25.01008415222168" y="2792.511311848958"><custom-block s="delete letter %n of %txt"><l>10</l><l>hello world!</l><variables><variable name="a"><list struct="atomic" id="3057">h,e,l,l,o, ,w,o,r,d,!</list></variable></variables></custom-block></script><script x="29.87674903869629" y="2881.0446370442705"><custom-block s="first %n primes"><l>10</l><variables><variable name="a"><list struct="atomic" id="3060">2,3,5,7,11,13,17,19,23,29</list></variable></variables></custom-block></script><script x="27.67674446105957" y="2929.133412679036"><custom-block s="is %n a factor of %n"><l></l><l></l></custom-block></script><script x="37.49991035461426" y="2455.4890340169277"><custom-block s="new stats x: %n y: %n dir: %n"><l></l><l></l><l></l></custom-block></script><script x="24.622182846069336" y="2974.0778198242188"><custom-block s="visible %b"><l/></custom-block></script><script x="37.42212677001953" y="3017.5668334960938"><custom-block s="toggle visible"></custom-block></script><script x="32.35552978515625" y="3059.9334920247393"><custom-block s="%s ’s costume"><l></l></custom-block></script><script x="16" y="3104.044453938802"><custom-block s="new costume %n %n %n %n %br width: %n height: %n"><l>0</l><l>0</l><l>0</l><l>100</l><l>20</l><l>20</l></custom-block></script><script x="20.844444274902344" y="3163.055603027345"><custom-block s="message"></custom-block></script><script x="25.022262573242188" y="3202.1667480468764"><custom-block s="custom blocks"></custom-block></script><script x="18.711137771606445" y="3227.4334106445317"><custom-block s="turbo %cs"><script></script></custom-block></script><script x="21.5555419921875" y="3287.67791748047"><custom-block s="turbowarp %cs"><script></script></custom-block></script><script x="16.933319091796875" y="3358.6445515950522"><custom-block s="add %txt to clipboard"><l></l></custom-block></script><script x="22.533340454101562" y="3414.4667765299487"><custom-block s="save project"></custom-block></script><script x="24" y="3457.8001098632817"><custom-block s="ide"></custom-block></script><script x="18" y="3491.6334431966147"><custom-block s="go forward %n layers"><l>1</l></custom-block></script><script x="23.83333333333337" y="3529.766776529948"><custom-block s="repeat until %b %upvar %cs"><l/><l>reps</l><script></script></custom-block></script><script x="16.83333333333337" y="3597.9334431966163"><custom-block s="random %mult%s"><list><l></l></list></custom-block></script><script x="18.83333333333337" y="3631.9334431966163"><custom-block s="wait %n secs"><l></l></custom-block></script><script x="29.83333333333337" y="3664.9334431966154"><custom-block s="repeat %n %upvar %cs"><l></l><l>reps</l><script></script></custom-block></script><script x="24.83333333333337" y="3722.300109863283"><custom-block s="%n !"><l></l></custom-block></script><script x="24.83333333333337" y="3764.8334431966155"><custom-block s="%s"><l></l></custom-block></script><script x="28" y="3810.4667765299487"><custom-block s="stop saying"></custom-block></script><script x="21" y="3854.3001098632826"><custom-block s="speak %s with %s accent %br and pitch %n rate %n"><l>Hello, World!</l><l>en-US</l><l>1</l><l>1</l></custom-block></script><script x="21" y="3916.3001098632826"><custom-block s="speak %s with %s accent %br and pitch %n rate %n and wait"><l>Hello, World!</l><l>en-US</l><l>1</l><l>1</l></custom-block></script><script x="116" y="3974.533443196616"><block s="reportVariadicGreaterThanOrEquals"><list><l></l><l></l></list></block></script><script x="213.5" y="3976.533443196616"><block s="reportVariadicLessThanOrEquals"><list><l></l><l></l></list></block></script><script x="24" y="4021.5334431966185"><block s="errorObsolete"></block></script><script x="199" y="4024.5334431966203"><custom-block s="Amorphous!"></custom-block></script><script x="301" y="4021.366776529954"><custom-block s="Meta-Undefined %n"><l>10</l></custom-block></script><script x="23" y="4071.5334431966203"><custom-block s="always $infinity-1-255-255-255-100"></custom-block></script><script x="22.111099243164062" y="4128.966752115892"><custom-block s="$circleSolid-1-255-0-0 record"></custom-block></script><script x="21" y="3974.3001098632826"><custom-block s="%mult%s"><list><l></l><l></l></list></custom-block></script><script x="23.000032424926758" y="4160.100052897142"><custom-block s="sign %n"><l></l></custom-block></script><script x="22.26666259765625" y="4191.366715494798"><custom-block s="unpause all $pointRight-1-255-220-0"></custom-block></script><script x="23.333351135253906" y="4238.3333089192765"><custom-block s="run in parallel %mult%cs"><list></list></custom-block></script><script x="120.40004348754883" y="4224.188879394538"><custom-block s="run in parallel %mult%cs and wait"><list></list></custom-block></script><script x="106" y="4126.166642252609"><custom-block s="$camera snap"></custom-block></script><script x="25" y="4292.166642252609"><custom-block s="create costume %repRing"><block s="reifyReporter"><autolambda><custom-block s="new costume %n %n %n %n %br width: %n height: %n"><l>200</l><l>200</l><l>200</l><l>100</l><l>20</l><l>20</l></custom-block></autolambda><list></list></block></custom-block></script><script x="118.68890380859375" y="4023.1556711832727"><custom-block s="Obsolete!"></custom-block></script><script x="22.266677856445312" y="4481.744604492191"><custom-block s="all but last of %l"><l/></custom-block></script><script x="25.11111831665039" y="4512.700170898441"><custom-block s="%s behind %l"><l></l><l/></custom-block></script><script x="23.68893051147461" y="4549.533524576827"><custom-block s="hacked blocks"></custom-block></script><script x="24.837371826171875" y="4582.516902669275"><block s="reportBoolean"><l/></block></script><script x="23" y="4622.516902669273"><custom-block s="tell my clones to %cmdRing"><block s="reifyScript"><script></script><list></list></block></custom-block></script><script x="21" y="4662.68356933594"><custom-block s="layer #"></custom-block></script><script x="19" y="4690.516902669273"><custom-block s="flip costume %s %s"><l><option>current</option></l><l>horizonally</l></custom-block></script><script x="23" y="4727.683569335939"><custom-block s="delete all clones"></custom-block></script><script x="26.888931274414062" y="4773.672481282553"><custom-block s="repeat for %n secs %cs"><l></l><script></script></custom-block></script><script x="29.644454956054688" y="4847.494828287761"><custom-block s="go to site %txt"><custom-block s="https:// %txt"><l>snap.berkeley.edu</l></custom-block></custom-block></script><script x="30" y="4896.828161621094"><custom-block s="$speechBubble %mlt %mult%repRing"><l>This is reporters before you use the call block on them&#xD;lol:</l><list><block s="reifyReporter"><autolambda><custom-block s="cursed predicate %boolUE"><l><bool>true</bool></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="cursed reporter %anyUE"><l>hello</l></custom-block></autolambda><list></list></block></list></custom-block></script><script x="29" y="5021.161494954431"><custom-block s="$speechBubble %mlt %mult%repRing"><l>Without those pesky rings</l><list><block s="reifyReporter"><autolambda><custom-block s="call %n"><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><script><custom-block s="run %n"><l></l></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="launch %n"><l></l></custom-block></script><list></list></block></list></custom-block></script><script x="25.066646575927734" y="4389.244584147138"><custom-block s="if %b then %cs else %cs"><l/><script></script><script></script></custom-block></script><script x="26" y="5154.828161621097"><custom-block s="%b %s %b"><l/><l>AND</l><l/></custom-block></script><script x="34.3447265625" y="5189.828161621097"><custom-block s="%cs"><script><block s="forward"><l>10</l></block></script></custom-block></script><script x="10" y="5249.66149495443"><custom-block s="is %n semiprime?"><l>123</l></custom-block></script><script x="36" y="5315.161494954431"><custom-block s="ask %s"><custom-block s="menu labeled %txt options %mult%s"><l>Gray cube says "Hello!"</l><list><custom-block s="menu labeled %txt options %mult%s"><l>Greet</l><list><l>Hi!</l><l>How are you?</l><l>Whats up!</l></list></custom-block><custom-block s="menu labeled %txt options %mult%s"><l>Ending</l><list><l>Bye!</l><l>Shut up idiot</l><l>Ok</l></list></custom-block></list></custom-block></custom-block></script><script x="39" y="5459.66149495443"><custom-block s="let %upvar be %s"><l>#1</l><l></l></custom-block></script><script x="64.59701080322264" y="290.37779235839844"><custom-block s="delete variable %mult%txt"><list><l></l></list></custom-block></script><script x="345.73828125" y="27.16666666666697"><custom-block s="infinite list"></custom-block></script><script x="343" y="70.33333333333303"><custom-block s="set %s to %s"><l>message</l><l>hello</l></custom-block></script><script x="339" y="128.16666666666606"><custom-block s="cursed addition"></custom-block></script><script x="344.5576171875" y="172.16666666666697"><custom-block s="%repRing %upvar"><block s="reifyReporter"><script></script><list></list></block><l>continuation</l></custom-block></script><script x="332" y="241.16666666666697"><custom-block s="set web title to %txt"><l></l></custom-block></script><script x="337" y="306.9999999999991"><custom-block s="block %cmdRing %upvar"><block s="reifyScript"><script></script><list></list></block><l>continuation</l></custom-block></script><script x="330" y="401"><custom-block s="recursive menu named %txt"><l></l></custom-block></script><script x="344" y="459.83333333333394"><custom-block s="for each %upvar %upvar %upvar in %l %cs"><l>value</l><l>index</l><l>list</l><l/><script></script></custom-block></script><script x="343" y="554.0833333333348"><custom-block s="loop %cs"><script></script></custom-block></script><script x="336" y="662.8333333333333"><custom-block s="letters in %txt after %txt"><l>hello</l><l>e</l></custom-block></script><script x="334" y="699.8333333333333"><custom-block s="letters in %txt before %txt"><l>hello</l><l>e</l></custom-block></script></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="Custom Blocks" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><costume name="costume" center-x="10" center-y="10" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAACtJREFUOE9jZGBg+M9ARcA4aiDFoTkahhQHIcNoGI6GIRkhMJpsyAg0NC0ALIIUAaxCfxoAAAAASUVORK5CYII=" mediaID="Custom Blocks_Sprite_cst_costume"/><costume name="costume(2)" center-x="10" center-y="10" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAACtJREFUOE9j/M/A8J+BioBx1ECKQ3M0DCkOQobRMBwNQzJCYDTZkBFoaFoATAIn7T0bR54AAAAASUVORK5CYII=" mediaID="Custom Blocks_Sprite_cst_costume(2)"/><costume name="costume(3)" center-x="10" center-y="10" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAACxJREFUOE9j/PDhw38GKgLGUQMpDs3RMKQ4CBlGw3A0DMkIgdFkQ0agoWkBAKeITEHPUNTxAAAAAElFTkSuQmCC" mediaID="Custom Blocks_Sprite_cst_costume(3)"/><costume name="costume(4)" center-x="10" center-y="10" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAACxJREFUOE9jPHHixH8GKgLGUQMpDs3RMKQ4CBlGw3A0DMkIgdFkQ0agoWkBAJMHQuG48TCaAAAAAElFTkSuQmCC" mediaID="Custom Blocks_Sprite_cst_costume(4)"/></media></snapdata>