<snapdata remixID="12963628"><project name="Blocks" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes>A system for creating and saving lists like in scratch.&#xD;If you see this please try to help here:  https://forum.snap.berkeley.edu/t/make-input-lists-draw-from-actual-lists/14907&#xD;and suggest things here: https://forum.snap.berkeley.edu/t/you-can-make-lists-like-in-scratch-now-yay/14906</notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="Blocks"><notes>A system for creating and saving lists like in scratch.&#xD;If you see this please try to help here:  https://forum.snap.berkeley.edu/t/make-input-lists-draw-from-actual-lists/14907&#xD;and suggest things here: https://forum.snap.berkeley.edu/t/you-can-make-lists-like-in-scratch-now-yay/14906</notes><palette><category name="???????????" color="36,227,0,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="create list %&apos;Iist&apos; %&apos;name&apos; show? %&apos;bool&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s"></input><input type="%b" irreplaceable="true">true</input></inputs><script><block s="doIfElse"><custom-block s="does var %s exist?"><l>list of lists</l></custom-block><script><custom-block s="add %s to %s"><block var="name"/><l>list of lists</l></custom-block><custom-block s="create %s var %mult%txt"><l>global</l><list><block var="name"/></list></custom-block><custom-block s="set var %s to %s"><block var="name"/><block var="Iist"/></custom-block><block s="doIfElse"><block var="bool"/><script><custom-block s="show list %s"><block var="name"/></custom-block></script><script><custom-block s="hide list %s"><block var="name"/></custom-block></script></block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>list of lists not set up. please use</l><block s="reifyScript"><script><custom-block s="set up list of lists"></custom-block></script><list></list></block><l>first.</l></list></block></custom-block></script></block></script></block-definition><block-definition s="create %&apos;_scope&apos; var %&apos;_names&apos;" type="command" category="variables"><comment x="0" y="0" w="146" collapsed="false">This block creates  new variables on the selected scope: global (for all sprites), sprite (for this sprite only) or script (only for that blocks stack) with the names given (in &apos;names&apos; list).&#xD;&#xD;If there is already a variable with that name in that scope, it does nothing: no errors and no overwrites.</comment><header></header><code></code><translations>pt:cria as variáveis _ _&#xD;ca:crea les _ variables _&#xD;es:crear las _ variables _&#xD;de:erstellen _ var _&#xD;</translations><inputs><input type="%s" readonly="true">global<options>global&#xD;sprite&#xD;script</options></input><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>_item</l><block var="_names"/><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><block var="_scope"/><block var="_item"/></list></block></script></block></script></block></script></block-definition><block-definition s="delete var %&apos;_names&apos;" type="command" category="variables"><comment x="0" y="0" w="217" collapsed="false">This block deletes all the variables with the names given (inside input list).&#xD;&#xD;Each name will make only one variable deletion, and this will be the variable found following the scope order: &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos;.&#xD;&#xD;If we have a &quot;testing&quot; sprite variable and also a &quot;testing&quot; global one, deleting &quot;testing&quot; will delete only the sprite one (Yes! we can also do &quot;delete var (testing, testing)&quot; to delete both.&#xD;&#xD;If one variable does not exists (in any scope) an error happens, stopping block action in that point. You can check it before with the &quot;does var (name) exists?&quot;block. </comment><header></header><code></code><translations>pt:remove as variáveis _&#xD;ca:esborra les variables _&#xD;es:borrar variables _&#xD;de:löschen var _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>_item</l><block var="_names"/><script><block s="doApplyExtension"><l>err_ignore</l><list><custom-block s="var %s"><block var="_item"/></custom-block></list></block><block s="doApplyExtension"><l>var_delete(name)</l><list><block var="_item"/></list></block></script></block></script></block></script></block-definition><block-definition s="set var %&apos;_name&apos; to %&apos;_value&apos;" type="command" category="variables"><comment x="0" y="0" w="240.4931640625" collapsed="false">This block sets the given value (last input) to the variable named with the name givent (var input).&#xD;&#xD;It looks for that variable following the scope order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos; (the first match it finds).&#xD;&#xD;If that variable does not exist (in any scope) an error happens, stopping their script. You can check it before using the &quot;does var (name) exists?&quot; block. </comment><header></header><code></code><translations>ca:assigna a _ el valor _&#xD;es:asignar a _ el valor _&#xD;pt:altera _ para _&#xD;de:setze var _ auf _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="_name"/><block var="_value"/></list></block></script></block-definition><block-definition s="var %&apos;_name&apos;" type="reporter" category="variables"><comment x="0" y="0" w="178.00000000000003" collapsed="false">This block reports the value of the variable with the name given.&#xD;&#xD;It looks for that variable following the scope order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos; (the first match it finds).&#xD;&#xD;If that variable does not exist (in any scope) an error happens, stopping their script. You can check it before using the &quot;does var (name) exists?&quot; block. </comment><header></header><code></code><translations>pt:o valor de _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="_name"/></list></block></block></script></block-definition><block-definition s="does var %&apos;_name&apos; exist?" type="predicate" category="variables"><comment x="0" y="0" w="146" collapsed="false">This block reports &quot;true&quot; if there is a variable with this given name (input slot) in that context.&#xD;&#xD;It can be a global, sprite or script variable.&#xD;&#xD;Otherwise it reports &quot;false&quot;.</comment><header></header><code></code><translations>pt:a variável _ existe&#xD;ca:existeix la variable _ ?&#xD;es:existe la variable _ ?&#xD;de:existiert var _ ?&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doApplyExtension"><l>err_ignore</l><list><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="_name"/></list></block></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="reifyScript"><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><l></l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="show var %&apos;_name&apos;" type="command" category="variables"><comment x="0" y="0" w="181" collapsed="false">This block turns on (show) the watcher view on stage (if it was not already activated) of the variable with the given name (slot input).&#xD;&#xD;It can only access to the closest variable scope (if there different variables with the same name in different scopes) following the order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos;.&#xD;&#xD;No errors if that variable does not exist.</comment><header></header><code></code><translations>ca:mostra la variable _&#xD;es:mostrar variable _&#xD;pt:mostra a variável _&#xD;de:zeige var _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doApplyExtension"><l>var_show(name)</l><list><block var="_name"/></list></block></script></block-definition><block-definition s="hide var %&apos;_name&apos;" type="command" category="variables"><comment x="0" y="0" w="181" collapsed="false">This block turns off (hide) the watcher view on stage (if it was not already activated) of the variable with the given name (slot input).&#xD;&#xD;It can only access to the closest variable scope (if there different variables with the same name in different scopes) following the order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos;.&#xD;&#xD;No errors if that variable does not exist.</comment><header></header><code></code><translations>ca:amaga la variable _&#xD;es:esconder variable _&#xD;pt:esconde a variável _&#xD;de:verstecke var _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doApplyExtension"><l>var_hide(name)</l><list><block var="_name"/></list></block></script></block-definition><block-definition s="delete list %&apos;name&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_getVarNamesDict</options></input></inputs><script><block s="doIfElse"><custom-block s="does var %s exist?"><l>list of lists</l></custom-block><script><custom-block s="delete var %mult%txt"><list><block var="name"/></list></custom-block><block s="doDeleteFromList"><block s="reportListIndex"><block var="name"/><block var="list of lists"/></block><block var="list of lists"/></block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>list of lists not set up. please use</l><block s="reifyScript"><script><custom-block s="set up list of lists"></custom-block></script><list></list></block><l>first.</l></list></block></custom-block></script></block></script></block-definition><block-definition s="%&apos;1&apos; ≠ %&apos;2&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="1"/><block var="2"/></list></block></block></block></script></block-definition><block-definition s="list %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><custom-block s="var %s"><block var="list"/></custom-block></block></script></block-definition><block-definition s="set up list of lists" type="command" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="create %s var %mult%txt"><l>global</l><list><l>list of lists</l></list></custom-block><custom-block s="set var %s to %s"><l>list of lists</l><block s="reportNewList"><list></list></block></custom-block></script></block-definition><block-definition s="add %&apos;thing&apos; to %&apos;list&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s" readonly="true"><options>§_getVarNamesDict</options></input></inputs><script><block s="doAddToList"><block var="thing"/><custom-block s="var %s"><block var="list"/></custom-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;</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;</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;</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="close list of lists" type="command" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><custom-block s="does var %s exist?"><l>list of lists</l></custom-block><script><custom-block s="delete var %mult%txt"><list><l>list of lists</l></list></custom-block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>list of lists not set up. please use</l><block s="reifyScript"><script><custom-block s="set up list of lists"></custom-block></script><list></list></block><l>first.</l></list></block></custom-block></script></block></script></block-definition><block-definition s="remove %&apos;thing&apos; from %&apos;list&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s" readonly="true"><options>§_getVarNamesDict</options></input></inputs><script><block s="doIf"><block s="reportListContainsItem"><custom-block s="var %s"><block var="list"/></custom-block><block var="thing"/></block><script><block s="doDeleteFromList"><block s="reportListIndex"><block var="thing"/><custom-block s="var %s"><block var="list"/></custom-block></block><custom-block s="var %s"><block var="list"/></custom-block></block></script><list></list></block></script></block-definition><block-definition s="no" type="command" category="???????????"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doForever"><script><block s="doWait"><custom-block s="all the"></custom-block></block></script></block></script></block><block s="doRepeat"><l>-1</l><script><block s="doForever"><script><block s="doTellTo"><block s="newClone"><l><option>myself</option></l></block><block s="reifyScript"><script><custom-block s="run for your lifeeeeeeeeeeee!1!!!!!1!!1111"></custom-block></script><list></list></block><list></list></block></script></block></script></block><custom-block s="but they will die because you never finish doing your last job mwahahaha"></custom-block></script></block-definition><block-definition s="all the" type="reporter" category="???????????"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="run for your lifeeeeeeeeeeee!1!!!!!1!!1111" type="command" category="???????????"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="but they will die because you never finish doing your last job mwahahaha" type="command" category="???????????"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="but they will die because you never finish doing your last job mwahahaha"></custom-block></script></block-definition><block-definition s="show list %&apos;list&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><custom-block s="show var %s"><block var="list"/></custom-block></script></block-definition><block-definition s="hide list %&apos;list&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><custom-block s="hide var %s"><block var="list"/></custom-block></script></block-definition><block-definition s="$flash sort %&apos;data&apos; ordering with %&apos;function&apos;" type="reporter" category="lists"><comment x="0" y="0" w="161.14285714285708" collapsed="false">Reports a sorted version of the list in its first input slot, using the comparison function in the second input slot.  For a list of numbers, using &lt; as the comparison function will sort from low to high; using &gt; will sort from high to low.</comment><header></header><code></code><translations>ca:ordena _ segons criteri _&#xD;</translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><block var="data"/><block var="function"/></list></block></block></script></block-definition><block-definition s="$flash assoc %&apos;key&apos; %&apos;a-list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="289.3333333333333" collapsed="false">The second input is an &quot;association list,&quot; a list of two-item lists.  Each of those smaller lists has a &quot;key&quot; as its first item and a &quot;value&quot; as its second.  ASSOC reports the first key-value pair in the association list whose key matches the first input.</comment><header></header><code></code><translations>ca:associació _ _&#xD;</translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block var="key"/><block s="reportListItem"><l>1</l><l/></block></list></block></autolambda><list></list></block><block var="a-list"/></block></block></script></block-definition><block-definition s="%&apos;#&apos; for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><comment x="0" y="0" w="228.57142857142858" collapsed="false">This block carries out the given script for each item of the given list, like the primitive FOR EACH.&#xD;&#xD;What&apos;s different is that it provides the # variable, which will contain the item number in the list of each item in turn, 1 while processing item 1, and so on.</comment><header></header><code></code><translations>ca:_ per cada _ de _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%ca"></input></inputs><script><block s="doForEach"><l>inner item</l><block var="data"/><script><block s="doSetVar"><l>item</l><block var="inner item"/></block><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="☠︎ linked? %&apos;data&apos;" type="predicate" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>lst_linked(list)</l><list><block var="data"/></list></block></block></script></block-definition><block-definition s="☠︎ link %&apos;data&apos;" type="reporter" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><block var="data"/></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><block s="reportCDR"><block var="data"/></block></block></block></script></block-definition><block-definition s="printable %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="188.66666666666666" collapsed="false">Takes a (possibly deep) list as input,&#xD;and reports a human-readable text form &#xD;of the list (namely, Lisp notation).&#xD;&#xD;Will not work on circular lists.</comment><header></header><code></code><translations>ca:notació textual de _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><block var="data"/></block></script><list></list></block><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><l>()</l></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block s="reportAtomicCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="printable %l"><l/></custom-block></autolambda><list></list></block><block var="data"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> </l><l></l></list></block></autolambda><list></list></block></block><l>)</l></list></block></block></script></block-definition><block-definition s="sentence %&apos;phrase&apos;" type="reporter" category="lists"><comment x="0" y="0" w="302.6666666666667" collapsed="false">SENTENCE is the main constructor for sentences, represented&#xD;as lists of words.  It takes zero or more inputs, each of which can&#xD;be either a list or a text string.  If a list, the input is assumed to be&#xD;a list of words.  If a text string, it is converted to a list of words using&#xD;SENTENCE→LIST.  Then all the lists of words are appended to form a new list of words.&#xD;&#xD;If the inputs are lists of lists rather than lists of words, SENTENCE,&#xD;like APPEND, does only one level of flattening, reporting a list of&#xD;all the items of all the input lists.</comment><header></header><code></code><translations>ca:frase _&#xD;</translations><inputs><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><l></l><custom-block s="sentence $arrowRight list %txt"><l></l></custom-block></block></autolambda><list></list></block><block var="phrase"/></block></block></block></script></block-definition><block-definition s="$flash zip %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="192" collapsed="false">ZIP takes any number of lists as inputs.  The lists should all be the same length.  ZIP reports a list of lists in which the first item is a list of all the first items, the second item is a list of all the second items, etc.&#xD;Viewing the inputs as the rows of a matrix, ZIP reports its transpose.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>columns</option></l><block var="lists"/></block></block></script></block-definition><block-definition s="%&apos;x&apos;" type="reporter" category="lists"><comment x="0" y="0" w="105.33333333333333" collapsed="false">The identity function reports its input.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition><block-definition s="multimap %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="267.3333333333333" collapsed="false">Takes as input a function of N inputs and N lists.&#xD;The function is called with item 1 of all the lists as its inputs, with item 2 of all the lists as its inputs, and so on.  (The lists should all be the same length.)</comment><header></header><code></code><translations>ca:multi-mapeja _ sobre _&#xD;</translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="function"/><custom-block s="%s"><l></l></custom-block></block></autolambda><list></list></block><custom-block s="$flash zip %mult%l"><block var="lists"/></custom-block></block></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="196" collapsed="false">Takes a sentence in text string form and reports the sentence as a list of its words.</comment><header></header><code></code><translations>de:Satz $arrowRight Liste _&#xD;ca:frase $arrowRight llista _&#xD;es:frase $arrowRight lista _&#xD;fr:phrase $arrowRight liste _&#xD;pt:uma lista com as palavras da frase _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportAtomicKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><l></l></block><l>0</l></list></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></block></script></block-definition><block-definition s="%&apos;data&apos; from %&apos;var&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s">select<options>function () {&#xD;var ide = world.children[0];&#xD;var menuVarName = this.parent.blockSpec;&#xD;//console.log(this.parent.cachedInputs[1].children[0].text);&#xD;//return &quot;fred&quot;;&#xD;menuVarName = this.parent.cachedInputs[1].children[0].text;&#xD;//console.log(menuVarName);&#xD;var menu = ide.getVar(menuVarName).asArray();&#xD;console.log(menu);&#xD;var rv = {};&#xD;if (menu[0] instanceof List) {&#xD;//console.log(menu[0].contents);&#xD;  if (menu[0].contents[0] instanceof List) {&#xD;    //console.log(menu[0].contents[0]);&#xD;    for (var i = 0; i &lt; menu.length; ++i) {&#xD;      rv[menu[i].contents[0].contents[0]+&quot;\u00A0&quot;+&quot;(&quot;+menu[i].contents[0].contents[1]+&quot;)&quot;] = menu[i].contents[0].contents[0]+&quot;\u00A0&quot;+&quot;(&quot;+menu[i].contents[0].contents[1]+&quot;)&quot;;&#xD;    }&#xD;  } else {&#xD;    for (var i = 0; i &lt; menu.length; ++i) {&#xD;      rv[menu[i].contents[0]] = menu[i].contents[1];&#xD;    }&#xD;  }&#xD;} else {  &#xD;  for (var i = 0; i &lt; menu.length; ++i)&#xD;    rv[menu[i]] = menu[i];&#xD;}&#xD;console.log(rv);&#xD;return rv;&#xD;}</options></input><input type="%s">choose variable<options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="data"/><block s="reportJoinWords"><list><block s="reportUnicodeAsLetter"><l>160</l></block><l>(</l></list></block></block></block></block></script></block-definition></blocks><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="611"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAB4KADAAQAAAABAAABaAAAAAAHwbojAAAL30lEQVR4Ae3QMQEAAADCoPVPbQwfiEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGPgMDI3+AAEeFvcCAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="612"></list></costumes><sounds><list struct="atomic" id="613"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="618"><costumes><list struct="atomic" id="619"></list></costumes><sounds><list struct="atomic" id="620"></list></sounds><blocks></blocks><variables></variables><scripts><script x="12" y="61.83333333333334"><custom-block s="close list of lists"><comment w="90" collapsed="false">at the end of script so that they don&apos;t build up.</comment></custom-block></script><script x="11" y="146.58333333333337"><custom-block s="create list %l %s show? %b"><block s="reportNewList"><list><l>zampoozie</l><l>dddd</l><l>irkqawlek</l><l>dddddddddddddfdddwdededydjgjrjrgjio;hgtjoerijsl</l></list></block><l>nose had a sock eeeeee</l><l><bool>true</bool></l><comment w="90" collapsed="false">I might remove the list input</comment></custom-block></script><script x="15" y="232.58333333333337"><custom-block s="delete list %s"><l>nose had a sock eeeeee</l><comment w="90" collapsed="false">deletes the list</comment></custom-block></script><script x="11" y="291.58333333333337"><custom-block s="add %s to %s"><l>my own socks</l><l>nose had a sock eeeeee</l><comment w="90" collapsed="false">adds to the list</comment></custom-block></script><script x="448" y="265.83333333333337"><block s="receiveGo"></block><custom-block s="set up list of lists"></custom-block><custom-block s="show list %s"><l>list of lists</l></custom-block><block s="doRepeat"><l>10</l><script><custom-block s="create list %l %s show? %b"><block s="reportNumbers"><block s="reportRandom"><l>1</l><l>100</l></block><block s="reportRandom"><l>1</l><l>100</l></block></block><block s="reportRandom"><l>1</l><l>10</l></block><l><bool>true</bool></l></custom-block></script></block><custom-block s="%upvar for each %upvar of %l %ca"><l>#</l><l>item</l><custom-block s="list %s"><l>list of lists</l></custom-block><script><block s="doIf"><custom-block s="%s ≠ %s"><block var="item"/><l>list of lists</l></custom-block><script><custom-block s="delete list %s"><block var="#"/></custom-block></script><list></list></block></script></custom-block><custom-block s="close list of lists"></custom-block></script><script x="12" y="356.58333333333337"><custom-block s="remove %s from %s"><l>my own socks</l><l>nose had a sock eeeeee</l><comment w="90" collapsed="false">removes from the list</comment></custom-block></script><script x="15" y="410.58333333333337"><custom-block s="list %s"><l>list of lists</l><comment w="90" collapsed="false">shows the content of the list</comment></custom-block></script><script x="413" y="743.5833333333334"><custom-block s="%s from %s"><l>nose had a sock eeeeee</l><l>list of lists</l></custom-block></script><script x="17" y="492.58333333333337"><custom-block s="no"><comment w="80" collapsed="true">...&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;&#xD;look inside</comment></custom-block></script><script x="10" y="10"><custom-block s="set up list of lists"><comment w="90" collapsed="false">need this first as part of setup script</comment></custom-block></script></scripts></sprite><watcher var="nose had a sock eeeeee" style="normal" x="10" y="10" color="243,118,29" extX="80" extY="70"/></sprites></stage><variables><variable name="list of lists"><list struct="atomic" id="697">nose had a sock eeeeee</list></variable><variable name="nose had a sock eeeeee"><list struct="atomic" id="698">zampoozie,dddd,irkqawlek,dddddddddddddfdddwdededydjgjrjrgjio;hgtjoerijsl</list></variable></variables></scene></scenes></project><media name="Blocks" app="Snap! 9.0, https://snap.berkeley.edu" version="2"></media></snapdata>