<snapdata remixID="9282422"><project name='Number writer' app='Snap! 5.4, http://snap.berkeley.edu' version='1'>
  <notes>Click on the green flag and watch        </notes>
  <thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAADh0lEQVR4Xu3Uv46MURzG8d+MFcH+kSgk9gK0Gq24ADeg1YlEpZLQSFQqiehEJwqdC5BtFAo3oKWT2LV27bK7cpyczJChfRSft9mxmXmf837nsyZVdVQuBUIFJvVw9ahe7Fa9/V61fqzqw8HsKJeOV52bVr3aq3q6VrVbVTc3q66e6L+bv/723lunqx59nd27ffbdj77T9u4sV61Pq94fVJ2cVD3b6WcZ1/yZ2r0uLlVd36xqr9/sV3087Pf6131f7/Xzjnu1s7aN9kzjXheW+rO1a/5e7fXGftXWH3+nbb9d7dlGj3b/L4ez944z3jjVdxZ1C33x/8vs5Nf/gCPM+Pn8TNW1z/2M40saP8d7VttHq8cev1v03isnqm5v/Q6wYRgw22fa9WSnanxR7d/zZ2jvffmtQ3u8VvVgu+r+cv9SB6pxhkX3bdjaeQei9pnz0753d3v2Rzf/bCvTGex23rY7gLbztfvdW+nPNg9w/ozt9cbZ/nyXPwG4QH0H6FIgVADAUHizvQCAJEQLABjNbxxABqIFAIzmNw4gA9ECAEbzGweQgWgBAKP5jQPIQLQAgNH8xgFkIFoAwGh+4wAyEC0AYDS/cQAZiBYAMJrfOIAMRAsAGM1vHEAGogUAjOY3DiAD0QIARvMbB5CBaAEAo/mNA8hAtACA0fzGAWQgWgDAaH7jADIQLQBgNL9xABmIFgAwmt84gAxECwAYzW8cQAaiBQCM5jcOIAPRAgBG8xsHkIFoAQCj+Y0DyEC0AIDR/MYBZCBaAMBofuMAMhAtAGA0v3EAGYgWADCa3ziADEQLABjNbxxABqIFAIzmNw4gA9ECAEbzGweQgWgBAKP5jQPIQLQAgNH8xgFkIFoAwGh+4wAyEC0AYDS/cQAZiBYAMJrfOIAMRAsAGM1vHEAGogUAjOY3DiAD0QIARvMbB5CBaAEAo/mNA8hAtACA0fzGAWQgWgDAaH7jADIQLQBgNL9xABmIFgAwmt84gAxECwAYzW8cQAaiBQCM5jcOIAPRAgBG8xsHkIFoAQCj+Y0DyEC0AIDR/MYBZCBaAMBofuMAMhAtAGA0v3EAGYgWADCa3ziADEQLABjNbxxABqIFAIzmNw4gA9ECAEbzGweQgWgBAKP5jQPIQLQAgNH8xgFkIFoAwGh+4wAyEC0AYDS/cQAZiBYAMJrfOIAMRAsAGM1vHEAGogV+AkbSGhADtkltAAAAAElFTkSuQmCC</thumbnail>
  <stage inheritance='true' id='1' volume='100' height='360' tempo='60' lines='round' width='480' sublistIDs='false' name='Stage' threadsafe='false' codify='false' penlog='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='240' image='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOi0lEQVR4Xu3VwQkAMAzEsGT/oVvoEPVHWeBABLwzc8YRIECAAAECXwVWgL96GyNAgAABAk9AgD0CAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIELmhgaBBRNtU9AAAAAElFTkSuQmCC' center-y='180' name='Untitled' id='3'/>
        </item>
      </list>
    </costumes>
    <sounds>
      <list id='4' struct='atomic'/>
    </sounds>
    <variables/>
    <blocks/>
    <scripts/>
    <sprites>
      <sprite draggable='true' x='37.1015625' pen='tip' id='9' y='170' name='Sprite' idx='1' volume='100' rotation='1' scale='1' color='0,194,19,1' hidden='true' pan='0' heading='90' costume='0'>
        <costumes>
          <list id='10' struct='atomic'/>
        </costumes>
        <sounds>
          <list id='11' struct='atomic'/>
        </sounds>
        <blocks/>
        <variables/>
        <scripts>
          <script x='374' y='230'>
            <block s='receiveGo'/>
            <custom-block s='Main'/>
          </script>
        </scripts>
      </sprite>
      <watcher hidden='true' x='10' s='xPosition' style='normal' color='74,108,212' y='31.000001999999995' scope='Sprite'/>
      <watcher x='10' color='243,118,29' style='normal' hidden='true' y='52.00000399999999' var='x'/>
      <watcher x='13' color='243,118,29' style='normal' hidden='true' y='82' var='y'/>
    </sprites>
  </stage>
  <hidden/>
  <headers/>
  <code/>
  <blocks>
    <block-definition s='Main' category='operators' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='hide'/>
        <block s='clear'/>
        <block s='setColor'>
          <color>0,194,19,1</color>
        </block>
        <block s='doSetVar'>
          <l>x</l>
          <l>-240</l>
        </block>
        <block s='gotoXY'>
          <l>-240</l>
          <l>170</l>
        </block>
        <block s='doSetVar'>
          <l>y</l>
          <l>170</l>
        </block>
        <block s='doForever'>
          <script>
            <block s='doUntil'>
              <block s='reportEquals'>
                <block var='x'/>
                <l>-160</l>
              </block>
              <script>
                <block s='write'>
                  <block s='reportRandom'>
                    <l>0</l>
                    <l>9</l>
                  </block>
                  <l>12</l>
                </block>
                <block s='doChangeVar'>
                  <l>x</l>
                  <l>1</l>
                </block>
              </script>
            </block>
            <block s='doChangeVar'>
              <l>y</l>
              <l>-10</l>
            </block>
            <block s='doSetVar'>
              <l>x</l>
              <l>-240</l>
            </block>
            <block s='gotoXY'>
              <l>-240</l>
              <block var='y'/>
            </block>
          </script>
        </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>ca:concatena _</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>ca:capgira _</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>ca:elimina els duplicats de _</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='161.14285714285708' 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>ca:ordena _ segons criteri _</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>
            <l>split</l>
            <l>copy of data</l>
            <l>id</l>
          </list>
        </block>
        <block s='doSetVar'>
          <l>id</l>
          <block s='reifyScript'>
            <script>
              <block s='doReport'>
                <l/>
              </block>
            </script>
            <list/>
          </block>
        </block>
        <block s='doSetVar'>
          <l>copy of data</l>
          <block s='reportMap'>
            <block var='id'/>
            <block var='data'/>
          </block>
        </block>
        <block s='doSetVar'>
          <l>split</l>
          <block s='reifyScript'>
            <script>
              <block s='doSetVar'>
                <l>even items</l>
                <block s='reportNewList'>
                  <list/>
                </block>
              </block>
              <block s='doSetVar'>
                <l>odd items</l>
                <block s='reportNewList'>
                  <list/>
                </block>
              </block>
              <block s='doUntil'>
                <block s='reportListIsEmpty'>
                  <block var='copy of data'/>
                </block>
                <script>
                  <block s='doAddToList'>
                    <block s='reportListItem'>
                      <l>1</l>
                      <block var='copy of data'/>
                    </block>
                    <block var='odd items'/>
                  </block>
                  <block s='doDeleteFromList'>
                    <l>1</l>
                    <block var='copy of data'/>
                  </block>
                  <block s='doIf'>
                    <block s='reportNot'>
                      <block s='reportListIsEmpty'>
                        <block var='copy of data'/>
                      </block>
                    </block>
                    <script>
                      <block s='doAddToList'>
                        <block s='reportListItem'>
                          <l>1</l>
                          <block var='copy of data'/>
                        </block>
                        <block var='even items'/>
                      </block>
                      <block s='doDeleteFromList'>
                        <l>1</l>
                        <block var='copy of data'/>
                      </block>
                    </script>
                  </block>
                </script>
              </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='doRun'>
          <block var='split'/>
          <list/>
        </block>
        <block s='doReport'>
          <block s='evaluate'>
            <block var='merge'/>
            <list>
              <custom-block s='sort %l ordering with %predRing'>
                <block var='odd items'/>
                <block var='function'/>
              </custom-block>
              <custom-block s='sort %l ordering with %predRing'>
                <block var='even items'/>
                <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>ca:associació _ _</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'>
      <comment x='0' w='225.00000000000003' collapsed='false' y='0'>This block applies the given function to each item of the given list, like the primitive MAP block, but with two differences:1.  The # variable provided will contain the item number of the item currently being used in the given function: 1 for item 1, and so on.  You read the variable in your function; don&apos;t set it.2.  You can provide more than one input list.  If so, the lengths of all the lists should be the same, and the function you supply must expect as many inputs as you have lists (i.e., that many empty input slots in the function).</comment>
      <header/>
      <code/>
      <translations>ca:_ mapeja _ sobre _</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'>
                    <block s='reportListIsEmpty'>
                      <block var='data'/>
                    </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'>
                    <block s='reportListIsEmpty'>
                      <block s='reportListItem'>
                        <l>1</l>
                        <block var='data lists'/>
                      </block>
                    </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'>
              <block s='reportListIsEmpty'>
                <block s='reportCDR'>
                  <block var='lists'/>
                </block>
              </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='%&apos;#&apos; keep items %&apos;pred&apos; from %&apos;data&apos;' category='lists' type='reporter'>
      <comment x='0' w='217.1428571428572' collapsed='false' y='0'>This block makes a new list containing selected items from the given list, like the primitive KEEP block.What&apos;s different is that it provides the # variable for use in your predicate function.  It will contain the item number (in the original list) of the item being examined by the predicate.</comment>
      <header/>
      <code/>
      <translations>ca:_ manté els elements on _ de _</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'>
                    <block s='reportListIsEmpty'>
                      <block var='data'/>
                    </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'>
      <comment x='0' w='228.57142857142858' collapsed='false' y='0'>This block carries out the given script for each item of the given list, like the primitive FOR EACH.What&apos;s different is that it provides the # variable, which will contain the item number in the list of each item in turn, 1 while processing item 1, and so on.</comment>
      <header/>
      <code/>
      <translations>ca:_ per cada _ de _ _</translations>
      <inputs>
        <input type='%upvar'/>
        <input type='%upvar'/>
        <input type='%l'/>
        <input type='%ca'/>
      </inputs>
      <script>
        <block s='doSetVar'>
          <l>#</l>
          <l>1</l>
        </block>
        <block s='doUntil'>
          <block s='reportListIsEmpty'>
            <block var='data'/>
          </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>
  </blocks>
  <variables>
    <variable name='y'>
      <l>170</l>
    </variable>
    <variable name='x'>
      <l>-198</l>
    </variable>
  </variables>
</project><media name="Number writer" app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>