<snapdata remixID="11988462"><project name="tree evolution" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="tree evolution"><notes></notes><palette><category name="IDE tools" color="230,230,34,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="add color picker functionality" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">by dardoro</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>//Based on Snap! code base with minor modification&#xD;&#xD;if( !InputSlotDialogMorph.prototype._createSlotTypeButtons){&#xD;InputSlotDialogMorph.prototype._createSlotTypeButtons = InputSlotDialogMorph.prototype.createSlotTypeButtons  &#xD;}  &#xD;&#xD;InputSlotDialogMorph.prototype.createSlotTypeButtons = function () {&#xD;  this.addSlotTypeButton(&apos;Color&apos;, &apos;%clr&apos;);&#xD;  this._createSlotTypeButtons();  &#xD;}&#xD;&#xD;InputSlotDialogMorph.prototype.fixSlotsLayout = function () {&#xD;    var slots = this.slots,&#xD;        scale = SyntaxElementMorph.prototype.scale,&#xD;        xPadding = 10 * scale,&#xD;        ypadding = 14 * scale,&#xD;        bh = (fontHeight(10) / 1.2 + 15) * scale, // slot type button height&#xD;        ah = (fontHeight(10) / 1.2 + 10) * scale, // arity button height&#xD;        size = 13, // number slot type radio buttons&#xD;        cols = [&#xD;            slots.left() + xPadding,&#xD;            slots.left() + slots.width() / 3,&#xD;            slots.left() + slots.width() * 2 / 3&#xD;        ],&#xD;        rows = [&#xD;            slots.top() + ypadding,&#xD;            slots.top() + ypadding + bh,&#xD;            slots.top() + ypadding + bh * 2,&#xD;            slots.top() + ypadding + bh * 3,&#xD;            slots.top() + ypadding + bh * 4,&#xD;            slots.top() + ypadding + bh * 5,&#xD;&#xD;            slots.top() + ypadding + bh * 5 + ah,&#xD;            slots.top() + ypadding + bh * 5 + ah * 2&#xD;        ],&#xD;        idx,&#xD;        row = -1,&#xD;        col;&#xD;&#xD;    // slot types:&#xD;&#xD;    for (idx = 0; idx &lt; size; idx += 1) {&#xD;        col = idx % 3;&#xD;        if (idx % 3 === 0) {row += 1; }&#xD;        slots.children[idx].setPosition(new Point(&#xD;            cols[col],&#xD;            rows[row]&#xD;        ));&#xD;    }&#xD;&#xD;    // arity:&#xD;    col = 0;&#xD;    row = 5;&#xD;    for (idx = size; idx &lt; size + 3; idx += 1) {&#xD;        slots.children[idx].setPosition(new Point(&#xD;            cols[col],&#xD;            rows[row + idx - size]&#xD;        ));&#xD;    }&#xD;&#xD;    // default input&#xD;    this.slots.defaultInputLabel.setPosition(&#xD;        this.slots.radioButtonSingle.label.topRight().add(new Point(5, 0))&#xD;    );&#xD;    this.slots.defaultInputField.setCenter(&#xD;        this.slots.defaultInputLabel.center().add(new Point(&#xD;            this.slots.defaultInputField.width() / 2&#xD;                + this.slots.defaultInputLabel.width() / 2 + 5,&#xD;            0&#xD;        ))&#xD;    );&#xD;    this.slots.defaultSwitch.setCenter(&#xD;        this.slots.defaultInputLabel.center().add(new Point(&#xD;            this.slots.defaultSwitch.width() / 2&#xD;                + this.slots.defaultInputLabel.width() / 2 + 5,&#xD;            0&#xD;        ))&#xD;    );&#xD;&#xD;    // loop arrow&#xD;    this.slots.loopArrow.setPosition(this.slots.defaultInputLabel.position());&#xD;    this.slots.settingsButton.setPosition(&#xD;        this.slots.bottomRight().subtract(&#xD;            this.slots.settingsButton.extent().add(&#xD;                this.padding + this.slots.border&#xD;            )&#xD;        )&#xD;    );&#xD;&#xD;    this.slots.changed();&#xD;};&#xD;</l></block><list></list></block></script></block-definition><block-definition s="$arrowLeftOutline %&apos;NbMove&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n">10</input></inputs><script><block s="changeXPosition"><block s="reportMonadic"><l><option>neg</option></l><block var="NbMove"/></block></block></script></block-definition><block-definition s="$arrowRightOutline %&apos;NbMove&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n">10</input></inputs><script><block s="changeXPosition"><block var="NbMove"/></block></script></block-definition><block-definition s="$arrowUpOutline %&apos;NbMove&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n">10</input></inputs><script><block s="changeYPosition"><block var="NbMove"/></block></script></block-definition><block-definition s="$arrowDownOutline %&apos;NbMove&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n">10</input></inputs><script><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block var="NbMove"/></block></block></script></block-definition><block-definition s="$arrowLeftOutline" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="changeXPosition"><l>-1</l></block></script></block-definition><block-definition s="$arrowRightOutline" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="changeXPosition"><l>1</l></block></script></block-definition><block-definition s="$arrowUpOutline" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="changeYPosition"><l>1</l></block></script></block-definition><block-definition s="$arrowDownOutline" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="changeYPosition"><l>-1</l></block></script></block-definition><block-definition s="$arrowRightOutline center $arrowLeftOutline" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="changeXPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportGet"><l><option>left</option></l></block><block s="reportGet"><l><option>right</option></l></block></list></block><l>2</l></block></block></block></script></block-definition><block-definition s="$arrowUpOutline center $arrowDownOutline" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportGet"><l><option>bottom</option></l></block><block s="reportGet"><l><option>top</option></l></block></list></block><l>2</l></block></block></block></script></block-definition><block-definition s="-- = %&apos;n&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%anyUE" readonly="true"></input></inputs><script><block s="doRun"><block s="reifyScript"><script><block s="doChangeVar"><l></l><l>-1</l></block></script><list></list></block><list><block var="n"/></list></block><block s="doReport"><block s="evaluate"><block var="n"/><list></list></block></block></script></block-definition><block-definition s="animate setter %&apos;setter&apos; getter %&apos;getter&apos; delta %&apos;delta&apos; over %&apos;duration&apos; secs easing %&apos;easing&apos;" type="command" category="control"><header></header><code></code><translations>de:animiere Setter _ Getter _ Delta _ über _ Sek. beschleunigt _&#xD;ca:modifica setter _ i getter _ amb delta _ en _ segons de forma _&#xD;pt:anima com modificador _ e inspector _ de _ em _ s de forma _&#xD;</translations><inputs><input type="%cmdRing"></input><input type="%repRing"></input><input type="%n">50</input><input type="%n">1</input><input type="%repRing"></input></inputs><script><block s="doDeclareVariables"><list><l>end time</l><l>destination</l></list></block><block s="doSetVar"><l>end time</l><block s="reportVariadicSum"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></list></block></block><block s="doSetVar"><l>destination</l><block s="reportVariadicSum"><list><block s="evaluate"><block var="getter"/><list></list></block><block var="delta"/></list></block></block><block s="doUntil"><block s="reportGreaterThan"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="end time"/></block><script><block s="doRun"><block var="setter"/><list><block s="reportDifference"><block var="destination"/><block s="reportVariadicProduct"><list><block var="delta"/><block s="evaluate"><block var="easing"/><list><block s="reportQuotient"><block s="reportDifference"><block var="end time"/><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></block></list></block></list></block></block></list></block></script></block><block s="doRun"><block var="setter"/><list><block var="destination"/></list></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><header></header><code></code><translations>de:Fehler _&#xD;pt:assinala o erro _&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="glide %&apos;steps&apos; in %&apos;duration&apos; secs easing %&apos;easing&apos;" type="command" category="motion"><header></header><code></code><translations>de:gleite _ in _ Sek. beschleunigt: _&#xD;ca:llisca _ en _ segons de forma _&#xD;fr:glisser _ en _ sec. accélérer _&#xD;pt:desliza _ em _ s de forma _&#xD;</translations><inputs><input type="%n">50</input><input type="%n">1</input><input type="%s" readonly="true">linear<options>linear&#xD;quadratic={&#xD;quadratic-in&#xD;quadratic-out&#xD;quadratic-in-out&#xD;}&#xD;cubic={&#xD;cubic-in&#xD;cubic-out&#xD;cubic-in-out&#xD;}&#xD;quart={&#xD;quart-in&#xD;quart-out&#xD;quart-in-out&#xD;}&#xD;sinusoidal={&#xD;sine-in&#xD;sine-out&#xD;sine-in-out&#xD;}&#xD;elastic</options></input></inputs><script><block s="doDeclareVariables"><list><l>destX</l><l>destY</l><l>end time</l><l>deltaX</l><l>deltaY</l><l>func</l></list></block><block s="forward"><block var="steps"/></block><block s="doSetVar"><l>destX</l><block s="xPosition"></block></block><block s="doSetVar"><l>destY</l><block s="yPosition"></block></block><block s="forward"><block s="reportVariadicProduct"><list><block var="steps"/><l>-1</l></list></block></block><block s="doSetVar"><l>end time</l><block s="reportVariadicSum"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></list></block></block><block s="doSetVar"><l>deltaX</l><block s="reportDifference"><block var="destX"/><block s="xPosition"></block></block></block><block s="doSetVar"><l>deltaY</l><block s="reportDifference"><block var="destY"/><block s="yPosition"></block></block></block><block s="doIfElse"><block s="reportIsA"><block var="easing"/><l><option>reporter</option></l></block><script><block s="doSetVar"><l>func</l><block var="easing"/></block></script><script><block s="doSetVar"><l>func</l><custom-block s="easing %txt"><block var="easing"/></custom-block></block></script></block><block s="doUntil"><block s="reportGreaterThan"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="end time"/></block><script><block s="setXPosition"><block s="reportDifference"><block var="destX"/><block s="reportVariadicProduct"><list><block var="deltaX"/><block s="evaluate"><block var="func"/><list><block s="reportQuotient"><block s="reportDifference"><block var="end time"/><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></block></list></block></list></block></block></block><block s="setYPosition"><block s="reportDifference"><block var="destY"/><block s="reportVariadicProduct"><list><block var="deltaY"/><block s="evaluate"><block var="func"/><list><block s="reportQuotient"><block s="reportDifference"><block var="end time"/><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></block></list></block></list></block></block></block></script></block><block s="gotoXY"><block var="destX"/><block var="destY"/></block></script></block-definition><block-definition s="animate %&apos;attribute&apos; by %&apos;delta&apos; in %&apos;duration&apos; secs easing %&apos;easing&apos;" type="command" category="motion"><header></header><code></code><translations>de:animiere _ um _ in _ Sek. beschleunigt: _&#xD;ca:modifica _ amb _ en _ segons de forma _&#xD;pt:anima _ de _ em _ s de forma _&#xD;</translations><inputs><input type="%s" readonly="true">x position<options>x position&#xD;y position&#xD;direction&#xD;size&#xD;ghost effect&#xD;color effect&#xD;saturation effect&#xD;brightness effect&#xD;fisheye effect&#xD;whirl effect&#xD;pixelate effect&#xD;mosaic effect&#xD;negative effect&#xD;tempo&#xD;volume&#xD;balance</options></input><input type="%n">50</input><input type="%n">1</input><input type="%s" readonly="true">linear<options>linear&#xD;quadratic={&#xD;quadratic-in&#xD;quadratic-out&#xD;quadratic-in-out&#xD;}&#xD;cubic={&#xD;cubic-in&#xD;cubic-out&#xD;cubic-in-out&#xD;}&#xD;quart={&#xD;quart-in&#xD;quart-out&#xD;quart-in-out&#xD;}&#xD;sinusoidal={&#xD;sine-in&#xD;sine-out&#xD;sine-in-out&#xD;}&#xD;elastic</options></input></inputs><script><block s="doDeclareVariables"><list><l>accessors</l><l>func</l></list></block><block s="doSetVar"><l>accessors</l><block s="reportIfElse"><block s="reportEquals"><block var="attribute"/><l>x position</l></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setXPosition"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="xPosition"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportEquals"><block var="attribute"/><l>y position</l></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setYPosition"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="yPosition"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportEquals"><block var="attribute"/><l>direction</l></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setHeading"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="direction"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportEquals"><block var="attribute"/><l>size</l></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setScale"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getScale"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportEquals"><block var="attribute"/><l>tempo</l></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="doSetTempo"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getTempo"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportEquals"><block var="attribute"/><l>volume</l></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setVolume"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getVolume"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportEquals"><block var="attribute"/><l>balance</l></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setPan"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getPan"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setEffect"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="attribute"/><l> </l></block></block><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getEffect"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="attribute"/><l> </l></block></block></block></autolambda><list></list></block></list></block></block></block></block></block></block></block></block></block><block s="doIfElse"><block s="reportIsA"><block var="easing"/><l><option>reporter</option></l></block><script><block s="doSetVar"><l>func</l><block var="easing"/></block></script><script><block s="doSetVar"><l>func</l><custom-block s="easing %txt"><block var="easing"/></custom-block></block></script></block><custom-block s="animate setter %cmdRing getter %repRing delta %n over %n secs easing %repRing"><block s="reportListItem"><l>1</l><block var="accessors"/></block><block s="reportListItem"><l>2</l><block var="accessors"/></block><block var="delta"/><block var="duration"/><block var="func"/></custom-block></script></block-definition><block-definition s="easing %&apos;choice&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Beschleunigung _&#xD;ca:de forma _&#xD;pt:a forma _&#xD;</translations><inputs><input type="%txt" readonly="true">linear<options>linear&#xD;quadratic={&#xD;quadratic-in&#xD;quadratic-out&#xD;quadratic-in-out&#xD;}&#xD;cubic={&#xD;cubic-in&#xD;cubic-out&#xD;cubic-in-out&#xD;}&#xD;quart={&#xD;quart-in&#xD;quart-out&#xD;quart-in-out&#xD;}&#xD;sinusoidal={&#xD;sine-in&#xD;sine-out&#xD;sine-in-out&#xD;}&#xD;elastic</options></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="choice"/><l>linear</l></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportMonadic"><l><option>id</option></l><l></l></block></autolambda><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>quadratic-in</l></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>quadratic-out</l></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportDifference"><l>2</l><l></l></block></list></block></autolambda><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>quadratic-in-out</l></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportLessThan"><l></l><l>.5</l></block><block s="reportVariadicProduct"><list><l>2</l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportDifference"><l>4</l><block s="reportVariadicProduct"><list><l>2</l><l></l></list></block></block><l></l></list></block><l>1</l></block></block></autolambda><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>cubic-in</l></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></autolambda><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>cubic-out</l></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><custom-block s="-- = %anyUE"><block var="t"/></custom-block><block var="t"/></list></block><block var="t"/></list></block><l>1</l></list></block></autolambda><list><l>t</l></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>cubic-in-out</l></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportLessThan"><l></l><l>.5</l></block><block s="reportVariadicProduct"><list><l>4</l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><l></l><l>1</l></block><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><l></l></list></block><l>2</l></block></list></block><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><l></l></list></block><l>2</l></block></list></block><l>1</l></list></block></block></autolambda><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>quart-in</l></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></list></block></autolambda><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>quart-out</l></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportDifference"><l>1</l><block s="reportVariadicProduct"><list><custom-block s="-- = %anyUE"><block var="t"/></custom-block><block s="reportVariadicProduct"><list><block var="t"/><block s="reportVariadicProduct"><list><block var="t"/><block var="t"/></list></block></list></block></list></block></block></autolambda><list><l>t</l></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>quart-in-out</l></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportLessThan"><l></l><l>.5</l></block><block s="reportVariadicProduct"><list><l>8</l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></list></block></list></block><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportDifference"><l>1</l><block s="reportVariadicProduct"><list><l>8</l><block s="reportVariadicProduct"><list><custom-block s="-- = %anyUE"><block var="t"/></custom-block><block s="reportVariadicProduct"><list><block var="t"/><block s="reportVariadicProduct"><list><block var="t"/><block var="t"/></list></block></list></block></list></block></list></block></block></autolambda><list><l>t</l></list></block><list><l></l></list></block></block></autolambda><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>sine-in</l></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>sin</option></l><block s="reportVariadicSum"><list><l>90</l><block s="reportVariadicProduct"><list><l></l><l>90</l></list></block></list></block></block></block></autolambda><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>sine-out</l></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportMonadic"><l><option>sin</option></l><block s="reportVariadicProduct"><list><l></l><l>90</l></list></block></block></autolambda><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>sine-in-out</l></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportQuotient"><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>cos</option></l><block s="reportVariadicProduct"><list><l></l><l>180</l></list></block></block></block><l>2</l></block></autolambda><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="choice"/><l>elastic</l></block><script><block s="doReport"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>p</l></list></block><block s="doSetVar"><l>p</l><l>0.3</l></block><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportPower"><l>2</l><block s="reportVariadicProduct"><list><l>-10</l><l></l></list></block></block><block s="reportMonadic"><l><option>sin</option></l><custom-block s="degrees %n"><block s="reportVariadicProduct"><list><block s="reportDifference"><l></l><block s="reportQuotient"><block var="p"/><l>4</l></block></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><l>2</l><block s="errorObsolete"></block></list></block><block var="p"/></block></list></block></custom-block></block></list></block><l>1</l></list></block></block></script><list></list></block></block></script></block><custom-block s="error %s"><block s="reportJoinWords"><list><l>unknown easing function "</l><block var="choice"/><l>"</l></list></block></custom-block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; $nl in %&apos;time&apos; secs easing %&apos;easing&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:für _ = _ bis _ _ in _ Sek. beschleunigt: _ _&#xD;ca:per _ = _ fins _ _ en _ segons de forma _ _&#xD;pt:para _ de _ a _ _ em _ s de forma _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">0</input><input type="%n">100</input><input type="%n">1</input><input type="%txt" readonly="true">linear<options>linear&#xD;quadratic={&#xD;quadratic-in&#xD;quadratic-out&#xD;quadratic-in-out&#xD;}&#xD;cubic={&#xD;cubic-in&#xD;cubic-out&#xD;cubic-in-out&#xD;}&#xD;quart={&#xD;quart-in&#xD;quart-out&#xD;quart-in-out&#xD;}&#xD;sinusoidal={&#xD;sine-in&#xD;sine-out&#xD;sine-in-out&#xD;}&#xD;elastic</options></input><input type="%ca"></input></inputs><script><block s="doSetVar"><l>i</l><block var="start"/></block><custom-block s="animate setter %cmdRing getter %repRing delta %n over %n secs easing %repRing"><block s="reifyScript"><script><block s="doSetVar"><l>i</l><l></l></block><block s="doRun"><block var="action"/><list></list></block></script><list></list></block><block s="reifyReporter"><autolambda><block var="i"/></autolambda><list></list></block><block s="reportDifference"><block var="end"/><block var="start"/></block><block var="time"/><block s="reportIfElse"><block s="reportIsA"><block var="easing"/><l><option>reporter</option></l></block><block var="easing"/><custom-block s="easing %txt"><block var="easing"/></custom-block></block></custom-block></script></block-definition><block-definition s="costume from text %&apos;text&apos; size %&apos;size&apos; (center pivot)" type="reporter" category="looks"><header></header><code></code><translations>de:Kostüm aus Text _ Größe _&#xD;pt:um traje com o texto _ de tamanho _&#xD;</translations><inputs><input type="%s">A</input><input type="%n">72</input></inputs><script><block s="doDeclareVariables"><list><l>costume</l><l>x</l><l>y</l><l>dir</l><l>cst</l><l>trails</l></list></block><block s="doSetVar"><l>x</l><block s="xPosition"></block></block><block s="doSetVar"><l>y</l><block s="yPosition"></block></block><block s="doSetVar"><l>dir</l><block s="direction"></block></block><block s="doSetVar"><l>cst</l><block s="getCostumeIdx"></block></block><block s="up"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="doSwitchToCostume"><l><option>Turtle</option></l></block><block s="doSetVar"><l>trails</l><block s="reportPenTrailsAsCostume"></block></block><block s="clear"></block><block s="gotoXY"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><l>0</l></block><block s="write"><block var="text"/><block var="size"/></block><block s="gotoXY"><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><block s="xPosition"></block></list></block><l>2</l></block><l>0</l></block><block s="doSetVar"><l>costume</l><block s="reportPenTrailsAsCostume"></block></block><block s="clear"></block><block s="doRun"><block s="reportJSFunction"><list><l>costume</l><l>name</l></list><l>costume.name = name;</l></block><list><block var="costume"/><block var="text"/></list></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doSwitchToCostume"><block var="trails"/></block><block s="doStamp"></block><block s="doSwitchToCostume"><block var="cst"/></block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="setHeading"><block var="dir"/></block><block s="doReport"><block var="costume"/></block></script><scripts><script x="218.57142857142858" y="250.54761904761884"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block></script></scripts></block-definition><block-definition s="add %&apos;cst&apos; to my costumes" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%obj"></input></inputs><script><block s="doAddToList"><block var="cst"/><block s="reportGet"><l><option>costumes</option></l></block></block></script></block-definition><block-definition s="button costume from text %&apos;text&apos; size %&apos;size&apos; MarX %&apos;MarX&apos; MarY %&apos;MarY&apos; pen size %&apos;PenS&apos; bg color %&apos;BgC&apos; txt color %&apos;TxC&apos; PivotX %&apos;PivotX&apos; PivotY %&apos;PivotY&apos;" type="reporter" category="looks"><comment x="0" y="0" w="155.83333333333334" collapsed="false">Button costume from text v1.1&#xD;By Loucheman&#xD;&#xD;Create a costume for any button you want !&#xD;&#xD;text: text on the button&#xD;Size: size of text &#xD;MarX: left and right margin to increase the width of the button&#xD;MarY: save as MarX but fot height&#xD;pensize: thickness of the line&#xD;&#xD;Thk Dardoro for the color picker functionality.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Button</input><input type="%n">20</input><input type="%n">20</input><input type="%n">10</input><input type="%n">5</input><input type="%clr"></input><input type="%clr"></input><input type="%txt" readonly="true">center<options>left&#xD;center&#xD;right</options></input><input type="%txt" readonly="true">center<options>left&#xD;center&#xD;right</options></input></inputs><script><block s="doDeclareVariables"><list><l>costume</l><l>x</l><l>y</l><l>dir</l><l>cst</l><l>trails</l><l>MarginX</l><l>MarginY</l><l>PenSize</l><l>SavePensize</l><l>SavePenColor</l></list></block><block s="doSetVar"><l>MarginX</l><block var="MarX"/></block><block s="doSetVar"><l>MarginY</l><block var="MarY"/></block><block s="doSetVar"><l>PenSize</l><block var="PenS"/></block><block s="doSetVar"><l>x</l><block s="xPosition"></block></block><block s="doSetVar"><l>y</l><block s="yPosition"></block></block><block s="doSetVar"><l>dir</l><block s="direction"></block></block><block s="doSetVar"><l>cst</l><block s="reportGet"><l><option>costume</option></l></block></block><block s="doSetVar"><l>SavePenColor</l><block s="reportNewList"><list><block s="getPenAttribute"><l><option>hue</option></l></block><block s="getPenAttribute"><l><option>saturation</option></l></block><block s="getPenAttribute"><l><option>brightness</option></l></block><block s="getPenAttribute"><l><option>transparency</option></l></block></list></block></block><block s="doSetVar"><l>SavePensize</l><block s="getPenAttribute"><l><option>size</option></l></block></block><block s="setSize"><block var="PenSize"/></block><block s="up"></block><block s="setHeading"><l>90</l></block><block s="doSetVar"><l>trails</l><block s="reportPenTrailsAsCostume"></block></block><block s="clear"></block><block s="doDeclareVariables"><list><l>UpperLeftCorner</l><l>BottomRightCorner</l></list></block><block s="doSetVar"><l>UpperLeftCorner</l><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><block s="reportRound"><block s="reportQuotient"><block var="PenSize"/><l>2</l></block></block></list></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block><block s="reportRound"><block s="reportQuotient"><block var="PenSize"/><l>2</l></block></block></block></list></block></block><block s="doSetVar"><l>BottomRightCorner</l><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><block var="PenSize"/></list></block><block var="MarginX"/></list></block><block s="reportVariadicProduct"><list><block s="reportStringSize"><block var="text"/></block><custom-block s="letter width at size %n"><block var="size"/></custom-block></list></block></list></block><block var="MarginX"/></list></block><block s="reportRound"><block s="reportQuotient"><block var="PenSize"/><l>2</l></block></block></list></block><block s="reportDifference"><block s="reportDifference"><block s="reportDifference"><block s="reportDifference"><block s="reportDifference"><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block><block var="PenSize"/></block><block var="MarginY"/></block><custom-block s="letter height at size %n"><block var="size"/></custom-block></block><block var="MarginY"/></block><block s="reportRound"><block s="reportQuotient"><block var="PenSize"/><l>2</l></block></block></block><l>1</l></block></list></block></block><block s="gotoXY"><block s="reportListItem"><l>1</l><block var="UpperLeftCorner"/></block><block s="reportListItem"><l>2</l><block var="UpperLeftCorner"/></block></block><block s="setColor"><color>16,4,0,1</color></block><block s="down"></block><block s="gotoXY"><block s="reportListItem"><l>1</l><block var="BottomRightCorner"/></block><block s="reportListItem"><l>2</l><block var="UpperLeftCorner"/></block></block><block s="gotoXY"><block s="reportListItem"><l>1</l><block var="BottomRightCorner"/></block><block s="reportListItem"><l>2</l><block var="BottomRightCorner"/></block></block><block s="gotoXY"><block s="reportListItem"><l>1</l><block var="UpperLeftCorner"/></block><block s="reportListItem"><l>2</l><block var="BottomRightCorner"/></block></block><block s="gotoXY"><block s="reportListItem"><l>1</l><block var="UpperLeftCorner"/></block><block s="reportListItem"><l>2</l><block var="UpperLeftCorner"/></block></block><block s="up"></block><block s="gotoXY"><custom-block s="average %mult%n"><list><block s="reportListItem"><l>1</l><block var="UpperLeftCorner"/></block><block s="reportListItem"><l>1</l><block var="BottomRightCorner"/></block></list></custom-block><custom-block s="average %mult%n"><list><block s="reportListItem"><l>2</l><block var="UpperLeftCorner"/></block><block s="reportListItem"><l>2</l><block var="BottomRightCorner"/></block></list></custom-block></block><custom-block s="set pen color to Dardoro color %s"><block var="BgC"/></custom-block><block s="floodFill"></block><block s="gotoXY"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><block var="MarginX"/></list></block><block s="reportQuotient"><block var="PenSize"/><l>1</l></block></list></block><l>1</l></list></block><block s="reportDifference"><block s="reportDifference"><block s="reportDifference"><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block><block var="MarginY"/></block><block s="reportQuotient"><block var="PenSize"/><l>1</l></block></block><custom-block s="letter height at size %n"><block var="size"/></custom-block></block><l>1</l></block></block><custom-block s="set pen color to Dardoro color %s"><block var="TxC"/></custom-block><block s="write"><block var="text"/><block var="size"/></block><block s="setPenColorDimension"><l><option>hue</option></l><block s="reportListItem"><l>1</l><block var="SavePenColor"/></block></block><block s="setPenColorDimension"><l><option>saturation</option></l><block s="reportListItem"><l>2</l><block var="SavePenColor"/></block></block><block s="setPenColorDimension"><l><option>brightness</option></l><block s="reportListItem"><l>3</l><block var="SavePenColor"/></block></block><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>4</l><block var="SavePenColor"/></block></block><block s="setXPosition"><block s="reportIfElse"><block s="reportEquals"><block var="PivotX"/><l>left</l></block><block s="reportListItem"><l>1</l><block var="UpperLeftCorner"/></block><block s="reportIfElse"><block s="reportEquals"><block var="PivotX"/><l>right</l></block><block s="reportListItem"><l>1</l><block var="BottomRightCorner"/></block><custom-block s="average %mult%n"><list><block s="reportListItem"><l>1</l><block var="UpperLeftCorner"/></block><block s="reportListItem"><l>1</l><block var="BottomRightCorner"/></block></list></custom-block></block></block><comment w="90" collapsed="false">pivot x</comment></block><block s="setYPosition"><block s="reportIfElse"><block s="reportEquals"><block var="PivotY"/><l>upper</l></block><block s="reportListItem"><l>2</l><block var="UpperLeftCorner"/></block><block s="reportIfElse"><block s="reportEquals"><block var="PivotY"/><l>bottom</l></block><block s="reportListItem"><l>2</l><block var="BottomRightCorner"/></block><custom-block s="average %mult%n"><list><block s="reportListItem"><l>2</l><block var="UpperLeftCorner"/></block><block s="reportListItem"><l>2</l><block var="BottomRightCorner"/></block></list></custom-block></block><comment w="90" collapsed="false">pivot y</comment></block></block><block s="doSetVar"><l>costume</l><block s="reportPenTrailsAsCostume"></block></block><block s="clear"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doSwitchToCostume"><block var="trails"/></block><block s="doStamp"></block><block s="doSwitchToCostume"><block var="cst"/></block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="setHeading"><block var="dir"/></block><block s="doReport"><block var="costume"/></block></script></block-definition><block-definition s="letter width at size %&apos;size&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n">72</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="size"/><l>55</l></list></block><l>100</l></block></block></script></block-definition><block-definition s="letter height at size %&apos;size&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n">72</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="size"/><l>360</l></list></block><l>564</l></block></block></script><scripts><script x="121.00000000000006" y="98.66666666666664"><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="size"/><l>133</l></list></block><l>200</l></block></block></script></scripts></block-definition><block-definition s="average %&apos;nums&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:a soma de _&#xD;</translations><inputs><input type="%mult%n"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="nums"/></block><script><block s="doReport"><l>0</l></block></script></block><block s="doReport"><block s="reportQuotient"><block s="reportCombine"><block var="nums"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="nums"/></block></block></block></script></block-definition><block-definition s="set pen color to Dardoro color %&apos;color&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>rgb</l></list></block><block s="doSetVar"><l>rgb</l><block s="reportTextSplit"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block s="reportJoinWords"><list><block var="color"/></list></block><l>rgba(</l></block></block><l>)</l></block></block><l>,</l></block></block><custom-block s="set pen color to r: %n g: %n b: %n"><block s="reportListItem"><l>1</l><block var="rgb"/></block><block s="reportListItem"><l>2</l><block var="rgb"/></block><block s="reportListItem"><l>3</l><block var="rgb"/></block></custom-block></script><scripts><script x="408.99999999999994" y="35.66666666666663"><block s="reportJoinWords"><list><l>hello </l></list></block></script><script x="473" y="126.66666666666661"><block s="doSetVar"><l>rgb</l><block s="reportNewList"><list><block s="reportVariadicProduct"><list><block s="reportTextSplit"><custom-block s="substring of %txt before %txt"><custom-block s="substring of %txt after %txt"><block s="reportJoinWords"><list><block var="color"/></list></block><l>(</l></custom-block><l>)</l></custom-block><l><option>csv</option></l></block><block s="reportNewList"><list><l>1</l><l>1</l><l>1</l></list></block></list></block></list></block></block></script></scripts></block-definition><block-definition s="substring of %&apos;string&apos; after %&apos;marker&apos;" type="reporter" category="operators"><comment x="0" y="0" w="203.33333333333337" collapsed="false">Reports the portion of the first input string starting after the first occurrence of the second string.  If the second string isn&apos;t found in the first string, reports an empty string.</comment><header></header><code></code><translations>pt:o texto de _ depois de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><custom-block s="position of %s in %txt"><block var="marker"/><block var="string"/></custom-block></block><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="index"/><l>0</l></block><l></l><custom-block s="substring of %txt from position %n to position %n inclusive"><block var="string"/><block s="reportVariadicSum"><list><block var="index"/><block s="reportStringSize"><block var="marker"/></block></list></block><l></l></custom-block></block></block></script></block-definition><block-definition s="position of %&apos;small&apos; in %&apos;large&apos;" type="reporter" category="operators"><comment x="0" y="0" w="294" collapsed="false">Reports the character position (starting from 1) of the beginning of the first input string inside the second input string.&#xD;If it&apos;s not found, reports 0.</comment><header></header><code></code><translations>pt:a posição de _ em _&#xD;</translations><inputs><input type="%s"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="use case-independent comparison"></custom-block><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><custom-block s="to lower case %txt"><block var="small"/></custom-block><custom-block s="to lower case %txt"><block var="large"/></custom-block></list></block><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><block var="small"/><block var="large"/></list></block></block></block></script></block-definition><block-definition s="use case-independent comparison" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block s="reportApplyExtension"><l>var_get(name)</l><list><l>_case indepent</l></list></block></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><l></l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="to lower case %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="275.3333333333333" collapsed="false">Reports the input text with lower case letters instead of capital letters in the input.  Uses the user&apos;s locale&apos;s rules for case conversion.</comment><header></header><code></code><translations>pt:em minúsculas _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>txt_lowercase(txt)</l><list><block var="text"/></list></block></block></script></block-definition><block-definition s="substring of %&apos;str&apos; from position %&apos;start&apos; to position %&apos;end&apos; inclusive" type="reporter" category="operators"><comment x="0" y="0" w="297.3333333333333" collapsed="false">Reports the portion of the first input (string) starting at the position given by the second input (counting from 1, like LETTER n OF) and ending at the position given by the third input (also counting from 1).  If the third input is empty, reports the portion from the first position to the end of the string.&#xD;If a position number is negative, counts from the end backward, so -1 is the last character, -2 is the next to last, etc.</comment><header></header><code></code><translations>pt:o texto de _ entre as posições _ e _ , inclusive&#xD;</translations><inputs><input type="%txt"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportLetter"><block s="reportNumbers"><block var="start"/><block s="reportIfElse"><block s="reportEquals"><block var="end"/><l>0</l></block><block s="reportStringSize"><block var="str"/></block><block var="end"/></block></block><block var="str"/></block></block></block></script></block-definition><block-definition s="substring of %&apos;string&apos; before %&apos;marker&apos;" type="reporter" category="operators"><comment x="0" y="0" w="175.33333333333334" collapsed="false">Reports the part of the first string up to the first instance of the second string inside it.  If the second string isn&apos;t found, reports the entire first string.</comment><header></header><code></code><translations>pt:o texto de _ antes de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><custom-block s="position of %s in %txt"><block var="marker"/><block var="string"/></custom-block></block><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="index"/><l>0</l></block><block var="string"/><custom-block s="substring of %txt from position %n to position %n inclusive"><block var="string"/><l>1</l><block s="reportDifference"><block var="index"/><l>1</l></block></custom-block></block></block></script></block-definition><block-definition s="set pen color to r: %&apos;r&apos; g: %&apos;g&apos; b: %&apos;b&apos;" type="command" category="pen"><comment x="0" y="0" w="220.66666666666663" collapsed="false">Takes three inputs for red, green, and blue&#xD;values, each between 0 and 255.  0,0,0 is black; 255,255,255 is white.  255,255,0 is yellow, and so on.&#xD;&#xD;The SET PEN block in this library lets you set individual red, green, or blue without changing the others, lets you provide a list of three RGB color components, and lets you provide a six-digit hexadecimal number, the form in which RGB color values are usually found online.&#xD;&#xD;See Appendix A of the Snap! Reference Manual for details.</comment><header></header><code></code><translations>pt:altera a cor da tua caneta para vermelho _ , verde _ e azul _ (0 a 255)&#xD;ca:fixa el llapis al color r: _ g: _ b: _&#xD;</translations><inputs><input type="%n">255</input><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doApplyExtension"><l>clr_setpen(clr)</l><list><block s="reportApplyExtension"><l>clr_rgba(r, g, b, a)</l><list><block var="r"/><block var="g"/><block var="b"/><block s="reportApplyExtension"><l>clr_channel(clr, rgba)</l><list><block s="reportApplyExtension"><l>clr_pen</l><list></list></block><l>a</l></list></block></list></block></list></block></script></block-definition><block-definition s="Delete all clones" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doForEach"><l>clone</l><block s="reportGet"><l><option>clones</option></l></block><script><block s="doTellTo"><block var="clone"/><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block></script></block></script></block></script></block-definition><block-definition s="Show all sprites" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doForEach"><l>sprites</l><block s="reportGet"><l><option>other sprites</option></l></block><script><block s="doTellTo"><block var="sprites"/><block s="reifyScript"><script><block s="show"></block></script><list></list></block><list></list></block></script></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="Hide all sprites" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doForEach"><l>sprites</l><block s="reportGet"><l><option>other sprites</option></l></block><script><block s="doTellTo"><block var="sprites"/><block s="reifyScript"><script><block s="hide"></block></script><list></list></block><list></list></block></script></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="is JS enable?" type="predicate" category="operators"><comment x="0" y="0" w="90" collapsed="false">return is javascript is enable&#xD;&#xD;Thk to Joecooldo </comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>JS?</l></list></block><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doSetVar"><l>JS?</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>return true;</l></block><list></list></block></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l>JS?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><l></l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block><block s="doReport"><block var="JS?"/></block></script></block-definition><block-definition s="item at col: %&apos;col&apos; line: %&apos;row&apos; of %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><block var="col"/><block s="reportListItem"><block var="row"/><block var="list"/></block></block></block></script></block-definition><block-definition s="On Stage (pivot)?" type="predicate" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Return true if the pivot (rotation center) is on the stage</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportIsA"><block s="reportGet"><l><option>self</option></l></block><l><option>sprite</option></l></block><script><block s="doReport"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block s="xPosition"></block><block s="reportAttributeOf"><l><option>left</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><block s="reportAnd"><block s="reportLessThanOrEquals"><block s="xPosition"></block><block s="reportAttributeOf"><l><option>right</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><block s="reportAnd"><block s="reportLessThanOrEquals"><block s="yPosition"></block><block s="reportAttributeOf"><l><option>top</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><block s="reportGreaterThanOrEquals"><block s="yPosition"></block><block s="reportAttributeOf"><l><option>bottom</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></block></block></block></block></script><script><custom-block s="error %txt"><l>Don&apos;t run this into the stage !</l></custom-block></script></block></script><scripts><script x="256" y="227.20000000000002"><block s="reportAttributeOf"><l><option>left</option></l><block s="reportGet"><l><option>stage</option></l></block></block></script></scripts></block-definition><block-definition s="On Stage (sprite)?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportIsA"><block s="reportGet"><l><option>self</option></l></block><l><option>sprite</option></l></block><script><block s="doReport"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block s="reportAttributeOf"><l><option>right</option></l><block s="reportGet"><l><option>self</option></l></block></block><block s="reportAttributeOf"><l><option>left</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><block s="reportAnd"><block s="reportLessThanOrEquals"><block s="reportAttributeOf"><l><option>left</option></l><block s="reportGet"><l><option>self</option></l></block></block><block s="reportAttributeOf"><l><option>right</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><block s="reportAnd"><block s="reportLessThanOrEquals"><block s="reportAttributeOf"><l><option>bottom</option></l><block s="reportGet"><l><option>self</option></l></block></block><block s="reportAttributeOf"><l><option>top</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><block s="reportGreaterThanOrEquals"><block s="reportAttributeOf"><l><option>top</option></l><block s="reportGet"><l><option>self</option></l></block></block><block s="reportAttributeOf"><l><option>bottom</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></block></block></block></block></script><script><custom-block s="error %txt"><l>Don&apos;t run this into the stage !</l></custom-block></script></block></script></block-definition><block-definition s="On Stage horizontally (pivot)?" type="predicate" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Return true if the pivot (rotation center) is on the stage (watch only x axis)</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportIsA"><block s="reportGet"><l><option>self</option></l></block><l><option>sprite</option></l></block><script><block s="doReport"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block s="xPosition"></block><block s="reportAttributeOf"><l><option>left</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><block s="reportLessThanOrEquals"><block s="xPosition"></block><block s="reportAttributeOf"><l><option>right</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></block></block></script><script><custom-block s="error %txt"><l>Don&apos;t run this into the stage !</l></custom-block></script></block></script></block-definition><block-definition s="On Stage vertically (pivot)?" type="predicate" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Return true if the pivot (rotation center) is on the stage (watch only y axis)</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportIsA"><block s="reportGet"><l><option>self</option></l></block><l><option>sprite</option></l></block><script><block s="doReport"><block s="reportAnd"><block s="reportLessThanOrEquals"><block s="yPosition"></block><block s="reportAttributeOf"><l><option>top</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><block s="reportGreaterThanOrEquals"><block s="yPosition"></block><block s="reportAttributeOf"><l><option>bottom</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></block></block></script><script><custom-block s="error %txt"><l>Don&apos;t run this into the stage !</l></custom-block></script></block></script></block-definition><block-definition s="PI" type="reporter" category="operators"><header></header><code></code><translations>pt:π&#xD;</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>pt:_ radianos em graus&#xD;</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="radians %&apos;degrees&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:_ radianos em graus&#xD;</translations><inputs><input type="%n">90</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="degrees"/><custom-block s="PI"></custom-block></list></block><l>180</l></block></block></script></block-definition><block-definition s="pick random odd number %&apos;min&apos; to %&apos;max&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIf"><block s="reportGreaterThan"><block var="min"/><block var="max"/></block><script><block s="doDeclareVariables"><list><l>SaveValue</l></list></block><block s="doSetVar"><l>SaveValue</l><block var="min"/></block><block s="doSetVar"><l>min</l><block var="max"/></block><block s="doSetVar"><l>max</l><block var="SaveValue"/></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportModulus"><block var="min"/><l>2</l></block><l>0</l></block><script><block s="doChangeVar"><l>min</l><l>2</l></block></script></block><block s="doIf"><block s="reportNotEquals"><block s="reportModulus"><block var="max"/><l>2</l></block><l>0</l></block><script><block s="doChangeVar"><l>max</l><l>1</l></block></script></block><block s="doReport"><block s="reportDifference"><custom-block s="pick random even number %n to %n"><block var="min"/><block var="max"/></custom-block><l>1</l></block></block></script></block-definition><block-definition s="pick random even number %&apos;min&apos; to %&apos;max&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIf"><block s="reportGreaterThan"><block var="min"/><block var="max"/></block><script><block s="doDeclareVariables"><list><l>SaveValue</l></list></block><block s="doSetVar"><l>SaveValue</l><block var="min"/></block><block s="doSetVar"><l>min</l><block var="max"/></block><block s="doSetVar"><l>max</l><block var="SaveValue"/></block></script></block><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportRandom"><block s="reportRound"><block s="reportQuotient"><block var="min"/><l>2</l></block></block><custom-block s="%n div %n"><block var="max"/><l>2</l></custom-block></block><l>2</l></list></block></block></script><scripts><comment x="362.8571428571429" y="47.28571428571428" w="90" collapsed="false">add comment here...</comment></scripts></block-definition><block-definition s="pick random %&apos;min&apos; to %&apos;max&apos; with %&apos;NbDecimale&apos; decimals" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">2.5</input><input type="%n">2</input></inputs><script><block s="doReport"><custom-block s="Round %n to %n decimals"><block s="reportQuotient"><block s="reportRandom"><block s="reportVariadicProduct"><list><block var="min"/><block s="reportMonadic"><l><option>10^</option></l><block s="reportMonadic"><l><option>floor</option></l><block var="NbDecimale"/></block></block></list></block><block s="reportVariadicProduct"><list><block var="max"/><block s="reportMonadic"><l><option>10^</option></l><block s="reportMonadic"><l><option>floor</option></l><block var="NbDecimale"/></block></block></list></block></block><block s="reportMonadic"><l><option>10^</option></l><block s="reportMonadic"><l><option>floor</option></l><block var="NbDecimale"/></block></block></block><block var="NbDecimale"/></custom-block></block></script></block-definition><block-definition s="Round %&apos;number&apos; to %&apos;NbDecimals&apos; decimals" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">10.12345</input><input type="%n">2</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportRound"><block s="reportVariadicProduct"><list><block var="number"/><block s="reportMonadic"><l><option>10^</option></l><block var="NbDecimals"/></block></list></block></block><block s="reportMonadic"><l><option>10^</option></l><block var="NbDecimals"/></block></block></block></script></block-definition><block-definition s="prev costume" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSwitchToCostume"><block s="reportIfElse"><block s="reportNotEquals"><block s="getCostumeIdx"></block><l>1</l></block><block s="reportDifference"><block s="getCostumeIdx"></block><l>1</l></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportGet"><l><option>costumes</option></l></block></block></block></block></script></block-definition><block-definition s="remap value %&apos;value&apos; from range %&apos;int1a&apos; , %&apos;int1b&apos; to range %&apos;int2a&apos; , %&apos;int2b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="int1a"/><block var="int1b"/></block><script><custom-block s="error %txt"><l>int1a should be different of int1b</l></custom-block></script></block><block s="doReport"><block s="reportVariadicSum"><list><block var="int2a"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="value"/><block var="int1a"/></block><block s="reportQuotient"><block s="reportDifference"><block var="int2b"/><block var="int2a"/></block><block s="reportDifference"><block var="int1b"/><block var="int1a"/></block></block></list></block></list></block></block></script><scripts><comment x="497.7705078125" y="22" w="424.0000000000001" collapsed="false">Remap a value from a original range of value to another range of value.&#xD;&#xD;example:&#xD;you have a value in a range of 0 to 5 and you want to transpose this value to another range of values 0 -100.&#xD;&#xD;in this case:&#xD;if value = 0 return 0&#xD;if value = 3 return 60&#xD;if value = 5 return 100&#xD;&#xD;another example:&#xD;you want to do 2.5D (size change with y position)&#xD;you can remap the y position of your sprite to obtain the size of your object&#xD;remap &quot;y position&quot; from range -180 to 180 to range 100 to 10&#xD;&#xD;if y position = -180 return 100 (the size)&#xD;if y position = 100 return 30&#xD;if y position = 180 return 10&#xD;use the result to change the size of your sprite !&#xD;&#xD;Block by Loucheman&#xD;&#xD;See example at: https://snap.berkeley.edu/snap/snap.html#present:Username=loucheman&amp;ProjectName=remap%20value&amp;editMode&amp;noRun</comment></scripts></block-definition><block-definition s="set stage size w: %&apos;sizeH&apos; h: %&apos;sizeV&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n">480</input><input type="%n">360</input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/SciSnapExtensions.js</l></list></block><block s="doApplyExtension"><l>SciS_setvalue(which,value)</l><list><l>Stage size</l><block s="reportNewList"><list><block var="sizeH"/><block var="sizeV"/></list></block></list></block></script></block-definition><block-definition s="insert substring %&apos;substring&apos; to string %&apos;string&apos; str at pos %&apos;pos&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">by Loucheman&#xD;&#xD;Insert a substring into a string at a defined position</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input><input type="%n"></input></inputs><script><block s="doSetVar"><l>pos</l><block s="reportMonadic"><l><option>floor</option></l><block var="pos"/></block></block><block s="doIfElse"><block s="reportLessThanOrEquals"><block var="pos"/><l>1</l></block><script><block s="doReport"><block s="reportJoinWords"><list><block var="substring"/><block var="string"/></list></block></block></script><script><block s="doIfElse"><block s="reportGreaterThan"><block var="pos"/><block s="reportStringSize"><block var="string"/></block></block><script><block s="doReport"><block s="reportJoinWords"><list><block var="string"/><block var="substring"/></list></block></block></script><script><block s="doReport"><block s="reportJoinWords"><list><block s="reportLetter"><block s="reportNumbers"><l>1</l><block s="reportDifference"><block var="pos"/><l>1</l></block></block><block var="string"/></block><block var="substring"/><block s="reportLetter"><block s="reportNumbers"><block var="pos"/><block s="reportStringSize"><block var="string"/></block></block><block var="string"/></block></list></block></block></script></block></script></block></script><scripts><script x="175.71428571428572" y="269.47619047619116"><block s="reportJoinWords"><list><l>hello </l><l>world</l></list></block></script><script x="303.2857142857142" y="274.45238095238085"><block s="reportVariadicSum"><list><l></l><l>1</l></list></block></script></scripts></block-definition><block-definition s="// %&apos;commentaire&apos; %&apos;code&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%mlt"></input><input type="%cs"></input></inputs><script><block s="doRun"><block var="code"/><list></list></block></script></block-definition><block-definition s="position" type="reporter" category="motion"><comment x="0" y="0" w="157.14285714285714" collapsed="false">Return the x.y position of a sprite</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportNotEquals"><block s="reportGet"><l><option>self</option></l></block><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportNewList"><list><block s="xPosition"></block><block s="yPosition"></block></list></block><block s="reportNewList"><list><l>0</l><l>0</l></list></block></block><comment w="90" collapsed="true">If into stage: return 0,0</comment></block></script></block-definition><block-definition s="key pressed" type="reporter" category="sensing"><variables><list struct="atomic" id="2741">LastKeys</list></variables><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportEquals"><block var="LastKeys"/><l>0</l></block><script><block s="doSetVar"><l>LastKeys</l><block s="reportNewList"><list></list></block></block></script></block><block s="doWarp"><script><custom-block s="let %upvar be %s"><l>currentKeysPressed</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportKeyPressed"><l></l></block></autolambda><list></list></block><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><l>control</l><l>shift</l><l>alt</l><l>()lock</l><l>func</l><l>space</l></list></block><block s="reportNewList"><list><l>up arrow</l><l>down arrow</l><l>left arrow</l><l>right arrow</l></list></block><block s="reportUnicodeAsLetter"><block s="reportNumbers"><l>33</l><l>126</l></block></block></list></block></block></custom-block></script></block><block s="doSetVar"><l>LastKeys</l><custom-block s="pipe %s $arrowRight %mult%repRing"><block var="LastKeys"/><list><block s="reifyReporter"><autolambda><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="currentKeysPressed"/><block var="value"/></block></autolambda><list><l>value</l><l>index</l><l>list</l></list></block><block var="LastKeys"/></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="reportConcatenatedLists"><list><l/><block var="currentKeysPressed"/></list></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="$flash remove duplicates from %l"><l/></custom-block></autolambda><list></list></block></list></custom-block></block><block s="doReport"><block var="LastKeys"/></block></script></block-definition><block-definition s="let %&apos;var&apos; be %&apos;val&apos;" type="command" category="other"><comment x="0" y="0" w="183.33333333333337" collapsed="false">LET (FOO) BE (5)&#xD;is equivalent to&#xD;SCRIPT VARIABLES (FOO)&#xD;SET (FOO) TO (5)</comment><header></header><code></code><translations>pt:cria a variável de guião _ com valor _&#xD;</translations><inputs><input type="%upvar"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>var</l><block var="val"/></block></script></block-definition><block-definition s="$flash remove duplicates from %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="209" collapsed="false">Reports a new list whose items are the same as in the input list, except that if two or more equal items appear in the input list, only the last one is kept in the result.</comment><header></header><code></code><translations>ca:elimina els duplicats de _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>columns</option></l><block s="reportApplyExtension"><l>dta_analyze(list)</l><list><block var="data"/></list></block></block></block></block></script></block-definition><block-definition s="pick random (real) %&apos;n1&apos; to %&apos;n2&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">0</input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doIfElse"><block s="reportAnd"><block s="reportEquals"><block s="reportModulus"><block var="n1"/><l>1</l></block><l>.5</l></block><block s="reportEquals"><block s="reportModulus"><block var="n2"/><l>1</l></block><l>.5</l></block></block><script><block s="doSetVar"><l>a</l><l>.6</l></block></script><script><block s="doSetVar"><l>a</l><l>.5</l></block></script><comment w="153.57142857142858" collapsed="false">By adding 0.5 or 0.6, the &quot;pick random&quot; is switching to the real world...&#xD;If (n1+.5) and (n2+.5  (2 integers)), adding .6 instead...</comment></block><block s="doReport"><block s="reportDifference"><block s="reportRandom"><block s="reportVariadicSum"><list><block var="n1"/><block var="a"/></list></block><block s="reportVariadicSum"><list><block var="n2"/><block var="a"/></list></block></block><block var="a"/></block></block></script></block-definition><block-definition s="dash line %&apos;pos1&apos; %&apos;pos2&apos; dot type %&apos;type&apos; flat line ends: %&apos;flat line ends&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%txt" readonly="true">small<options>small&#xD;medium&#xD;large&#xD;x-large</options></input><input type="%b">false</input></inputs><script><block s="doIfElse"><block s="reportEquals"><block var="type"/><l>x-large</l></block><script><block s="doSetVar"><l>type</l><l>4</l></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="type"/><l>large</l></block><script><block s="doSetVar"><l>type</l><l>3</l></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="type"/><l>medium</l></block><script><block s="doSetVar"><l>type</l><l>2</l></block></script><script><block s="doSetVar"><l>type</l><l>1</l></block></script></block></script></block></script></block><block s="doDeclareVariables"><list><l>saveFlatLineEnds</l><l>dist</l><l>dotLength</l><l>spaceLength</l><l>nbSegment</l><l>nbDot</l><l>nbSpace</l></list></block><block s="doSetVar"><l>saveFlatLineEnds</l><block s="reportGlobalFlag"><l><option>flat line ends</option></l></block></block><block s="doSetVar"><l>dist</l><custom-block s="distance between %s %s"><block var="pos1"/><block var="pos2"/></custom-block></block><block s="doSetVar"><l>dotLength</l><block s="reportVariadicProduct"><list><block s="getPenAttribute"><l><option>size</option></l></block><block var="type"/></list></block></block><block s="doSetVar"><l>nbSegment</l><block s="reportIfElse"><block s="reportEquals"><block s="reportModulus"><block s="reportRound"><block s="reportQuotient"><block var="dist"/><block var="dotLength"/></block></block><l>2</l></block><l>1</l></block><block s="reportRound"><block s="reportQuotient"><block var="dist"/><block var="dotLength"/></block></block><block s="reportVariadicSum"><list><block s="reportRound"><block s="reportQuotient"><block var="dist"/><block var="dotLength"/></block></block><l>1</l></list></block></block><comment w="90" collapsed="false">should be odd...</comment></block><block s="doSetVar"><l>nbSpace</l><custom-block s="%n div %n"><block var="nbSegment"/><l>2</l></custom-block></block><block s="doSetVar"><l>nbDot</l><block s="reportDifference"><block var="nbSegment"/><block var="nbSpace"/></block></block><block s="doSetVar"><l>spaceLength</l><block s="reportQuotient"><block s="reportDifference"><block var="dist"/><block s="reportVariadicProduct"><list><block var="nbDot"/><block var="dotLength"/></list></block></block><block var="nbSpace"/></block></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><block var="flat line ends"/></block><block s="doIfElse"><block var="flat line ends"/><script><block s="doGotoObject"><block var="pos1"/></block><block s="doFaceTowards"><block var="pos2"/></block><block s="down"></block><block s="forward"><block var="dotLength"/></block><block s="up"></block><block s="doRepeat"><block var="nbSpace"/><script><block s="forward"><block var="spaceLength"/></block><block s="down"></block><block s="forward"><block var="dotLength"/></block><block s="up"></block></script></block></script><script><block s="doGotoObject"><block var="pos1"/></block><block s="doFaceTowards"><block var="pos2"/></block><block s="forward"><block s="reportQuotient"><block s="getPenAttribute"><l><option>size</option></l></block><l>2</l></block></block><block s="down"></block><block s="forward"><block s="reportDifference"><block var="dotLength"/><block s="getPenAttribute"><l><option>size</option></l></block></block></block><block s="doRepeat"><block var="nbSpace"/><script><block s="up"></block><block s="forward"><block s="reportVariadicSum"><list><block var="spaceLength"/><block s="getPenAttribute"><l><option>size</option></l></block></list></block></block><block s="down"></block><block s="forward"><block s="reportDifference"><block var="dotLength"/><block s="getPenAttribute"><l><option>size</option></l></block></block></block></script></block><block s="up"></block></script></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><block var="saveFlatLineEnds"/></block></script><scripts><script x="435" y="962.2"><block s="doGotoObject"><block var="pos1"/></block><block s="doFaceTowards"><block var="pos2"/></block><block s="forward"><block s="reportQuotient"><block var="dotLength"/><l>2</l></block></block><block s="down"></block><block s="forward"><l>0</l></block><block s="doRepeat"><block var="nbSpace"/><script><block s="up"></block><block s="forward"><block s="reportVariadicSum"><list><block var="dotLength"/><block var="spaceLength"/></list></block></block><block s="down"></block><block s="forward"><l>0</l></block></script></block><block s="up"></block></script><script x="312" y="1105.333333333333"><block var="dotLength"/></script><script x="309" y="1144"><block s="forward"><l>0</l></block></script><script x="386" y="443.19999999999993"><block s="doIf"><l><bool>false</bool></l><script><block s="doShowVar"><l>dist</l></block><block s="doShowVar"><l>dotLength</l></block><block s="doShowVar"><l>spaceLength</l></block><block s="doShowVar"><l>nbSegment</l></block><block s="doShowVar"><l>nbDot</l></block><block s="doShowVar"><l>nbSpace</l></block><block s="doPauseAll"></block><block s="doHideVar"><l>dist</l></block><block s="doHideVar"><l>dotLength</l></block><block s="doHideVar"><l>spaceLength</l></block><block s="doHideVar"><l>nbSegment</l></block><block s="doHideVar"><l>nbDot</l></block><block s="doHideVar"><l>nbSpace</l></block></script></block></script><script x="309" y="885.5333333333335"><block s="doGotoObject"><block s="reportNewList"><list><l>80</l><l>0</l></list></block></block></script></scripts></block-definition><block-definition s="%&apos;numerateur&apos; div %&apos;dedominateur&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="numerateur"/><block var="dedominateur"/></block></block></block></script></block-definition><block-definition s="line %&apos;pos1&apos; %&apos;pos2&apos; flat line ends: %&apos;flat line ends&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%b">false</input></inputs><script><block s="doDeclareVariables"><list><l>saveFlatLineEnds</l></list></block><block s="doSetVar"><l>saveFlatLineEnds</l><block s="reportGlobalFlag"><l><option>flat line ends</option></l></block></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><block var="flat line ends"/></block><block s="doIfElse"><block var="flat line ends"/><script><block s="up"></block><block s="doGotoObject"><block var="pos1"/></block><block s="down"></block><block s="doGotoObject"><block var="pos2"/></block><block s="up"></block></script><script><block s="up"></block><block s="doGotoObject"><block var="pos1"/></block><block s="doFaceTowards"><block var="pos2"/></block><block s="forward"><block s="reportQuotient"><block s="getPenAttribute"><l><option>size</option></l></block><l>2</l></block></block><block s="down"></block><block s="forward"><block s="reportDifference"><custom-block s="distance between %s %s"><block var="pos1"/><block var="pos2"/></custom-block><block s="getPenAttribute"><l><option>size</option></l></block></block></block><block s="up"></block></script></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><block var="saveFlatLineEnds"/></block></script><scripts><script x="278.42857142857133" y="412.78571428571325"><block s="doGotoObject"><block var="pos2"/></block></script><script x="268.85714285714266" y="312.73809523809433"><block s="reportQuotient"><l></l><l>2</l></block></script></scripts></block-definition><block-definition s="distance between %&apos;param1&apos; %&apos;param2&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="163.57142857142858" collapsed="false">Calculate the distance between 2 positions (x1y1 -&gt; x2y2) or 2 objects.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>x1</l><l>y1</l><l>x2</l><l>y2</l></list></block><custom-block s="// %mlt"><l>Détermine x1y1</l></custom-block><block s="doIfElse"><block s="reportAnd"><block s="reportIsA"><block var="param1"/><l><option>list</option></l></block><block s="reportAnd"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="param1"/></block><l>2</l></block><block s="reportAnd"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="param1"/></block><l><option>number</option></l></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="param1"/></block><l><option>number</option></l></block></block></block><comment w="90" collapsed="false">Si le paramètre est une coordonnée</comment></block><script><block s="doSetVar"><l>x1</l><block s="reportListItem"><l>1</l><block var="param1"/></block></block><block s="doSetVar"><l>y1</l><block s="reportListItem"><l>2</l><block var="param1"/></block></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="param1"/><l><option>sprite</option></l><comment w="90" collapsed="false">Si le paramètre est un sprite</comment></block><script><block s="doSetVar"><l>x1</l><block s="reportAttributeOf"><l><option>x position</option></l><block var="param1"/></block></block><block s="doSetVar"><l>y1</l><block s="reportAttributeOf"><l><option>y position</option></l><block var="param1"/></block></block></script><script><custom-block s="error %txt"><l>Parameter 1 : must be a sprite or a list (x,y)</l></custom-block></script></block></script></block><custom-block s="// %mlt"><l>Détermine x2y2</l></custom-block><block s="doIfElse"><block s="reportAnd"><block s="reportIsA"><block var="param2"/><l><option>list</option></l></block><block s="reportAnd"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="param2"/></block><l>2</l></block><block s="reportAnd"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="param2"/></block><l><option>number</option></l></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="param2"/></block><l><option>number</option></l></block></block></block><comment w="90" collapsed="false">Si le paramètre est une coordonnée</comment></block><script><block s="doSetVar"><l>x2</l><block s="reportListItem"><l>1</l><block var="param2"/></block></block><block s="doSetVar"><l>y2</l><block s="reportListItem"><l>2</l><block var="param2"/></block></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="param2"/><l><option>sprite</option></l><comment w="90" collapsed="false">Si le paramètre est un sprite</comment></block><script><block s="doSetVar"><l>x2</l><block s="reportAttributeOf"><l><option>x position</option></l><block var="param2"/></block></block><block s="doSetVar"><l>y2</l><block s="reportAttributeOf"><l><option>y position</option></l><block var="param2"/></block></block></script><script><custom-block s="error %txt"><l>Parameter 2 : must be a sprite or a list (x,y)</l></custom-block></script></block></script></block><custom-block s="// %mlt"><l>Pytagore:on trouve la longueur de l&apos;hypoténuse</l></custom-block><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportPower"><block s="reportDifference"><block var="x1"/><block var="x2"/></block><l>2</l></block><block s="reportPower"><block s="reportDifference"><block var="y1"/><block var="y2"/></block><l>2</l></block></list></block></block></block></script></block-definition><block-definition s="// %&apos;rem&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%mlt"></input></inputs></block-definition><block-definition s="costume from commands %&apos;commands&apos;" type="reporter" category="looks"><comment x="0" y="0" w="125.71428571428572" collapsed="false">Return a costume from commands.Last position will be the pivot.&#xD;&#xD;ex:&#xD;goto 0,0&#xD;pen down&#xD;move 10&#xD;rotate 90&#xD;move 10</comment><header></header><code></code><translations>de:Kostüm aus Text _ Größe _&#xD;pt:um traje com o texto _ de tamanho _&#xD;ca:vestit amb el text _ i mida _&#xD;</translations><inputs><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>costume</l><l>x</l><l>y</l><l>dir</l><l>cst</l><l>trails</l><l>pen state</l></list></block><block s="doSetVar"><l>x</l><block s="xPosition"></block></block><block s="doSetVar"><l>y</l><block s="yPosition"></block></block><block s="doSetVar"><l>dir</l><block s="direction"></block></block><block s="doSetVar"><l>cst</l><block s="reportGet"><l><option>costume</option></l></block></block><block s="doSetVar"><l>pen state</l><block s="getPenDown"></block></block><block s="up"></block><block s="doGotoObject"><l><option>center</option></l></block><block s="setHeading"><l>90</l></block><block s="doSwitchToCostume"><l><option>Turtle</option></l></block><block s="doSetVar"><l>trails</l><block s="reportPenTrailsAsCostume"></block></block><block s="clear"></block><block s="doRun"><block var="commands"/><list></list></block><block s="doSetVar"><l>costume</l><block s="reportPenTrailsAsCostume"></block></block><block s="clear"></block><block s="doGotoObject"><l><option>center</option></l></block><block s="doSwitchToCostume"><block var="trails"/></block><block s="doStamp"></block><block s="doSwitchToCostume"><block var="cst"/></block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="setHeading"><block var="dir"/></block><block s="doIf"><block var="pen state"/><script><block s="down"></block></script></block><block s="doReport"><block var="costume"/></block></script></block-definition><block-definition s="right mouse down?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return this.world().hand.mouseButton === "right";</l></block><list></list></block></block></script></block-definition><block-definition s="$find-1-0-0-0 %&apos;search block&apos; $in-1-0-0-0 $project-1-0-0-0" type="reporter" category="IDE tools"><comment x="0" y="0" w="270.75162760416674" collapsed="false">Finds each instance of a block or variable in a project and shows the script(s) it is in (minus any hat block)&#xD;&#xD;If you enter plain text, it will return scripts that contain that text.&#xD;&#xD;Note:  You need to right-click and ringify the block/variable being searched for</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doIf"><block s="reportNot"><block s="reportOr"><block s="reportIsA"><block var="search block"/><l><option>text</option></l></block><block s="reportIsA"><block var="search block"/><l><option>number</option></l></block></block></block><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="search block"/><l><option>blocks</option></l></block></block><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="reifyReporter"><autolambda><block var="result"/></autolambda><list></list></block><l><option>blocks</option></l></block></block></block><script><block s="doSetVar"><l>search block</l><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="search block"/><l><option>blocks</option></l></block></block></block></script><script><block s="doSetVar"><l>search block</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="search block"/><l><option>blocks</option></l></block></block></block></script></block></script></block><block s="doSetVar"><l>result</l><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="key"/></block><l></l></list></block></autolambda><list></list></block><block s="reportCDR"><block var="key"/></block></block></autolambda><list><l>key</l></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><l>1</l></block></autolambda><list><l>result</l></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reportAskFor"><block var="sprite ref"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>name</option></l></block></autolambda><list></list></block><list></list></block></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block s="reportListAttribute"><l><option>flatten</option></l><block s="reportTextSplit"><block var="value"/><l><option>blocks</option></l></block></block><block var="search block"/></block></autolambda><list><l>value</l></list></block><block s="reportAskFor"><block var="sprite ref"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>scripts</option></l></block></autolambda><list></list></block><list></list></block></block></list></block></autolambda><list><l>sprite ref</l></list></block><block s="reportCONS"><block s="reportGet"><l><option>self</option></l></block><block s="reportCONS"><block s="reportGet"><l><option>stage</option></l></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block s="reportAskFor"><block var="all sprites"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>parent</option></l></block></autolambda><list></list></block><list></list></block><l></l></block></autolambda><list><l>all sprites</l></list></block><block s="reportGet"><l><option>other sprites</option></l></block></block></block></block></block></block></block></block></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="branch length %&apos;length&apos; v1.0" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n">50</input></inputs><script><block s="doDeclareVariables"><list><l>myDirection</l><l>myPosition</l></list></block><block s="down"></block><block s="forward"><block var="length"/></block><block s="up"></block><block s="doSetVar"><l>myDirection</l><block s="direction"></block></block><block s="doSetVar"><l>myPosition</l><block s="getPosition"></block></block><block s="doIf"><block s="reportGreaterThanOrEquals"><block var="length"/><l>5</l></block><script><block s="doGotoObject"><block var="myPosition"/></block><block s="setHeading"><block s="reportVariadicSum"><list><block var="myDirection"/><l>30</l></list></block></block><custom-block s="branch length %n v1.0"><block s="reportVariadicProduct"><list><block var="length"/><l>0.66</l></list></block></custom-block><block s="doGotoObject"><block var="myPosition"/></block><block s="setHeading"><block s="reportDifference"><block var="myDirection"/><l>30</l></block></block><custom-block s="branch length %n v1.0"><block s="reportVariadicProduct"><list><block var="length"/><l>0.66</l></list></block></custom-block></script></block></script></block-definition><block-definition s="branch length %&apos;length&apos; v1.1" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n">50</input></inputs><script><block s="doDeclareVariables"><list><l>myDirection</l><l>myPosition</l></list></block><block s="down"></block><block s="forward"><block var="length"/></block><block s="up"></block><block s="doSetVar"><l>myDirection</l><block s="direction"></block></block><block s="doSetVar"><l>myPosition</l><block s="getPosition"></block></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block var="length"/><l>5</l></block><custom-block s="On Stage (pivot)?"></custom-block></block><script><block s="doGotoObject"><block var="myPosition"/></block><block s="setHeading"><block s="reportVariadicSum"><list><block var="myDirection"/><block s="reportRandom"><l>25</l><l>35</l></block></list></block></block><custom-block s="branch length %n v1.1"><block s="reportVariadicProduct"><list><block var="length"/><block s="reportRandom"><l>.5</l><l>1</l></block></list></block></custom-block><block s="doGotoObject"><block var="myPosition"/></block><block s="setHeading"><block s="reportDifference"><block var="myDirection"/><block s="reportRandom"><l>25</l><l>35</l></block></block></block><custom-block s="branch length %n v1.1"><block s="reportVariadicProduct"><list><block var="length"/><block s="reportRandom"><l>.5</l><l>1</l></block></list></block></custom-block></script></block></script></block-definition><block-definition s="branch length %&apos;length&apos; level %&apos;level&apos; v1.20" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n">50</input><input type="%n">0</input></inputs><script><block s="doDeclareVariables"><list><l>myDirection</l><l>myPosition</l></list></block><block s="doChangeVar"><l>level</l><l>1</l></block><block s="down"></block><block s="forward"><block var="length"/></block><block s="up"></block><block s="doSetVar"><l>myDirection</l><block s="direction"></block></block><block s="doSetVar"><l>myPosition</l><block s="getPosition"></block></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block var="length"/><l>5</l></block><custom-block s="On Stage (pivot)?"></custom-block></block><script><block s="doIfElse"><block s="reportGreaterThan"><block var="level"/><l>3</l></block><script><block s="doIf"><block s="reportGreaterThan"><block s="reportRandom"><l>1</l><l>8</l></block><l>1</l></block><script><block s="doGotoObject"><block var="myPosition"/></block><block s="setHeading"><block s="reportVariadicSum"><list><block var="myDirection"/><block s="reportRandom"><l>25</l><l>35</l></block></list></block></block><custom-block s="branch length %n level %n v1.20"><block s="reportVariadicProduct"><list><block var="length"/><block s="reportRandom"><l>.5</l><l>1</l></block></list></block><block var="level"/></custom-block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportRandom"><l>1</l><l>8</l></block><l>1</l></block><script><block s="doGotoObject"><block var="myPosition"/></block><block s="setHeading"><block s="reportDifference"><block var="myDirection"/><block s="reportRandom"><l>25</l><l>35</l></block></block></block><custom-block s="branch length %n level %n v1.20"><block s="reportVariadicProduct"><list><block var="length"/><block s="reportRandom"><l>.5</l><l>1</l></block></list></block><block var="level"/></custom-block></script></block></script><script><block s="doGotoObject"><block var="myPosition"/></block><block s="setHeading"><block s="reportVariadicSum"><list><block var="myDirection"/><block s="reportRandom"><l>25</l><l>35</l></block></list></block></block><custom-block s="branch length %n level %n v1.20"><block s="reportVariadicProduct"><list><block var="length"/><block s="reportRandom"><l>.5</l><l>1</l></block></list></block><block var="level"/></custom-block><block s="doGotoObject"><block var="myPosition"/></block><block s="setHeading"><block s="reportDifference"><block var="myDirection"/><block s="reportRandom"><l>25</l><l>35</l></block></block></block><custom-block s="branch length %n level %n v1.20"><block s="reportVariadicProduct"><list><block var="length"/><block s="reportRandom"><l>.5</l><l>1</l></block></list></block><block var="level"/></custom-block></script></block></script></block></script></block-definition><block-definition s="remap value %&apos;value&apos; from range %&apos;int1a&apos; , %&apos;int1b&apos; to range %&apos;int2a&apos; , %&apos;int2b&apos; force value within range %&apos;force?&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%b">false</input></inputs><script><block s="doIf"><block s="reportEquals"><block var="int1a"/><block var="int1b"/></block><script><custom-block s="error %txt"><l>int1a should be different of int1b</l></custom-block></script></block><block s="doIfElse"><block s="reportNot"><block var="force?"/></block><script><block s="doReport"><block s="reportVariadicSum"><list><block var="int2a"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="value"/><block var="int1a"/></block><block s="reportQuotient"><block s="reportDifference"><block var="int2b"/><block var="int2a"/></block><block s="reportDifference"><block var="int1b"/><block var="int1a"/></block></block></list></block></list></block></block></script><script><block s="doDeclareVariables"><list><l>temp</l></list></block><block s="doSetVar"><l>temp</l><block s="reportVariadicSum"><list><block var="int2a"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="value"/><block var="int1a"/></block><block s="reportQuotient"><block s="reportDifference"><block var="int2b"/><block var="int2a"/></block><block s="reportDifference"><block var="int1b"/><block var="int1a"/></block></block></list></block></list></block></block><block s="doIfElse"><custom-block s="value %n in range %n to %n"><block var="temp"/><block var="int2a"/><block var="int2b"/></custom-block><script><block s="doReport"><block var="temp"/></block></script><script><block s="doIfElse"><block s="reportLessThan"><block var="int2a"/><block var="int2b"/></block><script><block s="doIfElse"><block s="reportLessThan"><block var="temp"/><block var="int2a"/></block><script><block s="doReport"><block var="int2a"/></block></script><script><block s="doReport"><block var="int2b"/></block></script></block></script><script><block s="doIfElse"><block s="reportLessThan"><block var="temp"/><block var="int2b"/></block><script><block s="doReport"><block var="int2b"/></block></script><script><block s="doReport"><block var="int2a"/></block></script></block></script></block></script></block></script></block></script><scripts><comment x="497.77050781250006" y="21.999999999999982" w="424.0000000000001" collapsed="false">Remap a value from a original range of value to another range of value.&#xD;&#xD;example:&#xD;you have a value in a range of 0 to 5 and you want to transpose this value to another range of values 0 -100.&#xD;&#xD;in this case:&#xD;if value = 0 return 0&#xD;if value = 3 return 60&#xD;if value = 5 return 100&#xD;&#xD;another example:&#xD;you want to do 2.5D (size change with y position)&#xD;you can remap the y position of your sprite to obtain the size of your object&#xD;remap &quot;y position&quot; from range -180 to 180 to range 100 to 10&#xD;&#xD;if y position = -180 return 100 (the size)&#xD;if y position = 100 return 30&#xD;if y position = 180 return 10&#xD;use the result to change the size of your sprite !&#xD;&#xD;Block by Loucheman&#xD;&#xD;See example at: https://snap.berkeley.edu/snap/snap.html#present:Username=loucheman&amp;ProjectName=remap%20value&amp;editMode&amp;noRun</comment></scripts></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><comment x="0" y="0" w="268.6666666666667" collapsed="false">Throw an error.&#xD;&#xD;Makes a red halo appear around the script that runs it,&#xD;with the input text shown in a speech balloon next to&#xD;the script, just like any Snap! error.&#xD;&#xD;This is useful to put in the second script of SAFELY TRY&#xD;after some other instructions to undo the partial work of&#xD;the first script.</comment><header></header><code></code><translations>pt:lança o erro _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="value %&apos;Value&apos; in range %&apos;Range1&apos; to %&apos;Range2&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIfElse"><block s="reportLessThanOrEquals"><block var="Range1"/><block var="Range2"/></block><script><block s="doReport"><block s="reportIfElse"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block var="Value"/><block var="Range1"/></block><block s="reportLessThanOrEquals"><block var="Value"/><block var="Range2"/></block></block><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></script><script><block s="doReport"><block s="reportIfElse"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block var="Value"/><block var="Range2"/></block><block s="reportLessThanOrEquals"><block var="Value"/><block var="Range1"/></block></block><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></script></block></script></block-definition><block-definition s="branch length %&apos;length&apos; level %&apos;level&apos; v1.21" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n">50</input><input type="%n">0</input></inputs><script><block s="doDeclareVariables"><list><l>myDirection</l><l>myPosition</l></list></block><block s="doChangeVar"><l>level</l><l>1</l></block><block s="setSize"><custom-block s="remap value %n from range %n , %n to range %n , %n force value within range %b"><block var="level"/><l>1</l><l>10</l><l>4</l><l>1</l><l><bool>false</bool></l></custom-block></block><block s="down"></block><block s="forward"><block var="length"/></block><block s="up"></block><block s="doSetVar"><l>myDirection</l><block s="direction"></block></block><block s="doSetVar"><l>myPosition</l><block s="getPosition"></block></block><block s="doIf"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block var="length"/><l>5</l></block><custom-block s="On Stage (pivot)?"></custom-block></block><script><block s="doIfElse"><block s="reportGreaterThan"><block var="level"/><l>3</l></block><script><block s="doIf"><block s="reportGreaterThan"><block s="reportRandom"><l>1</l><l>8</l></block><l>1</l></block><script><block s="doGotoObject"><block var="myPosition"/></block><block s="setHeading"><block s="reportVariadicSum"><list><block var="myDirection"/><block s="reportRandom"><l>25</l><l>35</l></block></list></block></block><custom-block s="branch length %n level %n v1.21"><block s="reportVariadicProduct"><list><block var="length"/><block s="reportRandom"><l>.5</l><l>1</l></block></list></block><block var="level"/></custom-block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportRandom"><l>1</l><l>8</l></block><l>1</l></block><script><block s="doGotoObject"><block var="myPosition"/></block><block s="setHeading"><block s="reportDifference"><block var="myDirection"/><block s="reportRandom"><l>25</l><l>35</l></block></block></block><custom-block s="branch length %n level %n v1.21"><block s="reportVariadicProduct"><list><block var="length"/><block s="reportRandom"><l>.5</l><l>1</l></block></list></block><block var="level"/></custom-block></script></block></script><script><block s="doGotoObject"><block var="myPosition"/></block><block s="setHeading"><block s="reportVariadicSum"><list><block var="myDirection"/><block s="reportRandom"><l>25</l><l>35</l></block></list></block></block><custom-block s="branch length %n level %n v1.21"><block s="reportVariadicProduct"><list><block var="length"/><block s="reportRandom"><l>.5</l><l>1</l></block></list></block><block var="level"/></custom-block><block s="doGotoObject"><block var="myPosition"/></block><block s="setHeading"><block s="reportDifference"><block var="myDirection"/><block s="reportRandom"><l>25</l><l>35</l></block></block></block><custom-block s="branch length %n level %n v1.21"><block s="reportVariadicProduct"><list><block var="length"/><block s="reportRandom"><l>.5</l><l>1</l></block></list></block><block var="level"/></custom-block></script></block></script></block></script></block-definition><block-definition s="branch length %&apos;length&apos; level %&apos;level&apos; v1.30" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n">50</input><input type="%n">0</input></inputs><script><block s="doDeclareVariables"><list><l>myDirection</l><l>myPosition</l><l>leafClone</l></list></block><block s="doChangeVar"><l>level</l><l>1</l></block><block s="setSize"><custom-block s="remap value %n from range %n , %n to range %n , %n force value within range %b"><block var="level"/><l>1</l><l>10</l><l>4</l><l>1</l><l><bool>false</bool></l></custom-block></block><block s="down"></block><block s="forward"><block var="length"/></block><block s="up"></block><block s="doSetVar"><l>myDirection</l><block s="direction"></block></block><block s="doSetVar"><l>myPosition</l><block s="getPosition"></block></block><block s="doIfElse"><block s="reportAnd"><block s="reportGreaterThanOrEquals"><block var="length"/><l>5</l></block><custom-block s="On Stage (pivot)?"></custom-block></block><script><block s="doIfElse"><block s="reportGreaterThan"><block var="level"/><l>3</l></block><script><block s="doIf"><block s="reportGreaterThan"><block s="reportRandom"><l>1</l><l>8</l></block><l>1</l></block><script><block s="doGotoObject"><block var="myPosition"/></block><block s="setHeading"><block s="reportVariadicSum"><list><block var="myDirection"/><block s="reportRandom"><l>25</l><l>35</l></block></list></block></block><custom-block s="branch length %n level %n v1.30"><block s="reportVariadicProduct"><list><block var="length"/><block s="reportRandom"><l>.5</l><l>1</l></block></list></block><block var="level"/></custom-block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportRandom"><l>1</l><l>8</l></block><l>1</l></block><script><block s="doGotoObject"><block var="myPosition"/></block><block s="setHeading"><block s="reportDifference"><block var="myDirection"/><block s="reportRandom"><l>25</l><l>35</l></block></block></block><custom-block s="branch length %n level %n v1.30"><block s="reportVariadicProduct"><list><block var="length"/><block s="reportRandom"><l>.5</l><l>1</l></block></list></block><block var="level"/></custom-block></script></block></script><script><block s="doGotoObject"><block var="myPosition"/></block><block s="setHeading"><block s="reportVariadicSum"><list><block var="myDirection"/><block s="reportRandom"><l>25</l><l>35</l></block></list></block></block><custom-block s="branch length %n level %n v1.30"><block s="reportVariadicProduct"><list><block var="length"/><block s="reportRandom"><l>.5</l><l>1</l></block></list></block><block var="level"/></custom-block><block s="doGotoObject"><block var="myPosition"/></block><block s="setHeading"><block s="reportDifference"><block var="myDirection"/><block s="reportRandom"><l>25</l><l>35</l></block></block></block><custom-block s="branch length %n level %n v1.30"><block s="reportVariadicProduct"><list><block var="length"/><block s="reportRandom"><l>.5</l><l>1</l></block></list></block><block var="level"/></custom-block></script></block></script><script><block s="doSetVar"><l>leafClone</l><block s="newClone"><l>Leaf</l></block></block><block s="doTellTo"><block var="leafClone"/><block s="reifyScript"><script><block s="doGotoObject"><block var="#1"/></block><block s="setHeading"><block var="#2"/></block></script><list><l>#1</l><l>#2</l></list></block><list><block var="myPosition"/><block s="reportVariadicSum"><list><block var="myDirection"/><l>20</l></list></block></list></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>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;pt:captura _ _&#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></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;pt:lança _&#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;pt:captura _ _&#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;pt:lança _ _&#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="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><comment x="0" y="0" w="263.3333333333333" collapsed="false">This is a breakpoint block, to be used in debugging.&#xD;The Boolean input specifies the condition under which&#xD;the program should pause.  (Use True for an unconditional breakpoint.)  The intent is that the script should have&#xD;SHOW VARIABLE blocks for the process&apos;s local variables.&#xD;After the pause, this block automatically hides all temporary variables.</comment><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;pt:se _ , então _ e faz pausa em tudo $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></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><comment x="0" y="0" w="206.66666666666666" collapsed="false">This block does nothing.&#xD;Use it when you are calling a reporter&#xD;for its side effect and don&apos;t care about&#xD;its return value.</comment><header></header><code></code><translations>de:ignoriere _&#xD;ca:ignora _&#xD;es:ignorar _&#xD;fr:ignore _&#xD;pt:ignora _&#xD;</translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="cascade %&apos;num&apos; times %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="138" collapsed="false">Call f(f(f(...(f(x))))) n times where the three input slots are n, f, and x from left to right.  The # variable can be used inside f to represent how many times f has been called.</comment><header></header><code></code><translations>pt:o resultado de _ invocações em cascata de _ com argumento inicial _ _&#xD;ca:en cascada _ vegades _ _ _&#xD;</translations><inputs><input type="%n"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="cascade until %&apos;pred&apos; %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="210.47493489583331" collapsed="false">Call f(f(f(...(f(x))))) until condition is true, where the three input slots are condition, f, and x from left to right.  The # variable can be used inside f or condition to indicate how many times f has been called.</comment><header></header><code></code><translations>pt:o resultado da invocação em cascata até que _ de _ com argumento inicial _ _&#xD;ca:en cascada fins _ _ _ _&#xD;</translations><inputs><input type="%predRing"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list><block var="result"/></list></block><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="compose %&apos;f&apos; %&apos;g&apos;" type="reporter" category="control"><comment x="0" y="0" w="151.33333333333334" collapsed="false">Returns the function x↦f(g(x)) where f and g are the two inputs.</comment><header></header><code></code><translations>pt:a composição de _ com _&#xD;ca:composa _ _&#xD;</translations><inputs><input type="%repRing"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="f"/><list><block s="evaluate"><block var="g"/><list><l></l></list></block></list></block></autolambda><list></list></block></block></script></block-definition><block-definition s="repeat %&apos;action&apos; until %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="202.66666666666666" collapsed="false">Like the built-in REPEAT UNTIL block, except that the ending condition is not tested until the script has been run the first time.  So the script is run at least once.</comment><header></header><code></code><translations>pt:repete _ até que _ $loop-0.7&#xD;ca:repeteix _ fins _&#xD;</translations><inputs><input type="%cs"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;action&apos; while %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="287.3333333333333" collapsed="false">Run the script repeatedly, as long as the given condition is true.  Runs the script at least once before testing the condition.</comment><header></header><code></code><translations>pt:repete _ enquanto _ $loop-0.7&#xD;ca:repeteix _ mentre _&#xD;</translations><inputs><input type="%cs"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat while %&apos;pred&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="264" collapsed="false">Runs the script repeatedly, as long as the condition is true. Tests the condition before the first time the script is run.  Like the built in REPEAT UNTIL except that in this block the condition must be true, not false.</comment><header></header><code></code><translations>pt:enquanto _ , repete _ $loop-0.7&#xD;</translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;num&apos; %&apos;#&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="171" collapsed="false">Runs the script the specified number of times, like the built-in REPEAT block, but this one provides the # variable that can be used inside the script.  Try&#xD;REPEAT (200)&#xD;                MOVE (#) STEPS&#xD;   RIGHT 92&#xD;with the pen down.</comment><header></header><code></code><translations>pt:repete _ vezes _ _ $loop-0.7&#xD;ca:repeteix _ _ _&#xD;</translations><inputs><input type="%n"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; step %&apos;step&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="247.33333333333334" collapsed="false">The primitive FOR block uses an implicit step of ±1 depending on which of the starting and ending values is larger.  This version allows you to provide an explicit step value.  If the sign of the step input is incompatible with the ordering of the starting and ending values, the script will not be run at all.</comment><header></header><code></code><translations>pt:para _ de _ com passo _ a _ _ $loop-0.7&#xD;ca:per _ = _ incrementant _ fins _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>test</l></list></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doIfElse"><block s="reportLessThan"><block var="step"/><l>0</l></block><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doUntil"><block s="evaluate"><block var="test"/><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="let %&apos;a&apos; be %&apos;val&apos; in %&apos;loop&apos; %&apos;body&apos;" type="command" category="control"><comment x="0" y="0" w="238.66666666666669" collapsed="false">Provides LOOP as a function of one input that runs&#xD;the body of the LET with A set to the function input,&#xD;so the body can run itself recursively.&#xD;See COPY block in Variables for an example of use.</comment><header></header><code></code><translations>pt:tendo _ o valor inicial _ , executa _ definido como _&#xD;ca:fes que _ sigui _ al _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%s"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>a</l><block var="val"/></block><block s="doSetVar"><l>loop</l><block s="reifyScript"><script><block s="doSetVar"><l>a</l><block var="new value"/></block><block s="doRun"><block var="body"/><list><block var="a"/></list></block></script><list><l>new value</l></list></block></block><block s="doRun"><block var="loop"/><list><block var="a"/></list></block></script></block-definition><block-definition s="pipe %&apos;value&apos; $arrowRight %&apos;pipe&apos;" type="reporter" category="control"><comment x="0" y="0" w="339.3333333333333" collapsed="false">The inputs are a starting value and one or more monadic functions.&#xD;The first function is called with the starting value as its input.&#xD;The second function is called with the value reported by the first function as its input, and so on.  PIPE reports the value reported by the last function.  PIPE provides an alternative notation for function composition instead of the usual nesting.&#xD;&#xD;nested acronym:                                                                 &#xD;report (combine (keep items (capital-letter? ( )) from&#xD;                  (map (letter (1) of ( )) over&#xD;                                                 (sentence→list (phrase)))) using (join ( ) ( )))&#xD;&#xD;piped acronym:                                             &#xD;report (pipe (phrase) → &#xD;            (sentence→list ( ))&#xD;                              (map (letter (1) of ( )) over ( ))&#xD;                                              (keep items (capital-letter? ( )) from ( ))&#xD;                                (combine ( ) using (join ( ) ( )))&#xD;&#xD;Some people find PIPE easier to read because the functions are called in the same order in which you read them, whereas in nested composition the innermost function is called first. </comment><header></header><code></code><translations>pt:a aplicação a _ de _&#xD;ca:canalitza _ $arrowRight _&#xD;</translations><inputs><input type="%s"></input><input type="%mult%repRing"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="pipe"/></block><script><block s="doReport"><block var="value"/></block></script></block><block s="doReport"><custom-block s="pipe %s $arrowRight %mult%repRing"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="pipe"/></block><list><block var="value"/></list></block><block s="reportCDR"><block var="pipe"/></block></custom-block></block></script></block-definition><block-definition s="draw tree with this script %&apos;script&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doTellTo"><l>Leaf</l><block s="reifyScript"><script><custom-block s="Delete all clones"></custom-block></script><list></list></block><list></list></block><block s="setSize"><l>1</l></block><block s="clear"></block><block s="setHeading"><l>0</l></block><block s="gotoXY"><l>0</l><l>-180</l></block><block s="doRun"><block var="script"/><list></list></block><block s="setHeading"><l>0</l></block><block s="gotoXY"><l>0</l><l>-180</l></block></script></block-definition><block-definition s="simple message %&apos;message&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%mlt">This is a message !</input></inputs><script><custom-block s="save all sprite properties"></custom-block><block s="show"></block><block s="setEffect"><l><option>ghost</option></l><l>100</l></block><block s="gotoXY"><l>-60</l><l>-30</l></block><block s="doSwitchToCostume"><l><option>Turtle</option></l></block><block s="bubble"><block s="reportJoinWords"><list><block var="message"/><block s="reportUnicodeAsLetter"><l>10</l></block><block s="reportUnicodeAsLetter"><l>10</l></block><l>(Clic to continue)</l></list></block></block><block s="goToLayer"><l><option>front</option></l></block><block s="doWaitUntil"><block s="reportAnd"><block s="reportMouseDown"></block><custom-block s="On Stage position: %l"><block s="reportNewList"><list><block s="reportMouseX"></block><block s="reportMouseY"></block></list></block></custom-block></block></block><block s="doWaitUntil"><block s="reportNot"><block s="reportMouseDown"></block></block></block><custom-block s="restore all saved sprite properties keep vars? %b"><l><bool>false</bool></l></custom-block><block s="bubble"><l></l></block></script></block-definition><block-definition s="On Stage position: %&apos;position&apos;" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIfElse"><block s="reportAnd"><block s="reportAnd"><block s="reportGreaterThan"><block s="reportListItem"><l>1</l><block var="position"/></block><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block s="reportListItem"><l>1</l><custom-block s="stage size"></custom-block></block><l>2</l></block></block></block><block s="reportLessThan"><block s="reportListItem"><l>1</l><block var="position"/></block><block s="reportQuotient"><block s="reportListItem"><l>1</l><custom-block s="stage size"></custom-block></block><l>2</l></block></block></block><block s="reportAnd"><block s="reportGreaterThan"><block s="reportListItem"><l>2</l><block var="position"/></block><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block s="reportListItem"><l>2</l><custom-block s="stage size"></custom-block></block><l>2</l></block></block></block><block s="reportLessThan"><block s="reportListItem"><l>2</l><block var="position"/></block><block s="reportQuotient"><block s="reportListItem"><l>2</l><custom-block s="stage size"></custom-block></block><l>2</l></block></block></block></block><script><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="stage size" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportAttributeOf"><l><option>width</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportAttributeOf"><l><option>height</option></l><block s="reportGet"><l><option>stage</option></l></block></block></list></block></block></script></block-definition><block-definition s="restore all saved sprite properties keep vars? %&apos;KeepVars&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%b">false</input></inputs><script><block s="doIf"><custom-block s="does var %s exist?"><l>@SaveShown</l></custom-block><script><block s="doIfElse"><block var="@SaveShown"/><script><block s="show"></block></script><script><block s="hide"></block></script></block></script></block><block s="doIf"><custom-block s="does var %s exist?"><l>@SaveX</l></custom-block><script><block s="setXPosition"><block var="@SaveX"/></block></script></block><block s="doIf"><custom-block s="does var %s exist?"><l>@SaveY</l></custom-block><script><block s="setYPosition"><block var="@SaveY"/></block></script></block><block s="doIf"><custom-block s="does var %s exist?"><l>@SaveDir</l></custom-block><script><block s="setHeading"><block var="@SaveDir"/></block></script></block><block s="doIf"><custom-block s="does var %s exist?"><l>@SaveCostume</l></custom-block><script><block s="doSwitchToCostume"><block var="@SaveCostume"/></block></script></block><block s="doIf"><custom-block s="does var %s exist?"><l>@SaveGhostEffect</l></custom-block><script><block s="setEffect"><l><option>ghost</option></l><block var="@SaveGhostEffect"/></block></script></block><block s="doIf"><custom-block s="does var %s exist?"><l>@SaveColor</l></custom-block><script><block s="setEffect"><l><option>color</option></l><block var="@SaveColor"/></block></script></block><block s="doIf"><custom-block s="does var %s exist?"><l>@SaveSaturation</l></custom-block><script><block s="setEffect"><l><option>saturation</option></l><block var="@SaveSaturation"/></block></script></block><block s="doIf"><custom-block s="does var %s exist?"><l>@SaveBrightness</l></custom-block><script><block s="setEffect"><l><option>brightness</option></l><block var="@SaveBrightness"/></block></script></block><block s="doIf"><custom-block s="does var %s exist?"><l>@SaveFisheye</l></custom-block><script><block s="setEffect"><l><option>fisheye</option></l><block var="@SaveFisheye"/></block></script></block><block s="doIf"><custom-block s="does var %s exist?"><l>@SaveWhirl</l></custom-block><script><block s="setEffect"><l><option>whirl</option></l><block var="@SaveWhirl"/></block></script></block><block s="doIf"><custom-block s="does var %s exist?"><l>@SaveNegative</l></custom-block><script><block s="setEffect"><l><option>negative</option></l><block var="@SaveNegative"/></block></script></block><block s="doIf"><custom-block s="does var %s exist?"><l>@SaveMosaic</l></custom-block><script><block s="setEffect"><l><option>mosaic</option></l><block var="@SaveMosaic"/></block></script></block><block s="doIf"><custom-block s="does var %s exist?"><l>@SavePixelate</l></custom-block><script><block s="setEffect"><l><option>pixelate</option></l><block var="@SavePixelate"/></block></script></block><block s="fork"><block s="reifyScript"><script><block s="doIf"><block s="reportNot"><block var="KeepVars"/></block><script><custom-block s="delete var %txt"><l>@SaveShown</l></custom-block><custom-block s="delete var %txt"><l>@SaveX</l></custom-block><custom-block s="delete var %txt"><l>@SaveY</l></custom-block><custom-block s="delete var %txt"><l>@SaveDir</l></custom-block><custom-block s="delete var %txt"><l>@SaveCostume</l></custom-block><custom-block s="delete var %txt"><l>@SaveGhostEffect</l></custom-block><custom-block s="delete var %txt"><l>@SaveColor</l></custom-block><custom-block s="delete var %txt"><l>@SaveSaturation</l></custom-block><custom-block s="delete var %txt"><l>@SaveBrightness</l></custom-block><custom-block s="delete var %txt"><l>@SaveFisheye</l></custom-block><custom-block s="delete var %txt"><l>@SaveWhirl</l></custom-block><custom-block s="delete var %txt"><l>@SaveNegative</l></custom-block><custom-block s="delete var %txt"><l>@SaveMosaic</l></custom-block><custom-block s="delete var %txt"><l>@SavePixelate</l></custom-block></script></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="does var %&apos;_name&apos; exist?" type="predicate" category="variables"><comment x="0" y="0" w="146" collapsed="false">This block reports &quot;true&quot; if there is a variable with this given name (input slot) in that context.&#xD;&#xD;It can be a global, sprite or script variable.&#xD;&#xD;Otherwise it reports &quot;false&quot;.</comment><header></header><code></code><translations>pt:a variável _ existe&#xD;ca:existeix la variable _ ?&#xD;es:existe la variable _ ?&#xD;de:existiert var _ ?&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doApplyExtension"><l>err_ignore</l><list><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="_name"/></list></block></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="reifyScript"><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><l></l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="delete var %&apos;var&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%txt">MySpriteVar</input></inputs><script><block s="doApplyExtension"><l>var_delete(name)</l><list><block var="var"/></list></block></script></block-definition><block-definition s="save all sprite properties" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="create sprite var %txt defaut %s"><l>@SaveShown</l><block s="reportShown"></block></custom-block><custom-block s="create sprite var %txt defaut %s"><l>@SaveX</l><block s="xPosition"></block></custom-block><custom-block s="create sprite var %txt defaut %s"><l>@SaveY</l><block s="yPosition"></block></custom-block><custom-block s="create sprite var %txt defaut %s"><l>@SaveDir</l><block s="direction"></block></custom-block><custom-block s="create sprite var %txt defaut %s"><l>@SaveCostume</l><block s="getCostumeIdx"></block></custom-block><custom-block s="create sprite var %txt defaut %s"><l>@SaveGhostEffect</l><block s="getEffect"><l><option>ghost</option></l></block></custom-block><custom-block s="create sprite var %txt defaut %s"><l>@SaveColor</l><block s="getEffect"><l><option>color</option></l></block></custom-block><custom-block s="create sprite var %txt defaut %s"><l>@SaveSaturation</l><block s="getEffect"><l><option>saturation</option></l></block></custom-block><custom-block s="create sprite var %txt defaut %s"><l>@SaveBrightness</l><block s="getEffect"><l><option>brightness</option></l></block></custom-block><custom-block s="create sprite var %txt defaut %s"><l>@SaveFisheye</l><block s="getEffect"><l><option>fisheye</option></l></block></custom-block><custom-block s="create sprite var %txt defaut %s"><l>@SaveWhirl</l><block s="getEffect"><l><option>whirl</option></l></block></custom-block><custom-block s="create sprite var %txt defaut %s"><l>@SaveNegative</l><block s="getEffect"><l><option>negative</option></l></block></custom-block><custom-block s="create sprite var %txt defaut %s"><l>@SaveMosaic</l><block s="getEffect"><l><option>mosaic</option></l></block></custom-block><custom-block s="create sprite var %txt defaut %s"><l>@SavePixelate</l><block s="getEffect"><l><option>pixelate</option></l></block></custom-block></script></block-definition><block-definition s="create sprite var %&apos;var&apos; defaut %&apos;defaut&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%txt">MySpriteVar</input><input type="%s"></input></inputs><script><block s="doIf"><block s="reportNot"><custom-block s="does var %s exist?"><block var="var"/></custom-block></block><script><custom-block s="create %s var %mult%txt"><l>sprite</l><list><block var="var"/></list></custom-block></script></block><custom-block s="set var %s to %s"><block var="var"/><block var="defaut"/></custom-block></script></block-definition><block-definition s="create %&apos;_scope&apos; var %&apos;_names&apos;" type="command" category="variables"><comment x="0" y="0" w="146" collapsed="false">This block creates  new variables on the selected scope: global (for all sprites), sprite (for this sprite only) or script (only for that blocks stack) with the names given (in &apos;names&apos; list).&#xD;&#xD;If there is already a variable with that name in that scope, it does nothing: no errors and no overwrites.</comment><header></header><code></code><translations>pt:cria as variáveis _ _&#xD;ca:crea les _ variables _&#xD;es:crear las _ variables _&#xD;de:erstellen _ var _&#xD;</translations><inputs><input type="%s" readonly="true">global<options>global&#xD;sprite&#xD;script</options></input><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>_item</l><block var="_names"/><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><block var="_scope"/><block var="_item"/></list></block></script></block></script></block></script></block-definition><block-definition s="set var %&apos;_name&apos; to %&apos;_value&apos;" type="command" category="variables"><comment x="0" y="0" w="240.49316406250003" collapsed="false">This block sets the given value (last input) to the variable named with the name givent (var input).&#xD;&#xD;It looks for that variable following the scope order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos; (the first match it finds).&#xD;&#xD;If that variable does not exist (in any scope) an error happens, stopping their script. You can check it before using the &quot;does var (name) exists?&quot; block. </comment><header></header><code></code><translations>ca:assigna a _ el valor _&#xD;es:asignar a _ el valor _&#xD;pt:altera _ para _&#xD;de:setze var _ auf _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="_name"/><block var="_value"/></list></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="5382"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAgAElEQVR4Xu2dDbgkVX3mhZnhQ1EBMbJClms00aysDGISQYHrbgwyDDDDSrI+MXL9SExC3AzRXaMb5aKRxawr41eMGvViEpWADAMDqKA2LBp19WGIEeNHNhcUPxFGBENggH3f9lTvuXX7o6q7uk9X9a+ep57uW3XqfPzOuf3W/5z/OWePh3BAAAIQgAAEIDBxAntMPEUShAAEIAABCEDgIQgwjQACEIAABCCQgAACnAA6SUIAAhCAAAQQYNoABCAAAQhAIAEBBDgBdJKEAAQgAAEIIMC0AQhAAAIQgEACAghwAugkCQEIQAACEECAaQMQgAAEIACBBAQQ4ATQSRICEIAABCCAANMGIAABCEAAAgkIIMAJoJMkBCAAAQhAAAGmDUAAAhCAAAQSEECAE0AnSQhAAAIQgAACTBuAAAQgAAEIJCCAACeATpIQgAAEIAABBJg2AAEIQAACEEhAAAFOAJ0kIQABCEAAAggwbQACEIAABCCQgAACnAA6SUIAAhCAAAQQYNoABCAAAQhAIAEBBDgBdJKEAAQgAAEIIMC0AQhAAAIQgEACAghwAugkCQEIQAACEECAaQMQgAAEIACBBAQQ4ATQSRICEIAABCCAANMGIAABCEAAAgkIIMAJoJMkBCAAAQhAAAGmDUAAAhCAAAQSEECAE0AnSQhAAAIQgAACTBuAAAQgAAEIJCCAACeATpIQgAAEIAABBJg2AAEIQAACEEhAAAFOAJ0kIQABCEAAAggwbQACEIAABCCQgAACnAA6SUIAAhCAAAQQYNoABCAAAQhAIAEBBDgBdJKEAAQgAAEIIMC0AQhAAAIQgEACAghwAugkCQEIQAACEECAaQMQgAAEIACBBAQQ4ATQSRICEIAABCCAANMGIAABCEAAAgkIIMAJoJMkBCAAAQhAAAGmDUAAAhCAAAQSEECAE0AnSQhAAAIQgAACTBuAAAQgAAEIJCCAACeATpIQgAAEIAABBJg2AAEIQAACEEhAAAFOAJ0kIQABCEAAAggwbQACEIAABCCQgAACnAA6SUIAAhCAAAQQYNoABCAAAQhAIAEBBDgBdJKEAAQgAAEIIMC0AQhAAAIQgEACAghwAugkCQEIQAACEECAaQMQgAAEIACBBAQQ4ATQSRICEIAABCCAANMGIAABCEAAAgkIIMAJoJMkBCAAAQhAAAGmDUAAAhCAAAQSEECAE0AnSQhAAAIQgAACTBuAAAQgAAEIJCCAACeATpIQgAAEIAABBJg2AAEIQAACEEhAAAFOAJ0kIQABCEAAAggwbQACEIAABCCQgAACnAA6SUIAAhCAAAQQYNoABCAAAQhAIAEBBDgBdJKEAAQgAAEIIMC0AQhAAAIQgEACAghwAugkCQEIQAACEECAaQMQgAAEIACBBAQQ4ATQSRICEIAABCCAANMGIAABCEAAAgkIIMAJoJMkBCAAAQhAAAGmDUAAAhCAAAQSEECAE0AnSQhAAAIQgAACTBuAAAQgAAEIJCCAACeATpIQgAAEIAABBJg2AAEIQAACEEhAAAFOAJ0kIQABCEAAAggwbQACEIAABCCQgAACnAA6SUIAAhCAAAQQYNoABCAAAQhAIAEBBDgBdJKEAAQgAAEIIMC0AQhAAAIQgEACAghwAugkCQEIQAACEECAaQMQgAAEIACBBAQQ4ATQSRICEIAABCCAANMGIAABCEAAAgkIIMAJoJMkBCAAAQhAAAGmDUAAAhCAAAQSEECAE0AnSQhAAAIQgAACTBuAAAQgAAEIJCCAACeATpIQgAAEIAABBJg2AAEIQAACEEhAAAFOAJ0kIQABCEAAAggwbQACEIAABCCQgAACnAA6SUIAAhCAAAQQYNoABCAAAQhAIAEBBDgBdJKEAAQgAAEIIMC0AQhAAAIQgEACAghwAugkCQEIQAACEECAaQMQgAAEIACBBAQQ4ATQSRICEIAABCCAANMGIAABCEAAAgkIIMAJoJMkBCAAAQhAAAGmDUAAAhCAAAQSEECAE0AnSQhAAAIQgAACTBuAAAQgAAEIJCCAACeATpIQgAAEIAABBJg2AAEIQAACEEhAAAFOAJ0kIQABCEAAAggwbQACEIAABCCQgAACnAA6SUIAAhCAAAQQYNoABCAAAQhAIAEBBDgBdJKEAAQgAAEIIMC0AQhAAAIQgEACAghwAugkCQEIQAACEECAaQMQgAAEIACBBAQQ4ATQSRICEIAABCCAANMGIAABCEAAAgkIIMAJoJMkBCAAAQhAAAGmDUAAAhCAAAQSEECAE0AnSQhAAAIQgAACTBuAAAQgAAEIJCCAACeATpIQgAAEIAABBJg2AAEIQAACEEhAAAFOAJ0kIQAB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</pentrails><costumes><list struct="atomic" id="5383"></list></costumes><sounds><list struct="atomic" id="5384"></list></sounds><variables><variable name="@SaveShown"><bool>true</bool></variable></variables><blocks></blocks><scripts></scripts><sprites select="2"><sprite name="Leaf" idx="2" x="-1000" y="0" heading="20" scale="0.25" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="115.10699999999999,155.54999999999998,0,1" pen="tip" id="5389"><costumes><list id="5390"><item><ref mediaID="Leaf_cst_leaf"></ref></item></list></costumes><sounds><list struct="atomic" id="5391"></list></sounds><blocks></blocks><variables></variables><scripts><script x="17.857142857142858" y="7.142857142857143"><block s="receiveGo"></block><block s="setScale"><l>25</l></block><block s="gotoXY"><l>-1000</l><l>0</l></block></script><script x="17.857142857142858" y="97.57142857142851"><block s="receiveOnClone"></block><block s="setEffect"><l><option>saturation</option></l><block s="reportRandom"><l>-25</l><l>300</l></block></block></script><script x="17.857142857142858" y="183.73809523809513"><block s="receiveMessage"><l>falling</l><list></list></block><block s="doDeclareVariables"><list><l>vSpeed</l></list></block><block s="doSetVar"><l>vSpeed</l><block s="reportRandom"><l>-3</l><l>-7</l></block></block><custom-block s="repeat %cs until %boolUE"><script><block s="changeYPosition"><block var="vSpeed"/></block><block s="changeXPosition"><block s="reportRandom"><l>-5</l><l>5</l></block></block></script><block s="reportNot"><custom-block s="On Stage (pivot)?"></custom-block></block></custom-block></script><script x="192.85714285714286" y="183.57142857142858"><block s="doBroadcast"><l>falling</l><list><block s="reportAskFor"><l>Leaf</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>clones</option></l></block></autolambda><list></list></block><list></list></block></list><comment w="90" collapsed="false">falling leafs</comment></block></script></scripts></sprite><sprite name="Branch" idx="1" x="0" y="-180" heading="0" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="5453"><costumes><list struct="atomic" id="5454"></list></costumes><sounds><list struct="atomic" id="5455"></list></sounds><blocks></blocks><variables></variables><scripts><script x="7.142857142857143" y="7.142857142857143"><block s="receiveGo"></block><block s="clear"></block><custom-block s="simple message %mlt"><l>Simple tree</l></custom-block><custom-block s="draw tree with this script %cmdRing"><block s="reifyScript"><script><custom-block s="branch length %n v1.0"><l>50</l></custom-block></script><list></list></block></custom-block><custom-block s="simple message %mlt"><l>Next step: adding some randomness</l></custom-block><custom-block s="draw tree with this script %cmdRing"><block s="reifyScript"><script><custom-block s="branch length %n v1.1"><l>50</l></custom-block></script><list></list></block></custom-block><custom-block s="simple message %mlt"><l>Next step: introducing level and optionnal left/right branch</l></custom-block><custom-block s="draw tree with this script %cmdRing"><block s="reifyScript"><script><custom-block s="branch length %n level %n v1.20"><l>50</l><l>0</l></custom-block></script><list></list></block></custom-block><custom-block s="simple message %mlt"><l>Next step: introducing thickness of the branch</l></custom-block><custom-block s="draw tree with this script %cmdRing"><block s="reifyScript"><script><custom-block s="branch length %n level %n v1.21"><l>50</l><l>0</l></custom-block></script><list></list></block></custom-block><custom-block s="simple message %mlt"><l>Next step: adding leafs</l></custom-block><custom-block s="draw tree with this script %cmdRing"><block s="reifyScript"><script><custom-block s="branch length %n level %n v1.30"><l>50</l><l>0</l></custom-block></script><list></list></block></custom-block><custom-block s="simple message %mlt"><l>A small tree</l></custom-block><custom-block s="draw tree with this script %cmdRing"><block s="reifyScript"><script><custom-block s="branch length %n level %n v1.30"><l>10</l><l>6</l></custom-block></script><list></list></block></custom-block><custom-block s="simple message %mlt"><l>Next step: introducing falling leafs</l></custom-block><custom-block s="draw tree with this script %cmdRing"><block s="reifyScript"><script><custom-block s="branch length %n level %n v1.30"><l>50</l><l>0</l></custom-block></script><list></list></block></custom-block><block s="doBroadcast"><l>falling</l><list><block s="reportAskFor"><l>Leaf</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>clones</option></l></block></autolambda><list></list></block><list></list></block></list></block></script></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="tree evolution" app="Snap! 7, https://snap.berkeley.edu" version="2"><costume name="leaf" center-x="1" center-y="50.875" image="data:image/png;base64,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" mediaID="Leaf_cst_leaf"/></media></snapdata>