<snapdata remixID="9291500"><project name="U2L2.3 Caesar Cipher Set Up" app="Snap! 5.4, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><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" codify="false" inheritance="false" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,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AQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBE4vgf8PHLd3w/Zxr18AAAAASUVORK5CYII=</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="102.041015625" y="70" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="8"><costumes><list struct="atomic" id="9"></list></costumes><sounds><list struct="atomic" id="10"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="10"><block s="receiveGo"></block><block s="doSayFor"><l>Hello!  I will tell you the unicode characters for your name.</l><l>2</l></block><block s="doAsk"><l>What is your name?</l></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><block s="reportStringSize"><block s="getLastAnswer"></block></block><script><block s="doSayFor"><custom-block s="join words %mult%txt"><list><block s="reportLetter"><block var="i"/><block s="getLastAnswer"></block></block><l>is</l><block s="reportUnicode"><block s="reportLetter"><block var="i"/><block s="getLastAnswer"></block></block></block><l>in Unicode.</l></list></custom-block><l>2</l></block></script></custom-block></script><script x="20" y="213"><block s="doDeclareVariables"><list><l>a</l></list></block></script><script x="20" y="257"><block s="doSetVar"><l></l><l>0</l></block></script><script x="20" y="296.99999999999994"><block s="write"><block var="input"/><l>20</l></block></script><script x="20" y="336.99999999999994"><block s="reportUnicode"><l>E</l></block></script><script x="20" y="369.99999999999994"><block s="write"><block var="output"/><l>20</l></block></script><script x="20" y="409.99999999999994"><block s="reportUnicode"><l>A</l></block></script><script x="20" y="442.99999999999994"><block s="receiveGo"></block><block s="doAsk"><l>Do you want to encode or decode?</l></block></script><script x="20" y="517"><block s="reportUnicodeAsLetter"><l>65</l></block></script><script x="20" y="550"><block s="doSetVar"><l>input list</l><block s="getLastAnswer"></block></block></script><script x="20" y="590"><block s="reportLetter"><l>1</l><l>world</l></block></script><script x="20" y="623.0000000000002"><custom-block s="encode message: %s by number %s"><l>lauren</l><l>1</l></custom-block></script><script x="20" y="662.0000000000002"><block s="reportStringSize"><l>world</l></block></script><script x="20" y="695.0000000000002"><custom-block s="decode message: %s shift %s"><l>mbvsfo</l><l>1</l></custom-block></script><script x="20" y="734.0000000000002"><block s="doSetVar"><l>output list</l><l></l></block></script><script x="20" y="774.0000000000002"><block s="reportJoinWords"><list><l>c</l><l>a</l><l>t</l></list></block></script><script x="20" y="807.0000000000002"><custom-block s="Shift letter %s by shift %s"><l>H</l><l>3</l></custom-block></script><script x="20" y="840.0000000000002"><block s="reportSum"><block s="reportUnicode"><l>A</l></block><l>3</l></block></script><script x="20" y="877.0000000000002"><custom-block s="encode one letter: %s shift: %s (TAKE IT FURTHER)"><l>Z</l><l>1</l></custom-block></script><script x="20" y="910"><block s="clear"></block><block s="gotoXY"><l>-150</l><l>100</l></block><block s="write"><block s="reportJoinWords"><list><l>message </l><block var="input"/><l> with a shift of two</l></list></block><l>20</l></block><block s="gotoXY"><l>-150</l><l>70</l></block><block s="write"><block s="reportJoinWords"><list><l>encode message </l><block var="output"/></list></block><l>20</l></block></script><script x="20" y="1039.9999999999998"><block s="reportUnicodeAsLetter"><l>68</l></block></script><script x="519.5498056875" y="760.0000010000001"><block s="reportNewList"><list></list></block></script><script x="237.5263691875" y="805.0000030000001"><custom-block s="decode a message: %s shift: %s"><l>odxuhq</l><l>-3</l></custom-block></script><script x="166.5498056875" y="759.0000010000001"><custom-block s="encode a message: %s shift: %s"><l>lauren</l><l>3</l></custom-block></script></scripts></sprite><watcher var="input list" style="normal" x="5" y="48.00000799999998" color="243,118,29" hidden="true"/><watcher var="output" style="normal" x="346" y="11.000009999999975" color="243,118,29"/><watcher var="output list" style="normal" x="345" y="39.00001199999997" color="243,118,29" hidden="true"/><watcher var="input" style="normal" x="26" y="11.000005999999985" color="243,118,29"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="cases: if %&apos;test&apos; then %&apos;result&apos; %&apos;more&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%cs"></input><input type="%mult%boolUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doRun"><block var="result"/><list></list></block></script><script><custom-block s="catch %upvar %cs"><l>tag</l><script><custom-block s="for each %upvar of %l %cs"><l>item</l><block var="more"/><script><block s="doIf"><block s="evaluate"><block var="item"/><list></list></block><script><custom-block s="throw %s"><block var="tag"/></custom-block></script></block></script></custom-block></script></custom-block><block s="doHideVar"><l>test</l></block></script></block></script></block-definition><block-definition s="else if %&apos;test&apos; then %&apos;action&apos;" type="predicate" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%cs"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doRun"><block var="action"/><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="else %&apos;action&apos;" type="predicate" category="control"><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + &apos;px monospace&apos;;&#xD;context.textAlign = &apos;left&apos;;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><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="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-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><scripts><script x="229.000003" y="196.77778077777774"><block s="reportJoinWords"><list><l></l><l></l></list></block></script></scripts></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;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; for %&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="list $arrowRight word %&apos;list&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"><block s="reportJoinWords"><block var="list"/></block></block></script></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></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="string"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportSum"><l>0</l><l>0</l></block></block></block></script></block><block s="doSetVar"><l>result</l><l></l></block><block s="doSetVar"><l>i</l><l>2</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportStringSize"><block var="string"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportLetter"><block var="i"/><block var="string"/></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></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-&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></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>bf</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>bf</l><l></l></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportGreaterThan"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><script><block s="doSetVar"><l>bf</l><block s="reportJoinWords"><list><block var="bf"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><block var="bf"/></block></script></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></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="string"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportSum"><l>0</l><l>0</l></block></block></block></script></block><block s="doSetVar"><l>result</l><l></l></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportEquals"><block var="i"/><block s="reportStringSize"><block var="string"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportLetter"><block var="i"/><block var="string"/></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></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="212" 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></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>bl</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>bl</l><l></l></block><block s="doSetVar"><l>index</l><block s="reportStringSize"><block var="sentence"/></block></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="index"/><l>1</l></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportLessThan"><block var="index"/><l>1</l></block><script><block s="doSetVar"><l>bl</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="bl"/></list></block></block><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doReport"><block var="bl"/></block></script></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></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>first</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>first</l><l></l></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>first</l><block s="reportJoinWords"><list><block var="first"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>first</l><block s="reportJoinWords"><list><block var="first"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block></script></block><block s="doReport"><block var="first"/></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></translations><inputs><input type="%txt"></input></inputs><script><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></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>last</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>last</l><l></l></block><block s="doSetVar"><l>index</l><block s="reportStringSize"><block var="sentence"/></block></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>last</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="last"/></list></block></block><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>last</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="last"/></list></block></block></script></block><block s="doReport"><block var="last"/></block></script></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></translations><inputs><input type="%txt"></input></inputs><script><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></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></script></block-definition><block-definition s="Shift letter %&apos;letter&apos; by shift %&apos;shift&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportUnicodeAsLetter"><block s="reportSum"><block s="reportUnicode"><block var="letter"/></block><block var="shift"/></block></block></block></script></block-definition><block-definition s="encode message: %&apos;message&apos; by number %&apos;number&apos;" type="command" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>input</l><block var="message"/></block><block s="doSetVar"><l>input list</l><custom-block s="word $arrowRight list %txt"><block var="input"/></custom-block></block><block s="doSetVar"><l>output list</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>letter</l><block var="input list"/><script><block s="doAddToList"><custom-block s="Shift letter %s by shift %s"><block var="letter"/><block var="number"/></custom-block><block var="output list"/></block></script></block><block s="doSetVar"><l>output</l><custom-block s="list $arrowRight word %l"><block var="output list"/></custom-block></block></script></block-definition><block-definition s="decode message: %&apos;message&apos; shift %&apos;shift&apos;" type="command" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><custom-block s="encode message: %s by number %s"><block var="message"/><block s="reportProduct"><block var="shift"/><l>-1</l></block></custom-block></script></block-definition><block-definition s="encode letter: %&apos;letter&apos; shift: %&apos;shift&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportUnicodeAsLetter"><block s="reportSum"><block s="reportUnicode"><block var="letter"/></block><block var="shift"/></block></block></block></script></block-definition><block-definition s="decode letter: %&apos;letter&apos; shift: %&apos;shift&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportUnicodeAsLetter"><block s="reportDifference"><block s="reportUnicode"><block var="letter"/></block><block var="shift"/></block></block></block></script></block-definition><block-definition s="encode a message: %&apos;message&apos; shift: %&apos;shift&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="list $arrowRight word %l"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="encode letter: %s shift: %s"><l></l><block var="shift"/></custom-block></autolambda><list></list></block><custom-block s="word $arrowRight list %txt"><block var="message"/></custom-block></block></custom-block></block></script></block-definition><block-definition s="decode a message: %&apos;message&apos; shift: %&apos;shift&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="list $arrowRight word %l"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="encode letter: %s shift: %s"><l></l><block var="shift"/></custom-block></autolambda><list></list></block><custom-block s="word $arrowRight list %txt"><block var="message"/></custom-block></block></custom-block></block></script></block-definition><block-definition s="encode one letter: %&apos;letter&apos; shift: %&apos;shift&apos; (TAKE IT FURTHER)" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportAnd"><block s="reportGreaterThan"><block s="reportSum"><block s="reportUnicode"><block var="letter"/></block><block var="shift"/></block><l>64</l></block><block s="reportLessThan"><block s="reportSum"><block s="reportUnicode"><block var="letter"/></block><block var="shift"/></block><l>91</l></block></block><script><block s="doReport"><block s="reportUnicodeAsLetter"><block s="reportSum"><block s="reportUnicode"><block var="letter"/></block><block var="shift"/></block></block></block></script><script><block s="doIfElse"><block s="reportAnd"><block s="reportGreaterThan"><block s="reportSum"><block s="reportUnicode"><block var="letter"/></block><block var="shift"/></block><l>96</l></block><block s="reportLessThan"><block s="reportSum"><block s="reportUnicode"><block var="letter"/></block><block var="shift"/></block><l>123</l></block></block><script><block s="doReport"><block s="reportUnicodeAsLetter"><block s="reportSum"><block s="reportUnicode"><block var="letter"/></block><block var="shift"/></block></block></block></script><script><block s="doReport"><block s="reportUnicodeAsLetter"><block s="reportDifference"><block s="reportSum"><block s="reportUnicode"><block var="letter"/></block><block var="shift"/></block><l>26</l></block></block></block></script></block></script></block></script></block-definition></blocks><variables><variable name="input"><l>mbvsfo</l></variable><variable name="input list"><list struct="atomic" id="1763">m,b,v,s,f,o</list></variable><variable name="output"><l>lauren</l></variable><variable name="output list"><list struct="atomic" id="1764">l,a,u,r,e,n</list></variable></variables></project><media name="U2L2.3 Caesar Cipher Set Up" app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>