<snapdata remixID="11160943"><project name="4.27 Shopping App" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="4.27 Shopping App"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="map %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>mapone</l><l>mapmany</l></list></block><block s="doSetVar"><l>mapone</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="evaluate"><block var="mapone"/><list><block s="reportCDR"><block var="data"/></block></list></block></block></block></script><list><l>data</l></list></block></block><block s="doSetVar"><l>mapmany</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportListItem"><l>1</l><block var="data lists"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></block><block s="evaluate"><block var="mapmany"/><list><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></list></block></block></block></script><list><l>data lists</l></list></block></block><block s="doIfElse"><custom-block s="empty? %l"><block s="reportCDR"><block var="lists"/></block></custom-block><script><block s="doReport"><block s="evaluate"><block var="mapone"/><list><block s="reportListItem"><l>1</l><block var="lists"/></block></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="mapmany"/><list><block var="lists"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="empty? %&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="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="tell %&apos;sprite&apos; to %&apos;commands&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt">Sprite</input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportAttributeOf"><block var="commands"/><block var="sprite"/></block><list></list></block></script></block-definition><block-definition s="ask for %&apos;reporter&apos; from %&apos;sprite&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%txt">Sprite</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportAttributeOf"><block var="reporter"/><block var="sprite"/></block><list></list></block></block></script></block-definition><block-definition s="tell %&apos;sprite&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportAttributeOf"><block var="action"/><block var="sprite"/></block><list></list></block></script></block-definition><block-definition s="ask %&apos;sprite&apos; %&apos;expression&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportAttributeOf"><block var="expression"/><block var="sprite"/></block><list></list></block></block></script></block-definition><block-definition s="SortList" type="command" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>b</l></list></block><block s="doSetVar"><l>a</l><l>1</l></block><block s="doUntil"><block s="reportEquals"><block var="a"/><l>0</l></block><script><block s="doFor"><l>i</l><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="shoppingList"/></block><l>1</l></block><l>1</l><script><block s="doIf"><block s="reportGreaterThan"><block s="reportListItem"><block var="i"/><block var="shoppingList"/></block><block s="reportListItem"><block s="reportSum"><block var="i"/><l>1</l></block><block var="shoppingList"/></block></block><script><block s="doSetVar"><l>b</l><block s="reportListItem"><block var="i"/><block var="shoppingList"/></block></block><block s="doReplaceInList"><block var="i"/><block var="shoppingList"/><block s="reportListItem"><block s="reportSum"><block var="i"/><l>1</l></block><block var="shoppingList"/></block></block><block s="doReplaceInList"><block s="reportSum"><block var="i"/><l>1</l></block><block var="shoppingList"/><block var="b"/></block></script></block></script></block><block s="doSetVar"><l>a</l><l>0</l></block><block s="doFor"><l>i</l><l>1</l><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="shoppingList"/></block><l>1</l></block><script><block s="doIf"><block s="reportGreaterThan"><block s="reportListItem"><block var="i"/><block var="shoppingList"/></block><block s="reportListItem"><block s="reportSum"><block var="i"/><l>1</l></block><block var="shoppingList"/></block></block><script><block s="doChangeVar"><l>a</l><l>1</l></block></script></block></script></block></script></block></script></block-definition><block-definition s="SearchList" type="command" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>low</l><l>1</l></block><block s="doSetVar"><l>high</l><block s="reportListAttribute"><l><option>length</option></l><block var="shoppingList"/></block></block><block s="doSetVar"><l>itemIndex</l><l>0</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="itemIndex"/><l>0</l></block><script><block s="doIfElse"><block s="reportLessThanOrEquals"><block s="reportDifference"><block var="high"/><block var="low"/></block><l>1</l></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><block var="high"/><block var="shoppingList"/></block><block var="searchItem"/></block><script><block s="doSetVar"><l>itemIndex</l><block var="high"/></block></script><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><block var="low"/><block var="shoppingList"/></block><block var="searchItem"/></block><script><block s="doSetVar"><l>itemIndex</l><block var="low"/></block></script><script><block s="doSetVar"><l>itemIndex</l><l>nope</l></block></script></block></script></block></script><script><block s="doSetVar"><l>mid</l><block s="reportRound"><block s="reportQuotient"><block s="reportSum"><block var="low"/><block var="high"/></block><l>2</l></block></block></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="mid"/><block var="shoppingList"/></block><block var="searchItem"/></block><script><block s="doSetVar"><l>itemIndex</l><block var="mid"/></block></script></block><block s="doIf"><block s="reportLessThan"><block s="reportListItem"><block var="mid"/><block var="shoppingList"/></block><block var="searchItem"/></block><script><block s="doSetVar"><l>low</l><block var="mid"/></block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListItem"><block var="mid"/><block var="shoppingList"/></block><block var="searchItem"/></block><script><block s="doSetVar"><l>high</l><block var="mid"/></block></script></block></script></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="true" hyperops="true" codify="false" inheritance="false" sublistIDs="false" id="745"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAACtUlEQVR4nO3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Bo3+AAF/RMkcAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="746"></list></costumes><sounds><list struct="atomic" id="747"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="5"><watcher var="shoppingList" style="normal" x="10" y="10" color="243,118,29" extX="80" extY="70"/><watcher var="searchItem" style="normal" x="10" y="103.000002" color="243,118,29" hidden="true"/><watcher var="low" style="normal" x="10" y="124.00000399999999" color="243,118,29" hidden="true"/><watcher var="high" style="normal" x="10" y="145.00000599999998" color="243,118,29" hidden="true"/><watcher var="itemIndex" style="normal" x="10" y="166.00000799999998" color="243,118,29" hidden="true"/><watcher var="mid" style="normal" x="10" y="187.00000999999997" color="243,118,29" hidden="true"/><sprite name="Search" idx="3" x="-5" y="-99" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="140.25,33.660000000000004,0,1" pen="tip" id="758"><costumes><list id="759"><item><ref mediaID="Search_cst_shopping-list-button-search"></ref></item></list></costumes><sounds><list struct="atomic" id="760"></list></sounds><blocks></blocks><variables></variables><scripts><script x="52" y="59.33333333333334"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doBroadcast"><l>search</l><list></list></block></script></scripts></sprite><sprite name="Clear List" idx="2" x="142" y="-98" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="0,137.70000000000002,38.55600000000003,1" pen="tip" id="770"><costumes><list id="771"><item><ref mediaID="Clear List_cst_shopping-list-button-clear-list"></ref></item></list></costumes><sounds><list struct="atomic" id="772"></list></sounds><blocks></blocks><variables></variables><scripts><script x="37" y="44"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doBroadcast"><l>clear</l><list></list></block></script></scripts></sprite><sprite name="Add Item" idx="1" x="-6" y="-56" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="782"><costumes><list id="783"><item><ref mediaID="Add Item_cst_shopping-list-button-add-item"></ref></item></list></costumes><sounds><list struct="atomic" id="784"></list></sounds><blocks></blocks><variables></variables><scripts><script x="28" y="35.33333333333334"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doBroadcast"><l>add</l><list></list></block></script></scripts></sprite><sprite name="Delete Item" idx="4" x="142" y="-55" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="173.4,31.211999999999993,0,1" pen="tip" id="794"><costumes><list id="795"><item><ref mediaID="Delete Item_cst_shopping-list-button-delete-item"></ref></item></list></costumes><sounds><list struct="atomic" id="796"></list></sounds><blocks></blocks><variables></variables><scripts><script x="58" y="40.33333333333334"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doBroadcast"><l>delete</l><list></list></block></script></scripts></sprite><sprite name="Sprite" idx="5" x="-2" y="30" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="0,178.5,92.82,1" pen="tip" id="806"><costumes><list id="807"><item><ref mediaID="Sprite_cst_speaker"></ref></item></list></costumes><sounds><list struct="atomic" id="808"></list></sounds><blocks></blocks><variables></variables><scripts><script x="29" y="35.33333333333337"><block s="receiveMessage"><l>clear</l><list></list></block><block s="doAsk"><l>Are you sure you want to clear the list? (y/n)</l></block><block s="doIfElse"><block s="reportEquals"><block s="reportLetter"><l>1</l><block s="getLastAnswer"></block></block><l>y</l></block><script><block s="doSetVar"><l>shoppingList</l><block s="reportNewList"><list></list></block></block><block s="doSayFor"><l>Okay, list has been cleared.</l><l>2</l></block></script><script><block s="doSayFor"><l>Okay, list will not be cleared.</l><l>2</l></block></script></block></script><script x="485" y="328.33333333333337"><block s="receiveMessage"><l>add</l><list></list></block><block s="doAsk"><l>What item would you like to add?</l></block><block s="doIfElse"><block s="reportEquals"><block s="getLastAnswer"></block><l></l></block><script><block s="doSayFor"><l>No item entered. Cancelling addition to list.</l><l>2</l></block></script><script><block s="doAddToList"><block s="getLastAnswer"></block><block var="shoppingList"/></block><block s="doSayFor"><block s="reportJoinWords"><list><l>Okay, </l><block s="getLastAnswer"></block><l> added to list.</l></list></block><l>2</l></block></script></block></script><script x="486" y="42.33333333333337"><block s="receiveMessage"><l>search</l><list></list></block><custom-block s="SortList"></custom-block><block s="doAsk"><l>What item would you like to search for?</l></block><block s="doSetVar"><l>searchItem</l><block s="getLastAnswer"></block></block><custom-block s="SearchList"></custom-block><block s="doIfElse"><block s="reportEquals"><block var="itemIndex"/><l>nope</l></block><script><block s="doSayFor"><l>Sorry, that item is not on the list!</l><l>2</l></block></script><script><block s="doSayFor"><block s="reportJoinWords"><list><l>The item "</l><block var="searchItem"/><l>" is at index </l><block var="itemIndex"/><l> on the list.</l></list></block><l>4</l></block></script></block></script><script x="31" y="258.33333333333337"><block s="receiveMessage"><l>delete</l><list></list></block><block s="doAsk"><l>What item would you like to delete?</l></block><block s="doIfElse"><block s="reportEquals"><block s="reportListIndex"><block s="getLastAnswer"></block><block var="shoppingList"/></block><l>0</l></block><script><block s="doSayFor"><l>Sorry, that item is not on the list!</l><l>2</l></block></script><script><block s="doDeleteFromList"><block s="reportListIndex"><block s="getLastAnswer"></block><block var="shoppingList"/></block><block var="shoppingList"/></block><block s="doSayFor"><l>Okay, item deleted.</l><l>2</l></block></script></block></script></scripts></sprite></sprites></stage><variables><variable name="shoppingList"><list struct="atomic" id="944"></list></variable><variable name="searchItem"><l>mango</l></variable><variable name="low"><l>4</l></variable><variable name="high"><l>5</l></variable><variable name="itemIndex"><l>5</l></variable><variable name="mid"><l>4</l></variable></variables></scene></scenes></project><media name="4.27 Shopping App" app="Snap! 7, https://snap.berkeley.edu" version="2"><costume name="shopping-list-button-search" center-x="53" center-y="15" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGoAAAAeCAYAAADEkotAAAAEsElEQVRoge2aTUwjZRjH68lk5bAxIVygH3Sg7Uxn2jLQ+YhgD7uahgPxMFjktJfNZm8aWNkKG0LEwxrCxy6IDYt6MIghZNUYP2KiwFZYdaPYsoWitAho2F0+ls+2EB4PMEOnLQtLXF5W5pe8Sdtppv++vz7PO5m3KtU+YBj2LK7VltA03crzfIAyk0t6jRaUcfhBEeZVhmZmOY773ozjbiwrS7+fhz3JzMx83maxNVMmcq2k5JW1dxua4Otvv4Ox4Dg8mJuD+YVFZRxiPJibg4lQGO78+ht8/MmncOlN9wZpNG3ydt6r0+mox5JEmAiXhaRWX3+jMuYfCYDCk2VhcRGaWlq3KMIcoyiq4kCSGDtzlbWz0b7+W6jznzh+941AUdGLUcbOXH2kpDxrXmXhC0XRiVAYdeYTy0QoDLydj5AE8VpKSTk5OVYLScV8/ruos554BryDYCGpNQzD0pNEsfnsUMv191BnVNih4lJVjKbpVpmk3Nxco4WkNpaWllHnU9ghMBoEswmP0DR9ShJlNpvfdldf2UAdTkGOILy6iql1giSqkCsc6r35OepcCgk0X2sDmqY/kETRtryHdwNjqHMpJNDXfwtYhp2QRBmwnM3Ze/dR51JI4K+paSCMpuh2NdH0Kb1GC+vrEdS5kHP+wkXQa7QQCk+ijgIAAOvrke17gxkZz6kcDsdpvUaLLIyno1N2w9JVVo4sCwAcK1EA23kcDsdppKKGfX5g7SwM+/wAsC3N6SxGkkVEEZWCAe8gOJ3Fe06Mp6MTWDsrVZuno1M6Nuzzyyox/pjYws5fuCg91mu0MOzzQyg8KXvN6SyWVbFY1XqNFlg7CwPewSc3AQfgWIgC2K0icWLECR/wDsomKhSeBFdZOXR19ySdQ5Q2P78gOy9rZ5PeL8oTqa2rl1VxvPSGxhaoqKz6777sIZBECelCml6jhUgkijQQgHzCE9cucTQ0tgBA8tqW2LI8HZ1QW1ef9Bn7tbb4413dPTKpR43sYkKlUqkIoyk6NT1z5EE8HZ3gKiuXKqGru0cS9eVX3+zZFufnF6RWBrAr+CCiEisq8flxEjV77z7kZus3d2/Ismyob8B75EHi257Y+uJbVaorQvF4bV299HpFZZW0loXCkykrUURsofHnFIWLa5f4A0m1/h0lo2PjkEfaHu5uFuYzH11va0cSRmFvem9+ATzH35ZE4ZihVCh1raEOpiDHXV23abNa35FECelCGoET0eAff6LOprDD8soKWEgqhqnVuGxPqqCg4P3L7hplq+OY0O65scUwzC9JO7w6nS7DbMLXB2//jDrjiScwGgQLScX0ajWdJEqlUqlwg+Ecz/FILtUVtpmanoGzZ1+OWEhLdUpJ0t4UTTedOfNSJDAaRJ35xPHj0E/Ac3y0wGptfKSkHZ6hbXSNhaRi7Z4bW8srK6jz/+8ZC47DZXfNhtmER3CD4dxBJElkZ2XncwXcHQtJxdxvXdns6f0M/CMBmPn7H+R/C37aRyg8CT/034Lma20glLrWCJyIsjTr0el0GY8lKR5MrcZxo7Ge47ghm9W6gBuMG6j/ZP+0D8JoirAMO2Gn7R9iap0gpAtp+3n4FzouCqJUFLq6AAAAAElFTkSuQmCC" mediaID="Search_cst_shopping-list-button-search"/><costume name="shopping-list-button-clear-list" center-x="53" center-y="15" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGoAAAAeCAYAAADEkotAAAAE5klEQVRoge2aTUzbZhjHs9OkjkM1CXGBkBBDEjt2EgyJYw2WQ7sp4oB2CEvGqZcoym0TdDSDqkJjh06IjxbGUNtth6nrhFC3qeo6Tdr4SKHbqq0DGggbCQM20ZaE8pkExLMD2LVDEkIIcxn+Sc/BsfP47/f/Pu/7yq8lkj1AEORFVCarJEmyg6ZpL6HBlxT5MhAj/SAwzaqRNM6bTKYfNCjqRvLyFHv5kJDc3NyX9Vp9G6HG1yor31j7sLkVvv3ue5jwTcKThQUIhhbFSCOeLCzAlD8A93/9DT7/4ks4+657A1epN2kD7ZHL5cS+TMLUmE2LE6tvv1MbHR3zgsjhElpchNb2ji0C00QJgqhJySSjwXiRMlCRvv5BofUfO34fGYPy8lcjRoPxYlKTinXFtWWvlEem/AGhNR9bpvwBoA10GMewt+KaVFhYqNPiRHRk9KHQWo89A54h0OLEGoIg2buMokqo4fbLHwmtUWSHmrN1UZIkO3gmFRUVqbQ4sbG0tCy0PpEdvOM+0KjRMEmSJ1ijNBrN++768xtCixPhY7W+uYpI5VbWqDJT2XDvza+F1iUSQ9ulTiBJ8hPWKFJf/PShd0JoXSIx9PUPAmWkplijlEjh5vyjx0LrEonhr5lZwFTqyHY1keQJRb4M1tfDh3ZD7nuuo4IiXwbBYEhQDevr4e13gzk5L0nMZvPJTDRgc0s7awZloMBiqeCd9wemBTdqwDPE6zSxGhmCwVBaRlksFfBgZDQTUlkU+TIwm80nM2JU95VrYLNXgz8wDQAA12/0PJdGMVgsFTDgGToSeTNqFGWg9uxJiYy60NjE6+HXb/Sw57qvXONVALcRmN8uNDaBzV7NVnIqJGtQh9OVcJjmaqUMFNjs1QCw3THjbWdkgowZlWqlxLsuthIHPENAGSj2ON61XBxOF9js1fsebvbq+cwQyYUZDpPd61ArypptzVLkyyAcjqSdLN2K4vZebty6fQcAAGpq65LOKQ6ni1eBqRLboA6ni3cczyiA7c5isVSwehxOV9K8B4W3mJBIJBJMpY7MzM6lnbC5pZ1XGcyQxSWeUc0t7bseluHW7Tu8oYxpJC7/tVFcgsEQUAaK9z+bvZrVU1Nbl3Cxkirzjx5DUYFi89kLWYry9w14DpSUu+qz2avZB4hdaTHBmBpbNQ6nCx6MjEIwGGLnHmYuYqoqXs5EhnNJpIWZ/2LnRO45ZuhLVlHc/Nw2SJfxiUkoxvVPn20Wlhg/u9zZdaCkIpmn9+Y3QJvoe6xRKKKsslbZ1oQWJsLHXd+4qdfpPmCNsmZbszAUi/j++FNobSI7LK+sgBYnoohUivL2pEpLSz8+524QtzqeE7q6r24ZjcZfdu3wyuXyHI0aXR+697PQGo893nEfaHEiqpBKyV1GSSQSCapUnqFN9IGW6iIHY2Z2Dk6ffj2sxbX1cU1i96ZIsvXUqdfC3nGf0JqPHXeHfwLaREdKdbqWpCbt8AKpJxu0OBHt6r66tbyyIrT+/z0Tvkk4527Y0KjRMKpUnknFJJaCvIISU6npvhYnou73zm/29H4Fo2NemPv7H8E/Cz7q4Q9Mw4/9g9B2qROsVbY1DMUiFEl1y+XynH2ZxAWRSlFUpWoymUzDep0uhCpVG0J/ZH/UA1Opw5SRmjKQhk8RqdxqzbZm7eXDvyaZpO3CSXKkAAAAAElFTkSuQmCC" mediaID="Clear List_cst_shopping-list-button-clear-list"/><costume name="shopping-list-button-add-item" center-x="53" center-y="15" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGoAAAAeCAYAAADEkotAAAAE6klEQVRoge2aT0wjVRzH68lk5bAxIVygf+hA25nOtGWgnU4Ee9jVND0QD8Uip70Qwk0DK1thQ4h4WEOA7oLYdKseDGIIWTUEMSYKbC2rbhQpW/4oLQIadpc/y9+2EH4eYB70D3+lO67MJ3lJO6/t+877zHszea8i0RFgGPY8LpUW0jTdwrKsn1KTy3KJFIRy+kIR6jUDbZgzGo3fqXHcjmVkyI/ycCDp6ekv6jS6ZkpFrhcWvrb+fkMTfP3NtzA2PgGP5+dhYXFJKKcoj+fnYTIQhPu//AqffvY5XH3bvkkqVVusnvXIZDLqRJIIFWHTkNTam29VRnwjfhBILotLS9DkaNmmCHWEoqiKY0ky6A03GD0T7uu/y3f+c8dvwyNQUPBy2KA33DhUUo42pzL/pYLwZCDId+Zzy2QgCKyeDZEE8UZCSVlZWVoNSUWGfQ/4znruGfB4QUNS6xiGpcaJYnKZQcetD/jOKLBLxdWqCE3TLVGSsrOzlRqS2lxeXuE7n8Au/tFxUKvwEE3TF5AotVr9rr36+ibf4QSisVpfX8PEMisSlW/MH+y68yXfuQRiaL7ZCjRNf4RE0bqcJw/8Y3znEoihr/8uMAZmEolSYFlbcw8f8Z1LIIY/p2eAUKrCO6OJpi/IJVLY2AjxGmrA40VrYYng6gY83qecjD82NkI7a4NpaS+ITCbTxYM65ywIBKeiFiQP62hO1kEcV5TT5Y5bCK2tq0f1tXX14HS5T3YiPCGXSMFkMl1MuigOs9kCZrMlqsNiOStRHE6XO2F7gqgD6O7pBbPZAkPDPmD0DCwsLKK6isoqdNXbikuiRO0fGVzdvxEVO7oTjfLaunp03Gy2QHtHZ9z3bMUlYDZbQC6RJl34UxVVUVmFTqi0rBy9rq2rB1txCRJXWlaORLV3dCK5AHvSkjminC432IpLIBCcAoCdEc7oGQgEp1AegJ3Zwelyg9PlhtKy8mPnOQ1IlDXVmiKXSCEUCieloURXMXfCpWXl0N7RiT67f+pL1MnJFsVdKLGlu6cX2js6kRSz2QIDHm/UsWQQ9TAhEolEhFIVnp6ZTUpjTpcbKiqroo4xegYGPF7eRlRDowMd5343EJyChkbHgR3Ph6i5h48gO1O+tbcgyzCBvgHPmTfU3tEZ99TFze1yiRSGhn1RVzH3mjv5hkZHXN1xpumjnvoCwSmUg5vGOPbfM7l2h4Z96H1DowPdo7p7ekEukUbNCmfJ6NgE5JC6J3ubhbmGT261tiWlMYHT03XnK2CN7D0kCscURdYi2zrfwQSisVfXbem02veQKGuqNYXAifD473/wnU1gl5XVVdCQVAQTi/GoPam8vLwPr9lrhK2O/whtztvbBoPh57gdXplMlqZW4Rveez/xnfHc4x8dBw1JReRiMR0nSiQSiXCF4gprZJP2qC5wNNMzs3D58qshDampTigJ7U3RdNOlS6+E/KPjfGc+d/ww+COwRjacp9U2Hippl+doHV2jIalIm/P29srqKt/5//eMjU/ANXvNplqFh3CF4spxJCEyMzJzjXnG+xqSitjfub7V2fUF+Eb8MPvX37z/LfhZL4HgFHzffxeab7aCtci2TuBEmKEZp0wmSzuRpP1gYjGOK5X1RqNxUKfVLuIK5Sbff7J/1guhVIUYAzOpp/UfY2KZ1ZpqTTnKwz+WSLCoy889jAAAAABJRU5ErkJggg==" mediaID="Add Item_cst_shopping-list-button-add-item"/><costume name="shopping-list-button-delete-item" center-x="53" center-y="15" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGoAAAAeCAYAAADEkotAAAAFHklEQVRoge2aS0wbRxjH3VOllENUCXEBP/CC7V3v2mbB3l0VyiFpteKAejA15ZQLQtxaQUpciJBV95AKGZxAqUVoe6jSVAilraI0VaWWhwtpG7UUiHm02C7QiiQ8wtM2iK8H8LI2xi8RNin7k+Zg787Mf77/vDSzEkkCEAR5EZXLy0mSbGcYxkNo8VWlTA5iSj8RmHbDRJoWaJr+QYuiViQnR5nIhyPJzs5+2aAztBEafLO8/I3ND1ta4dvvvofJqWl4vLgIS8srYkojPV5chBmvD+7/9jt8/sWXcPFd6zau1uwwRsatUCiIlEzCNJhFhxMbb79THxob94DI02V5ZQVane27BKYNEQRRl5RJJqPpCmWkgn39g0LrP3X8MToOJSWvBk1G05W4JhXoC+qLXykJznh9Qms+tcx4fcAYmQCOYW/FNCkvL0+vw4nQ6NgDobWeegbcQ6DDiU0EQTIPGUUVUsPOax8JrVFkn7qLDSGSJNsjTMrPz1frcGJ7dXVNaH0i+3gmpkCrQQMkSZ7hjNJqte9bGy9vCy1OJBKz+c0NRKowc0YV08XDvbe+FlqXSBRtVzuAJMlPOKNIQ8GTB55JoXWJRNHXPwiUiZrhjFIheTsLDx8JrUskir9n5wBTa4J7o4kkzyhlctjaCpxI5a6ubu7My9XVfSJ1Pq9sbQX2zgazsl6SlJaWnlXK5CkVUF1TG3HIaKmsggH3UEplNNvsKRuVTp5ERLdFKZPDjZs93HOWLYOR0bFjrTMVlDI5lJaWnk3LKK/PD/w8LQ4nUEYKlpaWky7jWTEqTHVNbYRBYVi2LOVOeJwcq1EAew0NB9HV1Q2UkYo7xcUKutfnj+jhlsoqGBkd4+qLTvwANtvs3P8sWxYz6PGINurGzZ6YdSbSGp2P/046I/PYjQoHfsA9BJSR4oLo9fnBUll1KHCxjKquqYXqmlrut6urG1i2LG6e8HuWyirw+vwAAJyG8O9kSHVExdPabLNDs83OxWlkdAzq6hvSmg04o8yZ5gylTA6BQDDpzPFGFH+zwE8tDmfE+7GCftRFW3hKPcqoWOuMUiaH23fuJt2mVI2KpzWskx+ndKbtiM2ERCKRYGpNcHZuPukC4q1Rt+/cBZYtS9ibYwm3VFbFbUyLwwnNNjsAHOwevT4/tDicEb07HY4yij8b1NU3cKMmntbjMmrh4SPIz1XuHBzIUpS3b8CdUqOid338+Td6VPEbG6v3h4Mfniajn4VHlNfnB5Yt49YhfsPr6hsOrQ3JrAmJdn0D7qGYu9ujtPLbHl6vmm12aHE4uY6VLBOT01CAG54cXBYWmj671tGZdAEiJ0PvrW+AoZl7nFEooqowV1g2hRYmEom10bZj0Os/4IwyZ5ozMBQLTv35l9DaRPZZW18HHU6EEKkUjbiTKioq+viStUm86nhG6HRd3zWZTL8euuFVKBRZWg26NXTvF6E1nno8E1Ogw4mQUiolDxklkUgkqEp1gaGZlLbqIsfL7Nw8nD//ekCH6xpjmsTdTZFk67lzrwU8E1NCaz51/DT8MzA0EyzS6x1xTdrnBdJANulwItTpur67tr4utP7/PZNT03DJ2rSt1aABVKW6kIxJHLk5uYV0EX1fhxMh63uXd3p6v4KxcQ/M//Ov4J8FP+/J6/PDj/2D0Ha1A8wVlk0MxYIUSbkUCkVWSibxQaRSFFWr7TRNDxv0+mVUpd5+mh/Qn4aEqTUBykTNGEnjp4hUYTZnmjMS+fAf64BPnsMyZTYAAAAASUVORK5CYII=" mediaID="Delete Item_cst_shopping-list-button-delete-item"/><costume name="speaker" center-x="41.5" center-y="56" image="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmVyc2lvbj0iMS4xIgogICB3aWR0aD0iODMuMDMyMDIxIgogICBoZWlnaHQ9IjExMi4zNTcxNyIKICAgdmlld0JveD0iLTEgLTEgODMuMDMyMDIxIDExMi4zNTcxNyIKICAgaWQ9InN2ZzE4IgogICBzb2RpcG9kaTpkb2NuYW1lPSJzcGVha2VyLnN2ZyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi4yIDVjM2U4MGQsIDIwMTctMDgtMDYiPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTI0Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMjIiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxIgogICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiCiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSI2NDAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iNDgwIgogICAgIGlkPSJuYW1lZHZpZXcyMCIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgZml0LW1hcmdpbi10b3A9IjAiCiAgICAgZml0LW1hcmdpbi1sZWZ0PSIwIgogICAgIGZpdC1tYXJnaW4tcmlnaHQ9IjAiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjAiCiAgICAgaW5rc2NhcGU6em9vbT0iMS4yMTAyNTY0IgogICAgIGlua3NjYXBlOmN4PSIxMjYuMDUyNTEiCiAgICAgaW5rc2NhcGU6Y3k9IjE1LjkxNDc2OSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTIiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii0yIgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjAiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMTgiIC8+CiAgPCEtLSBFeHBvcnRlZCBieSBTY3JhdGNoIC0gaHR0cDovL3NjcmF0Y2gubWl0LmVkdS8gLS0+CiAgPGcKICAgICBpZD0iSUQwLjY0NTU3Mzg0MDQ3NjU3MjUiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE4OC45NDc0OSwtMTAyLjA1NzYpIj4KICAgIDxwYXRoCiAgICAgICBpZD0iSUQwLjE0MDY0MTY4NTU3NTI0NjgiCiAgICAgICBkPSJtIDQ5LjEsODkuNDUgOTEuMDUsMS45IC03LjE1LDE2Mi41IC02OC4yNSwtNC45IHoiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjcxNzczMzkyLDAsMCwwLjYwMDgzMjE2LDE1My41LDYwLjI1KSIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzdHlsZT0iZmlsbDojMDBjY2NjO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kIiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMyIKICAgICAgIGQ9Im0gNTYuNSw4OC4zNSA1NS4yLC0xOS4zIC0yNy41NSwxNjEgTCA0MC4yLDI0OC4xIDU2LjU1LDkwLjI1IFoiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjI5NTUwNDA5LDAsMCwwLjYxNjcyOTkyLDIzNy41LDU5LjQpIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHN0eWxlPSJmaWxsOiMwMDk5OTk7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6cm91bmQiIC8+CiAgICA8ZwogICAgICAgaWQ9IklEMC44NjI0MzkwMTQ0ODMyNDMyIgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTg3LDEwMSkiPgogICAgICA8cGF0aAogICAgICAgICBpZD0iSUQwLjYxOTAzOTYwNDQ0MDMzMTUiCiAgICAgICAgIGQ9Im0gMjgyLjUsMjM1IGMgMS41MTcsMCAyLjg5MiwwLjYxNiAzLjg4OCwxLjYxMiAwLjk5NiwwLjk5NiAxLjYxMiwyLjM3MSAxLjYxMiwzLjg4OCAwLDEuNTE3IC0wLjYxNiwyLjg5MiAtMS42MTIsMy44ODggLTAuOTk2LDAuOTk2IC0yLjM3MSwxLjYxMiAtMy44ODgsMS42MTIgLTEuNTE3LDAgLTIuODkyLC0wLjYxNiAtMy44ODgsLTEuNjEyIC0wLjk5NiwtMC45OTYgLTEuNjEyLC0yLjM3MSAtMS42MTIsLTMuODg4IDAsLTEuNTE3IDAuNjE2LC0yLjg5MiAxLjYxMiwtMy44ODggMC45OTYsLTAuOTk2IDIuMzcxLC0xLjYxMiAzLjg4OCwtMS42MTIgeiIKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMy4yNjE5NTk2LDAsMCwzLjI2MTk1OTYsLTg4NC4zLC03MDAuNikiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIHN0eWxlPSJmaWxsOiM2NjY2NjY7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGlkPSJwYXRoNiIKICAgICAgICAgZD0ibSAyODIuNSwyMzUgYyAxLjUxNywwIDIuODkyLDAuNjE2IDMuODg4LDEuNjEyIDAuOTk2LDAuOTk2IDEuNjEyLDIuMzcxIDEuNjEyLDMuODg4IDAsMS41MTcgLTAuNjE2LDIuODkyIC0xLjYxMiwzLjg4OCAtMC45OTYsMC45OTYgLTIuMzcxLDEuNjEyIC0zLjg4OCwxLjYxMiAtMS41MTcsMCAtMi44OTIsLTAuNjE2IC0zLjg4OCwtMS42MTIgLTAuOTk2LC0wLjk5NiAtMS42MTIsLTIuMzcxIC0xLjYxMiwtMy44ODggMCwtMS41MTcgMC42MTYsLTIuODkyIDEuNjEyLC0zLjg4OCAwLjk5NiwtMC45OTYgMi4zNzEsLTEuNjEyIDMuODg4LC0xLjYxMiB6IgogICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLjQ2MTYzMjYsMCwwLDEuNDYxNjMyNiwtMzc1LjgsLTI2Ny45NSkiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNkZGRmZWE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjEiIC8+CiAgICA8L2c+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGg5IgogICAgICAgZD0ibSA2MC4zLDQ5LjM1IDg5Ljk1LC0wLjA1IC0yNC43LDIwNy40IC05Ni40LC0xNS42NSB6IgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC42NjkwNTgyLDAsMCwwLjA2Mzg4NjI5LDE2OS43LDk4LjM1KSIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzdHlsZT0iZmlsbDojMDBmZmZmO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kIiAvPgogICAgPGcKICAgICAgIGlkPSJnMTUiCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODcsMTAxKSI+CiAgICAgIDxwYXRoCiAgICAgICAgIGlkPSJwYXRoMTEiCiAgICAgICAgIGQ9Im0gMjgyLjUsMjM1IGMgMS41MTcsMCAyLjg5MiwwLjYxNiAzLjg4OCwxLjYxMiAwLjk5NiwwLjk5NiAxLjYxMiwyLjM3MSAxLjYxMiwzLjg4OCAwLDEuNTE3IC0wLjYxNiwyLjg5MiAtMS42MTIsMy44ODggLTAuOTk2LDAuOTk2IC0yLjM3MSwxLjYxMiAtMy44ODgsMS42MTIgLTEuNTE3LDAgLTIuODkyLC0wLjYxNiAtMy44ODgsLTEuNjEyIC0wLjk5NiwtMC45OTYgLTEuNjEyLC0yLjM3MSAtMS42MTIsLTMuODg4IDAsLTEuNTE3IDAuNjE2LC0yLjg5MiAxLjYxMiwtMy44ODggMC45OTYsLTAuOTk2IDIuMzcxLC0xLjYxMiAzLjg4OCwtMS42MTIgeiIKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMy4yNjE5NTk2LDAsMCwzLjI2MTk1OTYsLTg4NS40LC03NDUpIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBzdHlsZT0iZmlsbDojNjY2NjY2O3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxIiAvPgogICAgICA8cGF0aAogICAgICAgICBpZD0icGF0aDEzIgogICAgICAgICBkPSJtIDI4Mi41LDIzNSBjIDEuNTE3LDAgMi44OTIsMC42MTYgMy44ODgsMS42MTIgMC45OTYsMC45OTYgMS42MTIsMi4zNzEgMS42MTIsMy44ODggMCwxLjUxNyAtMC42MTYsMi44OTIgLTEuNjEyLDMuODg4IC0wLjk5NiwwLjk5NiAtMi4zNzEsMS42MTIgLTMuODg4LDEuNjEyIC0xLjUxNywwIC0yLjg5MiwtMC42MTYgLTMuODg4LC0xLjYxMiAtMC45OTYsLTAuOTk2IC0xLjYxMiwtMi4zNzEgLTEuNjEyLC0zLjg4OCAwLC0xLjUxNyAwLjYxNiwtMi44OTIgMS42MTIsLTMuODg4IDAuOTk2LC0wLjk5NiAyLjM3MSwtMS42MTIgMy44ODgsLTEuNjEyIHoiCiAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuNDYxNjMyNiwwLDAsMS40NjE2MzI2LC0zNzYuOSwtMzEyLjM1KSIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc3R5bGU9ImZpbGw6I2RkZGZlYTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MSIgLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=" mediaID="Sprite_cst_speaker"/></media></snapdata>