<snapdata remixID="13011827"><project name="2.3" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAABG1JREFUeF7t209LVFEch/HfzC0NdJFK7uzfECiMCLlrW7jxJQT9gXZJi/ZB0CqiRe2CoOg11KZNy1YRYsIsRshcSCNIiaNN48yN68KUcbznquP33jNP0KLpeH/nPOeDQ6a5G/Y4NH5RQFQgB0BRecZuFwAgEKQFACjNz3AAYkBaAIDS/AwHIAakBQAozc9wAGJAWgCA0vwMByAGpAUAKM3PcABiQFoAgNL8DAcgBqQFACjNz3AAYkBaAIDS/AwHIAakBQAozc9wAGJAWgCA0vwMByAGpAUAKM3PcABiQFoAgNL8DAcgBqQFACjNz3AAYkBaAIDS/AwHIAakBQAozc9wAGJAWgCA0vwMByAGpAUAKM3PcABiQFoAgNL8DAcgBqQFACjNz3AAYkBaAIDS/AwHIAakBQAozc9wAGJAWgCA0vwMByAGpAUAKM3PcABiQFoAgNL8DAcgBqQFACjNz3AAYkBaAIDS/AwHIAakBQAozc9wAGJAWgCA0vwMByAGpAUAKM3PcABiQFoAgNL8DAcgBqQFACjNz3AAYkBaAIDS/AwHIAakBQAozc9wAGJAWgCA0vwMByAGpAUAKM3PcABiQFoAgNL8DAcgBqQFACjNz3AAYkBaAIDS/Aw/EYD506E16zlqU6ClwIkAHL8b2twbAOKvtYAzwPyp0IZGc7byLVnGgStmG5XQar8BmKxcd6x2BhjlOFc0q/4021hxj1OYNlv44L6eld1VIBHAKM2lKbPFT2bNenyoiXtms6/j17GiewskBhilGr8T2tzbg99Sh8bM1pZCq6/z1tu9vOJPfiiA0WMnH4T25WU7XKFdnDL7/hF88VfQ3SvaAuwbNpucyR9Yp9FoWBAELWvavb574eenTatXuzs+pzc7EsAoYLPZtHz+P9QwDC2Xi//MB0D4RQWODDACF/3ejdAlLQBdKvm/xhlg6X7JaoO17SLFZ0UL/rS+9e7OVRuoWWmmtPPS4NdBG3k/svNnAPqPy+WETgDnH87bVt/WnudNPJk48Pmzj2Zb/n7sxZj1rPVsvw5Al+vxf40TwP0wFd4VrH+xv22huI8BoP+4XE4IQJdKrOlYASeA5dtlq57f+zWTuLfghZsLtn55ve3bNp8BO3anmXqwE8DoRJVrFVu+vmy9lV4bfTXqdMil6SVbvbpqwUZgxefFPR8DQKeE3i9yBnjcJQB43EWz+TwAZvPevNk1AL25ymweBIDZvDdvdg1Ab64ymwcBYDbvzZtdJwK4ObxpjTONRIfv/7H//5bwr+BEGb1dnAhg+VbZqheSfRNfuy9YA9BbU4kOlghgoifHLAbgcdbM7rMAmN2782LnAPTiGrN7iLYAgx6z3rOdO1jtl1njb+eez5OzUeDQPxWXjeOxy7QXAGDab8jz/QHQ8wtO+/EAmPYb8nx/APT8gtN+PACm/YY83x8APb/gtB8PgGm/Ic/3B0DPLzjtxwNg2m/I8/0B0PMLTvvxAJj2G/J8fwD0/ILTfjwApv2GPN/fP4+auvAHrK/JAAAAAElFTkSuQmCC</thumbnail><scenes select="1"><scene name="2.3"><notes></notes><palette><category name="MQTT" color="143,0,100,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="do in parallel %&apos;actions&apos; and wait" type="command" category="control"><comment x="0" y="0" w="238.66666666666666" collapsed="false">Accepts any number of scripts as inputs.  Launches a separate thread for each of them, so they are done in parallel, then waits for them all to complete.&#xD;&#xD;This doesn&apos;t change how the Snap! scheduler works; the threads are not truly asynchronous. And there is no increase in speed.  Rather, the point of this block is to allow starting synchronized but independent scripts.</comment><header></header><code></code><translations>pt:executa _ em paralelo e espera&#xD;ca:executa en paral·lel _ i espera&#xD;</translations><inputs><input type="%mult%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>threads</l></list></block><block s="doSetVar"><l>threads</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>is running?</l></list></block><block s="doSetVar"><l>is running?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="fork"><block s="reifyScript"><script><block s="doRun"><block var="each script"/><list></list></block><block s="doSetVar"><l>is running?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><list></list></block><block s="doReport"><block s="reifyScript"><script><block s="doReport"><block var="is running?"/></block></script><list></list></block></block></script><list></list></block><list></list></block></autolambda><list><l>each script</l></list></block><block var="actions"/></block></block><block s="doWaitUntil"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="evaluate"><block var="test"/><list></list></block></autolambda><list><l>test</l></list></block><block var="threads"/></block></block></block></script></block-definition><block-definition s="do in parallel %&apos;actions&apos;" type="command" category="control"><comment x="0" y="0" w="238.66666666666666" collapsed="false">Accepts any number of scripts as inputs.  Launches a separate thread for each of them, so they are done in parallel, then continues with the current script while they all run.&#xD;&#xD;This doesn&apos;t change how the Snap! scheduler works; the threads are not truly asynchronous. And there is no increase in speed.  Rather, the point of this block is to allow starting synchronized but independent scripts.</comment><header></header><code></code><translations>pt:executa _ em paralelo&#xD;ca:executa en paral·lel _&#xD;</translations><inputs><input type="%mult%cs"></input></inputs><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="actions"/></block><l>0</l></list></block><script><block s="fork"><block s="reportListItem"><l>1</l><block var="actions"/></block><list></list></block><custom-block s="do in parallel %mult%cs"><block s="reportCDR"><block var="actions"/></block></custom-block></script><list></list></block></script></block-definition><block-definition s="listify %&apos;jsonString&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:os dados JSON _ em formato de lista&#xD;</translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="jsonString"/><l><option>json</option></l></block></block></script></block-definition><block-definition s="value at key %&apos;key&apos; of %&apos;lst&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:o valor com chave _ em _&#xD;</translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>each item</l><block var="lst"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="each item"/></block><block var="key"/></list></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="each item"/></block></block></script><list></list></block></script></block></script></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="%&apos;method&apos; url: %&apos;url&apos; send: %&apos;payload&apos; headers: %&apos;headers&apos;" type="reporter" category="sensing"><header></header><code></code><translations>pt:a resposta a _ de _ enviando _ e cabeçalhos _&#xD;</translations><inputs><input type="%s" readonly="true">GET<options>GET&#xD;POST&#xD;PUT&#xD;DELETE</options></input><input type="%s">https://snap.berkeley.edu</input><input type="%s"></input><input type="%mult%l" readonly="true"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>xhr_request(mth, url, dta, hdrs)</l><list><block var="method"/><block var="url"/><block var="payload"/><block var="headers"/></list></block></block></script></block-definition><block-definition s="key: %&apos;key&apos; value: %&apos;value&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:um par (chave: _ , valor: _ )&#xD;</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="key"/><block var="value"/></list></block></block></script></block-definition><block-definition s="current location" type="reporter" category="sensing"><comment x="0" y="0" w="200" collapsed="false">Reports a three-item list containing the latitude and longitude of the user, and the precision of the measurements.  Works only if the user allows snap.berkeley.edu access to location data.  Some browsers also require an HTTPS connection to Snap!.</comment><header></header><code></code><translations>pt:a localização actual do dispositivo&#xD;</translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>callback</l></list></block><block s="doSetVar"><l>callback</l><block s="reportApplyExtension"><l>geo_location(acc?)</l><list><block s="reportBoolean"><l><bool>true</bool></l></block></list></block></block><block s="doWaitUntil"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="evaluate"><block var="callback"/><list></list></block></block><l>3</l></list></block></block><block s="doReport"><block s="evaluate"><block var="callback"/><list></list></block></block></script></block-definition><block-definition s="$cloudOutline MQTT connect to %&apos;broker&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="416.6666666666666" collapsed="false">Connect to a broker&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;1. username (some brokers need this)&#xD;2. password (some brokers need this)&#xD;3. keepalive (default time is 60 seconds but some brokers need a shorter time)&#xD;4. connection callback (ringed set of scripts to be run when connection is made or remade)&#xD;&#xD;Note: The connection callback doesn&apos;&apos;t have to be the 4th option - it just has to be the last (or only) option.&#xD;&#xD;ADVANCED: The brokers offered in the menu are accessed using default ports and  basepaths (if needed).  If accessing other brokers, the complete urls should be formed like this:&#xD;&#xD;siteURL:port/basepath &#xD;e.g mqtt.eclipseprojects.io:443/mqtt&#xD;&#xD;It is possible to have more than one connection to the same broker, for instance, using two different user/pass accounts simultaneously. To do this, add a connection id at the end of the broker:&#xD;&#xD;e.g mqtt.eclipseprojects.io:443/mqtt|1&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%mult%s"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doIf"><block s="reportNot"><block s="reportJoinWords"><block var="options"/></block></block><script><block s="doSetVar"><l>options</l><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>connection status</l><l>callback</l></list></block><block s="doSetVar"><l>connection status</l><l>connecting</l></block><block s="doSetVar"><l>callback</l><l></l></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l><option>last</option></l><block var="options"/></block><l><option>command</option></l></block><script><block s="doSetVar"><l>callback</l><block s="reportListItem"><l><option>last</option></l><block var="options"/></block></block><block s="doDeleteFromList"><l><option>last</option></l><block var="options"/></block></script><list></list></block><block s="doSetVar"><l>options</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block s="reportNewList"><list><l>username</l><block s="reportListItem"><l>1</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>password</l><block s="reportListItem"><l>2</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>keepalive</l><block s="reportListItem"><l>3</l><block var="options"/></block></list></block></list></block></block></block><block s="doApplyExtension"><l>mqt_connect(broker,callback,options)</l><list><block var="broker"/><block var="callback"/><block var="options"/></list></block><block s="doWaitUntil"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="connection status"/><l>connecting</l></list></block></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="connection status"/><l>connected</l></list></block></block><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="connection status"/></list></block></script><list></list></block></script></block-definition><block-definition s="$cloudOutline MQTT publish to %&apos;broker&apos; topic %&apos;topic&apos; payload %&apos;payload&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="200" collapsed="false">Publish a message to an MQTT broker&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;1. qos (quality of service 0,1 or 2)&#xD;2. retain flag (boolean)&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%mlt">hello</input><input type="%mult%s"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doIf"><block s="reportNot"><block s="reportJoinWords"><block var="options"/></block></block><script><block s="doSetVar"><l>options</l><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doSetVar"><l>options</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block s="reportNewList"><list><l>qos</l><block s="reportListItem"><l>1</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>retain</l><block s="reportListItem"><l>2</l><block var="options"/></block></list></block></list></block></block></block><block s="doIf"><block s="reportIsA"><block var="payload"/><l><option>list</option></l></block><script><block s="doSetVar"><l>payload</l><block s="reportListAttribute"><l><option>json</option></l><block var="payload"/></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="payload"/><l><option>number</option></l></block><script><block s="doSetVar"><l>payload</l><block s="reportJoinWords"><list><block var="payload"/></list></block></block></script><list></list></block><block s="doApplyExtension"><l>mqt_pub(broker,topic,payload,options)</l><list><block var="broker"/><block var="topic"/><block var="payload"/><block var="options"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT subscribe to %&apos;broker&apos; topic %&apos;topic&apos; $nl on each message run %&apos;callback&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="239.99999999999977" collapsed="false">Subscribe to a topic on a broker&#xD;&#xD;Make sure you have already run an MQTT connect block before using this one&#xD;&#xD;You should add a script to be run inside he grey ring.&#xD;&#xD;It will be run each time a message is received&#xD;&#xD;If you click on the arrow on the grey ring twice, you can use #1 and #2 inside your script.&#xD;&#xD;#1 will contain the received payload&#xD;&#xD;#2 will contain the received topic name&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;There is only 1 option at present&#xD;1. Binary mode (boolean) If true, payload returned as plain binary byte string.  Default condition (false) it is returned as UTF text string</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%cmdRing"></input><input type="%mult%s"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doIf"><block s="reportNot"><block s="reportJoinWords"><block var="options"/></block></block><script><block s="doSetVar"><l>options</l><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doSetVar"><l>options</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block s="reportNewList"><list><l>mode</l><block s="reportListItem"><l>1</l><block var="options"/></block></list></block></list></block></block></block><block s="doApplyExtension"><l>mqt_sub(broker,topic,callback,options)</l><list><block var="broker"/><block var="topic"/><block var="callback"/><block var="options"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT unsubscribe from %&apos;broker&apos; topic %&apos;topic&apos;" type="command" category="MQTT"><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doApplyExtension"><l>mqt_unsub(broker,topic)</l><list><block var="broker"/><block var="topic"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT disconnect from %&apos;broker&apos;" type="command" category="MQTT"><header></header><code></code><translations></translations><inputs><input type="%s">all<options>all&#xD;broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doApplyExtension"><l>mqt_disconnect(broker)</l><list><block var="broker"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT response %&apos;broker&apos; topic %&apos;topic&apos; $nl reply %&apos;reply&apos; $nl $options-1-192-192-192 %&apos;$options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="178" collapsed="false">There is only 1 option at present&#xD;1. Binary mode (boolean) If true, payload returned as plain binary byte string.  Default condition (false) it is returned as UTF text string</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name/#</input><input type="%repRing"></input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>resp</l><l>callbackTopic</l><l>error</l></list></block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><block var="broker"/><block var="topic"/><block s="reifyScript"><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><l>/@</l><block var="received topic"/></list></block><l>0</l></list></block><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doSetVar"><l>resp</l><block s="evaluate"><block var="reply"/><list><block var="received payload"/><block var="received topic"/></list></block></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l>resp</l><block s="evaluate"><block var="reply"/><list></list></block></block></script><list></list></block><block var="error"/></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block><block s="doSetVar"><l>callbackTopic</l><block s="reportListItem"><l><option>last</option></l><block s="reportTextSplit"><block var="received topic"/><l>@</l></block></block></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="broker"/><block var="callbackTopic"/><block var="resp"/><list><l></l></list></custom-block></script><list></list></block></script><list><l>received payload</l><l>received topic</l></list></block><list><block s="reportListItem"><l>1</l><block var="$options"/></block></list></custom-block></script></block-definition><block-definition s="$cloudOutline MQTT request %&apos;broker&apos; topic %&apos;topic&apos; $nl response topic %&apos;rtopic&apos; payload %&apos;payload&apos; $nl on response run %&apos;callback&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="193" collapsed="false">The options are not required but can be filled if needed.&#xD;&#xD;1. Binary mode (boolean) If true, payload returned as plain binary byte string.  Default condition (false) it is returned as UTF text string&#xD;&#xD;2. Inform response topic (boolean): If true, the response topic is added at the end of the call topic after @ sign. The default condition (true) response topic is added.</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%s">name2</input><input type="%mlt">hello</input><input type="%cmdRing"></input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>error</l><l>informTopic</l><l>topicCall</l></list></block><block s="doSetVar"><l>informTopic</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="options"/></block><l><option>Boolean</option></l></block><block s="reportListItem"><l>2</l><block var="options"/></block><block s="reportBoolean"><l><bool>true</bool></l></block></block></block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><block var="broker"/><block s="reportJoinWords"><list><block var="rtopic"/></list></block><block s="reifyScript"><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doRun"><block var="callback"/><list><block var="received payload"/><block var="received topic"/></list></block></script><list></list></block><block s="reifyScript"><script><block s="doRun"><block var="callback"/><list></list></block></script><list></list></block><block var="error"/></list></block></script><list><l>received payload</l><l>received topic</l></list></block><list><block s="reportListItem"><l>1</l><block var="options"/></block></list></custom-block><block s="doIfElse"><block var="informTopic"/><script><block s="doSetVar"><l>topicCall</l><block s="reportJoinWords"><list><block var="topic"/><l>/</l><block s="reportJoinWords"><list><l>@</l><block var="rtopic"/></list></block></list></block></block></script><script><block s="doSetVar"><l>topicCall</l><block var="topic"/></block></script></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="broker"/><block var="topicCall"/><block var="payload"/><list><l></l></list></custom-block></script></block-definition><block-definition s="$cloudOutline MQTT example response reporter payload %&apos;payload&apos; topic %&apos;topic&apos;" type="reporter" category="MQTT"><comment x="0" y="0" w="90" collapsed="false">This is a simple echo example.&#xD;Topic can be used to filter the response.</comment><header></header><code></code><translations></translations><inputs><input type="%mlt">hello</input><input type="%txt">name</input></inputs><script><block s="doReport"><block var="payload"/></block></script></block-definition><block-definition s="$cloudOutline MQTT request %&apos;broker&apos; topic %&apos;topic&apos; $nl response topic %&apos;rtopic&apos; payload %&apos;payload&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="reporter" category="MQTT"><comment x="0" y="0" w="343" collapsed="false">The response topic should be a unique value for each call e.g. use timer&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;1.  Timeout value - default is 3 seconds&#xD;&#xD;2.  Binary mode (boolean) If true, payload returned as plain binary byte string.  Default condition (false) it is returned as UTF text string&#xD;&#xD;3.  Inform response topic (boolean): If true, the response topic is added at the end of the call topic after @ sign. The default condition (true) response topic is added.</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%s">name2</input><input type="%mlt">hello</input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>resp</l><l>semaphore</l><l>timer0</l><l>timeout</l><l>informTopic</l><l>topicCall</l></list></block><block s="doSetVar"><l>semaphore</l><l>0</l></block><block s="doSetVar"><l>timeout</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="options"/></block><l><option>number</option></l></block><block s="reportListItem"><l>1</l><block var="options"/></block><l>3</l></block></block><block s="doSetVar"><l>informTopic</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>3</l><block var="options"/></block><l><option>Boolean</option></l></block><block s="reportListItem"><l>3</l><block var="options"/></block><block s="reportBoolean"><l><bool>true</bool></l></block></block></block><block s="doSetVar"><l>resp</l><l>timeout</l></block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><block var="broker"/><block s="reportJoinWords"><list><block var="rtopic"/></list></block><block s="reifyScript"><script><block s="doSetVar"><l>resp</l><block var="received payload"/></block><block s="doSetVar"><l>semaphore</l><l>1</l></block></script><list><l>received payload</l><l>received topic</l></list></block><list><block s="reportListItem"><l>2</l><block var="options"/></block></list></custom-block><block s="doIfElse"><block var="informTopic"/><script><block s="doSetVar"><l>topicCall</l><block s="reportJoinWords"><list><block var="topic"/><l>/</l><block s="reportJoinWords"><list><l>@</l><block var="rtopic"/></list></block></list></block></block></script><script><block s="doSetVar"><l>topicCall</l><block var="topic"/></block></script></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="broker"/><block var="topicCall"/><block var="payload"/><list><l></l></list></custom-block><block s="doSetVar"><l>timer0</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doWaitUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="semaphore"/><l>1</l></list></block><block s="reportVariadicGreaterThan"><list><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="timer0"/></block><block s="reportVariadicProduct"><list><block var="timeout"/><l>1000</l></list></block></list></block></list></block></block><custom-block s="$cloudOutline MQTT unsubscribe from %s topic %s"><block var="broker"/><block s="reportJoinWords"><list><block var="rtopic"/></list></block></custom-block><block s="doReport"><block var="resp"/></block></script></block-definition><block-definition s="MQTT Extension Examples" type="command" category="MQTT"><comment x="0" y="0" w="277" collapsed="false">Open (edit) this block to look at examples how to use the MQTT Extension blocks&#xD;&#xD;Background documentation:&#xD;https://github.com/pixavier/mqtt4snap&#xD;&#xD;Last source code version (mqtt.xml and mqttExtension.js):&#xD;https://gitlab.com/cymplecy/Snap/-/tree/master/libraries</comment><header></header><code></code><translations></translations><inputs></inputs><scripts><script x="24.333333333333485" y="371.8666666666658"><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name</l><l>hello</l><list><l></l></list></custom-block></script><script x="22.333333333333485" y="271.1999999999998"><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name</l><block s="reifyScript"><script><block s="doSayFor"><block var="payload"/><l>2</l></block></script><list><l>payload</l><l>topic</l></list></block><list><l></l></list></custom-block></script><comment x="525.9999999999995" y="140.20000000000002" w="191" collapsed="false">To execute the examples, single click on blocks, following the corresponding steps.</comment><script x="28" y="1315.0333333333292"><custom-block s="$cloudOutline MQTT request %s topic %s %br response topic %s payload %mlt %br on response run %cmdRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name</l><block s="getTimer"></block><l>hello</l><block s="reifyScript"><script><block s="doSayFor"><block var="payload"/><l>2</l></block></script><list><l>payload</l><l>topic</l></list></block><list><l></l></list></custom-block></script><script x="24.333333333333485" y="1013.2000000000015"><custom-block s="$cloudOutline MQTT response %s topic %s %br reply %repRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name/#</l><block s="reifyReporter"><autolambda><custom-block s="$cloudOutline MQTT example response reporter payload %mlt topic %txt"><block var="payload"/><block var="topic"/></custom-block></autolambda><list><l>payload</l><l>topic</l></list></block><list><l></l></list></custom-block></script><script x="28" y="498.69999999999936"><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name1</l><block s="reifyScript"><script><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name2</l><block var="payload"/><list><l></l></list></custom-block></script><list><l>payload</l><l>topic</l></list></block><list><l></l></list></custom-block></script><script x="29.999999999999996" y="633.0333333333344"><block s="doSayFor"><custom-block s="$cloudOutline MQTT request %s topic %s %br response topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name1</l><l>name2</l><l>hello</l><list><l></l><l></l><block s="reportBoolean"><l><bool>false</bool></l></block></list></custom-block><l>2</l></block></script><comment x="487.9999999999996" y="1311.6999999999966" w="224" collapsed="false">Step 2 bis: Send a request (timer acts as idCall) and do not wait for the answer</comment><comment x="487.9999999999996" y="1013.7000000000011" w="220" collapsed="false">Step 1: Activate the responder</comment><comment x="483.666666666667" y="805.3666666666666" w="224" collapsed="false">Step 2 bis: Send a request and do not wait for the answer</comment><comment x="487.0000000000001" y="495.6999999999983" w="220" collapsed="false">Step 1: Activate the responder as a simple subscription</comment><comment x="484.99999999999966" y="374.1999999999991" w="222" collapsed="false">Step 2: Publish a message</comment><comment x="485.99999999999955" y="293.19999999999925" w="222" collapsed="false">Step 1: Subscribe to a topic</comment><comment x="482.9999999999996" y="215.2" w="223" collapsed="false">Step 0: Connect to the broker</comment><comment x="485.00000000000006" y="635.6999999999996" w="220" collapsed="false">Step 2: Send a request and wait the answer.</comment><script x="24.333333333333485" y="209.2"><custom-block s="$cloudOutline MQTT connect to %s %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><list><l></l></list></custom-block></script><comment x="24.333333333333485" y="152.20000000000013" w="239.99999999999997" collapsed="false">PubSub Hello World!</comment><script x="26.333333333333485" y="1139.1999999999978"><block s="doSayFor"><custom-block s="$cloudOutline MQTT request %s topic %s %br response topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name</l><block s="getTimer"></block><l>hello</l><list><l></l></list></custom-block><l>2</l></block></script><comment x="486.9999999999996" y="1138.6999999999982" w="219.00000000000023" collapsed="false">Step 2: Send a request (timer acts as idCall) and wait for the answer</comment><script x="27" y="803.0333333333335"><custom-block s="$cloudOutline MQTT request %s topic %s %br response topic %s payload %mlt %br on response run %cmdRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name1</l><l>name2</l><l>hello</l><block s="reifyScript"><script><block s="doSayFor"><block var="payload"/><l>2</l></block></script><list><l>payload</l><l>topic</l></list></block><list><l></l><block s="reportBoolean"><l><bool>false</bool></l></block></list></custom-block></script><comment x="29" y="736.6999999999998" w="372.0000000000004" collapsed="false">Asynchronous client-server Hello World! with static response topic (name2)</comment><comment x="25.333333333333485" y="935.2000000000012" w="356.99999999999994" collapsed="false">Synchronous client-server Hello World! with dynamic response topic (timer)</comment><comment x="28" y="431.3666666666668" w="361.99999999999994" collapsed="false">Synchronous client-server Hello World! with static response topic (name2)</comment><comment x="27" y="1243.6999999999966" w="352.0000000000003" collapsed="false">Asynchronous client-server Hello World! with dynamic response topic (timer)</comment></scripts></block-definition><block-definition s="WEBSer $flag-1-0-255-0 open %&apos;baudRate&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%n">115200<options>9600&#xD;19200&#xD;38400&#xD;57600&#xD;115200</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>srl_open(baud, buffer)</l><list><block var="baudRate"/><l>15000</l></list></block></block></script></block-definition><block-definition s="WEBSer $flag-1-255-0-0 close %&apos;port&apos;" type="command" category="other"><comment x="0" y="0" w="90" collapsed="true">Close port.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">port</input></inputs><script><block s="doApplyExtension"><l>srl_close(port)</l><list><block var="port"/></list></block></script></block-definition><block-definition s="WEBSer $flash-1-0-255-0 read %&apos;port&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s">port</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>srl_read(port)</l><list><block var="port"/></list></block></block></script></block-definition><block-definition s="WEBSer $flash-1-0-255-0 write %&apos;port&apos; %&apos;bytes&apos;" type="command" category="other"><comment x="0" y="0" w="193.33528645833292" collapsed="true">Write to the port a list containing numbers</comment><header></header><code></code><translations></translations><inputs><input type="%s">port</input><input type="%l"></input></inputs><script><block s="doApplyExtension"><l>srl_write(port, bytes)</l><list><block var="port"/><block var="bytes"/></list></block></script></block-definition><block-definition s="🤖 connect to %&apos;ip&apos;" type="command" category="other"><header></header><code></code><translations>ca:🤖 connecta&apos;t a _&#xD;</translations><inputs><input type="%s">192.168.4.1</input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/signada.js</l></list></block><custom-block s="🤖 disconnect"></custom-block><block s="doApplyExtension"><l>sgd_connect(ip)</l><list><block var="ip"/></list></block></script></block-definition><block-definition s="🤖 disconnect" type="command" category="other"><header></header><code></code><translations>ca:🤖 desconnecta&apos;t&#xD;</translations><inputs></inputs><script><block s="doIf"><custom-block s="🤖 connected"></custom-block><script><block s="doApplyExtension"><l>sgd_disconnect()</l><list><l></l></list></block></script><list></list></block></script></block-definition><block-definition s="🤖 connected" type="predicate" category="other"><header></header><code></code><translations>ca:🤖 connectat&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>sgd_connected()</l><list></list></block></block></script></block-definition><block-definition s="play note %&apos;notename&apos; octave %&apos;octave&apos; for %&apos;ms&apos; ms" type="command" category="sound"><header></header><code></code><translations>ca:toca la nota _ a l&apos;octava _ durant _ ms&#xD;</translations><inputs><input type="%txt">C<options>C&#xD;C#&#xD;D&#xD;D#&#xD;E&#xD;F&#xD;F#&#xD;G&#xD;G#&#xD;A&#xD;A#&#xD;B</options></input><input type="%n">1<options>1&#xD;2&#xD;3&#xD;4&#xD;5</options></input><input type="%n">100</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>play tone</l><block s="reportNewList"><list><block var="notename"/><block var="octave"/><block var="ms"/></list></block><l>0</l></list></block></block></script></block-definition><block-definition s="button %&apos;buttonname&apos;" type="predicate" category="sensing"><header></header><code></code><translations>ca:botó _&#xD;</translations><inputs><input type="%s" readonly="true"><options>🆗&#xD;❌&#xD;➡️&#xD;⬆️&#xD;⬇️&#xD;⬅️</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><block s="reportJoinWords"><list><block s="reportListItem"><block s="reportListIndex"><block var="buttonname"/><block s="reportNewList"><list><l>🆗</l><l>❌</l><l>➡️</l><l>⬆️</l><l>⬇️</l><l>⬅️</l></list></block></block><block s="reportNewList"><list><l>OK</l><l>cancel</l><l>right</l><l>up</l><l>down</l><l>left</l></list></block></block><l> button</l></list></block><l></l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></block></script></block-definition><block-definition s="set LED display $nl %&apos;i1&apos; %&apos;i2&apos; %&apos;i3&apos; %&apos;i4&apos; %&apos;i5&apos; $nl %&apos;i6&apos; %&apos;i7&apos; %&apos;i8&apos; %&apos;i9&apos; %&apos;i10&apos; $nl %&apos;i11&apos; %&apos;i12&apos; %&apos;i13&apos; %&apos;i14&apos; %&apos;i15&apos; $nl %&apos;i16&apos; %&apos;i17&apos; %&apos;i18&apos; %&apos;i19&apos; %&apos;i20&apos; $nl %&apos;i21&apos; %&apos;i22&apos; %&apos;i23&apos; %&apos;i24&apos; %&apos;i25&apos;" type="command" category="pen"><header></header><code></code><translations>ca:dibuixa a la pantalla _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;</translations><inputs><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">true</input><input type="%b">false</input><input type="%b">true</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">true</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">true</input><input type="%b">false</input><input type="%b">true</input><input type="%b">true</input><input type="%b">true</input><input type="%b">false</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>set display</l><block s="reportNewList"><list><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><l/><l>X</l><l>O</l></block></autolambda><list></list></block><block s="reportNewList"><list><block var="i1"/><block var="i2"/><block var="i3"/><block var="i4"/><block var="i5"/><block var="i6"/><block var="i7"/><block var="i8"/><block var="i9"/><block var="i10"/><block var="i11"/><block var="i12"/><block var="i13"/><block var="i14"/><block var="i15"/><block var="i16"/><block var="i17"/><block var="i18"/><block var="i19"/><block var="i20"/><block var="i21"/><block var="i22"/><block var="i23"/><block var="i24"/><block var="i25"/></list></block></block></block></list></block><l>0</l></list></block></block></script></block-definition><block-definition s="move motor %&apos;n&apos; %&apos;steps&apos; steps %&apos;direction&apos;" type="command" category="motion"><header></header><code></code><translations>ca:mou motor _ _ passos _&#xD;</translations><inputs><input type="%n">1</input><input type="%n">128</input><input type="%txt" readonly="true">clockwise<options>clockwise&#xD;counter-clockwise</options></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>motor step</l><block s="reportNewList"><list><block var="n"/><block var="steps"/><block var="direction"/></list></block><l>0</l></list></block></block></script></block-definition><block-definition s="move motor 1 %&apos;direction&apos; and motor 2 %&apos;direction-2&apos; %&apos;steps&apos; steps" type="command" category="motion"><header></header><code></code><translations>ca:mou motor 1 en _ motor 2 en _ _ passos&#xD;</translations><inputs><input type="%s" readonly="true">clockwise<options>clockwise&#xD;counter-clockwise</options></input><input type="%s" readonly="true">counter-clockwise<options>clockwise&#xD;counter-clockwise</options></input><input type="%n">64</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>move motor </l><block s="reportNewList"><list><block var="direction"/><block var="direction-2"/><block var="steps"/></list></block><l>0</l></list></block></block></script></block-definition><block-definition s="move motor %&apos;n&apos; angle %&apos;angle&apos; °" type="command" category="motion"><header></header><code></code><translations>ca:mou motor _ angle _ °&#xD;</translations><inputs><input type="%n">1</input><input type="%n">-90</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>motor angle</l><block s="reportNewList"><list><block var="n"/><block var="angle"/></list></block><l>0</l></list></block></block></script></block-definition><block-definition s="move motor %&apos;n&apos; %&apos;turns&apos; complete turns" type="command" category="motion"><header></header><code></code><translations>ca:mou motor _ _ voltes completes&#xD;</translations><inputs><input type="%n">1</input><input type="%n">3</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>motor turns</l><block s="reportNewList"><list><block var="n"/><block var="turns"/></list></block><l>0</l></list></block></block></script></block-definition><block-definition s="write %&apos;text&apos; at x: %&apos;x&apos; y: %&apos;y&apos; color %&apos;clr&apos; scale %&apos;scale&apos;" type="command" category="pen"><header></header><code></code><translations>ca:escriu _ a x: _ y: _ color _ escala _&#xD;</translations><inputs><input type="%s">Hello, MicroBlocks!</input><input type="%n">10</input><input type="%n">30</input><input type="%s" readonly="true">🔵<options>🔵&#xD;🟢&#xD;​🔴&#xD;​🟣&#xD;​🟡&#xD;​⚪️</options></input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>text</l><block s="reportNewList"><list><block var="text"/><block var="x"/><block var="y"/><block s="reportListItem"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="clr"/><l></l></list></block><l>1</l><block s="reportListIndex"><block var="clr"/><block s="reportNewList"><list><l>🔵</l><l>🟢</l><l>​🔴</l><l>​🟣</l><l>​🟡</l><l>​⚪️</l></list></block></block></block><block s="reportNewList"><list><l>255</l><l>65280</l><l>16711680</l><l>16711935</l><l>16776960</l><l>16777215</l></list></block></block><block var="scale"/><l>0</l></list></block><l>0</l></list></block></block></script></block-definition><block-definition s="clear display" type="command" category="pen"><header></header><code></code><translations>ca:neteja pantalla&#xD;</translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>clear</l><l></l><l></l></list></block></block></script></block-definition><block-definition s="set LED x: %&apos;x&apos; y: %&apos;y&apos; to %&apos;bool&apos;" type="command" category="pen"><header></header><code></code><translations>ca:posa el LED x: _ y: _ a _&#xD;</translations><inputs><input type="%n">3</input><input type="%n">3</input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>set led</l><block s="reportNewList"><list><block var="x"/><block var="y"/><block var="bool"/></list></block><l>0</l></list></block></block></script></block-definition><block-definition s="display character %&apos;char&apos;" type="command" category="pen"><header></header><code></code><translations>ca:mostra caràcter _&#xD;</translations><inputs><input type="%s">A</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>displayCharacter</l><block s="reportNewList"><list><block var="char"/></list></block><l>0</l></list></block></block></script></block-definition><block-definition s="set digital pin %&apos;pin&apos; to %&apos;bool&apos;" type="command" category="sensing"><header></header><code></code><translations>ca:posa el pin digital _ a _&#xD;</translations><inputs><input type="%n">1</input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>set pin</l><block s="reportNewList"><list><block var="pin"/><l>digital</l><block var="bool"/></list></block><l>0</l></list></block></block></script></block-definition><block-definition s="set analog pin %&apos;pin&apos; to %&apos;value&apos;" type="command" category="sensing"><header></header><code></code><translations>ca:posa el pin analògic _ a _&#xD;</translations><inputs><input type="%n">1</input><input type="%n">512</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>set pin</l><block s="reportNewList"><list><block var="pin"/><l>analog</l><block var="value"/></list></block><l>0</l></list></block></block></script></block-definition><block-definition s="read digital pin %&apos;pin&apos;" type="predicate" category="sensing"><header></header><code></code><translations>ca:llegeix el pin digital _&#xD;</translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>get pin</l><block s="reportNewList"><list><block var="pin"/><l>digital</l></list></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></block></script></block-definition><block-definition s="read analog pin %&apos;pin&apos;" type="reporter" category="sensing"><header></header><code></code><translations>ca:llegeix el pin analògic _&#xD;</translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>get pin</l><block s="reportNewList"><list><block var="pin"/><l>analog</l></list></block><l>0</l></list></block></block></script></block-definition><block-definition s="tilt %&apos;axis&apos;" type="reporter" category="sensing"><header></header><code></code><translations>ca:inclinació _&#xD;</translations><inputs><input type="%s" readonly="true">x<options>x&#xD;y&#xD;z</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>tilt</l><block s="reportNewList"><list><block var="axis"/></list></block><l>0</l></list></block></block></script></block-definition><block-definition s="acceleration" type="reporter" category="sensing"><variables><list struct="atomic" id="1505">memoized response,calling</list></variables><header></header><code></code><translations>ca:acceleració&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>sensor</l><block s="reportNewList"><list><l>acceleration</l></list></block><l>100</l></list></block></block></script></block-definition><block-definition s="light level" type="reporter" category="sensing"><header></header><code></code><translations>ca:nivell de llum&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>sensor</l><block s="reportNewList"><list><l>light</l></list></block><l>100</l></list></block></block></script></block-definition><block-definition s="temperature °C" type="reporter" category="sensing"><header></header><code></code><translations>ca:temperatura °C&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>sgd_call(blockname, params, defaultresponse)</l><list><l>sensor</l><block s="reportNewList"><list><l>temperature</l></list></block><l>20</l></list></block></block></script></block-definition><block-definition s="store key: %&apos;key&apos; value: %&apos;value&apos; in browser" type="command" category="other"><header></header><code></code><translations>ca:desa clau: _ amb valor: _ al navegador&#xD;</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>db_store(key, val)</l><list><block var="key"/><block var="value"/></list></block></script></block-definition><block-definition s="stored data in browser" type="reporter" category="other"><header></header><code></code><translations>ca:dades desades al navegador&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>db_getall</l><list></list></block></block></script></block-definition><block-definition s="remove key: %&apos;key&apos; in browser" type="command" category="other"><header></header><code></code><translations>ca:esborra clau: _ del navegador&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>db_remove(key)</l><list><block var="key"/></list></block></script></block-definition><block-definition s="clear data in browser" type="command" category="other"><header></header><code></code><translations>ca:esborra dades del navegador&#xD;</translations><inputs></inputs><script><block s="doWarp"><script><block s="doForEach"><l>item</l><custom-block s="stored data in browser"></custom-block><script><custom-block s="remove key: %s in browser"><block s="reportListItem"><l>1</l><block var="item"/></block></custom-block></script></block></script></block></script></block-definition><block-definition s="get value from key: %&apos;key&apos; in browser" type="reporter" category="other"><comment x="0" y="0" w="199.33333333333334" collapsed="false">Reports the value previously stored under&#xD;the input key in the browser&apos;s local storage.&#xD;Reports False if the key is not found.</comment><header></header><code></code><translations>ca:obté valor de clau: _ al navegador&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>db_get(key)</l><list><block var="key"/></list></block></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="2" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="1598"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+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+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list id="1599"><item><ref mediaID="Stage_cst_Untitled"></ref></item><item><ref mediaID="Stage_cst_Untitled(2)"></ref></item></list></costumes><sounds><list struct="atomic" id="1600"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Chatbot" idx="1" x="-175" y="-100" heading="90" scale="0.5" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="1605"><costumes><list id="1606"><item><ref mediaID="Chatbot_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="1607"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="204.49999999999994"><block s="receiveGo"></block><custom-block s="clear data in browser"></custom-block><block s="doSetVar"><l>Q</l><l>1</l></block><block s="setScale"><l>50</l></block><block s="gotoXY"><l>-175</l><l>-100</l></block><block s="doBroadcastAndWait"><l>Ask Question</l><list><l><option>all</option></l><l>What is your name?</l></list></block><block s="doBroadcastAndWait"><l>Ask Question</l><list><l><option>all</option></l><l>How old are you?</l></list></block><block s="doBroadcastAndWait"><l>Ask Question</l><list><l><option>all</option></l><l>Do you like computers?</l></list></block><block s="doBroadcastAndWait"><l>Ask Question</l><list><l><option>all</option></l><l>What is your favorite class?</l></list></block><block s="doBroadcastAndWait"><l>Ask Question</l><list><l><option>all</option></l><l>What is your favorite outdoor activity?</l></list></block><block s="doBroadcastAndWait"><l>Ask Question</l><list><l><option>all</option></l><l>What is your favorite color?</l></list></block><block s="doBroadcastAndWait"><l>Ask Question</l><list><l><option>all</option></l><l>What is your favorite number?</l></list></block><block s="doBroadcastAndWait"><l>Ask Question</l><list><l><option>all</option></l><l>What is your favorite season?</l></list></block><block s="doBroadcastAndWait"><l>Ask Question</l><list><l><option>all</option></l><l>How has your day been?</l></list></block><block s="doBroadcastAndWait"><l>Ask Question</l><list><l><option>all</option></l><l>Did you have fun talking to me?</l></list></block><block s="doBroadcast"><l>Show Answers</l><list></list></block></script><script x="27" y="10"><block s="receiveMessage"><l>Ask Question</l><list><l>data</l></list></block><block s="doAsk"><block var="data"/></block><block s="doUntil"><block s="getLastAnswer"></block><script><block s="doAsk"><block var="data"/></block></script></block><block s="doBroadcastAndWait"><l>Store Data</l><list><l><option>all</option></l><block s="getLastAnswer"></block></list></block><block s="doChangeVar"><l>Q</l><l>1</l></block></script><script x="582" y="41.166666666666686"><block s="receiveMessage"><l>Show Answers</l><list></list></block><block s="doSayFor"><block s="reportJoinWords"><list><l>Your name is </l><custom-block s="get value from key: %s in browser"><l>1</l></custom-block></list></block><l>2</l></block><block s="doSayFor"><block s="reportJoinWords"><list><block s="reportJoinWords"><list><l>You are </l><custom-block s="get value from key: %s in browser"><l>2</l></custom-block></list></block><l> years old</l></list></block><l>2</l></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>lower case</option></l><custom-block s="get value from key: %s in browser"><l>3</l></custom-block></block><l>yes</l></list></block><script><block s="doSayFor"><l>You like computers</l><l>2</l></block></script><script><block s="doSayFor"><l>You do not like computers</l><l>2</l></block></script></block><block s="doSayFor"><block s="reportJoinWords"><list><l>Your favorite class is </l><custom-block s="get value from key: %s in browser"><l>4</l></custom-block></list></block><l>2</l></block><block s="doSayFor"><block s="reportJoinWords"><list><l>Your favorite outdoor activity is </l><custom-block s="get value from key: %s in browser"><l>5</l></custom-block></list></block><l>2</l></block><block s="doSayFor"><block s="reportJoinWords"><list><l>Your favorite color is </l><custom-block s="get value from key: %s in browser"><l>6</l></custom-block></list></block><l>2</l></block><block s="doSayFor"><block s="reportJoinWords"><list><l>Your favorite number is </l><custom-block s="get value from key: %s in browser"><l>7</l></custom-block></list></block><l>2</l></block><block s="doSayFor"><block s="reportJoinWords"><list><l>Your favorite season is </l><custom-block s="get value from key: %s in browser"><l>8</l></custom-block></list></block><l>2</l></block><block s="doSayFor"><block s="reportJoinWords"><list><l>Your day has been </l><custom-block s="get value from key: %s in browser"><l>9</l></custom-block></list></block><l>2</l></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>lower case</option></l><custom-block s="get value from key: %s in browser"><l>10</l></custom-block></block><l>yes</l></list></block><script><block s="doSayFor"><l>You liked talking to me.</l><l>2</l></block></script><script><block s="doSayFor"><l>You didn&apos;t like talking to me :(</l><l>2</l></block></script></block><block s="doSayFor"><l>Have a nice day</l><l>2</l></block></script><script x="223" y="161.66666666666663"><block s="receiveMessage"><l>Store Data</l><list><l>data</l></list></block><custom-block s="store key: %s value: %s in browser"><block var="Q"/><block var="data"/></custom-block></script></scripts></sprite><watcher var="Q" style="normal" x="10" y="10" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="Q"><l>1</l></variable></variables></scene></scenes></project><media name="2.3" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><costume name="Untitled" center-x="240" center-y="180" image="data:image/png;base64,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" mediaID="Stage_cst_Untitled"/><costume name="Untitled(2)" center-x="240" center-y="180" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADo1JREFUeF7t1VEJACAQBUHtZjCbKxjC/Zkr8GA42LnGPsMRIECAAAECXwWmAH/1NkaAAAECBJ6AAHsEAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+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+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIXBJDe7/QBRCVAAAAAElFTkSuQmCC" mediaID="Stage_cst_Untitled(2)"/><costume name="Untitled" center-x="89" center-y="88" image="data:image/png;base64,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" mediaID="Chatbot_cst_Untitled"/></media></snapdata>