<snapdata remixID="8668446"><project name='SnapCon2019 Mandelbrot' app='Snap! 5.1, http://snap.berkeley.edu' version='1'>
  <notes>This allows you to explore the Mandelbrot set; just click on any part of it and it will zoom into it. Here are other key commands: (c)lear, (space)-draw a grid, (e)-double the max iterations, (d) halve the max iterations, (m)-redraw the mandelbrot set</notes>
  <thumbnail>data:image/png;base64,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</thumbnail>
  <stage inheritance='true' id='1' volume='100' height='243' tempo='60' lines='flat' width='243' name='Stage' sublistIDs='false' threadsafe='false' codify='false' color='255,255,255,1' scheduled='false' pan='0' ternary='false' costume='1'>
    <pentrails>data:image/png;base64,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</pentrails>
    <costumes>
      <list id='2'>
        <item>
          <costume center-x='121.5' image='data:image/png;base64,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' center-y='121.5' name='Untitled' id='3'/>
        </item>
      </list>
    </costumes>
    <sounds>
      <list struct='atomic' id='4'/>
    </sounds>
    <variables/>
    <blocks/>
    <scripts>
      <script x='14' y='12.333333333333329'>
        <block s='receiveInteraction'>
          <l>
            <option>clicked</option>
          </l>
        </block>
        <block s='doDeclareVariables'>
          <list>
            <l>cols</l>
            <l>zoomscale</l>
          </list>
        </block>
        <block s='doSetVar'>
          <l>cols</l>
          <block s='reportQuotient'>
            <block s='reportListItem'>
              <l>2</l>
              <custom-block s='setting %s'>
                <l>Stage size</l>
              </custom-block>
            </block>
            <block var='PIXEL'/>
          </block>
        </block>
        <block s='doSetVar'>
          <l>zoomscale</l>
          <block s='reportQuotient'>
            <block var='cols'/>
            <l>3</l>
          </block>
        </block>
        <block s='doSetVar'>
          <l>CENTER</l>
          <block s='reportNewList'>
            <list>
              <block s='reportSum'>
                <block s='reportQuotient'>
                  <block s='reportQuotient'>
                    <block s='reportQuotient'>
                      <block s='reportMouseX'/>
                      <block var='PIXEL'/>
                    </block>
                    <block var='zoomscale'/>
                  </block>
                  <block var='ZOOM'/>
                </block>
                <block s='reportListItem'>
                  <l>1</l>
                  <block var='CENTER'/>
                </block>
              </block>
              <block s='reportSum'>
                <block s='reportQuotient'>
                  <block s='reportQuotient'>
                    <block s='reportQuotient'>
                      <block s='reportMouseY'/>
                      <block var='PIXEL'/>
                    </block>
                    <block var='zoomscale'/>
                  </block>
                  <block var='ZOOM'/>
                </block>
                <block s='reportListItem'>
                  <l>2</l>
                  <block var='CENTER'/>
                </block>
              </block>
            </list>
          </block>
        </block>
        <block s='doSetVar'>
          <l>ZOOM</l>
          <block s='reportProduct'>
            <l>2</l>
            <block var='ZOOM'/>
          </block>
        </block>
        <block s='doStopThis'>
          <l>
            <option>all but this script</option>
          </l>
        </block>
        <block s='doTellTo'>
          <l>Sprite</l>
          <block s='reifyScript'>
            <script>
              <custom-block s='Mandelbrot!!'/>
            </script>
            <list/>
          </block>
          <list/>
        </block>
      </script>
    </scripts>
    <sprites>
      <sprite x='120.99999999999994' pen='middle' id='92' y='121' name='Sprite' idx='1' volume='100' rotation='1' scale='0.21' heading='90' draggable='false' color='50.999999999999815,0,255,1' pan='0' costume='0'>
        <costumes>
          <list struct='atomic' id='93'/>
        </costumes>
        <sounds>
          <list struct='atomic' id='94'/>
        </sounds>
        <blocks/>
        <variables/>
        <scripts>
          <script x='5' y='5'>
            <block s='receiveGo'/>
            <block s='clear'/>
            <block s='doSetVar'>
              <l>CENTER</l>
              <block s='reportNewList'>
                <list>
                  <l>-0.761574</l>
                  <l>-0.0847596</l>
                </list>
              </block>
            </block>
            <block s='doSetVar'>
              <l>ZOOM</l>
              <l>1</l>
            </block>
            <block s='doSetVar'>
              <l>MAX ITERATIONS</l>
              <l>100</l>
            </block>
            <block s='doSetVar'>
              <l>PIXEL</l>
              <l>3</l>
            </block>
            <custom-block s='Mandelbrot!!'/>
          </script>
          <script x='5' y='196.0000000000001'>
            <block s='receiveKey'>
              <l>
                <option>space</option>
              </l>
            </block>
            <custom-block s='Draw Grid'/>
          </script>
          <script x='5' y='257.50000000000006'>
            <block s='receiveKey'>
              <l>
                <option>q</option>
              </l>
            </block>
            <block s='doIf'>
              <block s='reportLessThan'>
                <block var='PIXEL'/>
                <block s='reportListItem'>
                  <l>1</l>
                  <custom-block s='setting %s'>
                    <l>Stage size</l>
                  </custom-block>
                </block>
              </block>
              <script>
                <block s='doSetVar'>
                  <l>PIXEL</l>
                  <block s='reportProduct'>
                    <block var='PIXEL'/>
                    <l>3</l>
                  </block>
                </block>
              </script>
            </block>
            <block s='setSize'>
              <block var='PIXEL'/>
            </block>
          </script>
          <script x='5' y='390.99999999999994'>
            <block s='receiveKey'>
              <l>
                <option>a</option>
              </l>
            </block>
            <block s='doIf'>
              <block s='reportGreaterThan'>
                <block var='PIXEL'/>
                <l>1</l>
              </block>
              <script>
                <block s='doSetVar'>
                  <l>PIXEL</l>
                  <block s='reportQuotient'>
                    <block var='PIXEL'/>
                    <l>3</l>
                  </block>
                </block>
              </script>
            </block>
            <block s='setSize'>
              <block var='PIXEL'/>
            </block>
          </script>
          <script x='5' y='516.4999999999999'>
            <block s='receiveKey'>
              <l>
                <option>up arrow</option>
              </l>
            </block>
            <block s='forward'>
              <block var='PIXEL'/>
            </block>
            <custom-block s='pixel $rectangleSolid or $rectangle %b'>
              <l>
                <bool>false</bool>
              </l>
            </custom-block>
          </script>
          <script x='5' y='601.5'>
            <block s='receiveKey'>
              <l>
                <option>down arrow</option>
              </l>
            </block>
            <custom-block s='pixel $rectangleSolid or $rectangle %b'>
              <l>
                <bool>true</bool>
              </l>
            </custom-block>
          </script>
          <script x='5' y='665'>
            <block s='receiveKey'>
              <l>
                <option>right arrow</option>
              </l>
            </block>
            <block s='turn'>
              <l>90</l>
            </block>
          </script>
          <script x='5' y='731.5000000000001'>
            <block s='receiveKey'>
              <l>
                <option>left arrow</option>
              </l>
            </block>
            <block s='turnLeft'>
              <l>90</l>
            </block>
          </script>
          <script x='5' y='798.0000000000002'>
            <block s='receiveKey'>
              <l>
                <option>c</option>
              </l>
            </block>
            <block s='clear'/>
          </script>
          <script x='5' y='859.5000000000002'>
            <block s='receiveKey'>
              <l>
                <option>e</option>
              </l>
            </block>
            <block s='doSetVar'>
              <l>MAX ITERATIONS</l>
              <block s='reportProduct'>
                <block var='MAX ITERATIONS'/>
                <l>2</l>
              </block>
            </block>
          </script>
          <script x='5' y='929.0000000000002'>
            <block s='receiveKey'>
              <l>
                <option>w</option>
              </l>
            </block>
            <block s='doSetVar'>
              <l>ZOOM</l>
              <block s='reportProduct'>
                <block var='ZOOM'/>
                <l>2</l>
              </block>
            </block>
          </script>
          <script x='5' y='998.5'>
            <block s='receiveKey'>
              <l>
                <option>s</option>
              </l>
            </block>
            <block s='doSetVar'>
              <l>ZOOM</l>
              <block s='reportQuotient'>
                <block var='ZOOM'/>
                <l>2</l>
              </block>
            </block>
          </script>
          <script x='5' y='1068.0000000000002'>
            <block s='receiveKey'>
              <l>
                <option>d</option>
              </l>
            </block>
            <block s='doSetVar'>
              <l>MAX ITERATIONS</l>
              <block s='reportQuotient'>
                <block var='MAX ITERATIONS'/>
                <l>2</l>
              </block>
            </block>
          </script>
          <script x='5' y='1137.5000000000002'>
            <block s='receiveKey'>
              <l>
                <option>m</option>
              </l>
            </block>
            <block s='clear'/>
            <custom-block s='Mandelbrot!!'/>
          </script>
          <script x='5' y='1216.5000000000005'>
            <block s='receiveKey'>
              <l>
                <option>z</option>
              </l>
            </block>
            <block s='doSetVar'>
              <l>COMPLEX?</l>
              <block s='reportNot'>
                <block var='COMPLEX?'/>
              </block>
            </block>
          </script>
          <script x='388.5' y='117.5'>
            <block s='setSize'>
              <l>1</l>
            </block>
            <block s='down'/>
            <block s='forward'>
              <l>10</l>
            </block>
          </script>
          <script x='87.5' y='170.66666666666666'>
            <block s='setSize'>
              <block var='PIXEL'/>
            </block>
          </script>
        </scripts>
      </sprite>
      <watcher x='1289.586998225771' color='243,118,29' style='normal' var='GOOD CENTER' y='1289.5869982258346' hidden='true'/>
      <watcher x='1289.586998225771' color='243,118,29' style='normal' var='ORIGINAL CENTER' y='6190.017849401392' hidden='true'/>
      <watcher x='39848.238245178254' color='243,118,29' style='normal' var='MANDELBROT' y='49004.305932581614' hidden='true'/>
      <watcher x='-354.3728345185725' color='243,118,29' style='normal' var='DEBUG' y='13157.762648948292' hidden='true'/>
      <watcher x='0' color='243,118,29' style='normal' var='COMPLEX?' y='17203.44542691167' hidden='true'/>
      <watcher x='0' color='243,118,29' style='normal' var='COORD OR ITERATIONS' y='5095.159560770814' hidden='true'/>
      <watcher x='590.1637551276463' color='243,118,29' style='normal' var='C' y='590.1637551276965' hidden='true'/>
      <watcher x='52.105038020092934' color='243,118,29' style='normal' var='XY' y='8988.119058468163' hidden='true'/>
      <watcher x='43.706312241055' color='243,118,29' style='normal' var='CENTER' y='3192.5954191257415' hidden='true'/>
      <watcher x='40.60314811160629' color='243,118,29' style='normal' var='ZOOM' y='2278.566247923937'/>
      <watcher x='6.359856054453985' color='243,118,29' style='normal' var='MAX ITERATIONS' y='23.931858582463626'/>
      <watcher x='5.407424476878077' color='243,118,29' style='normal' var='PIXEL' y='58.95321375467253'/>
    </sprites>
  </stage>
  <hidden/>
  <headers/>
  <code/>
  <blocks>
    <block-definition s='setting %&apos;which&apos;' category='sensing' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input readonly='true' type='%s'>
          <options>Project notesProject nameUserPresentation modeLanguageZoom blocksStage sizeStage scaleRetina display supportLong form input dialogPlain prototype labelsInput slidersExecute on slider changeClicking soundTurbo modeFlat designKeyboard editingVisible steppingThread safe scriptsPrefer smooth animationsFlat line endsCodification supportInheritance supportVisible palette</options>
        </input>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='evaluate'>
            <block s='reportJSFunction'>
              <list>
                <l>which</l>
              </list>
              <l>var stage = this.parentThatIsA(StageMorph),    ide = stage.parentThatIsA(IDE_Morph),    world = stage.parentThatIsA(WorldMorph);switch (which) {    case &apos;Project notes&apos;:        return ide.projectNotes;    case &apos;Project name&apos;:        return ide.projectName;    case &apos;User&apos;:        return ide.cloud.username;    case &apos;Presentation mode&apos;:        return ide.isAppMode;    case &apos;Language&apos;:        return SnapTranslator.language;    case &apos;Zoom blocks&apos;:        return SyntaxElementMorph.prototype.scale;    case &apos;Stage size&apos;:        return new List([StageMorph.prototype.dimensions.x,                                   StageMorph.prototype.dimensions.y]);    case &apos;Stage scale&apos;:       return stage.scale;    case &apos;Retina display support&apos;:        return isRetinaEnabled();    case &apos;Long form input dialog&apos;:        return InputSlotDialogMorph.prototype.isLaunchingExpanded;    case &apos;Plain prototype labels&apos;:        return BlockLabelPlaceHolderMorph.prototype.plainLabel;    case &apos;Input sliders&apos;:        return MorphicPreferences.useSliderForInput;    case &apos;Execute on slider change&apos;:        return ArgMorph.prototype.executeOnSliderEdit;    case &apos;Clicking sound&apos;:        return !!BlockMorph.prototype.snapSound;    case &apos;Turbo mode&apos;:        return stage.isFastTracked;    case &apos;Flat design&apos;:        return MorphicPreferences.isFlat;    case &apos;Keyboard editing&apos;:        return world.keyboardReceiver instanceof ScriptFocusMorph;    case &apos;Visible stepping&apos;:        return Process.prototype.enableSingleStepping;    case &apos;Thread safe scripts&apos;:        return stage.isThreadSafe;    case &apos;Prefer smooth animations&apos;:        return StageMorph.prototype.frameRate &gt; 0;    case &apos;Flat line ends&apos;:        return SpriteMorph.prototype.useFlatLineEnds;    case &apos;Codification support&apos;:        return StageMorph.prototype.enableCodeMapping;    case &apos;Inheritance support&apos;:        return StageMorph.prototype.enableInheritance;    default: return which;    case &apos;Visible palette&apos;:        return ide.currentCategory;}</l>
            </block>
            <list>
              <block var='which'/>
            </list>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='set flag %&apos;which&apos; to %&apos;tf&apos;' category='sensing' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input readonly='true' type='%s'>
          <options>Presentation modeRetina display supportLong form input dialogPlain prototype labelsInput slidersExecute on slider changeClicking soundTurbo modeFlat designKeyboard editingVisible steppingThread safe scriptsPrefer smooth animationsFlat line endsCodification supportInheritance support</options>
        </input>
        <input type='%b'/>
      </inputs>
      <script>
        <block s='doRun'>
          <block s='reportJSFunction'>
            <list>
              <l>which</l>
              <l>tf</l>
            </list>
            <l>var   stage = this.parentThatIsA(StageMorph),        ide = stage.parentThatIsA(IDE_Morph),        world = stage.parentThatIsA(WorldMorph),        thisObj = this;if (tf != !!tf) return;try{ide.savingPreferences = false;switch (which) {    case &apos;Presentation mode&apos;:        if (tf != ide.isAppMode) ide.toggleAppMode();        break;    case &apos;Retina display support&apos;:        if (tf != isRetinaEnabled()) ide.toggleRetina();        break;    case &apos;Long form input dialog&apos;:        if (tf != InputSlotDialogMorph.prototype.isLaunchingExpanded)            ide.toggleLongFormInputDialog();        break;    case &apos;Plain prototype labels&apos;:        if (tf != BlockLabelPlaceHolderMorph.prototype.plainLabel)            ide.togglePlainPrototypeLabels();        break;    case &apos;Input sliders&apos;:        MorphicPreferences.useSliderForInput = tf;        break;    case &apos;Execute on slider change&apos;:        ArgMorph.prototype.executeOnSliderEdit = tf;        break;    case &apos;Clicking sound&apos;:        if (tf != !!BlockMorph.prototype.snapSound)            BlockMorph.prototype.toggleSnapSound();        break;    case &apos;Turbo mode&apos;:        if (tf != stage.isFastTracked)            ide.toggleFastTracking();        break;    case &apos;Flat design&apos;:        if (tf == MorphicPreferences.isFlat) break;        if (tf)            ide.flatDesign();        else            ide.defaultDesign();        break;    case &apos;Keyboard editing&apos;:        if (tf != (world.keyboardReceiver instanceof ScriptFocusMorph)) {            thisObj.scripts.toggleKeyboardEntry();        };        break;    case &apos;Visible stepping&apos;:        if (tf != Process.prototype.enableSingleStepping)            ide.toggleSingleStepping();        break;    case &apos;Thread safe scripts&apos;:        stage.isThreadSafe = tf;        break;    case &apos;Prefer smooth animations&apos;:        if (tf != (StageMorph.prototype.frameRate &gt; 0))            ide.toggleVariableFrameRate();        break;    case &apos;Flat line ends&apos;:        SpriteMorph.prototype.useFlatLineEnds = tf;        break;    case &apos;Codification support&apos;:        if (tf != StageMorph.prototype.enableCodeMapping) {            StageMorph.prototype.enableCodeMapping = tf;            ide.currentSprite.blocksCache.variables = null;            ide.currentSprite.paletteCache.variables = null;            ide.refreshPalette();        }        break;    case &apos;Inheritance support&apos;:        if (tf != StageMorph.prototype.enableInheritance) {            StageMorph.prototype.enableInheritance = tf;            ide.currentSprite.blocksCache.variables = null;            ide.currentSprite.paletteCache.variables = null;            ide.refreshPalette();        }        break;};}finally {ide.savingPreferences = false;};</l>
          </block>
          <list>
            <block var='which'/>
            <block var='tf'/>
          </list>
        </block>
      </script>
    </block-definition>
    <block-definition s='set value %&apos;which&apos; to %&apos;value&apos;' category='sensing' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input readonly='true' type='%s'>
          <options>Project notesProject nameLanguageZoom blocksStage sizeStage scaleVisible palette</options>
        </input>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doRun'>
          <block s='reportJSFunction'>
            <list>
              <l>which</l>
              <l>value</l>
            </list>
            <l>var   stage = this.parentThatIsA(StageMorph),        ide = stage.parentThatIsA(IDE_Morph),        world = stage.parentThatIsA(WorldMorph);try {ide.savingPreferences = false;switch (which) {    case &apos;Project notes&apos;:        ide.projectNotes = value;        break;    case &apos;Project name&apos;:        ide.setProjectName(value);        break;    case &apos;Language&apos;:        ide.setLanguage(value);        break;    case &apos;Zoom blocks&apos;:        if (!isNaN(value)) ide.setBlocksScale(Math.min(value, 12));        break;    case &apos;Stage size&apos;:        if ((value instanceof List) &amp;&amp; value.length()==2                       &amp;&amp; !isNaN(value.at(1)) &amp;&amp; !isNaN(value.at(2)))            ide.setStageExtent(new Point(value.at(1), value.at(2)));        break;    case &apos;Stage scale&apos;:        ide.toggleStageSize(value != 1, Math.max(0.1, value));        break;    case &apos;Visible palette&apos;:        ide.currentCategory = value.toLowerCase();        ide.categories.children.forEach(function (each) {                each.refresh();        });        ide.refreshPalette(true);        break;};}finally {ide.savingPreferences = true;};</l>
          </block>
          <list>
            <block var='which'/>
            <block var='value'/>
          </list>
        </block>
      </script>
    </block-definition>
    <block-definition s='Draw line from %&apos;P0&apos; to %&apos;P1&apos;' category='pen' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='up'/>
        <block s='doGotoObject'>
          <block var='P0'/>
        </block>
        <block s='down'/>
        <block s='doGotoObject'>
          <block var='P1'/>
        </block>
        <block s='up'/>
      </script>
    </block-definition>
    <block-definition s='for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; by %&apos;step&apos; %&apos;action&apos;' category='control' type='command'>
      <header/>
      <code/>
      <translations>de:für _ = _ bis _ _ca:per _ = _ fins _ _es:para _ = _ hasta _ _fr:pour _ allant de _ à _ _</translations>
      <inputs>
        <input type='%upvar'/>
        <input type='%n'>1</input>
        <input type='%n'>10</input>
        <input type='%n'>1</input>
        <input type='%cs'/>
      </inputs>
      <script>
        <block s='doDeclareVariables'>
          <list>
            <l>tester</l>
          </list>
        </block>
        <block s='doIfElse'>
          <block s='reportGreaterThan'>
            <block var='start'/>
            <block var='end'/>
          </block>
          <script>
            <block s='doSetVar'>
              <l>tester</l>
              <block s='reifyReporter'>
                <autolambda>
                  <block s='reportLessThan'>
                    <block var='i'/>
                    <block var='end'/>
                  </block>
                </autolambda>
                <list/>
              </block>
            </block>
          </script>
          <script>
            <block s='doSetVar'>
              <l>tester</l>
              <block s='reifyReporter'>
                <autolambda>
                  <block s='reportGreaterThan'>
                    <block var='i'/>
                    <block var='end'/>
                  </block>
                </autolambda>
                <list/>
              </block>
            </block>
          </script>
        </block>
        <block s='doSetVar'>
          <l>i</l>
          <block var='start'/>
        </block>
        <block s='doUntil'>
          <block s='evaluate'>
            <block var='tester'/>
            <list/>
          </block>
          <script>
            <block s='doRun'>
              <block var='action'/>
              <list/>
            </block>
            <block s='doChangeVar'>
              <l>i</l>
              <block var='step'/>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='pixel $rectangleSolid or $rectangle %&apos;fill&apos;' category='pen' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%b'/>
      </inputs>
      <script>
        <block s='doIf'>
          <block var='fill'/>
          <script>
            <block s='doDeclareVariables'>
              <list>
                <l>old position</l>
              </list>
            </block>
            <block s='doSetVar'>
              <l>old position</l>
              <block s='reportNewList'>
                <list>
                  <block s='xPosition'/>
                  <block s='yPosition'/>
                </list>
              </block>
            </block>
            <block s='up'/>
            <block s='changeXPosition'>
              <block s='reportQuotient'>
                <block var='PIXEL'/>
                <l>-2</l>
              </block>
            </block>
            <block s='down'/>
            <block s='changeXPosition'>
              <block var='PIXEL'/>
            </block>
            <block s='up'/>
            <block s='doGotoObject'>
              <block var='old position'/>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='set pen color to r: %&apos;r&apos; g: %&apos;g&apos; b: %&apos;b&apos;' category='pen' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%n'>255</input>
        <input type='%n'>0</input>
        <input type='%n'>0</input>
      </inputs>
      <script>
        <block s='doRun'>
          <block s='reportJSFunction'>
            <list>
              <l>r</l>
              <l>g</l>
              <l>b</l>
            </list>
            <l>this.setColor(new Color(r, g, b));</l>
          </block>
          <list>
            <block var='r'/>
            <block var='g'/>
            <block var='b'/>
          </list>
        </block>
      </script>
    </block-definition>
    <block-definition s='set pen color to h: %&apos;h&apos; s: %&apos;s&apos; v: %&apos;v&apos;' category='pen' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%n'>0.3</input>
        <input type='%n'>0.7</input>
        <input type='%n'>0.6</input>
      </inputs>
      <script>
        <block s='doRun'>
          <block s='reportJSFunction'>
            <list>
              <l>h</l>
              <l>s</l>
              <l>v</l>
            </list>
            <l>var col = new Color();col.set_hsv(h, s, v);this.setColor(col);</l>
          </block>
          <list>
            <block var='h'/>
            <block var='s'/>
            <block var='v'/>
          </list>
        </block>
      </script>
    </block-definition>
    <block-definition s='RGB color' category='pen' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doReport'>
          <block s='evaluate'>
            <block s='reportJSFunction'>
              <list>
                <l/>
              </list>
              <l>return new List([this.color.r, this.color.g, this.color.b]);</l>
            </block>
            <list/>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='HSV color' category='pen' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doReport'>
          <block s='evaluate'>
            <block s='reportJSFunction'>
              <list>
                <l/>
              </list>
              <l>return new List(this.color.hsv());</l>
            </block>
            <list/>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='Filled?' category='sensing' type='predicate'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doReport'>
          <block s='reportTouchingColor'>
            <color>255,255,255,1</color>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='%&apos;A&apos; xor %&apos;B&apos;' category='operators' type='predicate'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%b'/>
        <input type='%b'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportNot'>
            <block s='reportEquals'>
              <block var='A'/>
              <block var='B'/>
            </block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='xor of N and NW' category='sensing' type='predicate'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doDeclareVariables'>
          <list>
            <l>N</l>
            <l>NW</l>
          </list>
        </block>
        <block s='changeYPosition'>
          <block var='PIXEL'/>
        </block>
        <block s='doSetVar'>
          <l>N</l>
          <custom-block s='Filled?'/>
        </block>
        <block s='changeXPosition'>
          <block s='reportDifference'>
            <l>0</l>
            <block var='PIXEL'/>
          </block>
        </block>
        <block s='doSetVar'>
          <l>NW</l>
          <custom-block s='Filled?'/>
        </block>
        <block s='changeXPosition'>
          <block var='PIXEL'/>
        </block>
        <block s='changeYPosition'>
          <block s='reportDifference'>
            <l>0</l>
            <block var='PIXEL'/>
          </block>
        </block>
        <block s='doReport'>
          <custom-block s='%b xor %b'>
            <block var='N'/>
            <block var='NW'/>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='label %&apos;text&apos; of size %&apos;size&apos;' category='pen' type='command'>
      <comment x='0' w='90' collapsed='false' y='0'>LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment>
      <header/>
      <code/>
      <translations>de:drucke _ in Größe _ca:etiqueta _ de mida _es:etiqueta _ de tamaño _fr:étiquette _ d&apos;une taille de _</translations>
      <inputs>
        <input type='%txt'>Hello!</input>
        <input type='%n'>12</input>
      </inputs>
      <script>
        <block s='doRun'>
          <block s='reportJSFunction'>
            <list>
              <l>text</l>
              <l>size</l>
              <l>process</l>
            </list>
            <l>var stage = this.parentThatIsA(StageMorph);if (this == stage) {    throw new Error(     &apos;LABEL cannot be used from the stage because the stage does not have a postion.\n&apos;     + &apos;Use LABEL from a sprite to draw text.&apos;);}if (typeof text !== &apos;string&apos; &amp;&amp; typeof text !== &apos;number&apos;) {    throw new Error(&apos;LABEL can only draw text or numbers, not a &apos; + process.reportTypeOf(text)); }var context = stage.penTrails().getContext(&apos;2d&apos;),    rotation = radians(this.direction() - 90),    trans = new Point(      this.center().x - stage.left(),      this.center().y - stage.top()    ),    isWarped = this.Warped,    len,    pos;if (isWarped) {endWarp(); }context.save();context.font = size + &apos;px monospace&apos;;context.textAlign = &apos;left&apos;;context.textBaseline = &apos;alphabetic&apos;;context.fillStyle = this.color.toString();len = context.measureText(text).width;trans = trans.multiplyBy(1 / stage.scale);context.translate(trans.x, trans.y);context.rotate(rotation);context.fillText(text, 0, 0);context.translate(-trans.x, -trans.y);context.restore();pos = new Point(  len * Math.sin(radians(this.direction())),  len * Math.cos(radians(this.direction())));pos = pos.add(new Point(this.xPosition(), this.yPosition()));this.gotoXY(pos.x, pos.y, false);this.changed();if (isWarped) {this.startWarp(); }stage.changed();</l>
          </block>
          <list>
            <block var='text'/>
            <block var='size'/>
          </list>
        </block>
      </script>
    </block-definition>
    <block-definition s='keep items such that %&apos;pred&apos; from %&apos;data&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations>de:behalte Elemente, die _ aus _ca:manté els elements on _ de _es:mantener los elementos donde _ de _fr:garder les items tels que _ de _</translations>
      <inputs>
        <input type='%predRing'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='empty? %l'>
            <block var='data'/>
          </custom-block>
          <script>
            <block s='doReport'>
              <block s='reportNewList'>
                <list/>
              </block>
            </block>
          </script>
        </block>
        <block s='doIfElse'>
          <block s='evaluate'>
            <block var='pred'/>
            <list>
              <block s='reportListItem'>
                <l>1</l>
                <block var='data'/>
              </block>
            </list>
          </block>
          <script>
            <block s='doReport'>
              <block s='reportCONS'>
                <block s='reportListItem'>
                  <l>1</l>
                  <block var='data'/>
                </block>
                <custom-block s='keep items such that %predRing from %l'>
                  <block var='pred'/>
                  <block s='reportCDR'>
                    <block var='data'/>
                  </block>
                </custom-block>
              </block>
            </block>
          </script>
          <script>
            <block s='doReport'>
              <custom-block s='keep items such that %predRing from %l'>
                <block var='pred'/>
                <block s='reportCDR'>
                  <block var='data'/>
                </block>
              </custom-block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='combine with %&apos;function&apos; items of %&apos;data&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations>de:kombiniere mit _ die Elemente von _ca:combina amb _ els elements de _es:combinar con _ los elementos de _fr:combine avec _ les items de _</translations>
      <inputs>
        <input type='%repRing'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='empty? %l'>
            <block s='reportCDR'>
              <block var='data'/>
            </block>
          </custom-block>
          <script>
            <block s='doReport'>
              <block s='reportListItem'>
                <l>1</l>
                <block var='data'/>
              </block>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <block s='evaluate'>
            <block var='function'/>
            <list>
              <block s='reportListItem'>
                <l>1</l>
                <block var='data'/>
              </block>
              <custom-block s='combine with %repRing items of %l'>
                <block var='function'/>
                <block s='reportCDR'>
                  <block var='data'/>
                </block>
              </custom-block>
            </list>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;' category='control' type='command'>
      <header/>
      <code/>
      <translations>de:für _ = _ bis _ _ca:per _ = _ fins _ _es:para _ = _ hasta _ _fr:pour _ allant de _ à _ _</translations>
      <inputs>
        <input type='%upvar'/>
        <input type='%n'>1</input>
        <input type='%n'>10</input>
        <input type='%cs'/>
      </inputs>
      <script>
        <block s='doDeclareVariables'>
          <list>
            <l>step</l>
            <l>tester</l>
          </list>
        </block>
        <block s='doIfElse'>
          <block s='reportGreaterThan'>
            <block var='start'/>
            <block var='end'/>
          </block>
          <script>
            <block s='doSetVar'>
              <l>step</l>
              <l>-1</l>
            </block>
            <block s='doSetVar'>
              <l>tester</l>
              <block s='reifyReporter'>
                <autolambda>
                  <block s='reportLessThan'>
                    <block var='i'/>
                    <block var='end'/>
                  </block>
                </autolambda>
                <list/>
              </block>
            </block>
          </script>
          <script>
            <block s='doSetVar'>
              <l>step</l>
              <l>1</l>
            </block>
            <block s='doSetVar'>
              <l>tester</l>
              <block s='reifyReporter'>
                <autolambda>
                  <block s='reportGreaterThan'>
                    <block var='i'/>
                    <block var='end'/>
                  </block>
                </autolambda>
                <list/>
              </block>
            </block>
          </script>
        </block>
        <block s='doSetVar'>
          <l>i</l>
          <block var='start'/>
        </block>
        <block s='doUntil'>
          <block s='evaluate'>
            <block var='tester'/>
            <list/>
          </block>
          <script>
            <block s='doRun'>
              <block var='action'/>
              <list/>
            </block>
            <block s='doChangeVar'>
              <l>i</l>
              <block var='step'/>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='join words %&apos;words&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations>de:füge Wörter zusammen _ca:uneix les paraules _es:unir las palabras _fr:fusionne les mots _</translations>
      <inputs>
        <input type='%mult%txt'/>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='empty? %l'>
            <block s='reportCDR'>
              <block var='words'/>
            </block>
          </custom-block>
          <script>
            <block s='doReport'>
              <block s='reportListItem'>
                <l>1</l>
                <block var='words'/>
              </block>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block s='reportEquals'>
            <l/>
            <block s='reportListItem'>
              <l>1</l>
              <block var='words'/>
            </block>
          </block>
          <script>
            <block s='doReport'>
              <custom-block s='join words %mult%txt'>
                <block s='reportCDR'>
                  <block var='words'/>
                </block>
              </custom-block>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block s='reportEquals'>
            <l/>
            <block s='reportListItem'>
              <l>2</l>
              <block var='words'/>
            </block>
          </block>
          <script>
            <block s='doReport'>
              <custom-block s='join words %mult%txt'>
                <block s='reportCONS'>
                  <block s='reportListItem'>
                    <l>1</l>
                    <block var='words'/>
                  </block>
                  <block s='reportCDR'>
                    <block s='reportCDR'>
                      <block var='words'/>
                    </block>
                  </block>
                </block>
              </custom-block>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <block s='reportJoinWords'>
            <list>
              <block s='reportListItem'>
                <l>1</l>
                <block var='words'/>
              </block>
              <l/>
              <custom-block s='join words %mult%txt'>
                <block s='reportCDR'>
                  <block var='words'/>
                </block>
              </custom-block>
            </list>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='list $arrowRight sentence %&apos;data&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations>de:Liste $arrowRight Satz _ca:llista $arrowRight frase _es:lista $arrowRight frase _fr:liste $arrowRight phrase _</translations>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='join words %mult%txt'>
            <block var='data'/>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='sentence $arrowRight list %&apos;text&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations>de:Satz $arrowRight Liste _ca:frase $arrowRight llista _es:frase $arrowRight lista _fr:phrase $arrowRight liste _</translations>
      <inputs>
        <input type='%txt'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportTextSplit'>
            <block var='text'/>
            <l>
              <option>whitespace</option>
            </l>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='catch %&apos;tag&apos; %&apos;action&apos;' category='control' type='command'>
      <header/>
      <code/>
      <translations>de:fange _ _ca:agafa _ _es:atrapar _ _fr:attrape _ _</translations>
      <inputs>
        <input type='%upvar'/>
        <input type='%cs'/>
      </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/>
              </block>
            </script>
            <list>
              <l>cont</l>
            </list>
          </block>
        </block>
        <custom-block s='ignore %s'>
          <l>3</l>
        </custom-block>
      </script>
    </block-definition>
    <block-definition s='throw %&apos;cont&apos;' category='control' type='command'>
      <header/>
      <code/>
      <translations>de:wirf _ca:llança _es:lanzar _fr:lance _</translations>
      <inputs>
        <input type='%s'>catchtag</input>
      </inputs>
      <script>
        <block s='doRun'>
          <block var='cont'/>
          <list/>
        </block>
      </script>
    </block-definition>
    <block-definition s='catch %&apos;tag&apos; %&apos;value&apos;' category='control' type='reporter'>
      <header/>
      <code/>
      <translations>de:fange _ _ca:agafa _ _es:atrapar _ _fr:attrape _ _</translations>
      <inputs>
        <input type='%upvar'/>
        <input type='%anyUE'/>
      </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/>
                </block>
              </block>
            </script>
            <list>
              <l>cont</l>
            </list>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='throw %&apos;tag&apos; %&apos;value&apos;' category='control' type='command'>
      <header/>
      <code/>
      <translations>de:wirf _ _ca:llança _ _es:lanzar _ _fr:lance _ _</translations>
      <inputs>
        <input type='%s'>catchtag</input>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doRun'>
          <block var='tag'/>
          <list>
            <block var='value'/>
          </list>
        </block>
      </script>
    </block-definition>
    <block-definition s='for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;' category='lists' type='command'>
      <header/>
      <code/>
      <translations>de:für jedes _ von _ _ca:per cada _ de _ _es:para cada _ de _ _fr:pour chaque _ de _ _</translations>
      <inputs>
        <input type='%upvar'/>
        <input type='%l'/>
        <input type='%cs'/>
      </inputs>
      <script>
        <block s='doUntil'>
          <custom-block s='empty? %l'>
            <block var='data'/>
          </custom-block>
          <script>
            <block s='doSetVar'>
              <l>item</l>
              <block s='reportListItem'>
                <l>1</l>
                <block var='data'/>
              </block>
            </block>
            <block s='doRun'>
              <block var='action'/>
              <list>
                <block s='reportListItem'>
                  <l>1</l>
                  <block var='data'/>
                </block>
              </list>
            </block>
            <block s='doSetVar'>
              <l>data</l>
              <block s='reportCDR'>
                <block var='data'/>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0' category='control' type='command'>
      <header/>
      <code/>
      <translations>de:falls _ dann _ und pause $pause-1-255-220-0ca:si _ fes _ i atura-ho tot $pause-1-255-220-0es:si _ haz _ y páralo todo $pause-1-255-220-0fr:si _ faire _ et mettre tout en pause $pause-1-255-220-0</translations>
      <inputs>
        <input type='%boolUE'/>
        <input type='%cs'/>
      </inputs>
      <script>
        <block s='doDeclareVariables'>
          <list>
            <l>breakpoint</l>
          </list>
        </block>
        <block s='doIf'>
          <block s='evaluate'>
            <block var='test'/>
            <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/>
            </block>
            <block s='doPauseAll'/>
            <block s='doHideVar'>
              <l/>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='word $arrowRight list %&apos;word&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations>de:Wort $arrowRight Liste _ca:paraula $arrowRight llista _es:palabra $arrowRight lista _fr:mot $arrowRight liste _</translations>
      <inputs>
        <input type='%txt'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportTextSplit'>
            <block var='word'/>
            <l>
              <option>letter</option>
            </l>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='ignore %&apos;x&apos;' category='control' type='command'>
      <header/>
      <code/>
      <translations>de:ignoriere _ca:ignora _es:ignorar _fr:ignore _</translations>
      <inputs>
        <input type='%s'/>
      </inputs>
    </block-definition>
    <block-definition s='list $arrowRight word %&apos;list&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations>de:Liste $arrowRight Wort _ca:llista $arrowRight paraula _es:lista $arrowRight palabra _fr:liste $arrowRight mot _</translations>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportJoinWords'>
            <block var='list'/>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='numbers from %&apos;from&apos; to %&apos;to&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations>de:Zahlen von _ bis _ca:nombres des de _ a _es:números de _ a _fr:nombres de _ à _</translations>
      <inputs>
        <input type='%n'>1</input>
        <input type='%n'>10</input>
      </inputs>
      <script>
        <block s='doIf'>
          <block s='reportGreaterThan'>
            <block var='from'/>
            <block var='to'/>
          </block>
          <script>
            <block s='doReport'>
              <block s='reportNewList'>
                <list/>
              </block>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <block s='reportCONS'>
            <block var='from'/>
            <custom-block s='numbers from %n to %n'>
              <block s='reportSum'>
                <block var='from'/>
                <l>1</l>
              </block>
              <block var='to'/>
            </custom-block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='map %&apos;func&apos; over %&apos;data&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations>de:wende _ an auf _ca:mapeja _ sobre _es:mapear _ sobre _fr:appliquer _ à _</translations>
      <inputs>
        <input type='%repRing'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='empty? %l'>
            <block var='data'/>
          </custom-block>
          <script>
            <block s='doReport'>
              <block var='data'/>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <block s='reportCONS'>
            <block s='evaluate'>
              <block var='func'/>
              <list>
                <block s='reportListItem'>
                  <l>1</l>
                  <block var='data'/>
                </block>
              </list>
            </block>
            <custom-block s='map %repRing over %l'>
              <block var='func'/>
              <block s='reportCDR'>
                <block var='data'/>
              </block>
            </custom-block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='append %&apos;lists&apos;' category='lists' type='reporter'>
      <comment x='0' w='287' collapsed='false' y='0'>Take any number of input lists, and create a new list containing the items of the input lists.  So              APPEND [A B] [C D]where the [,,,] are lists reports the list              [A B C D]not [[A B] [C D]].</comment>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%mult%l'/>
      </inputs>
      <script>
        <block s='doWarp'>
          <script>
            <block s='doIf'>
              <block s='reportEquals'>
                <block var='lists'/>
                <block s='reportNewList'>
                  <list/>
                </block>
              </block>
              <script>
                <block s='doReport'>
                  <block s='reportNewList'>
                    <list/>
                  </block>
                </block>
              </script>
            </block>
            <block s='doIf'>
              <block s='reportEquals'>
                <block s='reportListLength'>
                  <block var='lists'/>
                </block>
                <l>1</l>
              </block>
              <script>
                <block s='doReport'>
                  <block s='reportListItem'>
                    <l>1</l>
                    <block var='lists'/>
                  </block>
                </block>
              </script>
            </block>
            <block s='doIf'>
              <block s='reportEquals'>
                <block s='reportListItem'>
                  <l>1</l>
                  <block var='lists'/>
                </block>
                <block s='reportNewList'>
                  <list/>
                </block>
              </block>
              <script>
                <block s='doReport'>
                  <custom-block s='append %mult%l'>
                    <block s='reportCDR'>
                      <block var='lists'/>
                    </block>
                  </custom-block>
                </block>
              </script>
            </block>
            <block s='doReport'>
              <block s='reportCONS'>
                <block s='reportListItem'>
                  <l>1</l>
                  <block s='reportListItem'>
                    <l>1</l>
                    <block var='lists'/>
                  </block>
                </block>
                <custom-block s='append %mult%l'>
                  <block s='reportCONS'>
                    <block s='reportCDR'>
                      <block s='reportListItem'>
                        <l>1</l>
                        <block var='lists'/>
                      </block>
                    </block>
                    <block s='reportCDR'>
                      <block var='lists'/>
                    </block>
                  </block>
                </custom-block>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='reverse %&apos;data&apos;' category='lists' type='reporter'>
      <comment x='0' w='223' collapsed='false' y='0'>Reports a new list containing the items of the input list, but in the opposite order.</comment>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doDeclareVariables'>
          <list>
            <l>helper</l>
          </list>
        </block>
        <block s='doSetVar'>
          <l>helper</l>
          <block s='reifyScript'>
            <script>
              <block s='doIf'>
                <block s='reportEquals'>
                  <block var='input'/>
                  <block s='reportNewList'>
                    <list/>
                  </block>
                </block>
                <script>
                  <block s='doReport'>
                    <block var='result'/>
                  </block>
                </script>
              </block>
              <block s='doReport'>
                <block s='evaluate'>
                  <block var='helper'/>
                  <list>
                    <block s='reportCDR'>
                      <block var='input'/>
                    </block>
                    <block s='reportCONS'>
                      <block s='reportListItem'>
                        <l>1</l>
                        <block var='input'/>
                      </block>
                      <block var='result'/>
                    </block>
                  </list>
                </block>
              </block>
            </script>
            <list>
              <l>input</l>
              <l>result</l>
            </list>
          </block>
        </block>
        <block s='doWarp'>
          <script>
            <block s='doReport'>
              <block s='evaluate'>
                <block var='helper'/>
                <list>
                  <block var='data'/>
                  <block s='reportNewList'>
                    <list/>
                  </block>
                </list>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='remove duplicates from %&apos;data&apos;' category='lists' type='reporter'>
      <comment x='0' w='209' collapsed='false' y='0'>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/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doWarp'>
          <script>
            <block s='doIf'>
              <block s='reportEquals'>
                <block var='data'/>
                <block s='reportNewList'>
                  <list/>
                </block>
              </block>
              <script>
                <block s='doReport'>
                  <block s='reportNewList'>
                    <list/>
                  </block>
                </block>
              </script>
            </block>
            <block s='doIfElse'>
              <block s='reportListContainsItem'>
                <block s='reportCDR'>
                  <block var='data'/>
                </block>
                <block s='reportListItem'>
                  <l>1</l>
                  <block var='data'/>
                </block>
              </block>
              <script>
                <block s='doReport'>
                  <custom-block s='remove duplicates from %l'>
                    <block s='reportCDR'>
                      <block var='data'/>
                    </block>
                  </custom-block>
                </block>
              </script>
              <script>
                <block s='doReport'>
                  <block s='reportCONS'>
                    <block s='reportListItem'>
                      <l>1</l>
                      <block var='data'/>
                    </block>
                    <custom-block s='remove duplicates from %l'>
                      <block s='reportCDR'>
                        <block var='data'/>
                      </block>
                    </custom-block>
                  </block>
                </block>
              </script>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='sort %&apos;data&apos; ordering with %&apos;function&apos;' category='lists' type='reporter'>
      <comment x='0' w='204' collapsed='false' y='0'>Reports a sorted version of the list in its first input slot, using the comparison function in the second input slot.  For a list of numbers, using &lt; as the comparison function will sort from low to high; using &gt; will sort from high to low.</comment>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
        <input type='%predRing'/>
      </inputs>
      <script>
        <block s='doDeclareVariables'>
          <list>
            <l>even items</l>
            <l>odd items</l>
            <l>merge</l>
          </list>
        </block>
        <block s='doSetVar'>
          <l>odd items</l>
          <block s='reifyScript'>
            <script>
              <block s='doIf'>
                <block s='reportEquals'>
                  <l/>
                  <block s='reportNewList'>
                    <list/>
                  </block>
                </block>
                <script>
                  <block s='doReport'>
                    <block s='reportNewList'>
                      <list/>
                    </block>
                  </block>
                </script>
              </block>
              <block s='doReport'>
                <block s='reportCONS'>
                  <block s='reportListItem'>
                    <l>1</l>
                    <l/>
                  </block>
                  <block s='evaluate'>
                    <block var='even items'/>
                    <list>
                      <block s='reportCDR'>
                        <l/>
                      </block>
                    </list>
                  </block>
                </block>
              </block>
            </script>
            <list/>
          </block>
        </block>
        <block s='doSetVar'>
          <l>even items</l>
          <block s='reifyScript'>
            <script>
              <block s='doIf'>
                <block s='reportEquals'>
                  <l/>
                  <block s='reportNewList'>
                    <list/>
                  </block>
                </block>
                <script>
                  <block s='doReport'>
                    <block s='reportNewList'>
                      <list/>
                    </block>
                  </block>
                </script>
              </block>
              <block s='doReport'>
                <block s='evaluate'>
                  <block var='odd items'/>
                  <list>
                    <block s='reportCDR'>
                      <l/>
                    </block>
                  </list>
                </block>
              </block>
            </script>
            <list/>
          </block>
        </block>
        <block s='doSetVar'>
          <l>merge</l>
          <block s='reifyScript'>
            <script>
              <block s='doIf'>
                <block s='reportEquals'>
                  <block var='#1'/>
                  <block s='reportNewList'>
                    <list/>
                  </block>
                </block>
                <script>
                  <block s='doReport'>
                    <block var='#2'/>
                  </block>
                </script>
              </block>
              <block s='doIf'>
                <block s='reportEquals'>
                  <block var='#2'/>
                  <block s='reportNewList'>
                    <list/>
                  </block>
                </block>
                <script>
                  <block s='doReport'>
                    <block var='#1'/>
                  </block>
                </script>
              </block>
              <block s='doIfElse'>
                <block s='evaluate'>
                  <block var='function'/>
                  <list>
                    <block s='reportListItem'>
                      <l>1</l>
                      <block var='#1'/>
                    </block>
                    <block s='reportListItem'>
                      <l>1</l>
                      <block var='#2'/>
                    </block>
                  </list>
                </block>
                <script>
                  <block s='doReport'>
                    <block s='reportCONS'>
                      <block s='reportListItem'>
                        <l>1</l>
                        <block var='#1'/>
                      </block>
                      <block s='evaluate'>
                        <block var='merge'/>
                        <list>
                          <block s='reportCDR'>
                            <block var='#1'/>
                          </block>
                          <block var='#2'/>
                        </list>
                      </block>
                    </block>
                  </block>
                </script>
                <script>
                  <block s='doReport'>
                    <block s='reportCONS'>
                      <block s='reportListItem'>
                        <l>1</l>
                        <block var='#2'/>
                      </block>
                      <block s='evaluate'>
                        <block var='merge'/>
                        <list>
                          <block var='#1'/>
                          <block s='reportCDR'>
                            <block var='#2'/>
                          </block>
                        </list>
                      </block>
                    </block>
                  </block>
                </script>
              </block>
            </script>
            <list>
              <l>#1</l>
              <l>#2</l>
            </list>
          </block>
        </block>
        <block s='doIf'>
          <block s='reportEquals'>
            <block var='data'/>
            <block s='reportNewList'>
              <list/>
            </block>
          </block>
          <script>
            <block s='doReport'>
              <block s='reportNewList'>
                <list/>
              </block>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block s='reportEquals'>
            <block s='reportCDR'>
              <block var='data'/>
            </block>
            <block s='reportNewList'>
              <list/>
            </block>
          </block>
          <script>
            <block s='doReport'>
              <block var='data'/>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <block s='evaluate'>
            <block var='merge'/>
            <list>
              <custom-block s='sort %l ordering with %predRing'>
                <block s='evaluate'>
                  <block var='odd items'/>
                  <list>
                    <block var='data'/>
                  </list>
                </block>
                <block var='function'/>
              </custom-block>
              <custom-block s='sort %l ordering with %predRing'>
                <block s='evaluate'>
                  <block var='even items'/>
                  <list>
                    <block var='data'/>
                  </list>
                </block>
                <block var='function'/>
              </custom-block>
            </list>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='assoc %&apos;key&apos; %&apos;a-list&apos;' category='lists' type='reporter'>
      <comment x='0' w='289.3333333333333' collapsed='false' y='0'>The second input is an "association list," a list of two-item lists.  Each of those smaller lists has a "key" as its first item and a "value" as its second.  ASSOC reports the first key-value pair in the association list whose key matches the first input.</comment>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doIf'>
          <block s='reportEquals'>
            <block var='a-list'/>
            <block s='reportNewList'>
              <list/>
            </block>
          </block>
          <script>
            <block s='doReport'>
              <block s='reportNewList'>
                <list/>
              </block>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block s='reportEquals'>
            <block var='key'/>
            <block s='reportListItem'>
              <l>1</l>
              <block s='reportListItem'>
                <l>1</l>
                <block var='a-list'/>
              </block>
            </block>
          </block>
          <script>
            <block s='doReport'>
              <block s='reportListItem'>
                <l>1</l>
                <block var='a-list'/>
              </block>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <custom-block s='assoc %s %l'>
            <block var='key'/>
            <block s='reportCDR'>
              <block var='a-list'/>
            </block>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='%&apos;#&apos; map %&apos;function&apos; over %&apos;lists&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%upvar'/>
        <input type='%repRing'/>
        <input type='%mult%l'/>
      </inputs>
      <script>
        <block s='doWarp'>
          <script>
            <block s='doDeclareVariables'>
              <list>
                <l>mapone</l>
                <l>mapmany</l>
              </list>
            </block>
            <block s='doSetVar'>
              <l>mapone</l>
              <block s='reifyScript'>
                <script>
                  <block s='doIf'>
                    <custom-block s='empty? %l'>
                      <block var='data'/>
                    </custom-block>
                    <script>
                      <block s='doReport'>
                        <block s='reportNewList'>
                          <list/>
                        </block>
                      </block>
                    </script>
                  </block>
                  <block s='doSetVar'>
                    <l>#</l>
                    <block var='count'/>
                  </block>
                  <block s='doReport'>
                    <block s='reportCONS'>
                      <block s='evaluate'>
                        <block var='function'/>
                        <list>
                          <block s='reportListItem'>
                            <l>1</l>
                            <block var='data'/>
                          </block>
                        </list>
                      </block>
                      <block s='evaluate'>
                        <block var='mapone'/>
                        <list>
                          <block s='reportCDR'>
                            <block var='data'/>
                          </block>
                          <block s='reportSum'>
                            <block var='count'/>
                            <l>1</l>
                          </block>
                        </list>
                      </block>
                    </block>
                  </block>
                </script>
                <list>
                  <l>data</l>
                  <l>count</l>
                </list>
              </block>
            </block>
            <block s='doSetVar'>
              <l>mapmany</l>
              <block s='reifyScript'>
                <script>
                  <block s='doIf'>
                    <custom-block s='empty? %l'>
                      <block s='reportListItem'>
                        <l>1</l>
                        <block var='data lists'/>
                      </block>
                    </custom-block>
                    <script>
                      <block s='doReport'>
                        <block s='reportNewList'>
                          <list/>
                        </block>
                      </block>
                    </script>
                  </block>
                  <block s='doSetVar'>
                    <l>#</l>
                    <block var='count'/>
                  </block>
                  <block s='doReport'>
                    <block s='reportCONS'>
                      <block s='evaluate'>
                        <block var='function'/>
                        <custom-block s='%upvar map %repRing over %mult%l'>
                          <l>#</l>
                          <block s='reifyReporter'>
                            <autolambda>
                              <block s='reportListItem'>
                                <l>1</l>
                                <l/>
                              </block>
                            </autolambda>
                            <list/>
                          </block>
                          <list>
                            <block var='data lists'/>
                          </list>
                        </custom-block>
                      </block>
                      <block s='evaluate'>
                        <block var='mapmany'/>
                        <list>
                          <custom-block s='%upvar map %repRing over %mult%l'>
                            <l>#</l>
                            <block s='reifyReporter'>
                              <autolambda>
                                <block s='reportCDR'>
                                  <l/>
                                </block>
                              </autolambda>
                              <list/>
                            </block>
                            <list>
                              <block var='data lists'/>
                            </list>
                          </custom-block>
                          <block s='reportSum'>
                            <block var='count'/>
                            <l>1</l>
                          </block>
                        </list>
                      </block>
                    </block>
                  </block>
                </script>
                <list>
                  <l>data lists</l>
                  <l>count</l>
                </list>
              </block>
            </block>
            <block s='doIfElse'>
              <custom-block s='empty? %l'>
                <block s='reportCDR'>
                  <block var='lists'/>
                </block>
              </custom-block>
              <script>
                <block s='doReport'>
                  <block s='evaluate'>
                    <block var='mapone'/>
                    <list>
                      <block s='reportListItem'>
                        <l>1</l>
                        <block var='lists'/>
                      </block>
                      <l>1</l>
                    </list>
                  </block>
                </block>
              </script>
              <script>
                <block s='doReport'>
                  <block s='evaluate'>
                    <block var='mapmany'/>
                    <list>
                      <block var='lists'/>
                      <l>1</l>
                    </list>
                  </block>
                </block>
              </script>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='empty? %&apos;data&apos;' category='lists' type='predicate'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportEquals'>
            <block var='data'/>
            <block s='reportNewList'>
              <list/>
            </block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='%&apos;#&apos; keep items such that %&apos;pred&apos; from %&apos;data&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%upvar'/>
        <input type='%predRing'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doDeclareVariables'>
          <list>
            <l>keep-helper</l>
          </list>
        </block>
        <block s='doSetVar'>
          <l>keep-helper</l>
          <block s='reifyScript'>
            <script>
              <block s='doWarp'>
                <script>
                  <block s='doIf'>
                    <custom-block s='empty? %l'>
                      <block var='data'/>
                    </custom-block>
                    <script>
                      <block s='doReport'>
                        <block s='reportNewList'>
                          <list/>
                        </block>
                      </block>
                    </script>
                  </block>
                  <block s='doSetVar'>
                    <l>#</l>
                    <block var='count'/>
                  </block>
                  <block s='doIfElse'>
                    <block s='evaluate'>
                      <block var='pred'/>
                      <list>
                        <block s='reportListItem'>
                          <l>1</l>
                          <block var='data'/>
                        </block>
                      </list>
                    </block>
                    <script>
                      <block s='doReport'>
                        <block s='reportCONS'>
                          <block s='reportListItem'>
                            <l>1</l>
                            <block var='data'/>
                          </block>
                          <block s='evaluate'>
                            <block var='keep-helper'/>
                            <list>
                              <block s='reportCDR'>
                                <block var='data'/>
                              </block>
                              <block s='reportSum'>
                                <block var='count'/>
                                <l>1</l>
                              </block>
                            </list>
                          </block>
                        </block>
                      </block>
                    </script>
                    <script>
                      <block s='doReport'>
                        <block s='evaluate'>
                          <block var='keep-helper'/>
                          <list>
                            <block s='reportCDR'>
                              <block var='data'/>
                            </block>
                            <block s='reportSum'>
                              <block var='count'/>
                              <l>1</l>
                            </block>
                          </list>
                        </block>
                      </block>
                    </script>
                  </block>
                </script>
              </block>
            </script>
            <list>
              <l>data</l>
              <l>count</l>
            </list>
          </block>
        </block>
        <block s='doReport'>
          <block s='evaluate'>
            <block var='keep-helper'/>
            <list>
              <block var='data'/>
              <l>1</l>
            </list>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='%&apos;#&apos; for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;' category='lists' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%upvar'/>
        <input type='%upvar'/>
        <input type='%l'/>
        <input type='%cs'/>
      </inputs>
      <script>
        <block s='doSetVar'>
          <l>#</l>
          <l>1</l>
        </block>
        <block s='doUntil'>
          <custom-block s='empty? %l'>
            <block var='data'/>
          </custom-block>
          <script>
            <block s='doSetVar'>
              <l>item</l>
              <block s='reportListItem'>
                <l>1</l>
                <block var='data'/>
              </block>
            </block>
            <block s='doRun'>
              <block var='action'/>
              <list>
                <block s='reportListItem'>
                  <l>1</l>
                  <block var='data'/>
                </block>
              </list>
            </block>
            <block s='doSetVar'>
              <l>data</l>
              <block s='reportCDR'>
                <block var='data'/>
              </block>
            </block>
            <block s='doChangeVar'>
              <l>#</l>
              <l>1</l>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='Go to top left corner' category='motion' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='gotoXY'>
          <block s='reportProduct'>
            <block s='reportQuotient'>
              <block s='reportDifference'>
                <block s='reportQuotient'>
                  <block s='reportListItem'>
                    <l>1</l>
                    <custom-block s='setting %s'>
                      <l>Stage size</l>
                    </custom-block>
                  </block>
                  <block var='PIXEL'/>
                </block>
                <l>1</l>
              </block>
              <l>-2</l>
            </block>
            <block var='PIXEL'/>
          </block>
          <block s='reportProduct'>
            <block s='reportQuotient'>
              <block s='reportDifference'>
                <block s='reportQuotient'>
                  <block s='reportListItem'>
                    <l>2</l>
                    <custom-block s='setting %s'>
                      <l>Stage size</l>
                    </custom-block>
                  </block>
                  <block var='PIXEL'/>
                </block>
                <l>1</l>
              </block>
              <l>2</l>
            </block>
            <block var='PIXEL'/>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='odd? %&apos;X&apos;' category='operators' type='predicate'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportEquals'>
            <block s='reportModulus'>
              <block var='X'/>
              <l>2</l>
            </block>
            <l>1</l>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='USE BIGNUMS %&apos;bool&apos;' category='operators' type='command'>
      <comment x='0' w='303.3333333333333' collapsed='false' y='0'>call with True to turn on the entire Scheme numeric tower, including infinite-precision integers, exact rationals, and complex numbers; call with False to restore native JavaScript arithmetic.</comment>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%b'/>
      </inputs>
      <script>
        <block s='doDeclareVariables'>
          <list>
            <l>isDone</l>
          </list>
        </block>
        <block s='doSetVar'>
          <l>isDone</l>
          <block s='evaluate'>
            <block s='reportJSFunction'>
              <list>
                <l>useBigNums</l>
              </list>
              <l>var done = false;function initialize (callback) {    var bigScript = document.createElement(&apos;script&apos;);    bigScript.src = &apos;//snap.berkeley.edu/snapsource/libraries/biginteger.js&apos;;    bigScript.onload = loadScheme;    document.head.appendChild(bigScript);    function loadScheme () {        var schemeScript = document.createElement(&apos;script&apos;);        schemeScript.src = &apos;//snap.berkeley.edu/snapsource/libraries/schemeNumber.js&apos;;        schemeScript.onload = finish;        document.head.appendChild(schemeScript);    }    function finish () {        makeGlobalObject();        callback();    }}function makeGlobalObject () {    window.bigNumbers = {        originalEvaluate: InputSlotMorph.prototype.evaluate,        originalChangeVar: VariableFrame.prototype.changeVar,        originalPrims: {            reportSum: Process.prototype.reportSum,            reportDifference: Process.prototype.reportDifference,            reportProduct: Process.prototype.reportProduct,            reportQuotient: Process.prototype.reportQuotient,            reportModulus: Process.prototype.reportModulus,            reportRandom: Process.prototype.reportRandom,            reportLessThan: Process.prototype.reportLessThan,            reportGreaterThan: Process.prototype.reportGreaterThan,            reportEquals: Process.prototype.reportEquals,            reportIsIdentical: Process.prototype.reportIsIdentical,            reportMonadic: Process.prototype.reportMonadic        }    };}function loadBlocks () {    var fn = SchemeNumber.fn;    var originalPrims = window.bigNumbers.originalPrims;    if (useBigNums) {        InputSlotMorph.prototype.evaluate = function () {            var contents = this.contents();            if (this.constant) {                return this.constant;            }            if (this.isNumeric) {                return parseNumber(contents.text || &apos;0&apos;);            }            return contents.text;        };        VariableFrame.prototype.changeVar = function (name, delta, sender) {            var frame = this.find(name),                value,                newValue;            if (frame) {                value = parseNumber(frame.vars[name].value);                newValue = value !== value ? delta : value + parseNumber(delta);                if (sender instanceof SpriteMorph &amp;&amp;                        (frame.owner instanceof SpriteMorph) &amp;&amp;                        (sender !== frame.owner)) {                    sender.shadowVar(name, newValue);                } else {                    frame.vars[name].value = newValue;                }            }        };        Object.assign(Process.prototype, {            reportSum: function (a, b) {                a = parseNumber(a);                b = parseNumber(b);                if (a !== a || b !== b) return NaN;                return fn[&apos;+&apos;](a, b);            },            reportDifference: function (a, b) {                a = parseNumber(a);                b = parseNumber(b);                if (a !== a || b !== b) return NaN;                return fn[&apos;-&apos;](a, b);            },            reportProduct: function (a, b) {                a = parseNumber(a);                b = parseNumber(b);                if (a !== a || b !== b) return NaN;                return fn[&apos;*&apos;](a, b);            },            reportQuotient: function (a, b) {                a = parseNumber(a);                b = parseNumber(b);                if (fn[&apos;=&apos;](b, &apos;0&apos;) &amp;&amp; !fn[&apos;=&apos;](a, &apos;0&apos;)) {                      return (fn[&apos;&lt;&apos;](a, &apos;0&apos;) ? SchemeNumber(&apos;-inf.0&apos;) : SchemeNumber(&apos;+inf.0&apos;))                };                if (a !== a || b !== b || fn[&apos;=&apos;](b, &apos;0&apos;)) return SchemeNumber(&apos;+nan.0&apos;);                return fn[&apos;/&apos;](a, b);            },            reportModulus: function (a, b) {                a = parseNumber(a);                b = parseNumber(b);                if (a !== a || b !== b) return NaN;                var result = fn.mod(a, b);                if (fn[&apos;&lt;&apos;](b, &apos;0&apos;) &amp;&amp; fn[&apos;&gt;&apos;](result, &apos;0&apos;)) {                    result = fn[&apos;+&apos;](result, b);                }                return result;            },            reportRandom: function (min, max) {                var floor = parseNumber(min),                    ceil = parseNumber(max);                if (floor !== floor || ceil !== ceil) return NaN;                if (!fn[&apos;=&apos;](fn.mod(floor, &apos;1&apos;), &apos;0&apos;) || !fn[&apos;=&apos;](fn.mod(ceil, &apos;1&apos;), &apos;0&apos;)) {                    // One of the numbers isn&apos;t whole. Include the decimal.                    return fn[&apos;+&apos;](                        fn[&apos;*&apos;](                            Math.random(),                            fn[&apos;-&apos;](ceil, floor)                        ),                        floor                    );                }                return fn.floor(                    fn[&apos;+&apos;](                        fn[&apos;*&apos;](                            Math.random(),                            fn[&apos;+&apos;](                                fn[&apos;-&apos;](ceil, floor),                                &apos;1&apos;                            )                        ),                        floor                    )                );            },            reportLessThan: function (a, b) {                a = parseNumber(a);                b = parseNumber(b);                if (a !== a || b !== b) return NaN;                return fn[&apos;&lt;&apos;](a, b);            },            reportGreaterThan: function (a, b) {                a = parseNumber(a);                b = parseNumber(b);                if (a !== a || b !== b) return NaN;                return fn[&apos;&gt;&apos;](a, b);            },            reportGreaterThan: function (a, b) {                a = parseNumber(a);                b = parseNumber(b);                if (a !== a || b !== b) return NaN;                return fn[&apos;&gt;&apos;](a, b);            },            reportEqual: function (a, b) {                x = parseNumber(a);                y = parseNumber(b);                if (x !== x || y !== y) return snapEquals(a, b);                return fn[&apos;=&apos;](x, y);            },            reportIsIdentical: function (a, b) {                x = parseNumber(a);                y = parseNumber(b);                if (x !== x || y !== y) return originalPrims.reportIsIdentical(a, b);                return fn[&apos;=&apos;](x, y);            },            reportMonadic: function (fname, n) {                n = parseNumber(n);                if (n !== n) return NaN;                switch (Process.prototype.inputOption(fname)) {                case &apos;abs&apos;:                    return fn.abs(n);                case &apos;ceiling&apos;:                    return fn.ceiling(n);                case &apos;floor&apos;:                    return fn.floor(n);                case &apos;sqrt&apos;:                    return sqrt(n);                case &apos;sin&apos;:                    return fn.sin(radians(n));                case &apos;cos&apos;:                    return fn.cos(radians(n));                case &apos;tan&apos;:                    return fn.tan(radians(n));                case &apos;asin&apos;:                    return degrees(fn.asin(n));                case &apos;acos&apos;:                    return degrees(fn.acos(n));                case &apos;atan&apos;:                    return degrees(fn.atan(n));                case &apos;ln&apos;:                    return fn.log(n);                case &apos;log&apos;:                    return fn.log(n, &apos;10&apos;);                case &apos;e^&apos;:                    return fn.exp(n);                case &apos;10^&apos;:                    return fn.expt(&apos;10&apos;, n);                default:                    return SchemeNumber(&apos;0&apos;);                }            }        });    } else {        InputSlotMorph.prototype.evaluate = window.bigNumbers.originalEvaluate;        VariableFrame.prototype.changeVar = window.bigNumbers.originalChangeVar;        Object.assign(Process.prototype, originalPrims);    }    done = true;}function parseNumber (n) {    var fn = SchemeNumber.fn;    if (!fn[&apos;number?&apos;](n)) {        n = &apos;&apos; + n;        try {            return parseENotation(n) || SchemeNumber(n);        } catch (err) {            return NaN;        }    }    return n;}function parseENotation (n) {    var fn = SchemeNumber.fn;    var numbers = n.match(/^(-?\d+\.?\d*|-?\.\d+)e(-?\d+)$/i);    if (!numbers) return null;    var coefficient = numbers[1];    var exponent = numbers[2];    return fn[&apos;*&apos;](        coefficient,        fn.expt(&apos;10&apos;, exponent)    );}function sqrt (n) {    var fn = SchemeNumber.fn;    if (!fn[&apos;exact?&apos;](n) || !fn[&apos;rational?&apos;](n) || fn[&apos;&lt;&apos;](n,&apos;0&apos;)) return fn.sqrt(n);    var rootNumerator = fn[&apos;exact-integer-sqrt&apos;](fn.numerator(n));    if (!fn[&apos;=&apos;](rootNumerator[1], &apos;0&apos;)) return fn.sqrt(n);    var rootDenominator = fn[&apos;exact-integer-sqrt&apos;](fn.denominator(n));    if (!fn[&apos;=&apos;](rootDenominator[1], &apos;0&apos;)) return fn.sqrt(n);    return fn[&apos;/&apos;](rootNumerator[0], rootDenominator[0]);}function isDone () {    return done;}if (window.bigNumbers) {    loadBlocks();} else {    initialize(loadBlocks);}return isDone;</l>
            </block>
            <list>
              <block var='bool'/>
            </list>
          </block>
        </block>
        <block s='doWaitUntil'>
          <block s='evaluate'>
            <block var='isDone'/>
            <list/>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;' category='control' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%b'/>
        <input type='%anyUE'/>
        <input type='%anyUE'/>
      </inputs>
      <script>
        <block s='doIfElse'>
          <block var='test'/>
          <script>
            <block s='doReport'>
              <block s='evaluate'>
                <block var='true'/>
                <list/>
              </block>
            </block>
          </script>
          <script>
            <block s='doReport'>
              <block s='evaluate'>
                <block var='false'/>
                <list/>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='%&apos;n&apos; !' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%n'/>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='if %b then %anyUE else %anyUE'>
            <block s='reportEquals'>
              <block var='n'/>
              <l>0</l>
            </block>
            <l>1</l>
            <block s='reportProduct'>
              <block var='n'/>
              <custom-block s='%n !'>
                <block s='reportDifference'>
                  <block var='n'/>
                  <l>1</l>
                </block>
              </custom-block>
            </block>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='%&apos;x&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block var='x'/>
        </block>
      </script>
    </block-definition>
    <block-definition s='Scheme number %&apos;function&apos; of %&apos;number&apos;' category='operators' type='reporter'>
      <comment x='0' w='300' collapsed='true' y='0'>Provides Scheme arithmetic functions not in JavaScript</comment>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input readonly='true' type='%s'>
          <options>number?complex?real?rational?integer?exact?inexact?exactinexactfinite?infinite?nan?numeratordenominatorreal-partimag-partmagnitudeangle</options>
        </input>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='evaluate'>
            <block s='reportJSFunction'>
              <list>
                <l>which</l>
                <l>num</l>
              </list>
              <l>function parseNumber (n) {    var fn = SchemeNumber.fn;    if (!fn[&apos;number?&apos;](n)) {        n = &apos;&apos; + n;        try {            return parseENotation(n) || SchemeNumber(n);        } catch (err) {            return NaN;        }    }    return n;}function parseENotation (n) {    var fn = SchemeNumber.fn;    var numbers = n.match(/^(-?\d+\.?\d*|-?\.\d+)e(-?\d+)$/i);    if (!numbers) return null;    var coefficient = numbers[1];    var exponent = numbers[2];    return fn[&apos;*&apos;](        coefficient,        fn.expt(&apos;10&apos;, exponent)    );}var fn=SchemeNumber.fn,      number=parseNumber(num);switch (which) {  case &apos;number?&apos;:  case &apos;complex?&apos;:    return (fn[&apos;number?&apos;](number));  case &apos;real?&apos;:    return (fn[&apos;real?&apos;](number) || fn[&apos;real-valued?&apos;](number));  case &apos;rational?&apos;:    return (fn[&apos;rational?&apos;](number) || (fn[&apos;=&apos;](number, fn.rationalize(number, parseNumber(&apos;1.0e-5&apos;)))));  case &apos;integer?&apos;:    return (fn[&apos;integer?&apos;](number) || fn[&apos;integer-valued?&apos;](number));  case &apos;exact?&apos;:  case &apos;inexact?&apos;:  case &apos;finite?&apos;:  case &apos;infinite?&apos;:  case &apos;nan?&apos;:  case &apos;real-part&apos;:  case &apos;imag-part&apos;:    return (fn[which](number));  case &apos;magnitude&apos;:    return (fn.magnitude(number));  case &apos;angle&apos;:    return (fn.angle(number));  case &apos;numerator&apos;:    return (fn.numerator(number));  case &apos;denominator&apos;:    return (fn.denominator(number));  case &apos;exact&apos;:    return (fn.exact(number));case &apos;inexact&apos;:    return (fn.inexact(number));}</l>
            </block>
            <list>
              <block var='function'/>
              <block var='number'/>
            </list>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='Go to top center' category='motion' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='gotoXY'>
          <l>0</l>
          <block s='reportProduct'>
            <block s='reportQuotient'>
              <block s='reportDifference'>
                <block s='reportQuotient'>
                  <block s='reportListItem'>
                    <l>2</l>
                    <custom-block s='setting %s'>
                      <l>Stage size</l>
                    </custom-block>
                  </block>
                  <block var='PIXEL'/>
                </block>
                <l>1</l>
              </block>
              <l>2</l>
            </block>
            <block var='PIXEL'/>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='Center Line %&apos;length&apos;' category='other' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='forward'>
          <block s='reportProduct'>
            <block s='reportQuotient'>
              <block s='reportDifference'>
                <block var='length'/>
                <l>1</l>
              </block>
              <l>2</l>
            </block>
            <block var='PIXEL'/>
          </block>
        </block>
        <block s='turnLeft'>
          <l>180</l>
        </block>
        <block s='doRepeat'>
          <block s='reportDifference'>
            <block var='length'/>
            <l>1</l>
          </block>
          <script>
            <custom-block s='pixel $rectangleSolid or $rectangle %b'>
              <l>
                <bool>true</bool>
              </l>
            </custom-block>
            <block s='forward'>
              <block var='PIXEL'/>
            </block>
          </script>
        </block>
        <custom-block s='pixel $rectangleSolid or $rectangle %b'>
          <l>
            <bool>true</bool>
          </l>
        </custom-block>
        <block s='turnLeft'>
          <l>180</l>
        </block>
        <block s='forward'>
          <block s='reportProduct'>
            <block s='reportQuotient'>
              <block s='reportDifference'>
                <block var='length'/>
                <l>1</l>
              </block>
              <l>2</l>
            </block>
            <block var='PIXEL'/>
          </block>
        </block>
      </script>
      <scripts>
        <script x='161.5' y='274.1'>
          <custom-block s='Center Line %s'>
            <l>2</l>
          </custom-block>
        </script>
        <script x='203.5' y='143.10000000000002'>
          <block s='forward'>
            <block s='reportProduct'>
              <block s='reportQuotient'>
                <block s='reportDifference'>
                  <l>3</l>
                  <l>1</l>
                </block>
                <l>2</l>
              </block>
              <block var='PIXEL'/>
            </block>
          </block>
        </script>
      </scripts>
    </block-definition>
    <block-definition s='PIXEL move %&apos;steps&apos;' category='pen' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%n'/>
      </inputs>
      <script>
        <block s='doRepeat'>
          <block var='steps'/>
          <script>
            <custom-block s='pixel $rectangleSolid or $rectangle %b'>
              <l>
                <bool>true</bool>
              </l>
            </custom-block>
            <block s='forward'>
              <block var='PIXEL'/>
            </block>
          </script>
        </block>
        <custom-block s='pixel $rectangleSolid or $rectangle %b'>
          <l>
            <bool>true</bool>
          </l>
        </custom-block>
      </script>
    </block-definition>
    <block-definition s='Turn pixel ( %&apos;x&apos; , %&apos;y&apos; ) on' category='pen' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%n'/>
        <input type='%n'/>
      </inputs>
      <script>
        <block s='gotoXY'>
          <block s='reportProduct'>
            <block var='x'/>
            <block var='PIXEL'/>
          </block>
          <block s='reportProduct'>
            <block var='y'/>
            <block var='PIXEL'/>
          </block>
        </block>
        <custom-block s='pixel $rectangleSolid or $rectangle %b'>
          <l>
            <bool>true</bool>
          </l>
        </custom-block>
      </script>
    </block-definition>
    <block-definition s='Checker %&apos;N&apos;' category='pen' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <custom-block s='for %upvar = %n to %n %cs'>
          <l>y</l>
          <l>0</l>
          <block s='reportDifference'>
            <block var='N'/>
            <l>1</l>
          </block>
          <script>
            <custom-block s='for %upvar = %n to %n %cs'>
              <l>x</l>
              <l>0</l>
              <block s='reportDifference'>
                <block var='N'/>
                <l>1</l>
              </block>
              <script>
                <block s='doIf'>
                  <block s='reportEquals'>
                    <block s='reportModulus'>
                      <block s='reportSum'>
                        <block var='x'/>
                        <block var='y'/>
                      </block>
                      <l>2</l>
                    </block>
                    <l>0</l>
                  </block>
                  <script>
                    <custom-block s='Turn pixel ( %n , %n ) on'>
                      <block var='x'/>
                      <block var='y'/>
                    </custom-block>
                  </script>
                </block>
              </script>
            </custom-block>
          </script>
        </custom-block>
      </script>
      <scripts>
        <script x='30' y='226.93333333333337'>
          <block s='reportOr'>
            <block s='reportEquals'>
              <block s='reportModulus'>
                <block var='x'/>
                <l>2</l>
              </block>
              <l>1</l>
            </block>
            <block s='reportEquals'>
              <block s='reportModulus'>
                <block var='y'/>
                <l>2</l>
              </block>
              <l>1</l>
            </block>
          </block>
        </script>
        <script x='46.000001' y='257.9333393333334'>
          <block s='reportSum'>
            <l/>
            <l/>
          </block>
        </script>
        <script x='196.2958994375' y='263.9333393333334'>
          <block var='x'/>
        </script>
      </scripts>
    </block-definition>
    <block-definition s='Mandelbrot %&apos;max iteration&apos; Iterations %&apos;x0&apos; %&apos;y0&apos;' category='other' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%n'>100</input>
        <input type='%n'/>
        <input type='%n'/>
      </inputs>
      <script>
        <block s='doWarp'>
          <script>
            <block s='doDeclareVariables'>
              <list>
                <l>x</l>
                <l>y</l>
                <l>iteration</l>
                <l>xtemp</l>
              </list>
            </block>
            <block s='doSetVar'>
              <l>x</l>
              <l>0</l>
            </block>
            <block s='doSetVar'>
              <l>y</l>
              <l>0</l>
            </block>
            <block s='doSetVar'>
              <l>iteration</l>
              <l>0</l>
            </block>
            <block s='doUntil'>
              <block s='reportNot'>
                <block s='reportAnd'>
                  <block s='reportLessThan'>
                    <block s='reportSum'>
                      <block s='reportProduct'>
                        <block var='x'/>
                        <block var='x'/>
                      </block>
                      <block s='reportProduct'>
                        <block var='y'/>
                        <block var='y'/>
                      </block>
                    </block>
                    <l>4</l>
                  </block>
                  <block s='reportLessThan'>
                    <block var='iteration'/>
                    <block var='max iteration'/>
                  </block>
                </block>
              </block>
              <script>
                <block s='doSetVar'>
                  <l>xtemp</l>
                  <block s='reportSum'>
                    <block s='reportDifference'>
                      <block s='reportProduct'>
                        <block var='x'/>
                        <block var='x'/>
                      </block>
                      <block s='reportProduct'>
                        <block var='y'/>
                        <block var='y'/>
                      </block>
                    </block>
                    <block var='x0'/>
                  </block>
                </block>
                <block s='doSetVar'>
                  <l>y</l>
                  <block s='reportSum'>
                    <block s='reportProduct'>
                      <l>2</l>
                      <block s='reportProduct'>
                        <block var='x'/>
                        <block var='y'/>
                      </block>
                    </block>
                    <block var='y0'/>
                  </block>
                </block>
                <block s='doSetVar'>
                  <l>x</l>
                  <block var='xtemp'/>
                </block>
                <block s='doChangeVar'>
                  <l>iteration</l>
                  <l>1</l>
                </block>
              </script>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <block var='iteration'/>
        </block>
      </script>
    </block-definition>
    <block-definition s='$flash Mandelbrot %&apos;maxiters&apos; Iterations %&apos;x0&apos; %&apos;y0&apos;' category='other' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%n'/>
        <input type='%n'/>
        <input type='%n'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='evaluate'>
            <block s='reportJSFunction'>
              <list>
                <l>maxiters</l>
                <l>x0</l>
                <l>y0</l>
              </list>
              <l>var x,y,iteration,xtemp;x=0;y=0;iteration=0;while ((x*x+y*y &lt; 4) &amp;&amp; (iteration &lt; +maxiters)) {  xtemp = ((x*x) - (y*y)) + +x0;  y = (2*x*y) + +y0;  x = xtemp;  iteration = iteration + 1;}return iteration;</l>
            </block>
            <list>
              <block var='maxiters'/>
              <block var='x0'/>
              <block var='y0'/>
            </list>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; by %&apos;step&apos; loop? %&apos;loop?&apos; %&apos;action&apos;' category='control' type='command'>
      <header/>
      <code/>
      <translations>de:für _ = _ bis _ _ca:per _ = _ fins _ _es:para _ = _ hasta _ _fr:pour _ allant de _ à _ _</translations>
      <inputs>
        <input type='%upvar'/>
        <input type='%n'>1</input>
        <input type='%n'>10</input>
        <input type='%n'>1</input>
        <input type='%b'/>
        <input type='%cs'/>
      </inputs>
      <script>
        <block s='doDeclareVariables'>
          <list>
            <l>tester</l>
            <l>reverse tester</l>
          </list>
        </block>
        <block s='doIfElse'>
          <block s='reportGreaterThan'>
            <block var='start'/>
            <block var='end'/>
          </block>
          <script>
            <block s='doSetVar'>
              <l>tester</l>
              <block s='reifyReporter'>
                <autolambda>
                  <block s='reportLessThan'>
                    <block var='i'/>
                    <block var='end'/>
                  </block>
                </autolambda>
                <list/>
              </block>
            </block>
            <block s='doSetVar'>
              <l>reverse tester</l>
              <block s='reifyReporter'>
                <autolambda>
                  <block s='reportGreaterThan'>
                    <block s='reportDifference'>
                      <block var='i'/>
                      <block var='step'/>
                    </block>
                    <block var='start'/>
                  </block>
                </autolambda>
                <list/>
              </block>
            </block>
          </script>
          <script>
            <block s='doSetVar'>
              <l>tester</l>
              <block s='reifyReporter'>
                <autolambda>
                  <block s='reportGreaterThan'>
                    <block var='i'/>
                    <block var='end'/>
                  </block>
                </autolambda>
                <list/>
              </block>
            </block>
            <block s='doSetVar'>
              <l>reverse tester</l>
              <block s='reifyReporter'>
                <autolambda>
                  <block s='reportLessThan'>
                    <block s='reportDifference'>
                      <block var='i'/>
                      <block var='step'/>
                    </block>
                    <block var='start'/>
                  </block>
                </autolambda>
                <list/>
              </block>
            </block>
          </script>
        </block>
        <block s='doSetVar'>
          <l>i</l>
          <block var='start'/>
        </block>
        <block s='doUntil'>
          <block s='evaluate'>
            <block var='tester'/>
            <list/>
          </block>
          <script>
            <block s='doRun'>
              <block var='action'/>
              <list/>
            </block>
            <block s='doChangeVar'>
              <l>i</l>
              <block var='step'/>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block var='loop?'/>
          <script>
            <block s='doChangeVar'>
              <l>i</l>
              <block s='reportDifference'>
                <l>0</l>
                <block var='step'/>
              </block>
            </block>
            <block s='doChangeVar'>
              <l>i</l>
              <block s='reportDifference'>
                <l>0</l>
                <block var='step'/>
              </block>
            </block>
            <block s='doUntil'>
              <block s='evaluate'>
                <block var='reverse tester'/>
                <list/>
              </block>
              <script>
                <block s='doRun'>
                  <block var='action'/>
                  <list/>
                </block>
                <block s='doChangeVar'>
                  <l>i</l>
                  <block s='reportDifference'>
                    <l>0</l>
                    <block var='step'/>
                  </block>
                </block>
              </script>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='pic... %&apos;filename&apos;' category='pen' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doRun'>
          <block s='reportJSFunction'>
            <list>
              <l>filename</l>
            </list>
            <l>var stage = this.parentThatIsA(StageMorph);var ide = this.parentThatIsA(IDE_Morph);ide.saveCanvasAs(stage.fullImageClassic(), filename);</l>
          </block>
          <list>
            <block var='filename'/>
          </list>
        </block>
      </script>
    </block-definition>
    <block-definition s='Mandelbrot!!' category='other' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doSetVar'>
          <l>PIXEL</l>
          <block s='reportListItem'>
            <l>2</l>
            <custom-block s='setting %s'>
              <l>Stage size</l>
            </custom-block>
          </block>
        </block>
        <block s='doUntil'>
          <block s='reportLessThan'>
            <block var='PIXEL'/>
            <l>1</l>
          </block>
          <script>
            <block s='doWarp'>
              <script>
                <block s='setSize'>
                  <block var='PIXEL'/>
                </block>
                <block s='doDeclareVariables'>
                  <list>
                    <l>iterations</l>
                    <l>rows</l>
                    <l>cols</l>
                    <l>zoomscale</l>
                  </list>
                </block>
                <block s='doSetVar'>
                  <l>cols</l>
                  <block s='reportQuotient'>
                    <block s='reportListItem'>
                      <l>2</l>
                      <custom-block s='setting %s'>
                        <l>Stage size</l>
                      </custom-block>
                    </block>
                    <block var='PIXEL'/>
                  </block>
                </block>
                <block s='doSetVar'>
                  <l>rows</l>
                  <block s='reportQuotient'>
                    <block s='reportListItem'>
                      <l>1</l>
                      <custom-block s='setting %s'>
                        <l>Stage size</l>
                      </custom-block>
                    </block>
                    <block var='PIXEL'/>
                  </block>
                </block>
                <block s='doSetVar'>
                  <l>zoomscale</l>
                  <block s='reportQuotient'>
                    <block var='cols'/>
                    <l>3</l>
                  </block>
                </block>
                <block s='setHeading'>
                  <l>90</l>
                </block>
                <custom-block s='for %upvar = %n to %n by %n %cs'>
                  <l>y</l>
                  <block s='reportQuotient'>
                    <block s='reportDifference'>
                      <block var='rows'/>
                      <l>1</l>
                    </block>
                    <l>-2</l>
                  </block>
                  <block s='reportQuotient'>
                    <block s='reportDifference'>
                      <block var='rows'/>
                      <l>1</l>
                    </block>
                    <l>2</l>
                  </block>
                  <l>1</l>
                  <script>
                    <custom-block s='for %upvar = %n to %n by %n %cs'>
                      <l>x</l>
                      <block s='reportQuotient'>
                        <block s='reportDifference'>
                          <block var='cols'/>
                          <l>1</l>
                        </block>
                        <l>-2</l>
                      </block>
                      <block s='reportQuotient'>
                        <block s='reportDifference'>
                          <block var='cols'/>
                          <l>1</l>
                        </block>
                        <l>2</l>
                      </block>
                      <l>1</l>
                      <script>
                        <block s='gotoXY'>
                          <block s='reportProduct'>
                            <block var='x'/>
                            <block var='PIXEL'/>
                          </block>
                          <block s='reportProduct'>
                            <block var='y'/>
                            <block var='PIXEL'/>
                          </block>
                        </block>
                        <block s='doSetVar'>
                          <l>iterations</l>
                          <custom-block s='$flash Mandelbrot %n Iterations %n %n'>
                            <block var='MAX ITERATIONS'/>
                            <block s='reportSum'>
                              <block s='reportQuotient'>
                                <block s='reportQuotient'>
                                  <block var='x'/>
                                  <block var='zoomscale'/>
                                </block>
                                <block var='ZOOM'/>
                              </block>
                              <block s='reportListItem'>
                                <l>1</l>
                                <block var='CENTER'/>
                              </block>
                            </block>
                            <block s='reportSum'>
                              <block s='reportQuotient'>
                                <block s='reportQuotient'>
                                  <block var='y'/>
                                  <block var='zoomscale'/>
                                </block>
                                <block var='ZOOM'/>
                              </block>
                              <block s='reportListItem'>
                                <l>2</l>
                                <block var='CENTER'/>
                              </block>
                            </block>
                          </custom-block>
                        </block>
                        <custom-block s='set pen color to h: %n s: %n v: %n'>
                          <block s='reportQuotient'>
                            <block s='reportModulus'>
                              <block s='reportSum'>
                                <block var='iterations'/>
                                <block s='reportProduct'>
                                  <l>68</l>
                                  <block s='reportQuotient'>
                                    <block var='MAX ITERATIONS'/>
                                    <l>100</l>
                                  </block>
                                </block>
                              </block>
                              <block var='MAX ITERATIONS'/>
                            </block>
                            <block var='MAX ITERATIONS'/>
                          </block>
                          <l>1</l>
                          <custom-block s='if %b then %anyUE else %anyUE'>
                            <block s='reportEquals'>
                              <block var='iterations'/>
                              <block var='MAX ITERATIONS'/>
                            </block>
                            <l>0</l>
                            <l>1</l>
                          </custom-block>
                        </custom-block>
                        <custom-block s='pixel $rectangleSolid or $rectangle %b'>
                          <l>
                            <bool>true</bool>
                          </l>
                        </custom-block>
                      </script>
                    </custom-block>
                  </script>
                </custom-block>
              </script>
            </block>
            <block s='doSetVar'>
              <l>PIXEL</l>
              <block s='reportQuotient'>
                <block var='PIXEL'/>
                <l>3</l>
              </block>
            </block>
          </script>
        </block>
        <block s='doSetVar'>
          <l>PIXEL</l>
          <l>1</l>
        </block>
      </script>
    </block-definition>
    <block-definition s='Draw Grid' category='other' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='clear'/>
        <custom-block s='set pen color to r: %n g: %n b: %n'>
          <l>255</l>
          <l>255</l>
          <l>255</l>
        </custom-block>
        <block s='doIf'>
          <block s='reportGreaterThan'>
            <block var='PIXEL'/>
            <l>1</l>
          </block>
          <script>
            <block s='setSize'>
              <l>.333</l>
            </block>
            <custom-block s='set flag %s to %b'>
              <l>Flat line ends</l>
              <l>
                <bool>true</bool>
              </l>
            </custom-block>
            <block s='doDeclareVariables'>
              <list>
                <l>X min</l>
                <l>X max</l>
                <l>Y min</l>
                <l>Y max</l>
              </list>
            </block>
            <block s='doSetVar'>
              <l>X min</l>
              <block s='reportQuotient'>
                <block s='reportListItem'>
                  <l>1</l>
                  <custom-block s='setting %s'>
                    <l>Stage size</l>
                  </custom-block>
                </block>
                <l>-2</l>
              </block>
            </block>
            <block s='doSetVar'>
              <l>X max</l>
              <block s='reportQuotient'>
                <block s='reportListItem'>
                  <l>1</l>
                  <custom-block s='setting %s'>
                    <l>Stage size</l>
                  </custom-block>
                </block>
                <l>2</l>
              </block>
            </block>
            <block s='doSetVar'>
              <l>Y min</l>
              <block s='reportQuotient'>
                <block s='reportListItem'>
                  <l>2</l>
                  <custom-block s='setting %s'>
                    <l>Stage size</l>
                  </custom-block>
                </block>
                <l>-2</l>
              </block>
            </block>
            <block s='doSetVar'>
              <l>Y max</l>
              <block s='reportQuotient'>
                <block s='reportListItem'>
                  <l>2</l>
                  <custom-block s='setting %s'>
                    <l>Stage size</l>
                  </custom-block>
                </block>
                <l>2</l>
              </block>
            </block>
            <block s='doWarp'>
              <script>
                <custom-block s='for %upvar = %n to %n by %n %cs'>
                  <l>x</l>
                  <block var='X min'/>
                  <block var='X max'/>
                  <block var='PIXEL'/>
                  <script>
                    <custom-block s='Draw line from %l to %l'>
                      <block s='reportNewList'>
                        <list>
                          <block var='x'/>
                          <block var='Y min'/>
                        </list>
                      </block>
                      <block s='reportNewList'>
                        <list>
                          <block var='x'/>
                          <block var='Y max'/>
                        </list>
                      </block>
                    </custom-block>
                  </script>
                </custom-block>
                <custom-block s='for %upvar = %n to %n by %n %cs'>
                  <l>y</l>
                  <block var='Y min'/>
                  <block var='Y max'/>
                  <block var='PIXEL'/>
                  <script>
                    <custom-block s='Draw line from %l to %l'>
                      <block s='reportNewList'>
                        <list>
                          <block var='X min'/>
                          <block var='y'/>
                        </list>
                      </block>
                      <block s='reportNewList'>
                        <list>
                          <block var='X max'/>
                          <block var='y'/>
                        </list>
                      </block>
                    </custom-block>
                  </script>
                </custom-block>
              </script>
            </block>
          </script>
        </block>
        <block s='setSize'>
          <block var='PIXEL'/>
        </block>
        <block s='gotoXY'>
          <l>0</l>
          <l>0</l>
        </block>
        <custom-block s='pixel $rectangleSolid or $rectangle %b'>
          <l>
            <bool>false</bool>
          </l>
        </custom-block>
      </script>
    </block-definition>
    <block-definition s='Mandelbrot iterations at C= %&apos;C&apos; capped at %&apos;max iterations&apos;' category='other' type='reporter'>
      <comment x='0' w='90' collapsed='false' y='0'>f(z,c) = z^2 + c</comment>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
        <input type='%n'/>
      </inputs>
      <script>
        <block s='doDeclareVariables'>
          <list>
            <l>iterations so far</l>
            <l>Z</l>
          </list>
        </block>
        <block s='doSetVar'>
          <l>Z</l>
          <custom-block s='COMPLEX 0'/>
        </block>
        <block s='doSetVar'>
          <l>iterations so far</l>
          <l>0</l>
        </block>
        <block s='doWarp'>
          <script>
            <block s='doUntil'>
              <block s='reportOr'>
                <block s='reportEquals'>
                  <block var='iterations so far'/>
                  <block var='max iterations'/>
                </block>
                <custom-block s='COMPLEX %s &gt; 2 from origin'>
                  <block var='Z'/>
                </custom-block>
              </block>
              <script>
                <block s='doSetVar'>
                  <l>Z</l>
                  <custom-block s='COMPLEX f( z= %s , c= %s )'>
                    <block var='Z'/>
                    <block var='C'/>
                  </custom-block>
                </block>
                <block s='doChangeVar'>
                  <l>iterations so far</l>
                  <l>1</l>
                </block>
              </script>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <block var='iterations so far'/>
        </block>
      </script>
    </block-definition>
    <block-definition s='COMPLEX f( z= %&apos;z&apos; , c= %&apos;c&apos; )' category='other' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='COMPLEX %s + %s'>
            <custom-block s='COMPLEX %s * %s'>
              <block var='z'/>
              <block var='z'/>
              <variables>
                <variable name='a'>
                  <l>2</l>
                </variable>
                <variable name='b'>
                  <l>0</l>
                </variable>
                <variable name='c'>
                  <l>2</l>
                </variable>
                <variable name='d'>
                  <l>0</l>
                </variable>
              </variables>
            </custom-block>
            <block var='c'/>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='COMPLEX %&apos;Z1&apos; * %&apos;Z2&apos;' category='other' type='reporter'>
      <comment x='0' w='253' collapsed='false' y='0'>(a+bi) * (c+di) = ac + bci + adi + bdii = ac-bd + (bc+ad)i</comment>
      <variables>
        <list struct='atomic' id='2498'>a,b,c,d</list>
      </variables>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doIfElse'>
          <block var='COMPLEX?'/>
          <script>
            <block s='doSetVar'>
              <l>a</l>
              <block s='reportListItem'>
                <l>1</l>
                <block var='Z1'/>
              </block>
            </block>
            <block s='doSetVar'>
              <l>b</l>
              <block s='reportListItem'>
                <l>2</l>
                <block var='Z1'/>
              </block>
            </block>
            <block s='doSetVar'>
              <l>c</l>
              <block s='reportListItem'>
                <l>1</l>
                <block var='Z2'/>
              </block>
            </block>
            <block s='doSetVar'>
              <l>d</l>
              <block s='reportListItem'>
                <l>2</l>
                <block var='Z2'/>
              </block>
            </block>
            <block s='doReport'>
              <block s='reportNewList'>
                <list>
                  <block s='reportDifference'>
                    <block s='reportProduct'>
                      <block var='a'/>
                      <block var='c'/>
                    </block>
                    <block s='reportProduct'>
                      <block var='b'/>
                      <block var='d'/>
                    </block>
                  </block>
                  <block s='reportSum'>
                    <block s='reportProduct'>
                      <block var='b'/>
                      <block var='c'/>
                    </block>
                    <block s='reportProduct'>
                      <block var='a'/>
                      <block var='d'/>
                    </block>
                  </block>
                </list>
              </block>
            </block>
          </script>
          <script>
            <block s='doReport'>
              <block s='reportProduct'>
                <block var='Z1'/>
                <block var='Z2'/>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='COMPLEX 0' category='other' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doReport'>
          <block s='reportIfElse'>
            <block var='COMPLEX?'/>
            <block s='reportNewList'>
              <list>
                <l>0</l>
                <l>0</l>
              </list>
            </block>
            <l>0</l>
          </block>
        </block>
      </script>
      <scripts>
        <script x='56.5' y='79.1'>
          <block s='doReport'>
            <l>0</l>
          </block>
        </script>
      </scripts>
    </block-definition>
    <block-definition s='COMPLEX %&apos;Z1&apos; + %&apos;Z2&apos;' category='other' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='if %b then %anyUE else %anyUE'>
            <block var='COMPLEX?'/>
            <custom-block s='%upvar map %repRing over %mult%l'>
              <l>#</l>
              <block s='reifyReporter'>
                <autolambda>
                  <block s='reportSum'>
                    <l/>
                    <l/>
                  </block>
                </autolambda>
                <list/>
              </block>
              <list>
                <block var='Z1'/>
                <block var='Z2'/>
              </list>
            </custom-block>
            <block s='reportSum'>
              <block var='Z1'/>
              <block var='Z2'/>
            </block>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='COMPLEX %&apos;C&apos; &gt; 2 from origin' category='other' type='predicate'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportGreaterThan'>
            <custom-block s='if %b then %anyUE else %anyUE'>
              <block var='COMPLEX?'/>
              <block s='reportSum'>
                <block s='reportProduct'>
                  <block s='reportListItem'>
                    <l>1</l>
                    <block var='C'/>
                  </block>
                  <block s='reportListItem'>
                    <l>1</l>
                    <block var='C'/>
                  </block>
                </block>
                <block s='reportProduct'>
                  <block s='reportListItem'>
                    <l>2</l>
                    <block var='C'/>
                  </block>
                  <block s='reportListItem'>
                    <l>2</l>
                    <block var='C'/>
                  </block>
                </block>
              </block>
              <block s='reportProduct'>
                <block var='C'/>
                <block var='C'/>
              </block>
            </custom-block>
            <l>4</l>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='label pixel %&apos;text&apos; aligned %&apos;alignment&apos;' category='pen' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%txt'/>
        <input type='%s'>center<options>left=1center=2right=3</options>
        </input>
      </inputs>
      <script>
        <block s='doSetVar'>
          <l>DEBUG</l>
          <block var='alignment'/>
        </block>
        <block s='doDeclareVariables'>
          <list>
            <l>old direction</l>
            <l>old position</l>
            <l>size</l>
          </list>
        </block>
        <block s='doSetVar'>
          <l>size</l>
          <block s='reportProduct'>
            <block var='PIXEL'/>
            <block s='reportQuotient'>
              <l>1.2</l>
              <block s='reportStringSize'>
                <block var='text'/>
              </block>
            </block>
          </block>
        </block>
        <block s='doSetVar'>
          <l>old direction</l>
          <block s='direction'/>
        </block>
        <block s='doSetVar'>
          <l>old position</l>
          <block s='reportNewList'>
            <list>
              <block s='xPosition'/>
              <block s='yPosition'/>
            </list>
          </block>
        </block>
        <block s='setHeading'>
          <l>90</l>
        </block>
        <block s='changeXPosition'>
          <block s='reportProduct'>
            <block s='reportListItem'>
              <block var='alignment'/>
              <block s='reportNewList'>
                <list>
                  <l>0</l>
                  <l>-0.3</l>
                  <l>-0.6</l>
                </list>
              </block>
            </block>
            <block s='reportProduct'>
              <block var='size'/>
              <block s='reportStringSize'>
                <block var='text'/>
              </block>
            </block>
          </block>
        </block>
        <block s='changeYPosition'>
          <block s='reportQuotient'>
            <block var='size'/>
            <l>-3</l>
          </block>
        </block>
        <custom-block s='label %txt of size %n'>
          <block var='text'/>
          <block var='size'/>
        </custom-block>
        <block s='setHeading'>
          <block var='old direction'/>
        </block>
        <block s='doGotoObject'>
          <block var='old position'/>
        </block>
      </script>
      <scripts>
        <script x='227.5' y='263.09999999999997'>
          <custom-block s='set pen color to r: %n g: %n b: %n'>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
          </custom-block>
          <custom-block s='label pixel %txt aligned %s'>
            <l>1</l>
            <l>2</l>
          </custom-block>
          <custom-block s='set pen color to r: %n g: %n b: %n'>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
          </custom-block>
          <custom-block s='label pixel %txt aligned %s'>
            <l>22</l>
            <l>2</l>
          </custom-block>
          <custom-block s='set pen color to r: %n g: %n b: %n'>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
          </custom-block>
          <custom-block s='label pixel %txt aligned %s'>
            <l>333</l>
            <l>2</l>
          </custom-block>
          <custom-block s='set pen color to r: %n g: %n b: %n'>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
          </custom-block>
          <custom-block s='label pixel %txt aligned %s'>
            <l>4444</l>
            <l>2</l>
          </custom-block>
          <custom-block s='set pen color to r: %n g: %n b: %n'>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
          </custom-block>
          <custom-block s='label pixel %txt aligned %s'>
            <l>55555</l>
            <l>2</l>
          </custom-block>
          <custom-block s='set pen color to r: %n g: %n b: %n'>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
          </custom-block>
          <custom-block s='label pixel %txt aligned %s'>
            <l>666666</l>
            <l>2</l>
          </custom-block>
          <custom-block s='set pen color to r: %n g: %n b: %n'>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
            <block s='reportRandom'>
              <l>0</l>
              <l>255</l>
            </block>
          </custom-block>
          <custom-block s='label pixel %txt aligned %s'>
            <l>7777777</l>
            <l>2</l>
          </custom-block>
        </script>
        <script x='323.000002' y='105.50000299999999'>
          <block s='reportListItem'>
            <l>1</l>
            <block s='reportNewList'>
              <list>
                <l>1.2</l>
                <l>0.7</l>
                <l>0.45</l>
                <l>0.32</l>
                <l>0.25</l>
                <l>0.2</l>
                <l>0.17</l>
              </list>
            </block>
          </block>
        </script>
      </scripts>
    </block-definition>
    <block-definition s='round to tenths %&apos;x&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%n'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportQuotient'>
            <block s='reportRound'>
              <block s='reportProduct'>
                <block var='x'/>
                <l>10</l>
              </block>
            </block>
            <l>10</l>
          </block>
        </block>
      </script>
      <scripts>
        <script x='37' y='82.1'>
          <custom-block s='round to tenths %n'>
            <l>1.26</l>
          </custom-block>
        </script>
      </scripts>
    </block-definition>
  </blocks>
  <variables>
    <variable name='PIXEL'>
      <l>1</l>
    </variable>
    <variable name='CENTER'>
      <list struct='atomic' id='2845'>-0.761574,-0.0847596</list>
    </variable>
    <variable name='ZOOM'>
      <l>1</l>
    </variable>
    <variable name='MAX ITERATIONS'>
      <l>100</l>
    </variable>
    <variable name='MANDELBROT'>
      <list struct='atomic' id='2846'/>
    </variable>
    <variable name='GOOD CENTER'>
      <l>0</l>
    </variable>
    <variable name='ORIGINAL CENTER'>
      <list struct='atomic' id='2847'>-0.761574,-0.0847596</list>
    </variable>
    <variable name='COMPLEX?'>
      <bool>false</bool>
    </variable>
    <variable name='DEBUG'>
      <l>2</l>
    </variable>
    <variable name='COORD OR ITERATIONS'>
      <bool>false</bool>
    </variable>
    <variable name='C'>
      <list struct='atomic' id='2848'>2,3</list>
    </variable>
    <variable name='XY'>
      <list struct='atomic' id='2849'>-1.0012356541353382,-0.00017313383458646137</list>
    </variable>
  </variables>
</project><media name="SnapCon2019 Mandelbrot" app="Snap! 5.1, http://snap.berkeley.edu" version="1"></media></snapdata>