<snapdata remixID="14239361"><project name="list and variable utilities" app="Snap! 12-beta-260430, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAD2klEQVR4AeyXMW5TQRRFxwliEbQR2QGNJToa1yyBig1QsAAKNkDFFlxSUbuBFRhlDfSIyNiWHYnC/09+5v25M/dEiWx5vt+8e+5pcrXjBwIVCVwlfiBQkQACVoTP1SkhIBZUJYCAVfFzOQLiQFUCvgJWxc7lZwIIeCbBaxUCCFgFO5eeCSDgmQSvVQggYBXsXHomgIBnErxWIYCAVbBXvVTqcgSUqsNvGQT061wqMQJK1eG3DAL6dS6VGAGl6vBbBgH9OpdKPKuAUslZRoIAAkrU4LsEAvp2L5EcASVq8F0CAX27l0iOgBI1+C6BgLN0zyWXCCDgJTJ8PgsBBJwFM5dcIoCAl8jw+SwEEHAWzFxyiQACXiLD57MQQMBZMPteMpYcAccIcR5KAAFD8TJ8jAACjhHiPJQAAobiZfgYAQQcI8R5KAEEDMXL8DEC/Qo4lpxzCQIIKFGD7xII6Nu9RHIElKjBdwkE9O1eIjkCStTguwQC9td9U4kQsKm6+lsWAfvrtKlECNhUXf0ti4D9ddpUIgRsqq7+lkXA/jptKlFRAZtKzrISBBBQogbfJRDQt3uJ5AgoUYPvEgjo271EcgSUqMF3CQQs0j1DphJAwKnk+F4RAghYBCNDphJAwKnk+F4RAghYBCNDphJAwKnk+F4RAghYBKPvkKcmR8A9wc1mk25vb/fv+J2bAALuiS+Xy3T36y59XXw8/n1ZfEjr9Xp/wm80AQQ8Eb7f3Z/epfQ8PUu/3/48yniQ8s3i1cMZb8oSQMCyPJn2SAIIeAJ2vbg+vUvpT/qbXnx7nd7tPh3/vu9+PJzxpiwBBNzzPPwTcvPy5ijbQbr3u89ptVrtT/iNJtCugAXJHP4J2W63BScyKpcAAuaS4rkQAggYgpWhuQQQMJcUz4UQQMAQrAzNJYCAuaR4LoQAAoZgDR3a1XAE7KrO9sIgYHuddbUxAnZVZ3thELC9zrraGAG7qrO9MAjYXmddbfwoAbtKThgJAggoUYPvEgjo271EcgSUqMF3CQT07V4iOQJK1OC7BAJmdc9DUQQQMIosc7MIIGAWJh6KIoCAUWSZm0UAAbMw8VAUAQSMIsvcLAIImIXJ96Ho5AgYTZj5gwQQcBAPh9EEEDCaMPMHCSDgIB4OowkgYDRh5g8SQMBBPBxGE9AVMDo58yUIIKBEDb5LIKBv9xLJEVCiBt8lENC3e4nkCChRg+8SCKjXvdVGCGhVt15YBNTrxGojBLSqWy8sAup1YrURAlrVrRcWAfU6sdroPwGtkhNWggACStTguwQC+nYvkRwBJWrwXQIBfbuXSP4PAAD//w3Pk3cAAAAGSURBVAMACKGnjzctwEkAAAAASUVORK5CYII=</thumbnail><scenes select="1"><scene name="list and variable utilities"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="fold %&apos;data&apos; at %&apos;fold&apos;" type="command" category="lists" space="true"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%n" initial="1">1<options>1=1&#xD;last=$_last&#xD;random=$_random&#xD;&#126;&#xD;parent=$_parent</options></input></inputs><script><block s="doInsertInList"><block var="data"/><block var="fold"/><block var="data"/></block></script></block-definition><block-definition s="%&apos;data&apos; folded at %&apos;fold&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%n" initial="1">1<options>1=1&#xD;last=$_last&#xD;random=$_random&#xD;&#126;&#xD;parent=$_parent</options></input></inputs><script><block s="doRun"><block s="reifyScript"><script><block s="doInsertInList"><l></l><block var="fold"/><l/></block><block s="doReport"><l></l></block></script><list></list></block><list><block s="reportMonadic"><l><option>id</option></l><block var="data"/></block></list></block></script></block-definition><block-definition s="folded? %&apos;list&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>value</l><l>error</l></list></block><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doSetVar"><l>value</l><block s="reportListContainsItem"><block var="list"/><block var="list"/></block></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l>value</l><block s="reportListContainsItem"><block s="reportNewList"><list><l>Maximum call stack size exceeded</l><l>too much recursion</l></list></block><block var="error"/></block></block></script><list></list></block><l>error</l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block><block s="doReport"><block var="value"/></block></script></block-definition><block-definition s="%&apos;#1&apos; added to %&apos;#2&apos;" type="reporter" category="lists" space="true"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">thing</input><input type="%l" initial="1"></input></inputs><script><block s="doRun"><block s="reifyScript"><script><block s="doAddToList"><block var="#1"/><l/></block><block s="doReport"><l></l></block></script><list></list></block><list><block s="reportMonadic"><l><option>id</option></l><block var="#2"/></block></list></block></script></block-definition><block-definition s="all but %&apos;#1&apos; of %&apos;#2&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1<options>1=1&#xD;last=$_last&#xD;&#126;&#xD;all=$_all&#xD;parent=$_parent</options></input><input type="%l" initial="1"></input></inputs><script><block s="doRun"><block s="reifyScript"><script><block s="doDeleteFromList"><block var="#1"/><l/></block><block s="doReport"><l></l></block></script><list></list></block><list><block s="reportMonadic"><l><option>id</option></l><block var="#2"/></block></list></block></script></block-definition><block-definition s="%&apos;#1&apos; inserted at %&apos;#2&apos; of %&apos;#3&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">thing</input><input type="%n" initial="1">1<options>1=1&#xD;last=$_last&#xD;random=$_random&#xD;&#126;&#xD;parent=$_parent</options></input><input type="%l" initial="1"></input></inputs><script><block s="doRun"><block s="reifyScript"><script><block s="doInsertInList"><block var="#1"/><block var="#2"/><l/></block><block s="doReport"><l></l></block></script><list></list></block><list><block s="reportMonadic"><l><option>id</option></l><block var="#3"/></block></list></block></script></block-definition><block-definition s="%&apos;#3&apos; replacing %&apos;#1&apos; of %&apos;#2&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">thing</input><input type="%n" initial="1">1<options>1=1&#xD;last=$_last&#xD;random=$_random&#xD;&#126;&#xD;parent=$_parent</options></input><input type="%l" initial="1"></input></inputs><script><block s="doRun"><block s="reifyScript"><script><block s="doReplaceInList"><block var="#1"/><l/><block var="#3"/></block><block s="doReport"><l></l></block></script><list></list></block><list><block s="reportMonadic"><l><option>id</option></l><block var="#2"/></block></list></block></script></block-definition><block-definition s="link %&apos;data&apos;" type="reporter" category="lists" space="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportListIsEmpty"><block var="data"/></block><block var="data"/><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><block s="reportCDR"><block var="data"/></block></block></block></block></script></block-definition><block-definition s="unlink %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><block s="reportMonadic"><l><option>id</option></l><block var="data"/></block><block s="reportApplyExtension"><l>err_error(msg)</l><list><block s="reportJoinWords"><list><l>expecting a list but getting a </l><block s="reportTypeOf"><block var="data"/></block></list></block></list></block></block></block></script></block-definition><block-definition s="linked? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><block s="reportApplyExtension"><l>lst_linked(list)</l><list><block var="data"/></list></block><block s="reportApplyExtension"><l>err_error(msg)</l><list><block s="reportJoinWords"><list><l>expecting a list but getting a </l><block s="reportTypeOf"><block var="data"/></block></list></block></list></block></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; $nl but if %&apos;error&apos; then %&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="blockify %&apos;data&apos;" type="reporter" category="lists" space="true"><comment x="0" y="0" w="90" collapsed="false">@mark4sisb modification</comment><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="reportNewList"><list></list></block></autolambda><list></list></block><block s="reportCONS"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><block s="reportMap"><block s="reportEnvironment"><l><option>script</option></l></block><block var="data"/></block></block></list></block><block s="reportIfElse"><block s="reportIsA"><block var="data"/><l><option>Boolean</option></l></block><block s="reportJoinWords"><list><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>true</bool></l></block></autolambda><list></list></block><block var="data"/></list></block><block s="reportIfElse"><block s="reportIsA"><block var="data"/><l><option>color</option></l></block><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="reportColor"><color>145,26,68,1</color></block></autolambda><list></list></block><block s="reportJoinWords"><list><block var="data"/></list></block></list></block><block s="reportIfElse"><block s="reportIsA"><block var="data"/><l><option>script</option></l></block><block s="reportJoinWords"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="reifyReporter"><script></script><list></list></block></autolambda><list></list></block><block s="reportTextSplit"><block var="data"/><l><option>blocks</option></l></block><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportCONS"><block s="reportListAttribute"><l><option>length</option></l><l/></block><l/></block></autolambda><list></list></block><list><block s="reportAttributeOf"><l><option>input names</option></l><block var="data"/></block></list></block></list></block></block><block var="data"/></block></block></block></block></block></script></block-definition><block-definition s="%&apos;old&apos; version of %&apos;thing&apos;" type="reporter" category="variables"><variables><list struct="atomic" id="409">prev</list></variables><header></header><code></code><translations></translations><inputs><input type="%upvar" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doSetVar"><l>old</l><block var="prev"/></block><block s="doSetVar"><l>prev</l><block var="thing"/></block><block s="doReport"><block var="old"/></block></script></block-definition><block-definition s="has %&apos;value&apos; changed?" type="predicate" category="variables"><variables><list struct="atomic" id="420">old</list></variables><header></header><code></code><translations>de:hat _ sich verändert?&#xD;</translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="value"/><block var="old"/></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doSetVar"><l>old</l><block var="value"/></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="block static %&apos;var&apos;" type="command" category="variables"><variables><list struct="atomic" id="445">*shared*</list></variables><header></header><code></code><translations></translations><inputs><input type="%upvar" initial="1">a</input></inputs><script><block s="doSetVar"><l>var</l><block s="reifyReporter"><autolambda><block var="*shared*"/></autolambda><list></list></block></block></script></block-definition><block-definition s="xml for getter %&apos;thing&apos;" type="reporter" category="operators" helper="true"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="reportApplyExtension"><l>snap_xml_encode(script)</l><list><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block></list></block><l>&lt;script&gt;</l></block></block><l>&lt;blocks&gt;&lt;block-definition s="%&amp;apos;type&amp;apos; </l><l></l><l> %&amp;apos;thing&amp;apos;" type="reporter" category="variables"&gt;&lt;header&gt;&lt;/header&gt;&lt;code&gt;&lt;/code&gt;&lt;translations&gt;&lt;/translations&gt;&lt;inputs&gt;&lt;input type="%s" readonly="true" irreplaceable="true" initial="1"&gt;get&lt;options&gt;set&amp;#xD;get&lt;/options&gt;&lt;/input&gt;&lt;input type="%mult%s" irreplaceable="true" separator="​" expand="​" max="1"&gt;&lt;/input&gt;&lt;/inputs&gt;&lt;script&gt;&lt;custom-block s="block static %upvar"&gt;&lt;l&gt;list&lt;/l&gt;&lt;/custom-block&gt;&lt;block s="doIf"&gt;&lt;block s="reportListAttribute"&gt;&lt;l&gt;&lt;option&gt;length&lt;/option&gt;&lt;/l&gt;&lt;block var="thing"/&gt;&lt;/block&gt;&lt;script&gt;&lt;block s="doSetVar"&gt;&lt;block var="list"/&gt;&lt;block s="reportListItem"&gt;&lt;l&gt;1&lt;/l&gt;&lt;block var="thing"/&gt;&lt;/block&gt;&lt;/block&gt;&lt;/script&gt;&lt;list&gt;&lt;/list&gt;&lt;/block&gt;&lt;block s="doReport"&gt;&lt;block s="evaluate"&gt;&lt;block var="list"/&gt;&lt;list&gt;&lt;/list&gt;&lt;/block&gt;&lt;/block&gt;&lt;/script&gt;&lt;scripts&gt;&lt;script x="10" y="189.08333333333337"&gt;&lt;block s="receiveSlotEvent"&gt;&lt;l&gt;type&lt;/l&gt;&lt;l&gt;&lt;option&gt;edited&lt;/option&gt;&lt;/l&gt;&lt;/block&gt;&lt;block s="doIf"&gt;&lt;block s="reportVariadicNotEquals"&gt;&lt;list&gt;&lt;block var="type"/&gt;&lt;custom-block s="%upvar version of %s"&gt;&lt;l&gt;old&lt;/l&gt;&lt;block var="type"/&gt;&lt;/custom-block&gt;&lt;/list&gt;&lt;/block&gt;&lt;script&gt;&lt;block s="doSetSlot"&gt;&lt;l&gt;thing&lt;/l&gt;&lt;block s="reportIfElse"&gt;&lt;block s="reportVariadicEquals"&gt;&lt;list&gt;&lt;block var="type"/&gt;&lt;l&gt;set&lt;/l&gt;&lt;/list&gt;&lt;/block&gt;&lt;block s="reportNewList"&gt;&lt;list&gt;&lt;l&gt;&lt;/l&gt;&lt;/list&gt;&lt;/block&gt;&lt;block s="reportNewList"&gt;&lt;list&gt;&lt;/list&gt;&lt;/block&gt;&lt;/block&gt;&lt;/block&gt;&lt;/script&gt;&lt;list&gt;&lt;/list&gt;&lt;/block&gt;&lt;/script&gt;&lt;script x="10" y="320.5000000000001"&gt;&lt;block s="receiveSlotEvent"&gt;&lt;l&gt;thing&lt;/l&gt;&lt;l&gt;&lt;option&gt;edited&lt;/option&gt;&lt;/l&gt;&lt;/block&gt;&lt;block s="doIf"&gt;&lt;block s="reportVariadicNotEquals"&gt;&lt;list&gt;&lt;block var="type"/&gt;&lt;l&gt;set&lt;/l&gt;&lt;/list&gt;&lt;/block&gt;&lt;script&gt;&lt;block s="doSetSlot"&gt;&lt;l&gt;thing&lt;/l&gt;&lt;block s="reportNewList"&gt;&lt;list&gt;&lt;/list&gt;&lt;/block&gt;&lt;/block&gt;&lt;/script&gt;&lt;list&gt;&lt;/list&gt;&lt;/block&gt;&lt;/script&gt;&lt;/scripts&gt;&lt;/block-definition&gt;&lt;block-definition s="%&amp;apos;old&amp;apos; version of %&amp;apos;thing&amp;apos;" type="reporter" category="variables"&gt;&lt;variables&gt;&lt;list struct="atomic" id="84"&gt;prev&lt;/list&gt;&lt;/variables&gt;&lt;header&gt;&lt;/header&gt;&lt;code&gt;&lt;/code&gt;&lt;translations&gt;&lt;/translations&gt;&lt;inputs&gt;&lt;input type="%upvar" initial="1"&gt;&lt;/input&gt;&lt;input type="%s" initial="1"&gt;&lt;/input&gt;&lt;/inputs&gt;&lt;script&gt;&lt;block s="doSetVar"&gt;&lt;l&gt;old&lt;/l&gt;&lt;block var="prev"/&gt;&lt;/block&gt;&lt;block s="doSetVar"&gt;&lt;l&gt;prev&lt;/l&gt;&lt;block var="thing"/&gt;&lt;/block&gt;&lt;block s="doReport"&gt;&lt;block var="old"/&gt;&lt;/block&gt;&lt;/script&gt;&lt;/block-definition&gt;&lt;block-definition s="block static %&amp;apos;var&amp;apos;" type="command" category="variables"&gt;&lt;variables&gt;&lt;list struct="atomic" id="95"&gt;*shared*&lt;/list&gt;&lt;/variables&gt;&lt;header&gt;&lt;/header&gt;&lt;code&gt;&lt;/code&gt;&lt;translations&gt;&lt;/translations&gt;&lt;inputs&gt;&lt;input type="%upvar" initial="1"&gt;a&lt;/input&gt;&lt;/inputs&gt;&lt;script&gt;&lt;block s="doSetVar"&gt;&lt;l&gt;var&lt;/l&gt;&lt;block s="reifyReporter"&gt;&lt;autolambda&gt;&lt;block var="*shared*"/&gt;&lt;/autolambda&gt;&lt;list&gt;&lt;/list&gt;&lt;/block&gt;&lt;/block&gt;&lt;/script&gt;&lt;/block-definition&gt;&lt;/blocks&gt;&lt;script&gt;&lt;custom-block s="%s </l><l></l><l> %mult%s"&gt;&lt;l&gt;get&lt;/l&gt;&lt;list&gt;&lt;/list&gt;&lt;/custom-block&gt;&lt;/script&gt;&lt;/script&gt;</l></list></block></autolambda><list></list></block><list><block s="reportTextFunction"><l><option>XML escape</option></l><block var="thing"/></block></list></block></block></script></block-definition><block-definition s="differences %&apos;1&apos; and %&apos;2&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block s="reportAtomicKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><block s="reportLetter"><block var="index"/><block var="2"/></block><block s="reportListItem"><l>1</l><block var="value"/></block></list></block></autolambda><list><l>value</l><l>index</l></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block var="value"/><block var="index"/></list></block></autolambda><list><l>value</l><l>index</l></list></block><block s="reportTextSplit"><block var="1"/><l><option>letter</option></l></block></block></block></block></script></block-definition><block-definition s="scriptify %&apos;template&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%repRing" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>def</l></list></block><block s="doSetVar"><l>def</l><block s="reportBlockAttribute"><l><option>definition</option></l><block var="template"/></block></block><block s="doReport"><block s="reportJoinWords"><block s="reportCONS"><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyScript"><script><block s="doDefineBlock"><l>a</l><l></l><block s="reifyReporter"><script></script><list></list></block></block></script><list></list></block><l>block</l><block s="reportBlockAttribute"><l><option>label</option></l><block var="template"/></block><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="reifyReporter"><script></script><list></list></block></autolambda><list></list></block><block var="def"/><block s="reportCONS"><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l><option>input names</option></l><block var="def"/></block></block><block s="reportAttributeOf"><l><option>input names</option></l><block var="def"/></block></block></list></block></list></block></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyScript"><script><block s="doSetBlockAttribute"><l></l><block s="reifyReporter"><script></script><list></list></block><l></l></block></script><list></list></block><l></l><block s="reifyReporter"><autolambda><block var="block"/></autolambda><list></list></block><custom-block s="blockify %l"><block s="reportBlockAttribute"><l></l><block var="template"/></block></custom-block></list></block></list></block></autolambda><list></list></block><block s="reportCDR"><block s="reportCDR"><block s="reportApplyExtension"><l>snap_block_selectors</l><list></list></block></block></block></block></block></block></block></script></block-definition><block-definition s="callers of %&apos;block&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><block s="reportBlockAttribute"><l><option>custom?</option></l><block s="reifyReporter"><script></script><list></list></block></block><block s="reportListContainsItem"><block s="reportListAttribute"><l><option>flatten</option></l><block s="reportTextSplit"><block s="reportBlockAttribute"><l><option>definition</option></l><block s="reifyReporter"><script></script><list></list></block></block><l><option>blocks</option></l></block></block><block var="block"/></block></list></block></autolambda><list></list></block><block s="reportGet"><l><option>blocks</option></l></block></block></block></script></block-definition><block-definition s="call stack" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>current</l><l>stack</l></list></block><block s="doSetVar"><l>stack</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>current</l><block s="reportEnvironment"><l><option>script</option></l></block></block><block s="doWarp"><script><block s="doUntil"><block s="reportIsA"><block var="current"/><l><option>agent</option></l></block><script><block s="doAddToList"><block var="current"/><block var="stack"/></block><block s="doSetVar"><l>current</l><block s="reportAttributeOf"><block s="reifyReporter"><autolambda><block s="reportEnvironment"><l><option>caller</option></l></block></autolambda><list></list></block><block var="current"/></block></block></script></block></script></block><block s="doAddToList"><block var="current"/><block var="stack"/></block><block s="doReport"><block var="stack"/></block></script></block-definition><block-definition s="expand %&apos;slot&apos; to %&apos;level&apos; slots" type="command" category="control"><header></header><code></code><translations>de:dehne _ auf _ Eingabefelder aus&#xD;</translations><inputs><input type="%s" readonly="true" irreplaceable="true" initial="1"><options>§_inputSlotsMenu</options></input><input type="%n" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>block</l><l>inputs</l><l>defaults</l></list></block><block s="doSetVar"><l>block</l><block s="reportAttributeOf"><block s="reifyReporter"><autolambda><block s="reportEnvironment"><l><option>caller</option></l></block></autolambda><list></list></block><block s="reportEnvironment"><l><option>caller</option></l></block></block></block><block s="doSetVar"><l>inputs</l><block s="reportAttributeOf"><block var="slot"/><block s="reportEnvironment"><l><option>caller</option></l></block></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="level"/><block s="reportListAttribute"><l><option>length</option></l><block var="inputs"/></block></list></block><script><block s="doSetVar"><l>defaults</l><block s="reportReshape"><block s="reportListItem"><block s="reportListIndex"><block var="slot"/><block s="reportAttributeOf"><l><option>input names</option></l><block s="reportBlockAttribute"><l><option>definition</option></l><block var="block"/></block></block></block><block s="reportBlockAttribute"><l><option>defaults</option></l><block var="block"/></block></block><list><block var="level"/></list></block></block><block s="doWarp"><script><block s="doFor"><l>i</l><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><block var="inputs"/></block><l>1</l></list></block><block var="level"/><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="defaults"/></block><block var="inputs"/></block></script></block></script></block></script><list></list></block><block s="doTellTo"><block s="reportEnvironment"><l><option>caller</option></l></block><block s="reifyScript"><script><block s="doSetSlot"><l></l><l></l></block></script><list></list></block><list><block var="slot"/><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="level"/><l>1</l></list></block><block s="reportNewList"><list></list></block><block s="reportReshape"><block var="inputs"/><list><block var="level"/></list></block></block></list></block></script></block-definition><block-definition s="timer class" type="command" category="sensing"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="v✷r getter? %&apos;block&apos;" type="predicate" category="variables" space="true"><header></header><code></code><translations></translations><inputs><input type="%repRing" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportApplyExtension"><l>snap_xml_encode(script)</l><list><block var="block"/></list></block><custom-block s="xml for getter %s"><block s="reportListAttribute"><l><option>text</option></l><block s="reportReshape"><block s="reportCDR"><block s="reportTextSplit"><block s="reportBlockAttribute"><l><option>label</option></l><block var="block"/></block><l><option>word</option></l></block></block><list><l>-1</l></list></block></block></custom-block></list></block></block></script><scripts><script x="10" y="201.49999999999994"><block s="reportVariadicEquals"><list><block s="reportBlockAttribute"><block s="reportApplyExtension"><l>snap_block_selectors</l><list></list></block><block var="block"/></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reportReshape"><block s="reportTextSplit"><block s="reportBlockAttribute"><l><option>label</option></l><block var="block"/></block><l><option>word</option></l></block><list><l>-1</l></list><comment w="90" collapsed="false">if any blocks have multiple other labels, make them into a text that is NOT the same as the original.</comment></block><l> _</l></list></block><block s="reifyReporter"><script></script><list><l>thing</l></list></block><l></l><l>9</l><l>2</l><l>1</l><l></l><block s="reportNewList"><list><l>103</l></list></block><block s="reportNewList"><list><l></l></list></block><block s="reportNewList"><list><l></l></list></block><block s="reportNewList"><list><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportNewList"><list><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportNewList"><list><l></l></list></block><block s="reportNewList"><list><l></l></list></block><block s="reportNewList"><list><l>set to</l></list></block><block s="reportNewList"><list><l>0</l></list></block><block s="reportNewList"><list><l>0</l></list></block><block s="reportNewList"><list><l>1</l></list></block><block s="reportNewList"><list></list></block></list></block></list></block></script></scripts></block-definition><block-definition s="ue %&apos;ue&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%anyUE" initial="1"></input></inputs><script><block s="doReport"><block var="ue"/></block></script></block-definition><block-definition s="tilt %&apos;axis&apos;" type="reporter" category="sensing"><header></header><code></code><translations>de:Neigung _&#xD;ar:_ الميل ض&#xD;ca:inclinació _&#xD;cs:náklon _&#xD;el:κλίση _&#xD;es:inclinación _&#xD;fr:inclinaison _&#xD;gl:inclinación _&#xD;ja:_ 仰角&#xD;nl:kantel _&#xD;pl:nachylenie _&#xD;pt_BR:inclinação _&#xD;pt:inclinação _&#xD;ru:наклон _&#xD;ta:சாய் _&#xD;tr:eğilim _&#xD;zh_CN:倾角 _&#xD;zh_TW:倾角 _&#xD;</translations><inputs><input type="%s" readonly="true" initial="1">x<options>x&#xD;y&#xD;z&#xD;&#126;&#xD;xyz</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>ori_tilt(xyz)</l><list><block var="axis"/></list></block></block></script></block-definition><block-definition s="%&apos;operation&apos; v✷r %&apos;thing&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" irreplaceable="true" initial="1">create<options>create&#xD;delete</options></input><input type="%txt" irreplaceable="true" expand="set to" max="1">v✷r</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="operation"/><l>delete</l></list></block><script><block s="doDeleteBlock"><block s="reportApplyExtension"><l>snap_xml_decode(txt)</l><list><block s="reportJoinWords"><list><l>&lt;script&gt;&lt;custom-block s="%s </l><block s="reportTextFunction"><l><option>XML escape</option></l><block var="thing"/></block><l> %mult%s"&gt;&lt;/custom-block&gt;&lt;/script&gt;</l></list></block></list></block></block></script><list><block s="reportVariadicEquals"><list><block var="operation"/><l>create</l></list></block><script><block s="doApplyExtension"><l>snap_xml_decode(txt)</l><list><custom-block s="xml for getter %s"><block var="thing"/></custom-block></list></block></script></list></block></script><scripts><script x="10" y="258.1666666666668"><block s="doDefineBlock"><l>block</l><block s="reportJoinWords"><list><block var="thing"/><l> _</l></list></block><block s="reifyReporter"><script></script><list><l>thing</l></list></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l><option>last</option></l><block s="reportTextSplit"><block s="reportBlockAttribute"><l><option>label</option></l><block var="block"/></block><l><option>word</option></l></block></block><l>(2)</l></list></block><script><block s="doDeleteBlock"><block var="block"/></block></script><script><block s="doSetBlockAttribute"><l><option>category</option></l><block var="block"/><l>9</l></block><block s="doSetBlockAttribute"><l><option>type</option></l><block var="block"/><l>2</l></block><block s="doSetBlockAttribute"><l><option>slots</option></l><block var="block"/><block s="reportNewList"><list><l>103</l></list></block></block><block s="doSetBlockAttribute"><l><option>max slots</option></l><block var="block"/><block s="reportNewList"><list><l>1</l></list></block></block><block s="doSetBlockAttribute"><l><option>replaceables</option></l><block var="block"/><block s="reportNewList"><list><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></block><block s="doSetBlockAttribute"><l><option>expands</option></l><block var="block"/><block s="reportNewList"><list><l>set to</l></list></block></block></script></block></script></scripts></block-definition><block-definition s="set primitive %&apos;#1&apos; to %&apos;#2&apos;" type="command" category="variables" primitive="doSetVar" helper="true"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" irreplaceable="true"><options>§_getVarNamesDict</options></input><input type="%s">0</input></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>doSetVar</l></block></script></block-definition></blocks><primitives></primitives><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="1160"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="1161"></list></costumes><sounds><list struct="atomic" id="1162"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="-14" y="-21" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="155.54999999999998,0,121.32900000000004,1" pen="tip" id="1167"><costumes><list struct="atomic" id="1168"></list></costumes><sounds><list struct="atomic" id="1169"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><custom-block s="blockify %l"><l/></custom-block></script><comment x="20" y="116" w="90" collapsed="false">TO DO: block to reorder pallette</comment><comment x="20" y="50" w="176" collapsed="false">^^^ @mark4sisb&#xD;their color support modification + my input names modification</comment></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="list and variable utilities" app="Snap! 12-beta-260430, https://snap.berkeley.edu" version="2"></media></snapdata>