<snapdata remixID="12308725"><project name="Snappit Browser" app="Snap! 8.1, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAAAidJREFUeF7t0kEJADAQA8GekfPvsoWa2M/EQGCZ2d17TIGowAAYlXf7CwAIQloAwDS/cwAZSAsAmOZ3DiADaQEA0/zOAWQgLQBgmt85gAykBQBM8zsHkIG0AIBpfucAMpAWADDN7xxABtICAKb5nQPIQFoAwDS/cwAZSAsAmOZ3DiADaQEA0/zOAWQgLQBgmt85gAykBQBM8zsHkIG0AIBpfucAMpAWADDN7xxABtICAKb5nQPIQFoAwDS/cwAZSAsAmOZ3DiADaQEA0/zOAWQgLQBgmt85gAykBQBM8zsHkIG0AIBpfucAMpAWADDN7xxABtICAKb5nQPIQFoAwDS/cwAZSAsAmOZ3DiADaQEA0/zOAWQgLQBgmt85gAykBQBM8zsHkIG0AIBpfucAMpAWADDN7xxABtICAKb5nQPIQFoAwDS/cwAZSAsAmOZ3DiADaQEA0/zOAWQgLQBgmt85gAykBQBM8zsHkIG0AIBpfucAMpAWADDN7xxABtICAKb5nQPIQFoAwDS/cwAZSAsAmOZ3DiADaQEA0/zOAWQgLQBgmt85gAykBQBM8zsHkIG0AIBpfucAMpAWADDN7xxABtICAKb5nQPIQFoAwDS/cwAZSAsAmOZ3DiADaQEA0/zOAWQgLQBgmt85gAykBQBM8zsHkIG0AIBpfucAMpAWADDN7xxABtICAKb5nQPIQFoAwDS/cwAZSAsAmOZ3DiADaQEA0/zOH8ojojEcaEeEAAAAAElFTkSuQmCC</thumbnail><scenes select="1"><scene name="Snappit Browser"><notes></notes><palette><category name="MQTT" color="143,0,100,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="load %&apos;NUM&apos; %" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doTellTo"><l>Navbar Load</l><block s="reifyScript"><script><block s="hide"></block><block s="gotoXY"><block s="reportDifference"><block s="reportAttributeOf"><l><option>left</option></l><l>Navbar</l></block><block s="reportVariadicProduct"><list><block s="reportAttributeOf"><l><option>width</option></l><l>Navbar Load</l></block><l>.5</l></list></block></block><block s="reportAttributeOf"><l><option>y position</option></l><l>Navbar</l></block></block><block s="changeXPosition"><block s="reportVariadicProduct"><list><block s="reportAttributeOf"><l><option>width</option></l><l>Navbar Load</l></block><block s="reportVariadicProduct"><list><block var="NUM"/><l>.01</l></list></block></list></block></block><block s="doTellTo"><l>Navbar</l><block s="reifyScript"><script><block s="doSwitchToCostume"><l>Navbar</l></block></script><list></list></block><list></list></block><block s="doPasteOn"><l>Navbar</l></block></script><list></list></block><list></list></block><block s="doSetVar"><l>load %</l><block var="NUM"/></block></script></block-definition><block-definition s="load %&apos;NUM&apos; % with animation" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doUntil"><block s="reportLessThan"><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="NUM"/><block var="load %"/></block></block><l>1</l></block><script><custom-block s="load %n %"><block s="reportVariadicSum"><list><block var="load %"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="NUM"/><block var="load %"/></block><l>.1</l></list></block></list></block></custom-block></script></block><custom-block s="load %n %"><block var="NUM"/></custom-block></script></block-definition><block-definition s="load complete" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doTellTo"><l>Navbar</l><block s="reifyScript"><script><block s="doRepeat"><l>10</l><script><block s="changeEffect"><l><option>brightness</option></l><l>10</l></block></script></block><block s="doSwitchToCostume"><l>Navbar</l></block><block s="clearEffects"></block><block s="doSetVar"><l>load %</l><l>0</l></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="reset load bar" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doTellTo"><l>Navbar</l><block s="reifyScript"><script><block s="doSetVar"><l>load %</l><l>0</l></block><block s="doSwitchToCostume"><l>Navbar</l></block><block s="clearEffects"></block></script><list></list></block><list></list></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></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></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="reportEquals"><block var="connection status"/><l>connecting</l></block></block></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block var="connection status"/><l>connected</l></block></block><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="connection status"/></list></block></script></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></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></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></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></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="reportGreaterThan"><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><l>/@</l><block var="received topic"/></list></block><l>0</l></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></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="140" 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="%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></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 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><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="broker"/><block s="reportJoinWords"><list><block var="topic"/><l>/</l><block s="reportJoinWords"><list><l>@</l><block var="rtopic"/></list></block></list></block><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;2.  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="%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></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>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><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="broker"/><block s="reportJoinWords"><list><block var="topic"/><l>/</l><block s="reportJoinWords"><list><l>@</l><block var="rtopic"/></list></block></list></block><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="reportOr"><block s="reportEquals"><block var="semaphore"/><l>1</l></block><block s="reportGreaterThan"><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></block></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="30" y="782.0333333333333"><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><comment x="28" y="715.6999999999998" w="247" collapsed="false">Asynchronous client-server Hello World!</comment><comment x="503.9999999999998" y="788.7" w="224" collapsed="false">Step 2 bis: Send a request (timer acts as idCall).</comment><comment x="27.333333333333485" y="433.1999999999993" w="244" collapsed="false">Synchronous client-Server Hello World!</comment><script x="24.333333333333485" y="371.8666666666665"><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.1999999999999"><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><script x="20.333333333333485" y="208.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="19.333333333333485" y="151.2" w="240" collapsed="false">PubSub Hello World!</comment><comment x="496.9999999999998" y="213.2" w="223" collapsed="false">Step 0: Connect to the broker</comment><comment x="497.9999999999998" y="291.19999999999976" w="222" collapsed="false">Step 1: Subscribe to a topic</comment><comment x="497.9999999999998" y="370.19999999999976" w="222" collapsed="false">Step 2: Publish a message</comment><comment x="525.9999999999998" y="140.2" w="191" collapsed="false">To execute the examples, single click on blocks, following the corresponding steps.</comment><comment x="503.9999999999998" y="516.6999999999998" w="220" collapsed="false">Step 1: Activate the responder.</comment><comment x="503.9999999999998" y="614.7000000000003" w="220" collapsed="false">Step 2: Send a request (timer acts as idCall).</comment><script x="28.333333333333485" y="615.1999999999994"><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><script x="24.333333333333485" y="499.2"><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></scripts></block-definition><block-definition s="hide icons" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doTellTo"><l>Navbar Icons</l><block s="reifyScript"><script><block s="doRepeat"><l>10</l><script><block s="changeEffect"><l><option>ghost</option></l><l>10</l></block></script></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="show icons" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doTellTo"><l>Navbar Icons</l><block s="reifyScript"><script><block s="doRepeat"><l>10</l><script><block s="changeEffect"><l><option>ghost</option></l><l>-10</l></block></script></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="reset icons" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doTellTo"><l>Navbar Icons</l><block s="reifyScript"><script><block s="clearEffects"></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="safely try %&apos;action&apos; then if %&apos;error&apos; %&apos;handler&apos;" type="command" category="control"><comment x="0" y="0" w="276" collapsed="false">Catch errors.&#xD;&#xD;Runs the first script.  If it succeeds, nothing else happens.&#xD;But if it has an error (something that would otherwise result&#xD;in a red halo around the block), then the second script is run,&#xD;with the text of the error message that would have been shown in the variable ERROR.</comment><header></header><code></code><translations>pt:tenta executar _ e, em caso de erro _ , executa _&#xD;ca:prova de forma segura _ i si _ _&#xD;</translations><inputs><input type="%cs"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block var="action"/><block var="handler"/><block var="error"/></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><comment x="0" y="0" w="268.6666666666667" collapsed="false">Throw an error.&#xD;&#xD;Makes a red halo appear around the script that runs it,&#xD;with the input text shown in a speech balloon next to&#xD;the script, just like any Snap! error.&#xD;&#xD;This is useful to put in the second script of SAFELY TRY&#xD;after some other instructions to undo the partial work of&#xD;the first script.</comment><header></header><code></code><translations>pt:lança o erro _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="safely try reporting %&apos;this&apos; then if %&apos;error&apos; report %&apos;that&apos;" type="reporter" category="control"><comment x="0" y="0" w="316.6666666666667" collapsed="false">Catch errors in a reporter.&#xD;&#xD;Evaluates its first input.  If that expression successfully reports a value, this block reports that value.  If the expression causes a Snap! error,&#xD;then the final input slot is evaluated with the text of what would have&#xD;been the error message in variable ERROR.  SAFELY TRY then reports the value of that final expression.&#xD;&#xD;Sometimes you&apos;ll want to throw an error in the final expression.  You&#xD;can put an ERROR block inside a CALL block to do that.</comment><header></header><code></code><translations>ca:prova de forma segura reportant _ i si _ reportant _&#xD;</translations><inputs><input type="%anyUE"></input><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doDeclareVariables"><list><l>value</l></list></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>value</l><block s="evaluate"><block var="this"/><list></list></block></block></script><l>err</l><script><block s="doSetVar"><l>error</l><block var="err"/></block><block s="doSetVar"><l>value</l><block s="evaluate"><block var="that"/><list></list></block></block></script></custom-block><block s="doReport"><block var="value"/></block></script></block-definition><block-definition s="hide navbar" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="reset navbar"></custom-block><block s="doTellTo"><l>Navbar</l><block s="reifyScript"><script><block s="doRepeat"><l>10</l><script><block s="changeYPosition"><l>-10</l></block></script></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="show navbar" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doTellTo"><l>Navbar</l><block s="reifyScript"><script><block s="gotoXY"><l>0</l><l>-250</l></block><block s="doRepeat"><l>10</l><script><block s="changeYPosition"><l>10</l></block></script></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="reset navbar" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doTellTo"><l>Navbar</l><block s="reifyScript"><script><block s="gotoXY"><l>0</l><l>-150</l></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="status %&apos;TYPE&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>send&#xD;receive&#xD;waiting&#xD;processing&#xD;image</options></input></inputs><script><block s="doTellTo"><l>Status</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block><block s="clearEffects"></block><block s="doSwitchToCostume"><block s="reportListItem"><block s="reportListIndex"><block var="TYPE"/><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>name</option></l><l></l></block></autolambda><list></list></block><block s="reportGet"><l><option>costumes</option></l></block></block></block><block s="reportGet"><l><option>costumes</option></l></block></block></block><block s="show"></block><block s="fork"><block s="reifyScript"><script><block s="doForever"><script><block s="doRepeat"><l>50</l><script><block s="changeEffect"><l><option>ghost</option></l><l>1</l></block></script></block><block s="doRepeat"><l>50</l><script><block s="changeEffect"><l><option>ghost</option></l><l>-1</l></block></script></block></script></block></script><list></list></block><list></list></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="clear status" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doTellTo"><l>Status</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block><block s="doRepeat"><l>10</l><script><block s="changeEffect"><l><option>ghost</option></l><l>10</l></block></script></block><block s="hide"></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="reset status" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doTellTo"><l>Status</l><block s="reifyScript"><script><block s="clearEffects"></block><block s="hide"></block><block s="gotoXY"><l>-220</l><l>160</l></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="to string %&apos;THING&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportUnicodeAsLetter"><block s="reportUnicode"><block var="THING"/></block></block></block></block></script></block-definition><block-definition s="ask %&apos;question&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">what&apos;s your name?</input></inputs><script><block s="doAsk"><block var="question"/></block><block s="doReport"><block s="getLastAnswer"></block></block></script></block-definition><block-definition s="notify %&apos;message&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">Alert!</input></inputs><script><block s="doTellTo"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyScript"><script><block s="doAsk"><block s="reportNewList"><list><block s="reportApplyExtension"><l>ide_translate(text)</l><list><block var="message"/></list></block><block s="reportNewList"><list><block s="reportApplyExtension"><l>ide_translate(text)</l><list><l>Ok</l></list></block></list></block></list></block></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="prompt %&apos;title&apos; options %&apos;options&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">choose!</input><input type="%mult%s"></input></inputs><script><block s="doReport"><custom-block s="ask %s"><block s="reportIfElse"><block s="reportEquals"><block var="title"/><l></l></block><block var="options"/><block s="reportNewList"><list><block s="reportApplyExtension"><l>ide_translate(text)</l><list><block var="title"/></list></block><block var="options"/></list></block></block></custom-block></block></script></block-definition><block-definition s="submenu %&apos;title&apos; items %&apos;items&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">title</input><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportIfElse"><block s="reportEquals"><block var="title"/><l></l></block><l>menu</l><block s="reportApplyExtension"><l>ide_translate(text)</l><list><block var="title"/></list></block></block><block var="items"/></list></block></block></script></block-definition><block-definition s="divider" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block-definition><block-definition s="menu item icon %&apos;icon&apos; label %&apos;text&apos; value %&apos;value&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input><input type="%s">option</input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="icon"/><l></l></block><block s="reportIfElse"><block s="reportEquals"><block var="text"/><l></l></block><block var="value"/><block s="reportIfElse"><block s="reportEquals"><block var="value"/><l></l></block><block var="text"/><block s="reportNewList"><list><block var="text"/><block var="value"/></list></block></block></block><block s="reportNewList"><list><block s="reportIfElse"><block s="reportEquals"><block var="text"/><l></l></block><block s="reportIfElse"><block s="reportIsA"><block var="icon"/><l><option>text</option></l></block><block s="reportObject"><block var="icon"/></block><block var="icon"/></block><block s="reportNewList"><list><block s="reportIfElse"><block s="reportIsA"><block var="icon"/><l><option>text</option></l></block><block s="reportObject"><block var="icon"/></block><block var="icon"/></block><block var="text"/></list></block></block><block var="value"/></list></block></block></block></script></block-definition><block-definition s="menu item speech ballon %&apos;orientation&apos; message %&apos;message&apos; value %&apos;value&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">left<options>left&#xD;right</options></input><input type="%s">hey!</input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="value"/><l></l></block><block s="reportIfElse"><block s="reportEquals"><block var="orientation"/><l>right</l></block><block s="reportNewList"><list><l></l><block var="message"/></list></block><block s="reportNewList"><list><block var="message"/></list></block></block><block s="reportNewList"><list><block s="reportIfElse"><block s="reportEquals"><block var="orientation"/><l>right</l></block><block s="reportNewList"><list><l></l><block var="message"/></list></block><block s="reportNewList"><list><block var="message"/></list></block></block><block var="value"/></list></block></block></block></script></block-definition><block-definition s="menu examples" type="command" category="sensing"><comment x="0" y="0" w="212" collapsed="false">open my definition to look at examples how to use the menu blocks</comment><header></header><code></code><translations></translations><inputs></inputs><scripts><script x="10" y="79.00000000000001"><block s="doAsk"><l>what&apos;s your name?</l></block></script><script x="10" y="118.00000000000001"><custom-block s="ask %s"><l>what&apos;s your name?</l></custom-block></script><script x="10" y="151"><custom-block s="notify %s"><l>Alert!</l></custom-block></script><script x="10" y="190"><custom-block s="prompt %s options %mult%s"><l>choose!</l><list><l>foo</l><l>bar</l><l>baz</l></list></custom-block></script><script x="10" y="223"><custom-block s="prompt %s options %mult%s"><l>choose!</l><block s="reportGet"><l><option>costumes</option></l></block></custom-block></script><script x="10" y="261"><custom-block s="submenu %s items %mult%s"><l>more</l><list><l>frob</l><l>quux</l><l>garply</l></list></custom-block></script><script x="10" y="294"><custom-block s="prompt %s options %mult%s"><l>choose!</l><list><l>foo</l><l>bar</l><custom-block s="divider"></custom-block><custom-block s="submenu %s items %mult%s"><l>more</l><list><l>frob</l><custom-block s="submenu %s items %mult%s"><l></l><list><l>fred</l><l>test</l></list></custom-block><custom-block s="divider"></custom-block><l>quux</l><l>garply</l></list></custom-block><l>baz</l></list></custom-block></script><script x="10" y="377.8333333333334"><custom-block s="menu item icon %s label %s value %s"><l></l><l>option</l><l></l></custom-block></script><script x="10" y="411.8333333333334"><custom-block s="prompt %s options %mult%s"><l>choose!</l><list><custom-block s="menu item icon %s label %s value %s"><l>monkey</l><l>monkey</l><block s="reportObject"><l>monkey</l></block></custom-block><custom-block s="menu item icon %s label %s value %s"><l>Octo</l><l></l><l>42</l></custom-block><custom-block s="menu item icon %s label %s value %s"><l></l><l>choice</l><l>yay!</l></custom-block><custom-block s="divider"></custom-block><custom-block s="submenu %s items %mult%s"><l>more</l><list><custom-block s="menu item icon %s label %s value %s"><l>Alonzo</l><l>Alonzo</l><block s="reportObject"><l>Alonzo</l></block></custom-block><custom-block s="menu item icon %s label %s value %s"><l></l><l>foo</l><l>bar</l></custom-block></list></custom-block></list></custom-block></script><script x="10" y="565.8333333333335"><custom-block s="menu item speech ballon %s message %s value %s"><l>left</l><l>hey!</l><l></l></custom-block></script><script x="10" y="599.8333333333335"><custom-block s="prompt %s options %mult%s"><l>choose!</l><list><custom-block s="menu item speech ballon %s message %s value %s"><l>left</l><l>hey!</l><l></l></custom-block><custom-block s="menu item speech ballon %s message %s value %s"><l>right</l><l>wassup?</l><l></l></custom-block><custom-block s="menu item speech ballon %s message %s value %s"><l>left</l><block s="reportObject"><l>Alonzo</l></block><l></l></custom-block><custom-block s="menu item speech ballon %s message %s value %s"><l>right</l><l>so?</l><block s="reportGet"><l><option>costumes</option></l></block></custom-block></list></custom-block></script></scripts></block-definition><block-definition s="ignore %&apos;THING&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="30,30,30,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="1408"><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 struct="atomic" id="1409"></list></costumes><sounds><list struct="atomic" id="1410"></list></sounds><variables></variables><blocks></blocks><scripts><script x="20" y="20"><block s="receiveInteraction"><l><option>scrolled-up</option></l></block><block s="doTellTo"><l>Page</l><block s="reifyScript"><script><block s="doIf"><block s="reportLessThanOrEquals"><block s="reportRound"><block s="reportGet"><l><option>bottom</option></l></block></block><block s="reportAttributeOf"><l><option>bottom</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><script><block s="changeYPosition"><l>10</l></block></script></block></script><list></list></block><list></list></block></script><script x="20" y="159.83333333333331"><block s="receiveInteraction"><l><option>scrolled-down</option></l></block><block s="doTellTo"><l>Page</l><block s="reifyScript"><script><block s="doIf"><block s="reportGreaterThanOrEquals"><block s="reportRound"><block s="reportGet"><l><option>top</option></l></block></block><block s="reportAttributeOf"><l><option>top</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><script><block s="changeYPosition"><l>-10</l></block></script></block></script><list></list></block><list></list></block></script><script x="20" y="288.8333333333333"><block s="receiveGo"></block><block s="setBackgroundColor"><color>30,30,30,1</color></block></script></scripts><sprites select="0"><sprite name="Page" idx="5" x="0.2999999999999545" y="43.349999999999966" heading="90" scale="1.01" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="0" color="2.0400000000000476,0,102,1" pen="tip" id="1478"><costumes><list struct="atomic" id="1479"></list></costumes><sounds><list struct="atomic" id="1480"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveGo"></block><block s="doSwitchToCostume"><l><option>Turtle</option></l></block><block s="hide"></block><block s="doForever"><script><block s="goToLayer"><l><option>back</option></l></block></script></block></script><script x="20" y="161.66666666666674"><block s="receiveMessage"><l>Display Page</l><list></list></block><block s="hide"></block><custom-block s="status %s"><l>image</l></custom-block><block s="doSwitchToCostume"><block var="result"/></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setScale"><l>0</l></block><block s="doUntil"><block s="reportGreaterThan"><block s="reportAttributeOf"><l><option>width</option></l><block s="reportGet"><l><option>self</option></l></block></block><block s="reportAttributeOf"><l><option>width</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><script><block s="changeScale"><l>10</l></block></script></block><block s="changeScale"><l>-10</l></block><block s="doUntil"><block s="reportGreaterThan"><block s="reportAttributeOf"><l><option>width</option></l><block s="reportGet"><l><option>self</option></l></block></block><block s="reportAttributeOf"><l><option>width</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><script><block s="changeScale"><l>1</l></block></script></block><block s="gotoXY"><l>0</l><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportVariadicProduct"><list><block s="reportAttributeOf"><l><option>height</option></l><block s="reportGet"><l><option>self</option></l></block></block><l>.5</l></list></block></block></block><custom-block s="load %n % with animation"><l>100</l></custom-block><block s="show"></block><custom-block s="load complete"></custom-block><custom-block s="show icons"></custom-block><custom-block s="clear status"></custom-block></script><script x="20" y="610.6666666666666"><block s="receiveInteraction"><l><option>scrolled-up</option></l></block><block s="doIf"><block s="reportLessThanOrEquals"><block s="reportRound"><block s="reportGet"><l><option>bottom</option></l></block></block><block s="reportAttributeOf"><l><option>bottom</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><script><block s="changeYPosition"><l>10</l></block></script></block></script><script x="20" y="726.6666666666667"><block s="receiveInteraction"><l><option>scrolled-down</option></l></block><block s="doIf"><block s="reportGreaterThanOrEquals"><block s="reportRound"><block s="reportGet"><l><option>top</option></l></block></block><block s="reportAttributeOf"><l><option>top</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><script><block s="changeYPosition"><l>-10</l></block></script></block></script></scripts></sprite><sprite name="Navbar Load" idx="3" x="0" y="-250" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="124.338,135.15,0,1" pen="tip" id="1614"><nest anchor="Navbar" synch="true"/><costumes><list id="1615"><item><ref mediaID="Navbar Load_cst_Navbar Load"></ref></item></list></costumes><sounds><list struct="atomic" id="1616"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveGo"></block><custom-block s="reset load bar"></custom-block><block s="fork"><block s="reifyScript"><script><block s="doForever"><script><block s="doGotoObject"><l>Navbar</l></block></script></block></script><list></list></block><list></list></block><block s="doSetVar"><l><option>my anchor</option></l><block s="reportObject"><l>Navbar</l></block></block></script></scripts></sprite><sprite name="Status" idx="4" x="-220" y="160" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="75.072,81.60000000000001,0,1" pen="tip" id="1641"><costumes><list id="1642"><item><ref mediaID="Status_cst_Waiting"></ref></item><item><ref mediaID="Status_cst_Receive"></ref></item><item><ref mediaID="Status_cst_Send"></ref></item><item><ref mediaID="Status_cst_Processing"></ref></item><item><ref mediaID="Status_cst_Image"></ref></item></list></costumes><sounds><list struct="atomic" id="1643"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveGo"></block><custom-block s="reset status"></custom-block></script></scripts></sprite><sprite name="Navbar" idx="1" x="0" y="-250" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="1649"><costumes><list id="1650"><item><ref mediaID="Navbar_cst_Navbar"></ref></item></list></costumes><sounds><list struct="atomic" id="1651"></list></sounds><blocks></blocks><variables></variables><scripts><script x="30" y="30"><block s="receiveGo"></block><block s="doSetVar"><l>load %</l><l>0</l></block><block s="gotoXY"><l>0</l><l>-150</l></block><block s="doSwitchToCostume"><l>Navbar</l></block><block s="doForever"><script><block s="goToLayer"><l><option>front</option></l></block><block s="doTellTo"><l>Navbar Icons</l><block s="reifyScript"><script><block s="goToLayer"><l><option>front</option></l></block></script><list></list></block><list></list></block></script></block></script></scripts></sprite><sprite name="Navbar Icons" idx="2" x="0" y="-250" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="63.75,22.95,0,1" pen="tip" id="1681"><nest anchor="Navbar" synch="true"/><costumes><list id="1682"><item><ref mediaID="Navbar Icons_cst_Navbar Icons"></ref></item></list></costumes><sounds><list struct="atomic" id="1683"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveGo"></block><block s="fork"><block s="reifyScript"><script><block s="doForever"><script><block s="doGotoObject"><l>Navbar</l></block></script></block></script><list></list></block><list></list></block><block s="doSetVar"><l><option>my anchor</option></l><block s="reportObject"><l>Navbar</l></block></block><custom-block s="reset icons"></custom-block><custom-block s="hide icons"></custom-block><custom-block s="status %s"><l>waiting</l></custom-block><custom-block s="load %n % with animation"><l>5</l></custom-block><block s="doSetVar"><l>id</l><block s="reportRandom"><l>0</l><l>100000</l></block></block><custom-block s="safely try %cs then if %upvar %cs"><script><custom-block s="$cloudOutline MQTT disconnect from %s"><l>all</l></custom-block></script><l>error</l><script><block s="doWait"><l>0</l></block></script></custom-block><custom-block s="load %n % with animation"><l>50</l></custom-block><custom-block s="safely try %cs then if %upvar %cs"><script><custom-block s="$cloudOutline MQTT connect to %s %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><list></list></custom-block></script><l>error</l><script><block s="doWait"><l>0</l></block></script></custom-block><custom-block s="load %n % with animation"><l>100</l></custom-block><block s="fork"><block s="reifyScript"><script><custom-block s="load complete"></custom-block></script><list></list></block><list></list></block><block s="doBroadcast"><l>Enter URL</l><list></list></block></script><script x="20" y="557.5"><block s="receiveMessage"><l>Enter URL</l><list></list></block><custom-block s="hide icons"></custom-block><custom-block s="hide navbar"></custom-block><block s="hide"></block><custom-block s="clear status"></custom-block><block s="doAsk"><l>Enter a Snappit URL:</l></block><custom-block s="status %s"><l>waiting</l></custom-block><block s="doIfElse"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block s="getLastAnswer"></block><l>.</l></block></block><l>1</l></block><script><block s="doSetVar"><l>server</l><block s="reportJoinWords"><list><l>snappitConnection:</l><block s="getLastAnswer"></block><l>.snappit.snap</l></list></block></block></script><script><block s="doSetVar"><l>server</l><block s="reportJoinWords"><list><l>snappitConnection:</l><block s="getLastAnswer"></block></list></block></block></script></block><block s="show"></block><custom-block s="show navbar"></custom-block><custom-block s="load %n % with animation"><l>5</l></custom-block><block s="doSetVar"><l>queue</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doBroadcast"><l>Load Site</l><list></list></block></script><script x="20" y="957.8333333333339"><block s="receiveMessage"><l>Load Site</l><list></list></block><custom-block s="safely try %cs then if %upvar %cs"><script><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><block var="server"/><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>thing</l></list></block><block s="doSetVar"><l>thing</l><block s="reportTextSplit"><custom-block s="to string %s"><block var="request"/></custom-block><l><option>json</option></l></block></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="thing"/></block><l>toClient</l></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="thing"/></block><block var="id"/></block><script><block s="doAddToList"><block var="thing"/><block var="queue"/></block></script></block></script></block></script><list><l>request</l></list></block><list></list></custom-block><custom-block s="load %n % with animation"><l>16</l></custom-block><custom-block s="status %s"><l>send</l></custom-block><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><block var="server"/><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><l>toServer</l><block var="id"/><l>resultLength</l></list></block></block><list></list></custom-block><custom-block s="status %s"><l>waiting</l></custom-block><block s="doSetVar"><l>server check</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doBroadcast"><l>Server Check</l><list></list></block><block s="doWaitUntil"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="queue"/></block><l>0</l></block></block><block s="doSetVar"><l>server check</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="status %s"><l>receive</l></custom-block><block s="doSetVar"><l>result length</l><block s="reportListItem"><l>3</l><block s="reportListItem"><l>1</l><block var="queue"/></block></block></block><block s="doDeleteFromList"><l><option>all</option></l><block var="queue"/></block><custom-block s="load %n % with animation"><l>25</l></custom-block><custom-block s="status %s"><l>send</l></custom-block><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><block var="server"/><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><l>toServer</l><block var="id"/><l>wh</l></list></block></block><list></list></custom-block><custom-block s="status %s"><l>waiting</l></custom-block><block s="doWaitUntil"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="queue"/></block><l>0</l></block></block><custom-block s="status %s"><l>receive</l></custom-block><block s="doSetVar"><l>wh</l><block s="reportListItem"><l>3</l><block s="reportListItem"><l>1</l><block var="queue"/></block></block></block><block s="doDeleteFromList"><l><option>all</option></l><block var="queue"/></block><custom-block s="load %n % with animation"><l>50</l></custom-block><block s="doDeclareVariables"><list><l>item</l></list></block><block s="doFor"><l>i</l><l>1</l><block var="result length"/><script><custom-block s="status %s"><l>send</l></custom-block><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><block var="server"/><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><l>toServer</l><block var="id"/><l>result</l><block var="i"/></list></block></block><list></list></custom-block><custom-block s="load %n % with animation"><block s="reportVariadicSum"><list><l>50</l><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block s="reportQuotient"><block var="i"/><block var="result length"/></block><l>100</l></list></block><l>.5</l></list></block></list></block></custom-block><custom-block s="status %s"><l>waiting</l></custom-block><block s="doWaitUntil"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block var="queue"/></block><l>0</l></block></block><custom-block s="status %s"><l>receive</l></custom-block><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="queue"/></block></block><block s="doDeleteFromList"><l><option>all</option></l><block var="queue"/></block><block s="doAddToList"><block s="reportListItem"><l>3</l><block var="item"/></block><block var="result"/></block><custom-block s="load %n % with animation"><block s="reportVariadicSum"><list><l>50</l><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block s="reportQuotient"><block var="i"/><block var="result length"/></block><l>100</l></list></block><l>.5</l></list></block></list></block></custom-block></script></block><custom-block s="load %n % with animation"><l>100</l></custom-block><custom-block s="clear status"></custom-block><custom-block s="load complete"></custom-block><custom-block s="load %n %"><l>5</l></custom-block><custom-block s="$cloudOutline MQTT unsubscribe from %s topic %s"><l>broker.emqx.io</l><block var="server"/></custom-block><custom-block s="load %n %"><l>25</l></custom-block><custom-block s="status %s"><l>processing</l></custom-block><block s="doSetVar"><l>result</l><block s="reportUnicode"><block s="reportJoinWords"><block var="result"/></block></block></block><custom-block s="load %n % with animation"><l>50</l></custom-block><block s="doSetVar"><l>result</l><block s="reportReshape"><block var="result"/><list><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><l>4</l></block><l>4</l></list></block></block><custom-block s="load %n % with animation"><l>75</l></custom-block><block s="doSetVar"><l>result</l><block s="reportNewCostume"><block var="result"/><block s="reportListItem"><l>1</l><block var="wh"/></block><block s="reportListItem"><l>2</l><block var="wh"/></block></block></block><custom-block s="load %n % with animation"><l>100</l></custom-block><custom-block s="load complete"></custom-block><block s="doBroadcast"><l>Display Page</l><list></list></block></script><l>error</l><script><custom-block s="load %n % with animation"><l>100</l></custom-block><custom-block s="$cloudOutline MQTT unsubscribe from %s topic %s"><l>broker.emqx.io</l><block var="server"/></custom-block><custom-block s="clear status"></custom-block><custom-block s="load complete"></custom-block><custom-block s="hide icons"></custom-block><custom-block s="hide navbar"></custom-block><custom-block s="ignore %s"><custom-block s="prompt %s options %mult%s"><l>The page failed to load. Please try again later.</l><list><l>Close</l></list></custom-block></custom-block><custom-block s="show navbar"></custom-block><custom-block s="show icons"></custom-block></script></custom-block></script><script x="20" y="2744.0000000000005"><block s="receiveMessage"><l>Server Check</l><list></list></block><block s="doWait"><l>10</l></block><block s="doIf"><block var="server check"/><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block><custom-block s="load %n % with animation"><l>100</l></custom-block><custom-block s="$cloudOutline MQTT unsubscribe from %s topic %s"><l>broker.emqx.io</l><block var="server"/></custom-block><custom-block s="clear status"></custom-block><custom-block s="load complete"></custom-block><custom-block s="hide icons"></custom-block><custom-block s="hide navbar"></custom-block><custom-block s="ignore %s"><custom-block s="prompt %s options %mult%s"><l>Server did not respond; check the URL and try again.</l><list><l>Close</l></list></custom-block></custom-block><custom-block s="show navbar"></custom-block><custom-block s="show icons"></custom-block></script></block></script><script x="20" y="3044.6666666666674"><block s="receiveInteraction"><l>clicked</l></block><block s="doIfElse"><block s="reportGreaterThan"><block s="reportMouseX"></block><l>0</l></block><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block><block s="doBroadcast"><l>Enter URL</l><list></list></block></script><script><custom-block s="hide icons"></custom-block><custom-block s="hide navbar"></custom-block><custom-block s="ignore %s"><custom-block s="prompt %s options %mult%s"><l>The connection is not secure.</l><list><l>Close</l></list></custom-block></custom-block><custom-block s="show navbar"></custom-block><custom-block s="show icons"></custom-block></script></block></script></scripts></sprite><watcher var="load %" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher var="server" style="normal" x="10" y="31.000001999999995" color="243,118,29" hidden="true"/><watcher var="queue" style="normal" x="10" y="52.00000399999993" color="243,118,29" hidden="true"/><watcher var="id" style="normal" x="10" y="73.000006" color="243,118,29" hidden="true"/><watcher var="result length" style="normal" x="10" y="94.00000799999987" color="243,118,29" hidden="true"/><watcher var="wh" style="normal" x="10" y="115.00000999999992" color="243,118,29" hidden="true"/><watcher var="server check" style="normal" x="10" y="136.0000119999997" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="load %" transient="true"/><variable name="server" transient="true"/><variable name="queue" transient="true"/><variable name="id" transient="true"/><variable name="result length" transient="true"/><variable name="result" transient="true"/><variable name="wh" transient="true"/><variable name="server check" transient="true"/></variables></scene></scenes></project><media name="Snappit Browser" app="Snap! 8.1, https://snap.berkeley.edu" version="2"><costume name="Navbar Load" center-x="209" center-y="29.5" image="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSI0MTguMDQ4MDUiIGhlaWdodD0iNTkuMDI0MDIiIHZpZXdCb3g9IjAsMCw0MTguMDQ4MDUsNTkuMDI0MDIiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zMC45NzU5OCwtMTUwLjQ4Nzk5KSI+PGcgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aXNQYWludGluZ0xheWVyJnF1b3Q7OnRydWV9IiBmaWxsPSIjNThhNGY4IiBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLXdpZHRoPSIwIiBzdHJva2UtbGluZWNhcD0iYnV0dCIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2UtZGFzaGFycmF5PSIiIHN0cm9rZS1kYXNob2Zmc2V0PSIwIiBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6IG5vcm1hbCI+PHBhdGggZD0iTTMwLjk3NTk4LDIwOS41MTIwMXYtNTkuMDI0MDJoNDE4LjA0ODA1djU5LjAyNDAyeiIvPjwvZz48L2c+PC9zdmc+" mediaID="Navbar Load_cst_Navbar Load"/><costume name="Waiting" center-x="14.5" center-y="14.5" image="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIyOSIgaGVpZ2h0PSIyOSIgdmlld0JveD0iMCwwLDI5LDI5Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjI1LjUsLTE2NS41KSI+PGcgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aXNQYWludGluZ0xheWVyJnF1b3Q7OnRydWV9IiBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZS1saW5lY2FwPSJidXR0IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS1kYXNoYXJyYXk9IiIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTogbm9ybWFsIj48aW1hZ2UgeD0iNDUxIiB5PSIzMzEiIHRyYW5zZm9ybT0ic2NhbGUoMC41LDAuNSkiIHdpZHRoPSI1OCIgaGVpZ2h0PSI1OCIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFEb0FBQUE2Q0FZQUFBRGh1MG9vQUFBQUFYTlNSMElBcnM0YzZRQUFBVEpKUkVGVWFFUHRtdHNPd3lBTVE4Zi9melFUbGFwS2xJc1RpVXpPM09jQ09jUU8wRkpxcmZWRDhwUlNpamZVd2dUYUlMMndkS0JlV0VyUVc3Nlc3TDVBTFkyOWZyRzJXOWtMalpjQzlKNllHVEFDU3dYYWdMMndkS0FyMkZXaG9nVDFTSmthMUNKbGVsQlV5aWxBRVZnWEtOdTI4U3BTZmRESW1pUlE2NVluOEgxbGREWFpIcmtISnU4YTZoV2pKMmhQRzRFZW1nRmwxSEtZbFhRUHlkRFRyYVFyNlE1MEk0OTZ6SFNvalR3cWo4cWp6d3dnWjloRFZweDJLNC9Lby9Lb1BCcGRkNGJqcVJpcEdLa1lxUmlwR0VYT2dLcXVxbTdXcXR1NGRzZXVGTitNRUFsVGdvNytQTzFnYVVHdHNOU2dkeGFSbTFrcFFKSHNwZ0hkd2FZQ1hjSDJTK3R1T1lyYytzMHN1TDJqamx5MVNRR0taRFlOS0FMN0MzbGF4dHhLdCs4TWtiSWxnS2gzemFDczJmMGIwQzhpQUR1aE9sVityUUFBQUFCSlJVNUVya0pnZ2c9PSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjAuNSIvPjxnIGZpbGw9IiNmZmZmZmYiIHN0cm9rZT0iI2ZmZmZmZiIgc3Ryb2tlLXdpZHRoPSIyIj48cGF0aCBkPSJNMjM5LjUwMzMzLDE4Mi45OGMwLC0wLjU0MzA4IC0wLjQ0MDI1LC0wLjk4MzMzIC0wLjk4MzMzLC0wLjk4MzMzYy0wLjU0MzA4LDAgLTAuOTgzMzMsMC40NDAyNSAtMC45ODMzMywwLjk4MzMzYzAsMC41NDMwOCAwLjQ0MDI1LDAuOTgzMzMgMC45ODMzMywwLjk4MzMzYzAuNTQzMDgsMCAwLjk4MzMzLC0wLjQ0MDI1IDAuOTgzMzMsLTAuOTgzMzN6Ii8+PHBhdGggZD0iTTI0NC41MDMzMywxODIuOThjMCwtMC41NDMwOCAtMC40NDAyNSwtMC45ODMzMyAtMC45ODMzMywtMC45ODMzM2MtMC41NDMwOCwwIC0wLjk4MzMzLDAuNDQwMjUgLTAuOTgzMzMsMC45ODMzM2MwLDAuNTQzMDggMC40NDAyNSwwLjk4MzMzIDAuOTgzMzMsMC45ODMzM2MwLjU0MzA4LDAgMC45ODMzMywtMC40NDAyNSAwLjk4MzMzLC0wLjk4MzMzeiIvPjxwYXRoIGQ9Ik0yNDkuNjAzMzMsMTgyLjk4YzAsLTAuNTQzMDggLTAuNDQwMjUsLTAuOTgzMzMgLTAuOTgzMzMsLTAuOTgzMzNjLTAuNTQzMDgsMCAtMC45ODMzMywwLjQ0MDI1IC0wLjk4MzMzLDAuOTgzMzNjMCwwLjU0MzA4IDAuNDQwMjUsMC45ODMzMyAwLjk4MzMzLDAuOTgzMzNjMC41NDMwOCwwIDAuOTgzMzMsLTAuNDQwMjUgMC45ODMzMywtMC45ODMzM3oiLz48L2c+PC9nPjwvZz48L3N2Zz4=" mediaID="Status_cst_Waiting"/><costume name="Receive" center-x="14.5" center-y="14.5" image="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIyOSIgaGVpZ2h0PSIyOSIgdmlld0JveD0iMCwwLDI5LDI5Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjI1LjUsLTE2NS41KSI+PGcgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aXNQYWludGluZ0xheWVyJnF1b3Q7OnRydWV9IiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLWRhc2hhcnJheT0iIiBzdHJva2UtZGFzaG9mZnNldD0iMCIgc3R5bGU9Im1peC1ibGVuZC1tb2RlOiBub3JtYWwiPjxpbWFnZSB4PSI0NTEiIHk9IjMzMSIgdHJhbnNmb3JtPSJzY2FsZSgwLjUsMC41KSIgd2lkdGg9IjU4IiBoZWlnaHQ9IjU4IiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURvQUFBQTZDQVlBQUFEaHUwb29BQUFBQVhOU1IwSUFyczRjNlFBQUFUSkpSRUZVYUVQdG10c093eUFNUThmL2Z6UVRsYXBLbElzVGlVek8zT2NDT2NRTzBGSnFyZlZEOHBSU2lqZlV3Z1RhSUwyd2RLQmVXRXJRVzc2VzdMNUFMWTI5ZnJHMlc5a0xqWmNDOUo2WUdUQUNTd1hhZ0wyd2RLQXIyRldob2dUMVNKa2ExQ0psZWxCVXlpbEFFVmdYS051MjhTcFNmZERJbWlSUTY1WW44SDFsZERYWkhya0hKdThhNmhXakoyaFBHNEVlbWdGbDFIS1lsWFFQeWREVHJhUXI2UTUwSTQ5NnpIU29qVHdxajhxanp3d2daOWhEVnB4Mks0L0tvL0tvUEJwZGQ0YmpxUmlwR0trWXFSaXBHRVhPZ0txdXFtN1dxdHU0ZHNldUZOK01FQWxUZ283K1BPMWdhVUd0c05TZ2R4YVJtMWtwUUpIc3BnSGR3YVlDWGNIMlMrdHVPWXJjK3Mwc3VMMmpqbHkxU1FHS1pEWU5LQUw3QzNsYXh0eEt0KzhNa2JJbGdLaDN6YUNzMmYwYjBDOGlBRHVoT2xWK3JRQUFBQUJKUlU1RXJrSmdnZz09IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMC41IiBzdHJva2UtbGluZWNhcD0iYnV0dCIvPjxnIGRhdGEtcGFwZXItZGF0YT0ieyZxdW90O2luZGV4JnF1b3Q7Om51bGx9IiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48cGF0aCBkPSJNMjQyLjY4NzE5LDE3OC45MzA0MWwtMC43MTQyOCw4LjcxNDI4bC0xLjg1NzE0LC0yLjU3MTQzIi8+PHBhdGggZD0iTTI0NS40MDE0NywxODUuMDczMjZsLTEuODU3MTQsMi41NzE0M2wtMC43MTQyOCwtOC43MTQyOCIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aW5kZXgmcXVvdDs6bnVsbH0iLz48L2c+PC9nPjwvZz48L3N2Zz4=" mediaID="Status_cst_Receive"/><costume name="Send" center-x="14.5" center-y="14.5" image="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIyOSIgaGVpZ2h0PSIyOSIgdmlld0JveD0iMCwwLDI5LDI5Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjI1LjUsLTE2NS41KSI+PGcgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aXNQYWludGluZ0xheWVyJnF1b3Q7OnRydWV9IiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLWRhc2hhcnJheT0iIiBzdHJva2UtZGFzaG9mZnNldD0iMCIgc3R5bGU9Im1peC1ibGVuZC1tb2RlOiBub3JtYWwiPjxpbWFnZSB4PSI0NTEiIHk9IjMzMSIgdHJhbnNmb3JtPSJzY2FsZSgwLjUsMC41KSIgd2lkdGg9IjU4IiBoZWlnaHQ9IjU4IiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURvQUFBQTZDQVlBQUFEaHUwb29BQUFBQVhOU1IwSUFyczRjNlFBQUFUSkpSRUZVYUVQdG10c093eUFNUThmL2Z6UVRsYXBLbElzVGlVek8zT2NDT2NRTzBGSnFyZlZEOHBSU2lqZlV3Z1RhSUwyd2RLQmVXRXJRVzc2VzdMNUFMWTI5ZnJHMlc5a0xqWmNDOUo2WUdUQUNTd1hhZ0wyd2RLQXIyRldob2dUMVNKa2ExQ0psZWxCVXlpbEFFVmdYS051MjhTcFNmZERJbWlSUTY1WW44SDFsZERYWkhya0hKdThhNmhXakoyaFBHNEVlbWdGbDFIS1lsWFFQeWREVHJhUXI2UTUwSTQ5NnpIU29qVHdxajhxanp3d2daOWhEVnB4Mks0L0tvL0tvUEJwZGQ0YmpxUmlwR0trWXFSaXBHRVhPZ0txdXFtN1dxdHU0ZHNldUZOK01FQWxUZ283K1BPMWdhVUd0c05TZ2R4YVJtMWtwUUpIc3BnSGR3YVlDWGNIMlMrdHVPWXJjK3Mwc3VMMmpqbHkxU1FHS1pEWU5LQUw3QzNsYXh0eEt0KzhNa2JJbGdLaDN6YUNzMmYwYjBDOGlBRHVoT2xWK3JRQUFBQUJKUlU1RXJrSmdnZz09IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMC41IiBzdHJva2UtbGluZWNhcD0iYnV0dCIvPjxnIHN0cm9rZT0iI2ZmZmZmZiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjxwYXRoIGQ9Ik0yNDAuMTE1NzcsMTgxLjUwMTg0bDEuODU3MTQsLTIuNTcxNDNsMC43MTQyOCw4LjcxNDI4Ii8+PHBhdGggZD0iTTI0Mi44MzAwNSwxODcuNjQ0NjlsMC43MTQyOCwtOC43MTQyOGwxLjg1NzE0LDIuNTcxNDMiIGRhdGEtcGFwZXItZGF0YT0ieyZxdW90O2luZGV4JnF1b3Q7Om51bGx9Ii8+PC9nPjwvZz48L2c+PC9zdmc+" mediaID="Status_cst_Send"/><costume name="Processing" center-x="14.5" center-y="14.5" image="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIyOC44NzUiIGhlaWdodD0iMjguODc1IiB2aWV3Qm94PSIwLDAsMjguODc1LDI4Ljg3NSI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIyNS41NjI1LC0xNjUuNTYyNSkiPjxnIGRhdGEtcGFwZXItZGF0YT0ieyZxdW90O2lzUGFpbnRpbmdMYXllciZxdW90Ozp0cnVlfSIgZmlsbC1ydWxlPSJub256ZXJvIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLWRhc2hhcnJheT0iIiBzdHJva2UtZGFzaG9mZnNldD0iMCIgc3R5bGU9Im1peC1ibGVuZC1tb2RlOiBub3JtYWwiPjxwYXRoIGQ9Ik0yMjYuNTYyNSwxOTMuNDM3NXYtMjYuODc1aDI2Ljg3NXYyNi44NzV6IiBmaWxsPSJub25lIi8+PGc+PHBhdGggZD0iTTIzNC41LDE4MGMwLC0zLjE3NTY0IDIuNTc0MzYsLTUuNzUgNS43NSwtNS43NWMzLjE3NTY0LDAgNS43NSwyLjU3NDM2IDUuNzUsNS43NWMwLDMuMTc1NjQgLTIuNTc0MzYsNS43NSAtNS43NSw1Ljc1Yy0zLjE3NTY0LDAgLTUuNzUsLTIuNTc0MzYgLTUuNzUsLTUuNzV6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTIzOS41LDE3My41di0wLjVoMS43NXYwLjV6IiBmaWxsPSIjZmZmZmZmIi8+PHBhdGggZD0iTTIzOS41LDE4N3YtMC41aDEuNzV2MC41eiIgZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIGQ9Ik0yNDcuMTI1LDE4MC44NzVoLTAuNWwwLC0xLjc1aDAuNXoiIGZpbGw9IiNmZmZmZmYiLz48cGF0aCBkPSJNMjMzLjM3NSwxODAuODc1aC0wLjV2LTEuNzVoMC41eiIgZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIGQ9Ik0yMzUuMTgzMDYsMTc1LjY3MDVsLTAuMzUzNTUsLTAuMzUzNTVsMS4yMzc0NCwtMS4yMzc0NGwwLjM1MzU1LDAuMzUzNTV6IiBmaWxsPSIjZmZmZmZmIi8+PHBhdGggZD0iTTI0NC4yMDQ1MSwxNzQuNDMzMDZsMC4zNTM1NiwtMC4zNTM1NWwxLjIzNzQ0LDEuMjM3NDNsLTAuMzUzNTYsMC4zNTM1NnoiIGZpbGw9IiNmZmZmZmYiLz48cGF0aCBkPSJNMjQ1LjU2Njk0LDE4My45NTQ1MWwwLjM1MzU2LDAuMzUzNTVsLTEuMjM3NDMsMS4yMzc0NGwtMC4zNTM1NSwtMC4zNTM1NXoiIGZpbGw9IiNmZmZmZmYiLz48cGF0aCBkPSJNMjM1Ljc5NTUsMTg1LjMxNjk0bC0wLjM1MzU2LDAuMzUzNTVsLTEuMjM3NDQsLTEuMjM3NDRsMC4zNTM1NiwtMC4zNTM1NXoiIGZpbGw9IiNmZmZmZmYiLz48L2c+PC9nPjwvZz48L3N2Zz4=" mediaID="Status_cst_Processing"/><costume name="Image" center-x="14.5" center-y="14.5" image="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIyOC44NzUiIGhlaWdodD0iMjguODc1IiB2aWV3Qm94PSIwLDAsMjguODc1LDI4Ljg3NSI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIyNS41NjI1LC0xNjUuNTYyNSkiPjxnIGRhdGEtcGFwZXItZGF0YT0ieyZxdW90O2lzUGFpbnRpbmdMYXllciZxdW90Ozp0cnVlfSIgZmlsbC1ydWxlPSJub256ZXJvIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS1saW5lY2FwPSJidXR0IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS1kYXNoYXJyYXk9IiIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTogbm9ybWFsIj48cGF0aCBkPSJNMjI2LjU2MjUsMTkzLjQzNzV2LTI2Ljg3NWgyNi44NzV2MjYuODc1eiIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PGcgc3Ryb2tlLXdpZHRoPSIxIj48cGF0aCBkPSJNMjMwLjQzNzUsMTg1LjI1di0xMC41aDE5LjEyNXYxMC41eiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0yMzAuNywxODQuNjEyNXYtMmMwLDAgMi4zMzU0MiwtMi4wNTY2MyA1LjA0MDEzLC0xLjI5MjVjMy42NjgzOCwxLjAzNjM5IDUuMTY5MTEsLTIuMDgyNSA4LjQ1OTg3LC0yLjA4MjVjMy4xODUwNCwwIDUsMy4zNzUgNSwzLjM3NXYyeiIgZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIGQ9Ik0yMzAuNywxNzguODYyNXYtNGg0YzAsMCAwLjQ0NDI1LDEuMDkzNjUgLTEuMTI1LDIuNzVjLTIuMTM1NTcsMi4yNTQxIC0yLjg3NSwxLjI1IC0yLjg3NSwxLjI1eiIgZmlsbD0iI2ZmZmZmZiIvPjwvZz48L2c+PC9nPjwvc3ZnPg==" mediaID="Status_cst_Image"/><costume name="Navbar" center-x="202.5" center-y="17.5" image="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSI0MDQuNTUwMDEiIGhlaWdodD0iMzUiIHZpZXdCb3g9IjAsMCw0MDQuNTUwMDEsMzUiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zNy43MjQ5OSwtMTYyLjUpIj48ZyBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpc1BhaW50aW5nTGF5ZXImcXVvdDs6dHJ1ZX0iIGZpbGw9IiNmZmZmZmYiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjAiIHN0cm9rZS1saW5lY2FwPSJidXR0IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS1kYXNoYXJyYXk9IiIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTogbm9ybWFsIj48Zz48cGF0aCBkPSJNNTUuNTQ1NjgsMTk3LjV2LTM1aDM3MHYzNXoiLz48cGF0aCBkPSJNMzcuNzI0OTksMTc5Ljk5Mjg5YzAsLTkuNjUxMDkgNy44MjM3NywtMTcuNDc0ODYgMTcuNDc0ODYsLTE3LjQ3NDg2YzkuNjUxMDksMCAxNy40NzQ4Niw3LjgyMzc3IDE3LjQ3NDg2LDE3LjQ3NDg2YzAsOS42NTEwOSAtNy44MjM3NiwxNy40NzQ4NSAtMTcuNDc0ODYsMTcuNDc0ODVjLTkuNjUxMDksMCAtMTcuNDc0ODYsLTcuODIzNzYgLTE3LjQ3NDg2LC0xNy40NzQ4NXoiLz48cGF0aCBkPSJNNDA3LjMyNTI5LDE3OS45OTI4OWMwLC05LjY1MTA5IDcuODIzNzYsLTE3LjQ3NDg2IDE3LjQ3NDg1LC0xNy40NzQ4NmM5LjY1MTEsMCAxNy40NzQ4Niw3LjgyMzc3IDE3LjQ3NDg2LDE3LjQ3NDg2YzAsOS42NTEwOSAtNy44MjM3NiwxNy40NzQ4NSAtMTcuNDc0ODYsMTcuNDc0ODVjLTkuNjUxMDksMCAtMTcuNDc0ODUsLTcuODIzNzYgLTE3LjQ3NDg1LC0xNy40NzQ4NXoiLz48L2c+PC9nPjwvZz48L3N2Zz4=" mediaID="Navbar_cst_Navbar"/><costume name="Navbar Icons" center-x="201" center-y="17" image="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSI0MDIuMjM4MTEiIGhlaWdodD0iMzMuNTcwMjEiIHZpZXdCb3g9IjAsMCw0MDIuMjM4MTEsMzMuNTcwMjEiPjxkZWZzPjxyYWRpYWxHcmFkaWVudCBjeD0iNTUuNTc2OTQiIGN5PSIxODAuMDY1MjUiIHI9IjE2LjczMDc2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaWQ9ImNvbG9yLTEiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjUzMzUyIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdG9wLW9wYWNpdHk9IjAiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBjeD0iNTQuOTAzODYiIGN5PSIxODMuNDMwNjMiIHI9IjguOTQyMzEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBpZD0iY29sb3ItMiI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYTg1ZDVkIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjYWEzYTNhIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgY3g9IjQyNC4zNTM1MiIgY3k9IjE3OS45NTY1OCIgcj0iMTYuNzMwNzYiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBpZD0iY29sb3ItMyI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdG9wLW9wYWNpdHk9IjAuNTMzNTIiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGN4PSI0MjQuMjQyNjUiIGN5PSIxODUuMTI2NDciIHI9IjcuODk2ODciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBpZD0iY29sb3ItNCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjOTRjNmQ0Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNjBhOGNjIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTM4Ljg0NjE3LC0xNjMuMjI1ODEpIj48ZyBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpc1BhaW50aW5nTGF5ZXImcXVvdDs6dHJ1ZX0iIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLWRhc2hhcnJheT0iIiBzdHJva2UtZGFzaG9mZnNldD0iMCIgc3R5bGU9Im1peC1ibGVuZC1tb2RlOiBub3JtYWwiPjxnPjxnPjxwYXRoIGQ9Ik0zOC44NDYxNywxODAuMDY1MjVjMCwtOS4yNDAxNSA3LjQ5MDYyLC0xNi43MzA3NyAxNi43MzA3NywtMTYuNzMwNzdjOS4yNDAxNSwwIDE2LjczMDc2LDcuNDkwNjIgMTYuNzMwNzYsMTYuNzMwNzdjMCw5LjI0MDE1IC03LjQ5MDYxLDE2LjczMDc3IC0xNi43MzA3NiwxNi43MzA3N2MtOS4yNDAxNSwwIC0xNi43MzA3NywtNy40OTA2MiAtMTYuNzMwNzcsLTE2LjczMDc3eiIgZmlsbD0idXJsKCNjb2xvci0xKSIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjAiLz48Zz48cGF0aCBkPSJNNDguOTEwMTMsMTc2LjM5MzMyYzAuNDI3NjcsLTIuOTI2ODIgMi45NDgyNSwtNS4xNzQyMyA1Ljk5MzczLC01LjE3NDIzYzMuMzQ1NTcsMCA2LjA1NzcsMi43MTIxMiA2LjA1NzcsNi4wNTc2OWMwLDMuMzQ1NTcgLTIuNzEyMTMsNi4wNTc2OSAtNi4wNTc3LDYuMDU3NjljLTAuNDI4MjcsMCAtMC44NDYxNiwtMC4wNDQ0NCAtMS4yNDkzLC0wLjEyODk3IiBmaWxsPSJub25lIiBzdHJva2U9IiNhYTNhM2EiIHN0cm9rZS13aWR0aD0iMiIvPjxwYXRoIGQ9Ik00NS45NjE1NSwxODcuNzU3NTV2LTguNjUzODVoMTcuODg0NjJ2OC42NTM4NXoiIGZpbGw9InVybCgjY29sb3ItMikiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLXdpZHRoPSIwIi8+PC9nPjwvZz48ZyBzdHJva2Utd2lkdGg9IjAiPjxwYXRoIGQ9Ik00MDcuNjIyNzUsMTc5Ljk1NjU4YzAsLTkuMjQwMTUgNy40OTA2MiwtMTYuNzMwNzcgMTYuNzMwNzcsLTE2LjczMDc3YzkuMjQwMTUsMCAxNi43MzA3Niw3LjQ5MDYyIDE2LjczMDc2LDE2LjczMDc3YzAsOS4yNDAxNSAtNy40OTA2MSwxNi43MzA3NyAtMTYuNzMwNzYsMTYuNzMwNzdjLTkuMjQwMTUsMCAtMTYuNzMwNzcsLTcuNDkwNjIgLTE2LjczMDc3LC0xNi43MzA3N3oiIGZpbGw9InVybCgjY29sb3ItMykiIHN0cm9rZT0iIzAwMDAwMCIvPjxnPjxwYXRoIGQ9Ik00MTYuMzQ1NzcsMTg5LjQ0MTMxdi04LjYyOTY3aDE1Ljc5Mzc1djguNjI5Njd6IiBmaWxsPSJ1cmwoI2NvbG9yLTQpIiBzdHJva2U9IiNhYTNhM2EiLz48cGF0aCBkPSJNNDEyLjQzNjQ4LDE4MC44MzU4M2wxMS45NzQxOSwtMTIuODU2OGwxMS45NzQxOSwxMi44NTY4eiIgZmlsbD0iIzYwYThjYyIgc3Ryb2tlPSJub25lIi8+PC9nPjwvZz48L2c+PC9nPjwvZz48L3N2Zz4=" mediaID="Navbar Icons_cst_Navbar Icons"/></media></snapdata>