<snapdata remixID="11956509"><project name="U2L4-MathLibrary" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAAAilJREFUeF7t0lEJACAUBEFfIPsHMoiCJfZnrsDBMnP3ucsUiAoMgFF5t78AgCCkBQBM8zsHkIG0AIBpfucAMpAWADDN7xxABtICAKb5nQPIQFoAwDS/cwAZSAsAmOZ3DiADaQEA0/zOAWQgLQBgmt85gAykBQBM8zsHkIG0AIBpfucAMpAWADDN7xxABtICAKb5nQPIQFoAwDS/cwAZSAsAmOZ3DiADaQEA0/zOAWQgLQBgmt85gAykBQBM8zsHkIG0AIBpfucAMpAWADDN7xxABtICAKb5nQPIQFoAwDS/cwAZSAsAmOZ3DiADaQEA0/zOAWQgLQBgmt85gAykBQBM8zsHkIG0AIBpfucAMpAWADDN7xxABtICAKb5nQPIQFoAwDS/cwAZSAsAmOZ3DiADaQEA0/zOAWQgLQBgmt85gAykBQBM8zsHkIG0AIBpfucAMpAWADDN7xxABtICAKb5nQPIQFoAwDS/cwAZSAsAmOZ3DiADaQEA0/zOAWQgLQBgmt85gAykBQBM8zsHkIG0AIBpfucAMpAWADDN7xxABtICAKb5nQPIQFoAwDS/cwAZSAsAmOZ3DiADaQEA0/zOAWQgLQBgmt85gAykBQBM8zsHkIG0AIBpfucAMpAWADDN7xxABtICAKb5nQPIQFoAwDS/cwAZSAsAmOZ3DiADaQEA0/zOAWQgLQBgmt85gAykBQBM8zsHkIG0AIBpfucAMpAWADDN7/wBXzJvGCePu/8AAAAASUVORK5CYII=</thumbnail><scenes select="1"><scene name="U2L4-MathLibrary"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="is %&apos;big&apos; divisible by %&apos;small&apos; ?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportEquals"><block s="reportModulus"><block var="big"/><block var="small"/></block><l>0</l></block></block></script></block-definition><block-definition s="even? %&apos;number&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><custom-block s="is %n divisible by %n ?"><block var="number"/><l>2</l></custom-block></block></script></block-definition><block-definition s="integer? %&apos;number&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="number"/><block s="reportRound"><block var="number"/></block></block></block></script></block-definition><block-definition s="%&apos;a&apos; ≤ %&apos;b&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="reportOr"><block s="reportLessThan"><block var="a"/><block var="b"/></block><block s="reportEquals"><block var="a"/><block var="b"/></block></block></block></script></block-definition><block-definition s="%&apos;a&apos; ≥ %&apos;b&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="reportOr"><block s="reportGreaterThan"><block var="a"/><block var="b"/></block><block s="reportEquals"><block var="a"/><block var="b"/></block></block></block></script></block-definition><block-definition s="%&apos;a&apos; ≠ %&apos;b&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="reportEquals"><block var="a"/><block var="b"/></block></block></block></script></block-definition><block-definition s="is %&apos;mid&apos; between %&apos;low&apos; and %&apos;high&apos; ?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportAnd"><custom-block s="%s ≥ %s"><block var="mid"/><block var="low"/></custom-block><custom-block s="%s ≤ %s"><block var="mid"/><block var="high"/></custom-block></block></block></script><scripts><comment x="14.666666666666666" y="88.8" w="304.6666666666667" collapsed="false">As the lab says, it&apos;s okay to use &quot;&gt;&quot; and &quot;&lt;&quot; instead of &quot;≥&quot; and &quot;≤.&quot;</comment></scripts></block-definition><block-definition s="odd? %&apos;number&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportNot"><custom-block s="is %n divisible by %n ?"><block var="number"/><l>2</l></custom-block></block></block></script></block-definition><block-definition s="divisors of %&apos;number&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="is %n divisible by %n ?"><block var="number"/><l></l></custom-block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block var="number"/></block></block></block></script></block-definition><block-definition s="number of divisors %&apos;number&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><custom-block s="divisors of %n"><block var="number"/></custom-block></block></block></script></block-definition><block-definition s="maximum of %&apos;a&apos; and %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportGreaterThan"><block var="a"/><block var="b"/></block><block var="a"/><block var="b"/></block></block></script><scripts><comment x="16" y="87.46666666666665" w="246.66666666666666" collapsed="false">The &quot;reporter IF&quot; used here is the simplest and most elegant solution, and you should show it to students when you debrief this lab, but you&apos;re more likely to get commands, e.g. this:</comment><script x="23" y="172.46666666666667"><block s="doIfElse"><block s="reportGreaterThan"><block var="a"/><block var="b"/></block><script><block s="doReport"><block var="a"/></block></script><script><block s="doReport"><block var="b"/></block></script></block></script></scripts></block-definition><block-definition s="minimum of %&apos;a&apos; and %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportLessThan"><block var="a"/><block var="b"/></block><block var="a"/><block var="b"/></block></block></script></block-definition><block-definition s="maximum of list %&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="reportCombine"><block var="data"/><block s="reifyReporter"><autolambda><custom-block s="maximum of %n and %n"><l></l><l></l></custom-block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="minimum of list %&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="reportCombine"><block var="data"/><block s="reifyReporter"><autolambda><custom-block s="minimum of %n and %n"><l></l><l></l></custom-block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="sum of list %&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="reportCombine"><block var="data"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="average of list %&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="reportQuotient"><custom-block s="sum of list %l"><block var="data"/></custom-block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block></script><scripts><comment x="14" y="88.8" w="289.3333333333333" collapsed="false">Important note:  It does NOT work to make a block that takes the average of two numbers and then do</comment><script x="19" y="151.13333333333333"><block s="doReport"><block s="reportCombine"><block var="data"/><block s="reifyReporter"><autolambda><custom-block s="average of %n and %n"><l></l><l></l></custom-block></autolambda><list></list></block></block></block></script><script x="15" y="273.8"><block s="reportCombine"><block s="reportNewList"><list><l>5</l><l>100</l><l>200</l></list></block><block s="reifyReporter"><autolambda><custom-block s="average of %n and %n"><l></l><l></l></custom-block></autolambda><list></list></block></block></script><script x="15.333333333333334" y="306.46666666666664"><block s="reportCombine"><block s="reportNewList"><list><l>200</l><l>100</l><l>5</l></list></block><block s="reifyReporter"><autolambda><custom-block s="average of %n and %n"><l></l><l></l></custom-block></autolambda><list></list></block></block></script><comment x="18.333333333333332" y="190.80000399999997" w="303.3333333333333" collapsed="false">This will tempt students because it follows the pattern of the other exercises so far on this page.  But COMBINE can be used only with associative operators, which AVERAGE isn&apos;t.  The last number to be averaged in will have too much influence.  Try these:</comment></scripts></block-definition><block-definition s="average of %&apos;a&apos; and %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="a"/><block var="b"/></list></block><l>2</l></block></block></script></block-definition><block-definition s="intersection %&apos;lista&apos; %&apos;listb&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="listb"/><l></l></block></autolambda><list></list></block><block var="lista"/></block></block></script><scripts><comment x="10.666666666666666" y="92.8" w="314.6666666666667" collapsed="false">This solution is a little counterintuitive, because it treats the two lists asymmetrically.  We start with LISTA and keep items from it that are also in LISTB.  So, expect students to have trouble thinking of this solution.</comment></scripts></block-definition><block-definition s="make a point" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="setSize"><l>5</l></block><block s="down"></block><block s="forward"><l>0</l></block><block s="up"></block></script></block-definition><block-definition s="all but first letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="199" collapsed="false">Takes a text string as input, and reports a new text string containing all but the first character of the input.</comment><header></header><code></code><translations>pt:_ sem o primeiro caractere&#xD;ca:_ sense la primera lletra&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="string"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="all but first letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="string"/></block></block></script></block><block s="doReport"><block s="reportJoinWords"><block s="reportCDR"><block s="reportTextSplit"><custom-block s="require nonempty %s %s"><block var="string"/><l>All but first of empty word.</l></custom-block><l><option>letter</option></l></block></block></block></block></script></block-definition><block-definition s="all but first word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="223.000001" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the first word, with one space between words and no spaces at the beginning or end. (Note: consider using SENTENCE➞LIST and processing the resulting list instead of doing recursion on sentences in text string form.  List operations are faster.)</comment><header></header><code></code><translations>pt:_ sem a primeira palavra&#xD;ca:_ sense la primera paraula&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>All but first of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportCDR"><block var="sentence"/></block></block></script></block></script></block><block s="doReport"><custom-block s="list $arrowRight sentence %l"><block s="reportCDR"><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block><l>All but first of empty sentence.</l></custom-block></block></custom-block></block></script></block-definition><block-definition s="all but last letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="218" collapsed="false">Takes a text string as input, and reports a new text string containing all but the last letter of the input.</comment><header></header><code></code><translations>pt:_ sem o último caractere&#xD;ca:_ sense la darrera lletra&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="string"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="all but last letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="string"/></block></block></script></block><block s="doReport"><block s="reportJoinWords"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><custom-block s="require nonempty %s %s"><block var="string"/><l>All but first of empty word.</l></custom-block><l><option>letter</option></l></block></block></block></block></block></block></script></block-definition><block-definition s="all but last word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="211.99999999999997" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the last word, with one space between words and no spaces at the beginning or end.  (Note: consider using SENTENCE-&gt;LIST and processing the resulting list instead of doing recursion on sentences in text string form.  List operations are faster.)</comment><header></header><code></code><translations>pt:_ sem a última palavra&#xD;ca:_ sense la darrera paraula&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>All but last of empty sentence.</l></custom-block></script><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="sentence"/></block></block></block></block></script></block></script></block><block s="doReport"><custom-block s="list $arrowRight sentence %l"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block><l>All but last of empty sentence.</l></custom-block></block></block></block></custom-block></block></script></block-definition><block-definition s="first word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="236" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the first word, with no spaces before or after it.</comment><header></header><code></code><translations>pt:a primeira palavra de _&#xD;ca:primera paraula de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>First of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="sentence"/></block></block></script></block></script><script><block s="doReport"><block s="reportListItem"><l>1</l><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block><l>First of empty sentence.</l></custom-block></block></block></script></block></script></block-definition><block-definition s="last letter of %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="260" collapsed="false">Takes a text string as input, and reports the last character in the string.</comment><header></header><code></code><translations>pt:o último caractere de _&#xD;ca:primera lletra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="last letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="word"/></block><l>0</l></block><script><custom-block s="error %txt"><l>Last of empty word.</l></custom-block></script></block><block s="doReport"><block s="reportLetter"><block s="reportStringSize"><block var="word"/></block><block var="word"/></block></block></script></block-definition><block-definition s="last word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="262" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the last word of the input, with no spaces before or after it.</comment><header></header><code></code><translations>pt:a última palavra de _&#xD;ca:darrera paraula de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>Last of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportListItem"><l><option>last</option></l><block var="sentence"/></block></block></script></block></script></block><block s="doReport"><block s="reportListItem"><l><option>last</option></l><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block><l>Last of empty sentence.</l></custom-block></block></block></script></block-definition><block-definition s="empty word? %&apos;word&apos;" type="predicate" category="operators"><comment x="0" y="0" w="208" collapsed="false">Takes a text string as input, and reports TRUE if the string has no characters in it of any kind, otherwise false.</comment><header></header><code></code><translations>pt:a palavra _ está vazia&#xD;ca:paraula buida? _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="empty word? %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script></block><block s="doReport"><block s="reportEquals"><block s="reportStringSize"><block var="word"/></block><l>0</l></block></block></script></block-definition><block-definition s="empty sentence? %&apos;sentence&apos;" type="predicate" category="operators"><comment x="0" y="0" w="221" collapsed="false">Takes a text string as input, and reports TRUE if the input contains no characters other than spaces (therefore, no words when the string is considered as a sentence), otherwise FALSE.</comment><header></header><code></code><translations>pt:a frase _ está vazia&#xD;ca:frase buida? _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportListIsEmpty"><block var="sentence"/></block></block></script></block><block s="doReport"><block s="reportListIsEmpty"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block></block></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><comment x="0" y="0" w="230.66666666666666" collapsed="false">Like JOIN, takes any number of words (text strings) and reports a sentence with its inputs concatenated, but inserts a blank space between the inputs.&#xD;Consider using SENTENCE (Lists palette) instead.</comment><header></header><code></code><translations>de:füge Wörter zusammen _&#xD;ca:uneix les paraules _&#xD;es:unir las palabras _&#xD;fr:fusionne les mots _&#xD;pt:uma frase com as palavras _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="words"/></block><script><block s="doReport"><l></l></block></script></block><block s="doDeclareVariables"><list><l>first</l><l>bf</l></list></block><block s="doSetVar"><l>first</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="words"/></block><l><option>list</option></l></block><custom-block s="join words %mult%txt"><block s="reportListItem"><l>1</l><block var="words"/></block></custom-block><block s="reportListItem"><l>1</l><block var="words"/></block></block></block><block s="doSetVar"><l>bf</l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block><block s="doIf"><custom-block s="empty sentence? %txt"><block var="bf"/></custom-block><script><block s="doReport"><block var="first"/></block></script></block><block s="doIf"><custom-block s="empty sentence? %txt"><block var="first"/></custom-block><script><block s="doReport"><block var="bf"/></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block var="first"/><l> </l><block var="bf"/></list></block></block></script></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><comment x="0" y="0" w="165.33333333333334" collapsed="false">Takes a sentence in list form and reports the sentence as a text string.</comment><header></header><code></code><translations>de:Liste $arrowRight Satz _&#xD;ca:llista $arrowRight frase _&#xD;es:lista $arrowRight frase _&#xD;fr:liste $arrowRight phrase _&#xD;pt:uma frase com as palavras em _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-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="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block s="reportStringSize"><l></l></block><l>0</l></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="text"/><l><option>word</option></l></block></block></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="146.42857142857144" collapsed="false">report a list in which each item is one letter from the input word</comment><header></header><code></code><translations>de:Wort $arrowRight Liste _&#xD;ca:paraula $arrowRight llista _&#xD;es:palabra $arrowRight lista _&#xD;fr:mot $arrowRight liste _&#xD;pt:uma lista com os caracteres da palavra _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="word $arrowRight list %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script></block><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><comment x="0" y="0" w="158.57142857142858" collapsed="false">join all the items of the input list&#xD;into a single word, and report it</comment><header></header><code></code><translations>de:Liste $arrowRight Wort _&#xD;ca:llista $arrowRight paraula _&#xD;es:lista $arrowRight palabra _&#xD;fr:liste $arrowRight mot _&#xD;pt:uma palavra com os caracteres em _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="list"/></block><script><block s="doReport"><block var="list"/></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="list"/></block><l></l></block><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><block s="reportNewList"><list><custom-block s="list $arrowRight word %l"><l/></custom-block></list></block><l></l></block></autolambda><list></list></block><block var="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="error %&apos;msg&apos;" type="command" category="control"><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="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).</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></block><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><l>()</l></block></script></block><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block s="reportCombine"><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="require nonempty %&apos;text&apos; %&apos;message&apos;" type="reporter" category="operators" helper="true"><comment x="0" y="0" w="220" collapsed="false">Helper function for word/sentence library.&#xD;Reports its first input, unless that input is empty, in which case it gives its second input as an error message.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportIfElse"><block s="reportIsA"><block var="text"/><l><option>list</option></l></block><block s="reportListIsEmpty"><block var="text"/></block><block s="reportEquals"><block s="reportStringSize"><block var="text"/></block><l>0</l></block></block><script><custom-block s="error %txt"><block var="message"/></custom-block></script><script><block s="doReport"><block var="text"/></block></script></block></script></block-definition><block-definition s="first letter of %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="260" collapsed="false">Takes a text string as input, and reports the first character in the string.</comment><header></header><code></code><translations>pt:a primeira palavra de _&#xD;ca:primera lletra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="first letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script><script><block s="doReport"><block s="reportLetter"><l>1</l><custom-block s="require nonempty %s %s"><block var="word"/><l>First of empty word.</l></custom-block></block></block></script></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="922"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="923"></list></costumes><sounds><list struct="atomic" id="924"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="239" y="-123" heading="90" scale="1" volume="100" pan="0" rotation="0" draggable="true" costume="0" color="175,255,173,1" pen="tip" id="929"><costumes><list struct="atomic" id="930"></list></costumes><sounds><list struct="atomic" id="931"></list></sounds><blocks></blocks><variables></variables><scripts><script x="11" y="74.99999999999903"><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="odd? %n"><custom-block s="number of divisors %n"><l></l></custom-block></custom-block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><l>100</l></block></block></script><script x="11" y="139.99999999999875"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><custom-block s="number of divisors %n"><l></l></custom-block><l>2</l></block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><l>100</l></block></block></script><script x="11" y="219.99999999999898"><custom-block s="divisors of %n"><l></l></custom-block></script><script x="11" y="252.99999999999898"><custom-block s="number of divisors %n"><l></l></custom-block></script><script x="11" y="285.999999999999"><custom-block s="maximum of %n and %n"><l>6</l><l>4</l></custom-block></script><script x="11" y="318.999999999999"><custom-block s="minimum of %n and %n"><l>3</l><l>-4</l></custom-block></script><script x="389" y="58.499999999999204"><block s="reportModulus"><l>17</l><l>5</l></block></script><script x="154" y="37.99999999999909"><custom-block s="even? %n"><l>-22</l></custom-block></script><script x="161" y="10"><custom-block s="even? %n"><l>13</l></custom-block></script><script x="232" y="206.33333333333212"><block s="reportCombine"><block s="reportNewList"><list><l>0</l><l>1</l><l>2</l></list></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></script><script x="10" y="348.9999999999991"><custom-block s="is %n divisible by %n ?"><l>15</l><l>3</l></custom-block></script><script x="204" y="258.999999999999"><custom-block s="maximum of list %l"><block s="reportNewList"><list><l>1</l><l>22</l><l>3</l><l>-4</l></list></block></custom-block></script><script x="195" y="288.99999999999943"><custom-block s="minimum of list %l"><block s="reportNewList"><list><l>1</l><l>22</l><l>3</l><l>-4</l></list></block></custom-block></script><script x="12" y="379.9999999999993"><custom-block s="is %n divisible by %n ?"><l>15</l><l>6</l></custom-block></script><script x="203.240234375" y="321.99999999999943"><custom-block s="sum of list %l"><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l><l>10</l></list></block></custom-block></script><script x="212" y="362.99999999999966"><custom-block s="average of list %l"><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l><l>4</l></list></block></custom-block></script></scripts></sprite><sprite name="apple" idx="3" x="3" y="-3" heading="90" scale="0.75" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="2" color="0,150.45,132.39599999999996,1" pen="tip" id="1044"><costumes><list id="1045"><item><ref mediaID="apple_cst_apple"></ref></item><item><ref mediaID="apple_cst_ball c"></ref></item><item><ref mediaID="apple_cst_ball c"></ref></item></list></costumes><sounds><list struct="atomic" id="1046"></list></sounds><blocks></blocks><variables></variables><scripts><script x="35.66666666666666" y="30.666666666666657"><block s="receiveKey"><l><option>up arrow</option></l><list></list></block><block s="show"></block></script><script x="39.33333333333334" y="90"><block s="receiveKey"><l><option>down arrow</option></l><list></list></block><block s="hide"></block></script><script x="42.33333333333334" y="171.33333333333337"><block s="setScale"><l>75</l></block></script></scripts></sprite><sprite name="Sprite(2)" idx="2" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="1062"><costumes><list id="1063"><item><ref mediaID="Sprite(2)_cst_costume1"></ref></item></list></costumes><sounds><list struct="atomic" id="1064"></list></sounds><blocks></blocks><variables></variables><scripts></scripts></sprite></sprites></stage><variables></variables></scene><scene name="Untitled"><notes></notes><hidden></hidden><headers></headers><code></code><blocks></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="1071"><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="1072"></list></costumes><sounds><list struct="atomic" id="1073"></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="1078"><costumes><list struct="atomic" id="1079"></list></costumes><sounds><list struct="atomic" id="1080"></list></sounds><blocks></blocks><variables></variables><scripts></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="U2L4-MathLibrary" app="Snap! 7, https://snap.berkeley.edu" version="2"><costume name="apple" center-x="31" center-y="31.5" image="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJhcHBsZTEiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iNjIuMjE4cHgiIGhlaWdodD0iNjMuMzc1cHgiIHZpZXdCb3g9IjAgMCA2Mi4yMTggNjMuMzc1IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA2Mi4yMTggNjMuMzc1IiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICA8Zz4KICAgIDxnIGlkPSJBcHBsZSI+CiAgICAgIDxwYXRoIGlkPSJGaWxsXzFfIiBmaWxsPSIjRUMxQzJDIiBkPSJNNTkuMDgzLDM0LjQwMmMwLDE0LjUyNy0xMi41MjUsMjYuMzA3LTI3Ljk3OCwyNi4zMDdjLTE1LjQ1MywwLTI3Ljk3Ny0xMS43NzUtMjcuOTc3LTI2LjMwNyYjeEQ7JiN4QTsmI3g5OyYjeDk7YzAtMTQuNTI3LDEyLjUyMy0yMS4yNzUsMjcuOTc3LTIxLjI3NUM0Ni41NTcsMTMuMTI2LDU5LjA4MywxOS44NzYsNTkuMDgzLDM0LjQwMnoiLz4KICAgICAgPGcgaWQ9Ik91dGxpbmVfMV8iPgogICAgICAgIDxwYXRoIGlkPSJPdXRsaW5lXzJfIiBmaWxsPSIjMjMxRjIwIiBkPSJNMzQuMjg1LDExLjk2Yy00LjYwOC0wLjM5MS05LjEzNiwwLjE4OS05LjEzNiwwLjE4OUMxMC44MjEsMTMuNDczLDAsMTkuODgzLDAsMzQuMTIxJiN4RDsmI3hBOyYjeDk7JiN4OTsmI3g5O2MwLDE2LjE1NiwxMy45MjgsMjkuMjU0LDMxLjEwNywyOS4yNTRjMTcuMTgyLDAsMzEuMTA5LTEzLjA5OCwzMS4xMDktMjkuMjU0QzYyLjIxNiwxOC45NzcsNDkuOTY5LDEyLjY5LDM0LjI4NSwxMS45NnomI3hEOyYjeEE7JiN4OTsmI3g5OyYjeDk7IE0zMS4xMDgsNTkuMzMzYy0xNC41NTksMC0yNi4zNTctMTEuMDk5LTI2LjM1Ny0yNC43ODVjMC0xMi4wNjQsOS4xNjktMTguNDMzLDIxLjMxNC0xOS43NzRjMC4yNDktMC4wMjksOC40NTYtMC4xNDQsOC40NTYtMC4xNDQmI3hEOyYjeEE7JiN4OTsmI3g5OyYjeDk7YzEyLjk0MiwwLjkzNiwyMi45NDksNy4zMTgsMjIuOTQ5LDE5LjkyQzU3LjQ2NCw0OC4yMzYsNDUuNjY2LDU5LjMzMywzMS4xMDgsNTkuMzMzeiIvPgogICAgICAgIDxwYXRoIGlkPSJMaW5lIiBmaWxsPSIjMjMxRjIwIiBkPSJNNDAuMzMyLDE5LjA2MmMtMi4zMDMtMC43NjEtNC42MTctMC4yNDEtNi45MjksMC4zODljLTEuOTE2LDAuNjA4LTYuMTEyLDEuMTYyLTYuMTksMS4wOTgmI3hEOyYjeEE7JiN4OTsmI3g5OyYjeDk7Yy0xLjE5OC0wLjA1OC0yLjM4OS0wLjM1OC0zLjU3MS0xLjA5OWMtMC40OC0wLjMwMy0wLjk4MiwwLjM3OC0wLjU5OCwwLjc3M2MxLjc2OCwxLjgwMyw0LjA2OCwxLjc4Miw2LjQ1NSwxLjUxNCYjeEQ7JiN4QTsmI3g5OyYjeDk7JiN4OTtjMy41NzUtMC40MDEsNi45OTMtMC40OTEsMTAuNTYxLTAuNjcyQzQxLjIyLDIxLjAwNCw0MS40MzMsMTkuNDI2LDQwLjMzMiwxOS4wNjJ6Ii8+CiAgICAgIDwvZz4KICAgICAgPHBhdGggaWQ9IlNoaW5lIiBmaWxsPSIjRkZGRkZGIiBkPSJNMTIuNTU1LDM0LjI2MWMwLDMuNDMxLDEuODUsNi4yMTItMC4wODQsNi4yMTJjLTEuOTM0LDAtMy41LTIuNzgxLTMuNS02LjIxMiYjeEQ7JiN4QTsmI3g5OyYjeDk7YzAtMy40MywxLjU2Ni02LjIxMSwzLjUtNi4yMTFDMTQuNDA1LDI4LjA1LDEyLjU1NSwzMC44MzIsMTIuNTU1LDM0LjI2MXoiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJTdGVtIj4KICAgICAgPHBhdGggaWQ9IkZpbGwiIGZpbGw9IiM5OTY2MUQiIGQ9Ik0yOS41MTUsMjAuNzY2YzAuMzcxLTAuMDY2LDAuOTczLTAuMTMsMS4zNDgtMC4yMTljMC4wNjItNC44MjcsMC41MzgtOS42NDgtMS42MjQtMTQuMjEyJiN4RDsmI3hBOyYjeDk7JiN4OTtjLTAuNTkyLTEuMjUzLTEuMzMtMi4zNTQtMi4wNjQtMy40ODJjLTEuMDIsMC42MTEtMi4wMzgsMS4yMjMtMy4wNTksMS44MzNDMjguMzEsOC45ODIsMjkuNzczLDE0LjYxOCwyOS41MTUsMjAuNzY2eiIvPgogICAgICA8cGF0aCBpZD0iT3V0bGluZSIgZmlsbD0iIzIzMUYyMCIgZD0iTTI4LjYwMiwwLjZjLTAuMzkzLTAuNTIzLTEuMDc4LTAuNzgyLTEuNjU4LTAuNDM1Yy0xLjgwNSwxLjA4NC0zLjYwNywyLjE2OC01LjQxNCwzLjI1MiYjeEQ7JiN4QTsmI3g5OyYjeDk7Yy0wLjYzNywwLjM4My0wLjgzOCwxLjM3MS0wLjI0MiwxLjg5OGMzLjQ3NywzLjA5MSw0LjYxNyw2LjA0MSw0LjksNi41NTdjMC41OTIsMS4wODEsMS41OTIsNC41MzQsMS41NjIsNy43NDlsMC4wNDYsMS42MDkmI3hEOyYjeEE7JiN4OTsmI3g5O2MxLjQ3OSwwLjU2Miw1LjI1LTAuNTYyLDUuMjUtMC41NjJjMC4wMjEtMC4zNTQsMC4yNTEtMi4yMywwLjI1MS0yLjIzQzMzLjQ2NiwxNy42NzcsMzQuMTMsNy45NTgsMjguNjAyLDAuNnogTTMwLjc1NSwyMC4zOCYjeEQ7JiN4QTsmI3g5OyYjeDk7bC0xLjEwOSwwLjE0MXYtMS4xNTJjMC4wNS01LjcxNC0xLjU2OC0xMC42MjUtNS41My0xNC42ODNjMS4wMjEtMC42MSwyLjAzOS0xLjIyMiwzLjA1OS0xLjgzMyYjeEQ7JiN4QTsmI3g5OyYjeDk7YzAuNzM0LDEuMTI4LDEuNDcyLDIuMjI5LDIuMDY0LDMuNDgyYzIuMDEyLDQuMjQ3LDEuNjM0LDguMzc1LDEuNTIyLDEyLjgxN0wzMC43NTUsMjAuMzh6Ii8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4=" mediaID="apple_cst_apple"/><costume name="ball c" center-x="22.5" center-y="22.5" image="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjAiIGlkPSJMYXllcl8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjQ1cHgiIGhlaWdodD0iNDVweCIgdmlld0JveD0iMCAwIDQ1IDQ1IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0NSA0NSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGc+CiAgICA8cmFkaWFsR3JhZGllbnQgaWQ9IlNWR0lEXzFfIiBjeD0iMjkuNzI3NSIgY3k9IjEzLjEzOTYiIHI9IjM4LjUyOTkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRkZCRUY4Ii8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0Q0MDBBQiIvPgogICAgPC9yYWRpYWxHcmFkaWVudD4KICAgIDxjaXJjbGUgZmlsbD0idXJsKCNTVkdJRF8xXykiIGN4PSIyMi41IiBjeT0iMjIuNSIgcj0iMjIuNSIvPgogIDwvZz4KPC9zdmc+" mediaID="apple_cst_ball c"/><costume name="costume1" center-x="240" center-y="180.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFpCAYAAABEa/uFAAAAAXNSR0IArs4c6QAADplJREFUeF7t1VEJACAQBUENZP9ABlEwhPszV+BgeLDzrH2GI0CAAAECBL4KTAH+6u0ZAQIECBB4AgJsCAQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAIBAQ7QvSRAgAABAgJsAwQIECBAIBAQ4ADdSwIECBAgIMA2QIAAAQIEAgEBDtC9JECAAAECAmwDBAgQIEAgEBDgAN1LAgQIECAgwDZAgAABAgQCAQEO0L0kQIAAAQICbAMECBAgQCAQEOAA3UsCBAgQICDANkCAAAECBAKBCx0EUGRLhWH1AAAAAElFTkSuQmCC" mediaID="Sprite(2)_cst_costume1"/></media></snapdata>