<snapdata remixID="13455994"><project name="digi4all-L1-turtle-art 4" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="digi4all-L1-turtle-art 4"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="%&apos;attribute&apos; of sound %&apos;sound&apos;" type="reporter" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">duration<options>name&#xD;duration&#xD;length&#xD;number of channels&#xD;sample rate&#xD;samples</options></input><input type="%obj"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>name</l></list></block><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>sound</l></list><l>return sound.name;</l></block><list><block var="sound"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>samples</l></list></block><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>audioBuffer</l></list><l>var result, i;&#xD;if (audioBuffer.numberOfChannels &gt; 1) {&#xD;    result = new List();&#xD;    for (i = 0; i &lt; audioBuffer.numberOfChannels; i += 1) {&#xD;        result.add(new List(audioBuffer.getChannelData(i)));&#xD;    }&#xD;    return result;&#xD;}&#xD;return new List(audioBuffer.getChannelData(0));</l></block><list><custom-block s="%s of sound %obj"><l></l><block var="sound"/></custom-block></list></block></block></script><list></list></block><block s="doRun"><block s="reportJSFunction"><list><l>sound</l></list><l>var base64, binaryString, len, bytes, i,&#xD;    arrayBuffer, audioCtx;&#xD;if (sound.audioBuffer) {&#xD;    return;&#xD;}&#xD;base64 = sound.audio.src.split(&apos;,&apos;)[1];&#xD;binaryString =  window.atob(base64);&#xD;len = binaryString.length;&#xD;bytes = new Uint8Array(len);&#xD;for (i = 0; i &lt; len; i += 1)        {&#xD;  bytes[i] = binaryString.charCodeAt(i);&#xD;}&#xD;arrayBuffer = bytes.buffer;&#xD;Note.prototype.setupContext();&#xD;audioCtx = Note.prototype.audioContext;&#xD;audioCtx.decodeAudioData(arrayBuffer, function(buffer) {&#xD;   sound.audioBuffer = buffer;&#xD;});</l></block><list><block var="sound"/></list></block><block s="doWaitUntil"><block s="evaluate"><block s="reportJSFunction"><list><l>sound</l></list><l>return !isNil(sound.audioBuffer);</l></block><list><block var="sound"/></list></block></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>sound</l><l>choice</l></list><l>switch (choice) {&#xD;case &apos;sample rate&apos;:&#xD;    return sound.audioBuffer.sampleRate;&#xD;case &apos;duration&apos;:&#xD;    return sound.audioBuffer.duration;&#xD;case &apos;length&apos;:&#xD;    return sound.audioBuffer.length;&#xD;case &apos;number of channels&apos;:&#xD;    return sound.audioBuffer.numberOfChannels;&#xD;default:&#xD;    return sound.audioBuffer;&#xD;}</l></block><list><block var="sound"/><block var="attribute"/></list></block></block></script></block-definition><block-definition s="turbo %&apos;action&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>begin</l></list></block><block s="doSetVar"><l>begin</l><block s="reportGlobalFlag"><l><option>turbo mode</option></l></block></block><block s="doSetGlobalFlag"><l><option>turbo mode</option></l><l><bool>true</bool></l></block><block s="doRun"><block var="action"/><list></list></block><block s="doSetGlobalFlag"><l><option>turbo mode</option></l><block var="begin"/></block></script></block-definition><block-definition s="play %&apos;samples&apos; at %&apos;sampleRate&apos; Hz" type="command" category="sound"><comment x="0" y="0" w="164" collapsed="false">play back a sound, a list of samples (single channel), or a list of lists (multiple channels) at the given sample rate.&#xD;for demo purposes this block also fast-plots the samples on the stage</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n">44100<options>22.05 kHz=22050&#xD;44.1 kHz=44100&#xD;88.2 kHz=88200&#xD;96 kHz=96000</options></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="samples"/><l><option>sound</option></l></block><script><block s="doSetVar"><l>samples</l><custom-block s="%s of sound %obj"><l>samples</l><block var="samples"/></custom-block></block></script><list></list></block><block s="doRun"><block s="reportJSFunction"><list><l>samples</l><l>rate</l></list><l>var audioCtx, channels, frameCount, arrayBuffer, i, source;&#xD;Note.prototype.setupContext();&#xD;audioCtx = Note.prototype.audioContext;&#xD;channels = (samples.at(1) instanceof List) ? samples.length() : 1; &#xD;frameCount = (channels === 1) ? samples.length() : samples.at(1).length(); &#xD;arrayBuffer = audioCtx.createBuffer(channels, frameCount, rate);&#xD;if (!arrayBuffer.copyToChannel) {&#xD;    arrayBuffer.copyToChannel = function (src, channel) {&#xD;        var buffer = this.getChannelData(channel);&#xD;        for (i = 0; i &lt; src.length; i += 1) {&#xD;            buffer[i] = src[i];&#xD;        }&#xD;    }&#xD;}&#xD;if (channels === 1) {&#xD;    arrayBuffer.copyToChannel(Float32Array.from(samples.asArray()), 0, 0);&#xD;} else {&#xD;    for (i = 0; i &lt; channels; i += 1) {&#xD;        arrayBuffer.copyToChannel(Float32Array.from(samples.at(i + 1).asArray()), i, 0);&#xD;    }&#xD;}&#xD;source = audioCtx.createBufferSource();&#xD;source.buffer = arrayBuffer;&#xD;source.connect(audioCtx.destination);&#xD;source.start();&#xD;source.pause = source.stop;&#xD;this.parentThatIsA(StageMorph).activeSounds.push(source);</l></block><list><block var="samples"/><block var="sampleRate"/></list></block><custom-block s="plot sound %obj"><block var="samples"/></custom-block></script></block-definition><block-definition s="%&apos;frequency&apos; Hz for %&apos;duration&apos; secs at %&apos;sample rate&apos; Hz sample rate" type="reporter" category="sound"><comment x="0" y="0" w="205" collapsed="false">generate a list of samples representing a sine wave at the given frequency, duration and sample rate</comment><header></header><code></code><translations></translations><inputs><input type="%n">440<options>a 55=55&#xD;a 110=110&#xD;a 220=220&#xD;a 440=440&#xD;a 880=880&#xD;a 1760=1760&#xD;a 3520=3520</options></input><input type="%n">1</input><input type="%n">44100<options>22.05 kHz=22050&#xD;44.1 kHz=44100&#xD;88.2 kHz=88200&#xD;96 kHz=96000</options></input></inputs><script><block s="doDeclareVariables"><list><l>output</l><l>sample period</l><l>duration in samples</l><l>time</l></list></block><block s="doSetVar"><l>sample period</l><block s="reportQuotient"><l>1</l><block var="sample rate"/></block></block><block s="doSetVar"><l>duration in samples</l><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportVariadicProduct"><list><block var="duration"/><block var="sample rate"/></list></block></block></block><block s="doSetVar"><l>time</l><l>0</l></block><block s="doSetVar"><l>output</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doRepeat"><block var="duration in samples"/><script><block s="doAddToList"><block s="reportMonadic"><l><option>sin</option></l><custom-block s="degrees %n"><block s="reportVariadicProduct"><list><l>2</l><block s="reportVariadicProduct"><list><custom-block s="PI"></custom-block><block s="reportVariadicProduct"><list><block var="frequency"/><block var="time"/></list></block></list></block></list></block></custom-block></block><block var="output"/></block><block s="doChangeVar"><l>time</l><block var="sample period"/></block></script></block></script></block><block s="doReport"><block var="output"/></block></script></block-definition><block-definition s="PI" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>3.141592653589793</l></block></script></block-definition><block-definition s="degrees %&apos;radians&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">0.5</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="radians"/><l>180</l></list></block><custom-block s="PI"></custom-block></block></block></script></block-definition><block-definition s="find first in %&apos;list&apos; such that %&apos;test&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="list"/><block s="reportNewList"><list></list></block></list></block><script><custom-block s="error %s"><l>item not found in list</l></custom-block></script><list></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list><block s="reportListItem"><l>1</l><block var="list"/></block></list></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="list"/></block></block></script><list></list></block><block s="doReport"><custom-block s="find first in %l such that %predRing"><block s="reportCDR"><block var="list"/></block><block var="test"/></custom-block></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>msg</l></list><l>throw new Error(msg)</l></block><list><block var="msg"/></list></block></script></block-definition><block-definition s="sound named %&apos;name&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="find first in %l such that %predRing"><block s="reportGet"><l><option>sounds</option></l></block><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><custom-block s="%s of sound %obj"><l>name</l><block var="sound"/></custom-block><block var="name"/></list></block></autolambda><list><l>sound</l></list></block></custom-block></block></script></block-definition><block-definition s="plot sound %&apos;sound&apos;" type="command" category="pen"><comment x="0" y="0" w="164" collapsed="false">quickly plot the samples of a sound, a list of samples (single channel), or a list of lists (multiple channels) to the stage at a lower resolution.</comment><header></header><code></code><translations></translations><inputs><input type="%obj"></input></inputs><script><block s="doDeclareVariables"><list><l>samples</l><l>step</l><l>offset</l><l>i</l><l>stage height</l></list></block><block s="doSetVar"><l>stage height</l><custom-block s="stage height"></custom-block></block><block s="doIfElse"><block s="reportIsA"><block var="sound"/><l><option>sound</option></l></block><script><block s="doSetVar"><l>samples</l><custom-block s="%s of sound %obj"><l>samples</l><block var="sound"/></custom-block></block><block s="doSetVar"><l>step</l><block s="reportQuotient"><custom-block s="%s of sound %obj"><l>length</l><block var="sound"/></custom-block><block s="reportVariadicProduct"><list><custom-block s="stage width"></custom-block><l>2</l></list></block></block></block></script><script><block s="doSetVar"><l>samples</l><block var="sound"/></block></script></block><block s="clear"></block><block s="up"></block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="samples"/></block><l><option>list</option></l></block><script><block s="doSetVar"><l>step</l><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="samples"/></block></block><block s="reportVariadicProduct"><list><custom-block s="stage width"></custom-block><l>2</l></list></block></block></block><block s="doSetVar"><l>offset</l><block s="reportQuotient"><block var="stage height"/><l>4</l></block></block><custom-block s="for each %upvar of %l %cs"><l>channel</l><block var="samples"/><script><block s="doSetVar"><l>i</l><l>0</l></block><block s="gotoXY"><block s="reportQuotient"><custom-block s="stage width"></custom-block><l>-2</l></block><block var="offset"/></block><block s="down"></block><block s="setSize"><l>1</l></block><custom-block s="turbo %cs"><script><block s="doRepeat"><block s="reportVariadicProduct"><list><custom-block s="stage width"></custom-block><l>2</l></list></block><script><block s="doChangeVar"><l>i</l><block var="step"/></block><block s="gotoXY"><block s="reportVariadicSum"><list><block s="xPosition"></block><l>0.5</l></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><block s="reportMonadic"><l><option>floor</option></l><block var="i"/></block><block var="channel"/></block><block s="reportQuotient"><block var="stage height"/><l>6.4</l></block></list></block><block var="offset"/></list></block></block></script></block></script></custom-block><block s="up"></block><block s="doChangeVar"><l>offset</l><block s="reportQuotient"><custom-block s="stage height"></custom-block><l>-2</l></block></block></script></custom-block></script><script><block s="doSetVar"><l>step</l><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="samples"/></block><block s="reportVariadicProduct"><list><custom-block s="stage width"></custom-block><l>2</l></list></block></block></block><block s="gotoXY"><block s="reportQuotient"><custom-block s="stage width"></custom-block><l>-2</l></block><l>0</l></block><block s="down"></block><block s="setSize"><l>1</l></block><custom-block s="turbo %cs"><script><block s="doRepeat"><block s="reportVariadicProduct"><list><custom-block s="stage width"></custom-block><l>2</l></list></block><script><block s="doChangeVar"><l>i</l><block var="step"/></block><block s="gotoXY"><block s="reportVariadicSum"><list><block s="xPosition"></block><l>0.5</l></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><block s="reportMonadic"><l><option>floor</option></l><block var="i"/></block><block var="samples"/></block><block s="reportQuotient"><block var="stage height"/><l>3.2</l></block></list></block></block></script></block></script></custom-block><block s="up"></block></script></block></script></block-definition><block-definition s="stage width" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return StageMorph.prototype.dimensions.x;</l></block><list></list></block></block></script></block-definition><block-definition s="stage height" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return StageMorph.prototype.dimensions.y;</l></block><list></list></block></block></script></block-definition><block-definition s="$circleSolid-1-255-0-0 record" type="reporter" category="sensing"><comment x="0" y="0" w="192" collapsed="false">records an audio snippet and reports it as a new sound, or zero if the user cancels</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>test</l><l>pic</l></list></block><block s="doSetVar"><l>test</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>var soundRecorder,&#xD;    result = false;&#xD;&#xD;soundRecorder = new SoundRecorderDialogMorph(&#xD;    function (audio) {&#xD;        if (audio) {&#xD;            result = new Sound(audio, &apos;recording&apos;);&#xD;        } else {&#xD;            result = null;&#xD;            this.destroy();&#xD;        }&#xD;    }&#xD;);&#xD;&#xD;soundRecorder.cancel = function () {&#xD;    result = null;&#xD;    this.destroy();&#xD;};&#xD;&#xD;soundRecorder.key = &apos;microphone&apos;;&#xD;soundRecorder.popUp(this.world());&#xD;return function () {return result; };</l></block><list></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reifyScript"><script><block s="doSetVar"><l>pic</l><block s="evaluate"><block var="test"/><list></list></block></block><block s="doReport"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="pic"/><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></block></block></script><list></list></block><list></list></block></block><block s="doReport"><block var="pic"/></block></script></block-definition><block-definition s="loudness" type="reporter" category="sensing"><header></header><code></code><translations>ca:volum del so&#xD;es:volumen del sonido&#xD;</translations><inputs></inputs><script><block s="doIf"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return typeof meter == &apos;undefined&apos;</l></block><list></list></block><script><block s="doRun"><block s="reportJSFunction"><list></list><l>navigator.getUserMedia = ( navigator.getUserMedia ||&#xD;                       navigator.webkitGetUserMedia ||&#xD;                       navigator.mozGetUserMedia ||&#xD;                       navigator.msGetUserMedia);&#xD;&#xD;var audioContext = new AudioContext();&#xD;&#xD;/*&#xD;The MIT License (MIT)&#xD;&#xD;Copyright (c) 2014 Chris Wilson&#xD;&#xD;Permission is hereby granted, free of charge, to any person obtaining a copy&#xD;of this software and associated documentation files (the "Software"), to deal&#xD;in the Software without restriction, including without limitation the rights&#xD;to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&#xD;copies of the Software, and to permit persons to whom the Software is&#xD;furnished to do so, subject to the following conditions:&#xD;&#xD;The above copyright notice and this permission notice shall be included in all&#xD;copies or substantial portions of the Software.&#xD;&#xD;THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&#xD;IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&#xD;FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&#xD;AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&#xD;LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&#xD;OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE&#xD;SOFTWARE.&#xD;*/&#xD;&#xD;function createAudioMeter (audioContext,clipLevel,averaging,clipLag) {&#xD;	 var processor = audioContext.createScriptProcessor(512);&#xD;	 processor.onaudioprocess = volumeAudioProcess;&#xD;	 processor.clipping = false;&#xD;	 processor.lastClip = 0;&#xD;	 processor.volume = 0;&#xD;	 processor.clipLevel = clipLevel || 0.98;&#xD;	 processor.averaging = averaging || 0.95;&#xD;	 processor.clipLag = clipLag || 750;&#xD; 	processor.connect(audioContext.destination);&#xD; 	return processor;&#xD;};&#xD;&#xD;function volumeAudioProcess (event) {&#xD;  var buf = event.inputBuffer.getChannelData(0),&#xD;      bufLength = buf.length,&#xD; 	    sum = 0,&#xD;      x;&#xD;  for (var i=0; i&lt;bufLength; i++) {&#xD;   	x = buf[i];&#xD;   	if (Math.abs(x)&gt;=this.clipLevel) {&#xD;    		this.clipping = true;&#xD;    		this.lastClip = window.performance.now();&#xD;   	}&#xD;   	sum += x * x;&#xD;  }&#xD;  var rms =  Math.sqrt(sum / bufLength);&#xD;  this.volume = Math.max(rms, this.volume*this.averaging);&#xD;};&#xD;&#xD;function gotStream (stream) {&#xD;  mediaStreamSource = audioContext.createMediaStreamSource(stream);&#xD;  window.meter = createAudioMeter(audioContext);&#xD;  mediaStreamSource.connect(meter);&#xD;};&#xD;&#xD;navigator.getUserMedia(&#xD;  {&#xD;    "audio": {&#xD;      "mandatory": {&#xD;        "googEchoCancellation": "false",&#xD;        "googAutoGainControl": "false",&#xD;        "googNoiseSuppression": "false",&#xD;        "googHighpassFilter": "false"&#xD;      },&#xD;      "optional": []&#xD;    },&#xD;  }, gotStream, nop);</l></block><list></list></block></script><list></list></block><block s="doWaitUntil"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return typeof meter != &apos;undefined&apos;</l></block><list></list></block></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return Math.floor(meter.volume * 100);</l></block><list></list></block></block></script></block-definition><block-definition s="$flash map %&apos;fn&apos; over %&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="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>fn</l><l>data</l><l>proc</l></list><l>return proc.reportAtomicMap(fn, data);</l></block><list><block var="fn"/><block var="data"/></list></block></block></script></block-definition><block-definition s="$flash keep %&apos;test&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="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>fn</l><l>data</l><l>proc</l></list><l>return proc.reportAtomicKeep(fn, data);</l></block><list><block var="test"/><block var="data"/></list></block></block></script></block-definition><block-definition s="$flash combine %&apos;fn&apos; with %&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="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>fn</l><l>data</l><l>proc</l></list><l>return proc.reportAtomicCombine(fn, data);</l></block><list><block var="fn"/><block var="data"/></list></block></block></script></block-definition><block-definition s="$flash sort %&apos;data&apos; by %&apos;fn&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>data</l><l>fn</l><l>proc</l></list><l>return proc.reportAtomicSort(data, fn);</l></block><list><block var="data"/><block var="fn"/></list></block></block></script></block-definition><block-definition s="$flash reverse %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>list</l></list><l>return new List(list.asArray().slice().reverse());</l></block><list><block var="list"/></list></block></block></script></block-definition><block-definition s="Leap number of hands" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return window.controller.frame(0).hands.length;</l></block><list></list></block></block></script></block-definition><block-definition s="Leap %&apos;pos&apos; position of hand %&apos;num&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">x<options>x&#xD;y&#xD;z</options></input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doIfElse"><block s="reportNot"><block s="reportVariadicGreaterThan"><list><block var="num"/><custom-block s="Leap number of hands"></custom-block></list></block></block><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>pos</l><l>num</l></list><l>var a = {x:0, y:1, z:2}[pos]; return window.controller.frame(0).hands[num-1].stabilizedPalmPosition[a];</l></block><list><block var="pos"/><block var="num"/></list></block></block></script><script><block s="doReport"><l>0</l></block></script></block></script></block-definition><block-definition s="Leap %&apos;pos&apos; rotation of hand %&apos;num&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">yaw<options>yaw&#xD;pitch&#xD;roll</options></input><input type="%n">1</input></inputs><script><block s="doIfElse"><block s="reportNot"><block s="reportVariadicGreaterThan"><list><block var="num"/><custom-block s="Leap number of hands"></custom-block></list></block></block><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>pos</l><l>num</l></list><l>var f = window.controller.frame(0);&#xD;switch (pos){&#xD;  case "yaw":&#xD;    return f.hands[num-1].yaw();&#xD;  case "pitch":&#xD;    return f.hands[num-1].pitch();&#xD;  case "roll":&#xD;    return f.hands[num-1].roll();&#xD;};&#xD;            &#xD;        </l></block><list><block var="pos"/><block var="num"/></list></block></block></script><script><block s="doReport"><l>0</l></block></script></block></script></block-definition><block-definition s="Leap %&apos;pos&apos; position of finger %&apos;num&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">x<options>x&#xD;y&#xD;z</options></input><input type="%n">1</input></inputs><script><block s="doIfElse"><block s="reportNot"><block s="reportVariadicGreaterThan"><list><block var="num"/><block s="evaluate"><block s="reportJSFunction"><list></list><l>return window.controller.frame(0).fingers.length;</l></block><list></list></block></list></block></block><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>pos</l><l>num</l></list><l>var a = {x:0, y:1, z:2}[pos]; return window.controller.frame(0).fingers[num-1].stabilizedTipPosition[a];</l></block><list><block var="pos"/><block var="num"/></list></block></block></script><script><block s="doReport"><l>0</l></block></script></block></script></block-definition><block-definition s="Leap hand %&apos;num&apos; is pinching" type="predicate" category="other"><header></header><code></code><translations></translations><inputs><input type="%s">1</input></inputs><script><block s="doIfElse"><block s="reportNot"><block s="reportVariadicGreaterThan"><list><block var="num"/><custom-block s="Leap number of hands"></custom-block></list></block></block><script><block s="doReport"><block s="reportVariadicGreaterThan"><list><block s="evaluate"><block s="reportJSFunction"><list><l>num</l></list><l>return window.controller.frame(0).hands[num-1].pinchStrength;</l></block><list><block var="num"/></list></block><l>0.75</l></list></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="Leap pinch strength of hand %&apos;num&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doIfElse"><block s="reportNot"><block s="reportVariadicGreaterThan"><list><block var="num"/><custom-block s="Leap number of hands"></custom-block></list></block></block><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="evaluate"><block s="reportJSFunction"><list><l>num</l></list><l>return window.controller.frame(0).hands[num-1].pinchStrength;</l></block><list><block var="num"/></list></block><l>100</l></list></block></block></script><script><block s="doReport"><l>0</l></block></script></block></script></block-definition><block-definition s="Leap $flag" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return window.controller !== undefined</l></block><list></list></block><script><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doDeclareVariables"><list><l>test</l></list></block><block s="doSetVar"><l>test</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>var leapScript,&#xD;    done = false;&#xD;leapScript = document.createElement(&apos;script&apos;),&#xD;leapScript.onload = function () {&#xD;    done = true;&#xD;    console.log(&apos;leap is ready&apos;);&#xD;};&#xD;document.head.appendChild(leapScript);&#xD;leapScript.src = &apos;https://js.leapmotion.com/leap-0.6.4.min.js&apos;;&#xD;return function () {return done; }</l></block><list></list></block></block><block s="doWaitUntil"><block s="evaluate"><block var="test"/><list></list></block></block><block s="doRun"><block s="reportJSFunction"><list></list><l>window.controller = new Leap.Controller({enableGestures: true, background: true}); window.controller.connect();</l></block><list></list></block></script></block-definition><block-definition s="square %&apos;side&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRepeat"><l>4</l><script><block s="forward"><block var="side"/></block><block s="turn"><l>90</l></block></script></block></script></block-definition><block-definition s="polygon corner: %&apos;corner&apos; side: %&apos;side&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doRepeat"><block var="corner"/><script><block s="forward"><block var="side"/></block><block s="turn"><l>45</l></block></script></block></script><scripts><script x="186.7744160625" y="106.000002"><block s="reportQuotient"><l></l><l></l></block></script></scripts></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>de:drucke _ in Größe _&#xD;ca:etiqueta _ de mida _&#xD;es:etiqueta _ de tamaño _&#xD;fr:étiquette _ d&apos;une taille de _&#xD;</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="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations>de:ist _ leer?&#xD;ca:_ buida?&#xD;es:_ vacía?&#xD;fr:_ vide?&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block var="data"/><block s="reportNewList"><list></list></block></list></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>de:behalte Elemente, die _ aus _&#xD;ca:manté els elements on _ de _&#xD;es:mantener los elementos donde _ de _&#xD;fr:garder les items tels que _ de _&#xD;</translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><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><list></list></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-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:kombiniere mit _ die Elemente von _&#xD;ca:combina amb _ els elements de _&#xD;es:combinar con _ los elementos de _&#xD;fr:combine avec _ les items de _&#xD;</translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><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><list></list></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-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>de:wenn _ dann _ sonst _&#xD;ca:si _ llavors _ si no _&#xD;es:si _ entonces _ sino _&#xD;fr:si _ alors _ sinon _&#xD;</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>de:für _ = _ bis _ _&#xD;ca:per _ = _ fins _ _&#xD;es:para _ = _ hasta _ _&#xD;fr:pour _ allant de _ à _ _&#xD;</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="reportVariadicGreaterThan"><list><block var="start"/><block var="end"/></list></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportVariadicLessThan"><list><block var="i"/><block var="end"/></list></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="reportVariadicGreaterThan"><list><block var="i"/><block var="end"/></list></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>de:füge Wörter zusammen _&#xD;ca:uneix les paraules _&#xD;es:unir las palabras _&#xD;fr:fusionne les mots _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><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><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></list></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></list></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><list></list></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-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><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;</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"><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;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;</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><custom-block s="ignore %s"><l>3</l></custom-block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations>de:wirf _&#xD;ca:llança _&#xD;es:lanzar _&#xD;fr:lance _&#xD;</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>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;</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>de:wirf _ _&#xD;ca:llança _ _&#xD;es:lanzar _ _&#xD;fr:lance _ _&#xD;</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>de:für jedes _ von _ _&#xD;ca:per cada _ de _ _&#xD;es:para cada _ de _ _&#xD;fr:pour chaque _ de _ _&#xD;</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>de:falls _ dann _ und pause $pause-1-255-220-0&#xD;ca:si _ fes _ i atura-ho tot $pause-1-255-220-0&#xD;es:si _ haz _ y páralo todo $pause-1-255-220-0&#xD;fr:si _ faire _ et mettre tout en pause $pause-1-255-220-0&#xD;</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><list></list></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><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;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations>de:ignoriere _&#xD;ca:ignora _&#xD;es:ignorar _&#xD;fr:ignore _&#xD;</translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><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;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block-definition><block-definition s="%&apos;x&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition><block-definition s="numbers from %&apos;from&apos; to %&apos;to&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:Zahlen von _ bis _&#xD;ca:nombres des de _ a _&#xD;es:números de _ a _&#xD;fr:nombres de _ à _&#xD;</translations><inputs><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="from"/><block var="to"/></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block var="from"/><custom-block s="numbers from %n to %n"><block s="reportVariadicSum"><list><block var="from"/><l>1</l></list></block><block var="to"/></custom-block></block></block></script></block-definition><block-definition s="map %&apos;func&apos; over %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:wende _ an auf _&#xD;ca:mapeja _ sobre _&#xD;es:mapear _ sobre _&#xD;fr:appliquer _ à _&#xD;</translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block var="data"/></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="func"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><custom-block s="map %repRing over %l"><block var="func"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script></block-definition></blocks><stage name="Bühne" width="480" height="360" costume="1" 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="1470"><pentrails>data:image/png;base64,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l4AEJCCBPAsogPPce2q7BCQgAQnkVkABnNuuU8MlIAEJSCDPAgrgPPee2i4BCUhAArkVUADntuvUcAlIQAISyLOAAjjPvae2S0ACEpBAbgUUwLntOjVcAhKQgATyLKAAznPvqe0SkIAEJJBbAQVwbrtODZeABCQggTwLKIDz3HtquwQkIAEJ5FZAAZzbrlPDJSABCUggzwIK4Dz3ntouAQlIQAK5FVAA57br1HAJSEACEsizgAI4z72ntktAAhKQQG4FFMC57To1XAISkIAE8iygAM5z76ntEpCABCSQWwEFcG67Tg2XgAQkIIE8CyiA89x7arsEJCABCeRWQAGc265TwyUgAQlIIM8CCuA8957aLgEJSEACuRVQAOe269RwCUhAAhLIs4ACOM+9p7ZLQAISkEBuBRTAue06NVwCEpCABPIsoADOc++p7RKQgAQkkFsBBXBuu04Nl4AEJCCBPAsogPPce2q7BCQgAQnkVkABnNuuU8MlIAEJSCDPAgrgPPee2i4BCUhAArkVUADntuvUcAlIQAISyLOAAjjPvae2S0ACEpBAbgUUwLntOjVcAhKQgATyLKAAznPvqe0SkIAEJJBbAQVwbrtODZeABCQggTwLKIDz3HtquwQkIAEJ5FZAAZzbrlPDJSABCUggzwIK4Dz3ntouAQlIQAK5FVAA57br1HAJSEACEsizgAI4z72ntktAAhKQQG4FFMC57To1XAISkIAE8iygAM5z76ntEpCABCSQWwEFcG67Tg2XgAQkIIE8CyiA89x7arsEJCABCeRWQAGc265TwyUgAQlIIM8CCuA8957aLgEJSEACuRVQAOe269RwCUhAAhLIs4ACOM+9p7ZLQAISkEBuBRTAue06NVwCEpCABPIsoADOc++p7RKQgAQkkFsBBXBuu04Nl4AEJCCBPAsogPPce2q7BCQgAQnkVkABnNuuU8MlIAEJSCDPAgrgPPee2i4BCUhAArkVUADntuvUcAlIQAISyLOAAjjPvae2S0ACEpBAbgUUwLntOjVcAhKQgATyLKAAznPvqe0SkIAEJJBbAQVwbrtODZeABCQggTwLKIDz3HtquwQkIAEJ5FZAAZzbrlPDJSABCUggzwIK4Dz3ntouAQlIQAK5FVAA57br1HAJSEACEsizgAI4z72ntktAAhKQQG4FFMC57To1XAISkIAE8iygAM5z76ntEpCABCSQWwEFcG67Tg2XgAQkIIE8CyiA89x7arsEJCABCeRWQAGc265TwyUgAQlIIM8CCuA8957aLgEJSEACuRVQAOe269RwCUhAAhLIs4ACOM+9p7ZLQAISkEBuBRTAue06NVwCEpCABPIsoADOc++p7RKQgAQkkFsBBXBuu04Nl4AEJCCBPAsogPPce2q7BCQgAQnkVkABnNuuU8MlIAEJSCDPAgrgPPee2i4BCUhAArkVUADntuvUcAlIQAISyLOAAjjPvae2S0ACEpBAbgUUwLntOjVcAhKQgATyLKAAznPvqe0SkIAEJJBbAQVwbrtODZeABCQggTwLKIDz3HtquwQkIAEJ5FZAAZzbrlPDJSABCUggzwIK4Dz3ntouAQlIQAK5FVAA57br1HAJSEACEsizgAI4z72ntktAAhKQQG4FFMC57To1XAISkIAE8iygAM5z76ntEpCABCSQWwEFcG67Tg2XgAQkIIE8CyiA89x7arsEJCABCeRWQAGc265TwyUgAQlIIM8C/w/gMNxKtjQEAwAAAABJRU5ErkJggg==</pentrails><costumes><list id="1471"><item><ref mediaID="Bühne_cst_Unbenannt"></ref></item></list></costumes><sounds><list struct="atomic" id="1472"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Stift" idx="1" x="-18.253432679296566" y="46.699744363732236" heading="163.68999997412084" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="92,0,122,1" pen="tip" id="1477"><costumes><list struct="atomic" id="1478"></list></costumes><sounds><list struct="atomic" id="1479"></list></sounds><blocks></blocks><variables></variables><scripts><script x="118.999999" y="30"><block s="receiveGo"></block><block s="setColor"><color>92,0,122,1</color></block><block s="down"></block><block s="doSetVar"><l>a</l><l>7</l></block><block s="doForever"><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l><option>random</option></l></block><block s="clear"></block><block s="doWarp"><script><block s="doSetVar"><l>b</l><l>0</l></block><block s="doRepeat"><l>100</l><script><block s="forward"><block var="b"/></block><block s="turn"><block var="a"/></block><block s="doChangeVar"><l>b</l><l>1</l></block></script></block></script></block><block s="doChangeVar"><l>a</l><l>.03</l></block></script></block></script></scripts></sprite><watcher var="a" style="normal" x="10" y="10" color="243,118,29"/><watcher var="b" style="normal" x="10" y="31.000001999999995" color="243,118,29"/></sprites></stage><variables><variable name="a"><l>550.4499999997412</l></variable><variable name="b"><l>100</l></variable></variables></scene></scenes></project><media name="digi4all-L1-turtle-art 4" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><costume name="Unbenannt" center-x="240" center-y="180" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADotJREFUeF7t1cEJADAMxLBk/6Fb6BD1R1ngQAS8M3PGESBAgAABAl8FVoC/ehsjQIAAAQJPQIA9AgECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBC5oYGgQUTbVPQAAAABJRU5ErkJggg==" mediaID="Bühne_cst_Unbenannt"/></media></snapdata>