<snapdata remixID="8988305"><project name="finch" app="Snap! 5.1, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" volume="100" pan="0" lines="round" ternary="true" codify="false" inheritance="false" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAgAElEQVR4Xu3dCZRlVX3v8f//VFWDDRIQacWEOBAlRkWMIgYl4PgU7Lv3qaI1MokDEIUYREkiogyiywmHB4IS5QkOGMuus09VM7w2URzibCLgbNRETUwAFaOMfev8s3bnVlZZ6e66p/rc2nf4nrVYgnefPXz2hl+fWYUNAQQQQAABBFZdQFe9RRpEAAEEEEAAASGAWQQIIIAAAggkECCAE6DTJAIIIIAAAgQwawABBBBAAIEEAgRwAnSaRAABBBBAgABmDSCAAAIIIJBAgABOgE6TCCCAAAIIEMCsAQQQQAABBBIIEMAJ0GkSAQQQQAABApg1gAACCCCAQAIBAjgBOk0igAACCCBAALMGEEAAAQQQSCBAACdAp0kEEEAAAQQIYNYAAggggAACCQQI4AToNIkAAggggAABzBpAAAEEEEAggQABnACdJhFAAAEEECCAWQMIIIAAAggkECCAE6DTJAIIIIAAAgQwawABBBBAAIEEAgRwAnSaRAABBBBAgABmDSCAAAIIIJBAgABOgE6TCCCAAAIIEMCsAQQQQAABBBIIEMAJ0GkSAQQQQAABApg1gAACCCCAQAIBAjgBOk0igAACCCBAALMGEEAAAQQQSCBAACdAp0kEEEAAAQQIYNYAAggggAACCQQI4AToNIkAAggggAABzBpAAAEEEEAggQABnACdJhFAAAEEECCAWQMIIIAAAggkECCAE6DTJAIIIIAAAgQwawABBBBAAIEEAgRwAnSaRAABBBBAgABmDSCAAAIIIJBAgABOgE6TCCCAAAIIEMCsAQQQQAABBBIIEMAJ0GkSAQQQQAABApg1gAACCCCAQAIBAjgBOk0igAACCCBAALMGEEAAAQQQSCBAACdAp0kEEEAAAQQIYNYAAggggAACCQQI4AToNIkAAggggAABzBpAAAEEEEAggQABnACdJhFAAAEEECCAWQMIIIAAAggkECCAE6DTJAIIIIAAAgQwawABBBBAAIEEAgRwAnSaRAABBBBAgABmDSCAAAIIIJBAgABOgE6TCCCAAAIIEMCsAQQQQAABBBIIEMAJ0GkSAQQQQAABApg1gAACCCCAQAIBAjgBOk0igAACCCBAALMGEEAAAQQQSCBAACdAp0kEEEAAAQQIYNYAAggggAACCQQI4AToNIkAAggggAABzBpAAAEEEEAggQABnACdJhFAAAEEECCAWQMIIIAAAggkECCAE6DTJAIIIIAAAgQwawABBBBAAIEEAgRwAnSaRAABBBBAgABmDSCAAAIIIJBAgABOgE6TCCCAAAIIEMCsAQQQQAABBBIIEMAJ0GkSAQQQQAABApg1gAACCCCAQAIBAjgBOk0igAACCCBAALMGEEAAAQQQSCBAACdAp0kEEEAAAQQIYNYAAggggAACCQQI4AToNIkAAggggAABzBpAAAEEEEAggQABnACdJhFAAAEEECCAWQMIIIAAAggkECCAE6DTJAIIIIAAAgQwawABBBBAAIEEAgRwAnSaRAABBBBAgABmDSCAAAIIIJBAgABOgE6TCCCAAAIIEMCsAQQQQAABBBIIEMAJ0GkSAQQQQAABApg1gAACCCCAQAIBAjgBOk0igAACCCBAALMGEEAAAQQQSCBAACdAp0kEEEAAAQQIYNYAAggggAACCQQI4AToNIkAAggggAABzBpAAAEEEEAggQABnACdJhFAAAEEECCAWQMIIIAAAggkECCAE6DTJAIIIIAAAgQwawABBBBAAIEEAgRwAnSaRAABBBBAgABmDSCAAAIIIJBAgABOgE6TCCCAAAIIEMCsAQQQQAABBBIIEMAJ0GkSAQQQQAABApg1gAACCCCAQAIBAjgBOk0igAACCCBAALMGEEAAAQQQSCBAACdAp0kEEEAAAQQIYNYAAggggAACCQQI4AToNIkAAggggAABzBpAAAEEEEAggQABnACdJhFAAAEEECCAWQMIIIAAAggkECCAE6DTJAIIIIAAAgQwawABBBBAAIEEAgRwAnSaRAABBBBAgABmDSCAAAIIIJBAgABOgE6TCCCAAAIIEMCsAQQQQAABBBIIEMAJ0GkSAQQQQAABApg1gAACCCCAQAIBAjgBOk0igAACCCBAALMGEEAAAQQQSCBAACdAp0kEEEAAAQQIYNYAAggggAACCQQI4AToNIkAAggggAABzBpAAAEEEEAggQABnACdJhFAAAEEECCAWQMIIIAAAggkECCAE6DTJAIIIIAAAgQwawABBBBAAIEEAgRwAnSaRAABBBBAgABmDSCAAAIIIJBAgABOgE6TCCCAAAIIEMCsAQQQQAABBBIIEMAJ0GkSAQQQQAABApg1gAACCCCAQAIB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</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="78.4999999999909" y="-95.09999999994886" heading="0" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="8"><costumes><list id="9"><item><costume name="Untitled" center-x="240" center-y="180" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC" id="10"/></item></list></costumes><sounds><list struct="atomic" id="11"></list></sounds><blocks></blocks><variables></variables><scripts><script x="691.000001" y="330.000001"><block s="receiveKey"><l><option>space</option></l></block><block s="doIf"><custom-block s="Finch Left Obstacle"></custom-block><script><custom-block s="Finch LED R: %n G: %n B: %n"><l>0</l><l>100</l><l>100</l></custom-block></script></block><block s="doIf"><custom-block s="Finch Right Obstacle"></custom-block><script><custom-block s="Finch LED R: %n G: %n B: %n"><l>0</l><l>0</l><l>0</l></custom-block></script></block></script><script x="206" y="104"><block s="receiveGo"></block><block s="setHeading"><l>0</l></block><block s="clear"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doSetVar"><l>PenUP</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="down"></block><block s="doUntil"><block s="reportEquals"><block var="PenUP"/><block s="reportBoolean"><l><bool>false</bool></l></block></block><script><block s="doSetVar"><l>PenX</l><block s="reportSum"><block s="xPosition"></block><custom-block s="Finch Y Acceleration"></custom-block></block></block><block s="doSetVar"><l>PenY</l><block s="reportSum"><block s="yPosition"></block><block s="reportProduct"><custom-block s="Finch X Acceleration"></custom-block><l>-1</l></block></block></block><block s="gotoXY"><block var="PenX"/><block var="PenY"/></block><block s="doIf"><block s="reportKeyPressed"><l><option>x</option></l></block><script><block s="doSetVar"><l>PenUP</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="up"></block></script></block></script></block></script></scripts></sprite><watcher scope="Stage" s="getLastAnswer" style="normal" x="0.15625" y="1.7968751562500103" color="4,148,220" hidden="true"/><watcher scope="Sprite" s="getScale" style="normal" x="0.15625" y="2.1250001874999924" color="143,86,227" hidden="true"/><watcher var="PenUP" style="normal" x="10" y="10" color="243,118,29"/><watcher var="PenX" style="normal" x="10" y="34.000001999999995" color="243,118,29"/><watcher var="PenY" style="normal" x="10" y="55.00000399999999" color="243,118,29"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="Say This %&apos;speech&apos;" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%txt">I am known by many names, but you may call me...Tim.</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>phrase</l></list><l>finchAppID = "ojocioejjpmeccjfjlhkepchminjemod";&#xD;var report = { message: "SPEAK", val: phrase};&#xD;chrome.runtime.sendMessage(finchAppID, report, function() {});</l></block><list><block var="speech"/></list></block></script></block-definition><block-definition s="Move Finch Left: %&apos;Left&apos; Right: %&apos;Right&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>left</l><l>right</l></list><l>finchAppID = "ojocioejjpmeccjfjlhkepchminjemod";&#xD;////////////////////////////////////////////////////////////////////////////////&#xD;// In order to avoid sending more messages than the app can handle, whenever we&#xD;// send a message we also save it in a persistent global variable. When the&#xD;// message is processed in the app, the callback checks if the global variable&#xD;// still matches what it was changed to. If it was, it deletes the global&#xD;// variable. Otherwise the message is resent with new data.&#xD;//&#xD;// When this block is called it checks if the global value has been set. If it&#xD;// has, it sends a message. Otherwise it just updates the value and lets the&#xD;// callback handle it.&#xD;&#xD;&#xD;// We can&apos;t run code beforehand to define values so we must check each block&#xD;// call if they are set.&#xD;if (window.birdbrain === undefined || window.birdbrain.moveSpeed === undefined) {&#xD;    window.birdbrain = window.birdbrain || {};&#xD;    window.birdbrain.moveSpeed = {&#xD;        // By attaching this function to a global variable, it is only&#xD;        // defined once instead of every time this block is called, improving&#xD;        // performance significantly.&#xD;        setMoveSpeed: function (speeds) {&#xD;            function callback() {&#xD;                // This array comparison is by reference instead of value.&#xD;                // This could mean false negatives if it&apos;s set to the same value, but these are uncommon and&#xD;                // the consequences are just a couple more messages sent. I do not think it is worth the&#xD;                // execution time and code complexity to do a proper value comparison.&#xD;                if (window.birdbrain.moveSpeed.speeds === speeds) {&#xD;                    delete window.birdbrain.moveSpeed.speeds;&#xD;                }&#xD;                else {&#xD;                    window.birdbrain.moveSpeed.setMoveSpeed(window.birdbrain.moveSpeed.speeds);&#xD;                }&#xD;            }&#xD;            var report = {&#xD;                message: "M".charCodeAt(0),&#xD;                leftDirection: speeds[0] &lt; 0 ? 1 : 0,&#xD;                leftSpeed: Math.abs(speeds[0]),&#xD;                rightDirection: speeds[1] &lt; 0 ? 1 : 0,&#xD;                rightSpeed: Math.abs(speeds[1]),&#xD;            };&#xD;            console.log(report);&#xD;            chrome.runtime.sendMessage(finchAppID, report, callback);&#xD;        }&#xD;    };&#xD;}&#xD;&#xD;// constrain n to the range [-255..255]&#xD;function constrain(n) {&#xD;    return Math.max(Math.min(n, 255), -255);&#xD;}&#xD;&#xD;var speeds = [constrain(Math.round(left * 2.55)), constrain(Math.round(right * 2.55))];&#xD;&#xD;if (window.birdbrain.moveSpeed.speeds === undefined) {&#xD;  window.birdbrain.moveSpeed.setMoveSpeed(speeds);&#xD;}&#xD;&#xD;window.birdbrain.moveSpeed.speeds = speeds;</l></block><list><block var="Left"/><block var="Right"/></list></block></script></block-definition><block-definition s="Stop Finch" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="Move Finch Left: %n Right: %n"><l>0</l><l>0</l></custom-block></script></block-definition><block-definition s="Finch LED R: %&apos;red&apos; G: %&apos;green&apos; B: %&apos;blue&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">0</input><input type="%n">50</input><input type="%n">0</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>red</l><l>green</l><l>blue</l></list><l>finchAppID = "ojocioejjpmeccjfjlhkepchminjemod";&#xD;////////////////////////////////////////////////////////////////////////////////&#xD;// In order to avoid sending more messages than the app can handle, whenever we&#xD;// send a message we also save it in a persistent global variable. When the&#xD;// message is processed in the app, the callback checks if the global variable&#xD;// still matches what it was changed to. If it was, it deletes the global&#xD;// variable. Otherwise the message is resent with new data.&#xD;//&#xD;// When this block is called it checks if the global value has been set. If it&#xD;// has, it sends a message. Otherwise it just updates the value and lets the&#xD;// callback handle it.&#xD;&#xD;&#xD;// We can&apos;t run code beforehand to define values so we must check each block&#xD;// call if they are set.&#xD;if (window.birdbrain === undefined || window.birdbrain.LED === undefined) {&#xD;    window.birdbrain = window.birdbrain || {};&#xD;    window.birdbrain.LED = {&#xD;        // By attaching this function to a global variable, it is only&#xD;        // defined once instead of every time this block is called, improving&#xD;        // performance significantly.&#xD;        setLED: function (values) {&#xD;            function callback() {&#xD;                // This array comparison is by reference instead of value.&#xD;                // This could mean false negatives if it&apos;s set to the same value, but these are uncommon and&#xD;                // the consequences are just a couple more messages sent. I do not think it is worth the&#xD;                // execution time and code complexity to do a proper value comparison.&#xD;                if (window.birdbrain.LED.values === values) {&#xD;                    delete window.birdbrain.LED.values;&#xD;                }&#xD;                else {&#xD;                    window.birdbrain.LED.setLED(window.birdbrain.LED.values);&#xD;                }&#xD;            }&#xD;            var report = {  message: "O".charCodeAt(0),&#xD;                            red: values[0],&#xD;                            green: values[1],&#xD;                            blue: values[2]&#xD;                         };&#xD;            console.log(report);&#xD;            chrome.runtime.sendMessage(finchAppID, report, callback);&#xD;        }&#xD;    };&#xD;}&#xD;&#xD;// constrain n to the range [0..255]&#xD;function constrain(n) {&#xD;    return Math.max(Math.min(n, 255), 0);&#xD;}&#xD;&#xD;var values = [constrain(Math.round(red * 2.55)), constrain(Math.round(green * 2.55)), constrain(Math.round(blue * 2.55))];&#xD;&#xD;if (window.birdbrain.LED.values === undefined) {&#xD;  window.birdbrain.LED.setLED(values);&#xD;}&#xD;&#xD;window.birdbrain.LED.values = values;</l></block><list><block var="red"/><block var="green"/><block var="blue"/></list></block></script></block-definition><block-definition s="Finch Buzzer %&apos;frequency&apos; Hz %&apos;duration&apos; ms" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%n">440</input><input type="%n">500</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>freq</l><l>time</l></list><l>finchAppID = "ojocioejjpmeccjfjlhkepchminjemod";&#xD;////////////////////////////////////////////////////////////////////////////////&#xD;// In order to avoid sending more messages than the app can handle, whenever we&#xD;// send a message we also save it in a persistent global variable. When the&#xD;// message is processed in the app, the callback checks if the global variable&#xD;// still matches what it was changed to. If it was, it deletes the global&#xD;// variable. Otherwise the message is resent with new data.&#xD;//&#xD;// When this block is called it checks if the global value has been set. If it&#xD;// has, it sends a message. Otherwise it just updates the value and lets the&#xD;// callback handle it.&#xD;&#xD;&#xD;// We can&apos;t run code beforehand to define values so we must check each block&#xD;// call if they are set.&#xD;if (window.birdbrain === undefined || window.birdbrain.buzzer === undefined) {&#xD;    window.birdbrain = window.birdbrain || {};&#xD;    window.birdbrain.buzzer = {&#xD;        // By attaching this function to a global variable, it is only&#xD;        // defined once instead of every time this block is called, improving&#xD;        // performance significantly.&#xD;        setBuzzer: function (value) {&#xD;            function callback() {&#xD;                // This object comparison is by reference instead of value.&#xD;                // This could mean false negatives if it&apos;s set to the same value, but these are uncommon and&#xD;                // the consequences are just a couple more messages sent. I do not think it is worth the&#xD;                // execution time and code complexity to do a proper value comparison.&#xD;                if (window.birdbrain.buzzer.value === value) {&#xD;                    delete window.birdbrain.buzzer.value;&#xD;                }&#xD;                else {&#xD;                    window.birdbrain.buzzer.setBuzzer(window.birdbrain.buzzer.value);&#xD;                }&#xD;            }&#xD;            var report = {&#xD;                message: "B".charCodeAt(0),&#xD;                timeHigh: value.time &gt;&gt; 8,  // Since the report must be in bytes&#xD;                timeLow: value.time &amp; 0xFF, // and these values are bigger than a byte&#xD;                freqHigh: value.freq &gt;&gt; 8,  // they are split into two bytes&#xD;                freqLow: value.freq &amp; 0xFF&#xD;            };&#xD;            chrome.runtime.sendMessage(finchAppID, report, callback);&#xD;        }&#xD;    };&#xD;}&#xD;&#xD;// constrain n to the range [0..65535]&#xD;function constrain(n) {&#xD;    return Math.max(Math.min(n, 0xFFFF), 0);&#xD;}&#xD;&#xD;var value = {&#xD;    freq: constrain(Math.round(freq)),&#xD;    time: constrain(Math.round(time))&#xD;};&#xD;&#xD;if (window.birdbrain.buzzer.value === undefined) {&#xD;    window.birdbrain.buzzer.setBuzzer(value);&#xD;}&#xD;&#xD;window.birdbrain.buzzer.value = value;</l></block><list><block var="frequency"/><block var="duration"/></list></block></script></block-definition><block-definition s="Finch Buzz+Wait %&apos;frequency&apos; Hz %&apos;duration&apos; ms" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%n">440</input><input type="%n">500</input></inputs><script><custom-block s="Finch Buzzer %n Hz %n ms"><block var="frequency"/><block var="duration"/></custom-block><block s="doWait"><block s="reportQuotient"><block var="duration"/><l>1000</l></block></block></script></block-definition><block-definition s="Finch Left Light Sensor" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>var sensorvalue = Number.MAX_VALUE;&#xD;&#xD;finchAppID = "ojocioejjpmeccjfjlhkepchminjemod";&#xD;&#xD;var myself = this;&#xD;&#xD;&#xD;&#xD;function getSensorData(callback) {&#xD;&#xD;    var getValue = function(response) {&#xD;&#xD;        sensorvalue = response.lights[0];&#xD;        callback(sensorvalue);&#xD;&#xD;    };&#xD;&#xD;    console.log("sending message to chrome");&#xD;&#xD;    chrome.runtime.sendMessage(finchAppID, {&#xD;&#xD;        message: "POLL"&#xD;&#xD;    }, getValue);&#xD;&#xD;    console.log("sent message to chrome");&#xD;&#xD;};&#xD;&#xD;&#xD;&#xD;function processValue(sensorvalue) {&#xD;&#xD;    console.log("sensor value has been set: ", sensorvalue);&#xD;&#xD;    myself.finchDummy1 = sensorvalue;&#xD;};&#xD;&#xD;&#xD;getSensorData(processValue);&#xD;</l></block><list></list></block><block s="doWait"><l>0.01</l></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return this.finchDummy1;</l></block><list></list></block></block></script></block-definition><block-definition s="Finch Right Light Sensor" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>var sensorvalue = Number.MAX_VALUE;&#xD;&#xD;finchAppID = "ojocioejjpmeccjfjlhkepchminjemod";&#xD;&#xD;var myself = this;&#xD;&#xD;&#xD;&#xD;function getSensorData(callback) {&#xD;&#xD;    var getValue = function(response) {&#xD;&#xD;        sensorvalue = response.lights[1];&#xD;        callback(sensorvalue);&#xD;&#xD;    };&#xD;&#xD;&#xD;    console.log("sending message to chrome");&#xD;&#xD;    chrome.runtime.sendMessage(finchAppID, {&#xD;&#xD;        message: "POLL"&#xD;&#xD;    }, getValue);&#xD;&#xD;    console.log("sent message to chrome");&#xD;&#xD;};&#xD;&#xD;&#xD;&#xD;function processValue(sensorvalue) {&#xD;&#xD;    console.log("sensor value has been set: ", sensorvalue);&#xD;&#xD;    myself.finchDummy2 = sensorvalue;&#xD;};&#xD;&#xD;&#xD;getSensorData(processValue);&#xD;</l></block><list></list></block><block s="doWait"><l>0.01</l></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return this.finchDummy2;</l></block><list></list></block></block></script></block-definition><block-definition s="Finch Light Sensors" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><custom-block s="Finch Left Light Sensor"></custom-block><custom-block s="Finch Right Light Sensor"></custom-block></list></block></block></script></block-definition><block-definition s="Finch X Acceleration" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>var sensorvalue = Number.MAX_VALUE;&#xD;&#xD;finchAppID = "ojocioejjpmeccjfjlhkepchminjemod";&#xD;&#xD;var myself = this;&#xD;&#xD;&#xD;&#xD;function getSensorData(callback) {&#xD;&#xD;    var getValue = function(response) {&#xD;&#xD;        sensorvalue = response.acceleration[0];&#xD;        callback(sensorvalue);&#xD;&#xD;    };&#xD;&#xD;&#xD;    console.log("sending message to chrome");&#xD;&#xD;    chrome.runtime.sendMessage(finchAppID, {&#xD;&#xD;        message: "POLL"&#xD;&#xD;    }, getValue);&#xD;&#xD;    console.log("sent message to chrome");&#xD;&#xD;};&#xD;&#xD;&#xD;&#xD;function processValue(sensorvalue) {&#xD;&#xD;    console.log("sensor value has been set: ", sensorvalue);&#xD;&#xD;    myself.finchDummy3 = sensorvalue;&#xD;};&#xD;&#xD;&#xD;getSensorData(processValue);&#xD;</l></block><list></list></block><block s="doWait"><l>0.01</l></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return this.finchDummy3;</l></block><list></list></block></block></script></block-definition><block-definition s="Finch Y Acceleration" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>var sensorvalue = Number.MAX_VALUE;&#xD;&#xD;finchAppID = "ojocioejjpmeccjfjlhkepchminjemod";&#xD;&#xD;var myself = this;&#xD;&#xD;&#xD;&#xD;function getSensorData(callback) {&#xD;&#xD;    var getValue = function(response) {&#xD;&#xD;        sensorvalue = response.acceleration[1];&#xD;        callback(sensorvalue);&#xD;&#xD;    };&#xD;&#xD;&#xD;    console.log("sending message to chrome");&#xD;&#xD;    chrome.runtime.sendMessage(finchAppID, {&#xD;&#xD;        message: "POLL"&#xD;&#xD;    }, getValue);&#xD;&#xD;    console.log("sent message to chrome");&#xD;&#xD;};&#xD;&#xD;&#xD;&#xD;function processValue(sensorvalue) {&#xD;&#xD;    console.log("sensor value has been set: ", sensorvalue);&#xD;&#xD;    myself.finchDummy4 = sensorvalue;&#xD;};&#xD;&#xD;&#xD;getSensorData(processValue);&#xD;</l></block><list></list></block><block s="doWait"><l>0.01</l></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return this.finchDummy4;</l></block><list></list></block></block></script></block-definition><block-definition s="Finch Z Acceleration" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>var sensorvalue = Number.MAX_VALUE;&#xD;&#xD;finchAppID = "ojocioejjpmeccjfjlhkepchminjemod";&#xD;&#xD;var myself = this;&#xD;&#xD;&#xD;&#xD;function getSensorData(callback) {&#xD;&#xD;    var getValue = function(response) {&#xD;&#xD;        sensorvalue = response.acceleration[2];&#xD;        callback(sensorvalue);&#xD;&#xD;    };&#xD;&#xD;&#xD;    console.log("sending message to chrome");&#xD;&#xD;    chrome.runtime.sendMessage(finchAppID, {&#xD;&#xD;        message: "POLL"&#xD;&#xD;    }, getValue);&#xD;&#xD;    console.log("sent message to chrome");&#xD;&#xD;};&#xD;&#xD;&#xD;&#xD;function processValue(sensorvalue) {&#xD;&#xD;    console.log("sensor value has been set: ", sensorvalue);&#xD;&#xD;    myself.finchDummy5 = sensorvalue;&#xD;};&#xD;&#xD;&#xD;getSensorData(processValue);&#xD;</l></block><list></list></block><block s="doWait"><l>0.01</l></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return this.finchDummy5;</l></block><list></list></block></block></script></block-definition><block-definition s="Finch Orientation" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>var acceleration = Array(3);&#xD;&#xD;finchAppID = "ojocioejjpmeccjfjlhkepchminjemod";&#xD;&#xD;var myself = this;&#xD;&#xD;&#xD;&#xD;function getSensorData(callback) {&#xD;&#xD;    var getValue = function(response) {&#xD;        acceleration = response.acceleration;&#xD;        callback(acceleration);&#xD;    };&#xD;&#xD;    console.log("sending message to chrome");&#xD;&#xD;    chrome.runtime.sendMessage(finchAppID, {&#xD;&#xD;        message: "POLL"&#xD;&#xD;    }, getValue);&#xD;&#xD;    console.log("sent message to chrome");&#xD;&#xD;};&#xD;&#xD;&#xD;&#xD;function processValue(sensorvalue) {&#xD;    var orientation;&#xD;&#xD;        if(acceleration[0] &gt; -0.5 &amp;&amp; acceleration[0] &lt; 0.5 &amp;&amp; acceleration[1] &lt; 0.5 &amp;&amp; acceleration[1] &gt; -0.5 &amp;&amp; acceleration[2] &gt; 0.65 &amp;&amp; acceleration[2] &lt; 1.5)&#xD;&#xD;            orientation =  "level";&#xD;&#xD;        else if(acceleration[0] &gt; -0.5 &amp;&amp; acceleration[0] &lt; 0.5 &amp;&amp; acceleration[1] &lt; 0.5 &amp;&amp; acceleration[1] &gt; -0.5 &amp;&amp; acceleration[2] &gt; -1.5 &amp;&amp; acceleration[2] &lt; -0.65)&#xD;&#xD;            orientation = "upside down";&#xD;&#xD;        else if(acceleration[0] &lt; 1.5 &amp;&amp; acceleration[0] &gt; 0.8 &amp;&amp; acceleration[1] &gt;-0.3 &amp;&amp; acceleration[1] &lt; 0.3 &amp;&amp; acceleration[2] &gt; -0.3 &amp;&amp; acceleration[2] &lt; 0.3)&#xD;&#xD;            orientation = "beak down";&#xD;&#xD;        else if(acceleration[0] &lt; -0.8 &amp;&amp; acceleration[0] &gt; -1.5 &amp;&amp; acceleration[1] &gt;-0.3 &amp;&amp; acceleration[1] &lt; 0.3 &amp;&amp; acceleration[2] &gt; -0.3 &amp;&amp; acceleration[2] &lt; 0.3)&#xD;&#xD;            orientation = "beak up";&#xD;&#xD;        else if(acceleration[0] &gt; -0.5 &amp;&amp; acceleration[0] &lt; 0.5 &amp;&amp; acceleration[1] &gt; 0.7 &amp;&amp; acceleration[1] &lt; 1.5 &amp;&amp; acceleration[2] &gt; -0.5 &amp;&amp; acceleration[2] &lt; 0.5)&#xD;&#xD;            orientation = "left wing down";&#xD;&#xD;        else if(acceleration[0] &gt; -0.5 &amp;&amp; acceleration[0] &lt; 0.5 &amp;&amp; acceleration[1] &gt; -1.5 &amp;&amp; acceleration[1] &lt; -0.7 &amp;&amp; acceleration[2] &gt; -0.5 &amp;&amp; acceleration[2] &lt; 0.5)&#xD;&#xD;            orientation = "right wing down";&#xD;&#xD;        else&#xD;&#xD;            orientation = "in between";&#xD;    console.log("sensor value has been set: ", orientation);&#xD;&#xD;    myself.finchDummy6 = orientation;&#xD;};&#xD;&#xD;&#xD;getSensorData(processValue);&#xD;</l></block><list></list></block><block s="doWait"><l>0.01</l></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return this.finchDummy6;</l></block><list></list></block></block></script></block-definition><block-definition s="Finch Accelerations" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><custom-block s="Finch X Acceleration"></custom-block><custom-block s="Finch Y Acceleration"></custom-block><custom-block s="Finch Z Acceleration"></custom-block></list></block></block></script></block-definition><block-definition s="Finch Left Obstacle" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>var sensorvalue = Number.MAX_VALUE;&#xD;&#xD;finchAppID = "ojocioejjpmeccjfjlhkepchminjemod";&#xD;&#xD;var myself = this;&#xD;&#xD;&#xD;&#xD;function getSensorData(callback) {&#xD;&#xD;    var getValue = function(response) {&#xD;&#xD;        sensorvalue = response.obstacles[0];&#xD;        callback(sensorvalue);&#xD;&#xD;    };&#xD;&#xD;    console.log("sending message to chrome");&#xD;&#xD;    chrome.runtime.sendMessage(finchAppID, {&#xD;&#xD;        message: "POLL"&#xD;&#xD;    }, getValue);&#xD;&#xD;    console.log("sent message to chrome");&#xD;&#xD;};&#xD;&#xD;&#xD;&#xD;function processValue(sensorvalue) {&#xD;&#xD;    var pred = (sensorvalue !== 0);&#xD;    console.log("sensor value has been set: ", pred);&#xD;&#xD;    myself.finchDummy7 = pred;&#xD;};&#xD;&#xD;&#xD;getSensorData(processValue);&#xD;</l></block><list></list></block><block s="doWait"><l>0.01</l></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return this.finchDummy7;</l></block><list></list></block></block></script></block-definition><block-definition s="Finch Right Obstacle" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>var sensorvalue = Number.MAX_VALUE;&#xD;&#xD;finchAppID = "ojocioejjpmeccjfjlhkepchminjemod";&#xD;&#xD;var myself = this;&#xD;&#xD;&#xD;&#xD;function getSensorData(callback) {&#xD;&#xD;    var getValue = function(response) {&#xD;&#xD;        sensorvalue = response.obstacles[1];&#xD;        callback(sensorvalue);&#xD;&#xD;    };&#xD;&#xD;    console.log("sending message to chrome");&#xD;&#xD;    chrome.runtime.sendMessage(finchAppID, {&#xD;&#xD;        message: "POLL"&#xD;&#xD;    }, getValue);&#xD;&#xD;    console.log("sent message to chrome");&#xD;&#xD;};&#xD;&#xD;&#xD;&#xD;function processValue(sensorvalue) {&#xD;&#xD;    var pred = (sensorvalue !== 0);&#xD;    console.log("sensor value has been set: ", pred);&#xD;&#xD;    myself.finchDummy8 = pred;&#xD;};&#xD;&#xD;&#xD;getSensorData(processValue);&#xD;</l></block><list></list></block><block s="doWait"><l>0.05</l></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return this.finchDummy8;</l></block><list></list></block></block></script></block-definition><block-definition s="Finch Obstacles" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><custom-block s="Finch Left Obstacle"></custom-block><custom-block s="Finch Right Obstacle"></custom-block></list></block></block></script></block-definition><block-definition s="Finch Temperature Celcius" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>var sensorvalue = Number.MAX_VALUE;&#xD;&#xD;finchAppID = "ojocioejjpmeccjfjlhkepchminjemod";&#xD;&#xD;var myself = this;&#xD;&#xD;&#xD;&#xD;function getSensorData(callback) {&#xD;&#xD;    var getValue = function(response) {&#xD;&#xD;        sensorvalue = response.temperature;&#xD;        callback(sensorvalue);&#xD;&#xD;    };&#xD;&#xD;    console.log("sending message to chrome");&#xD;&#xD;    chrome.runtime.sendMessage(finchAppID, {&#xD;&#xD;        message: "POLL"&#xD;&#xD;    }, getValue);&#xD;&#xD;    console.log("sent message to chrome");&#xD;&#xD;};&#xD;&#xD;&#xD;&#xD;function processValue(sensorvalue) {&#xD;&#xD;    &#xD;    console.log("sensor value has been set: ", sensorvalue);&#xD;&#xD;    myself.finchDummy9 = sensorvalue;&#xD;};&#xD;&#xD;&#xD;getSensorData(processValue);&#xD;</l></block><list></list></block><block s="doWait"><l>0.01</l></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return this.finchDummy9;</l></block><list></list></block></block></script></block-definition><block-definition s="Finch Temperature Fahrenheit" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportSum"><block s="reportProduct"><l>1.8</l><custom-block s="Finch Temperature Celcius"></custom-block></block><l>32</l></block></block></script></block-definition></blocks><variables><variable name="PenUP"><bool>true</bool></variable><variable name="PenX"><l>78.4999999999909</l></variable><variable name="PenY"><l>-95.0999999999488</l></variable></variables></project><media name="finch" app="Snap! 5.1, http://snap.berkeley.edu" version="1"></media></snapdata>